UNPKG

shaka-player

Version:
120 lines (116 loc) 135 kB
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; $jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var a=0;return function(b){return $jscomp.SYMBOL_PREFIX+(b||"")+a++}}(); $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var b=0;return $jscomp.iteratorPrototype(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}; $jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};$jscomp.makeIterator=function(a){$jscomp.initSymbolIterator();var b=a[Symbol.iterator];return b?b.call(a):$jscomp.arrayIterator(a)}; $jscomp.polyfill=function(a,b,c,d){if(b){c=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})}};$jscomp.FORCE_POLYFILL_PROMISE=!1; $jscomp.polyfill("Promise",function(a){function b(){this.batch_=null}function c(a){return a instanceof e?a:new e(function(b,c){b(a)})}if(a&&!$jscomp.FORCE_POLYFILL_PROMISE)return a;b.prototype.asyncExecute=function(a){null==this.batch_&&(this.batch_=[],this.asyncExecuteBatch_());this.batch_.push(a);return this};b.prototype.asyncExecuteBatch_=function(){var a=this;this.asyncExecuteFunction(function(){a.executeBatch_()})};var d=$jscomp.global.setTimeout;b.prototype.asyncExecuteFunction=function(a){d(a, 0)};b.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var a=this.batch_;this.batch_=[];for(var b=0;b<a.length;++b){var c=a[b];a[b]=null;try{c()}catch(k){this.asyncThrow_(k)}}}this.batch_=null};b.prototype.asyncThrow_=function(a){this.asyncExecuteFunction(function(){throw a;})};var e=function(a){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var b=this.createResolveAndReject_();try{a(b.resolve,b.reject)}catch(l){b.reject(l)}};e.prototype.createResolveAndReject_= function(){function a(a){return function(d){c||(c=!0,a.call(b,d))}}var b=this,c=!1;return{resolve:a(this.resolveTo_),reject:a(this.reject_)}};e.prototype.resolveTo_=function(a){if(a===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(a instanceof e)this.settleSameAsPromise_(a);else{a:switch(typeof a){case "object":var b=null!=a;break a;case "function":b=!0;break a;default:b=!1}b?this.resolveToNonPromiseObj_(a):this.fulfill_(a)}};e.prototype.resolveToNonPromiseObj_=function(a){var b= void 0;try{b=a.then}catch(l){this.reject_(l);return}"function"==typeof b?this.settleSameAsThenable_(b,a):this.fulfill_(a)};e.prototype.reject_=function(a){this.settle_(2,a)};e.prototype.fulfill_=function(a){this.settle_(1,a)};e.prototype.settle_=function(a,b){if(0!=this.state_)throw Error("Cannot settle("+a+", "+b+"): Promise already settled in state"+this.state_);this.state_=a;this.result_=b;this.executeOnSettledCallbacks_()};e.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var a= 0;a<this.onSettledCallbacks_.length;++a)f.asyncExecute(this.onSettledCallbacks_[a]);this.onSettledCallbacks_=null}};var f=new b;e.prototype.settleSameAsPromise_=function(a){var b=this.createResolveAndReject_();a.callWhenSettled_(b.resolve,b.reject)};e.prototype.settleSameAsThenable_=function(a,b){var c=this.createResolveAndReject_();try{a.call(b,c.resolve,c.reject)}catch(k){c.reject(k)}};e.prototype.then=function(a,b){function c(a,b){return"function"==typeof a?function(b){try{d(a(b))}catch(r){h(r)}}: b}var d,h,g=new e(function(a,b){d=a;h=b});this.callWhenSettled_(c(a,d),c(b,h));return g};e.prototype["catch"]=function(a){return this.then(void 0,a)};e.prototype.callWhenSettled_=function(a,b){function c(){switch(d.state_){case 1:a(d.result_);break;case 2:b(d.result_);break;default:throw Error("Unexpected state: "+d.state_);}}var d=this;null==this.onSettledCallbacks_?f.asyncExecute(c):this.onSettledCallbacks_.push(c)};e.resolve=c;e.reject=function(a){return new e(function(b,c){c(a)})};e.race=function(a){return new e(function(b, d){for(var e=$jscomp.makeIterator(a),h=e.next();!h.done;h=e.next())c(h.value).callWhenSettled_(b,d)})};e.all=function(a){var b=$jscomp.makeIterator(a),d=b.next();return d.done?c([]):new e(function(a,e){function h(b){return function(c){f[b]=c;g--;0==g&&a(f)}}var f=[],g=0;do f.push(void 0),g++,c(d.value).callWhenSettled_(h(f.length-1),e),d=b.next();while(!d.done)})};return e},"es6","es3"); $jscomp.asyncExecutePromiseGenerator=function(a){function b(b){return a.next(b)}function c(b){return a["throw"](b)}return new Promise(function(d,e){function f(a){a.done?d(a.value):Promise.resolve(a.value).then(b,c).then(f,e)}f(a.next())})};$jscomp.asyncExecutePromiseGeneratorFunction=function(a){return $jscomp.asyncExecutePromiseGenerator(a())};$jscomp.objectCreate=$jscomp.ASSUME_ES5||"function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b}; $jscomp.underscoreProtoCanBeSet=function(){var a={a:!0},b={};try{return b.__proto__=a,b.a}catch(c){}return!1};$jscomp.setPrototypeOf="function"==typeof Object.setPrototypeOf?Object.setPrototypeOf:$jscomp.underscoreProtoCanBeSet()?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null; $jscomp.inherits=function(a,b){a.prototype=$jscomp.objectCreate(b.prototype);a.prototype.constructor=a;if($jscomp.setPrototypeOf){var c=$jscomp.setPrototypeOf;c(a,b)}else for(c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.superClass_=b.prototype};$jscomp.generator={}; $jscomp.generator.ensureIteratorResultIsObject_=function(a){if(!(a instanceof Object))throw new TypeError("Iterator result "+a+" is not an object");};$jscomp.generator.Context=function(){this.isRunning_=!1;this.yieldAllIterator_=null;this.yieldResult=void 0;this.nextAddress=1;this.finallyAddress_=this.catchAddress_=0;this.finallyContexts_=this.abruptCompletion_=null}; $jscomp.generator.Context.prototype.start_=function(){if(this.isRunning_)throw new TypeError("Generator is already running");this.isRunning_=!0};$jscomp.generator.Context.prototype.stop_=function(){this.isRunning_=!1};$jscomp.generator.Context.prototype.jumpToErrorHandler_=function(){this.nextAddress=this.catchAddress_||this.finallyAddress_};$jscomp.generator.Context.prototype.next_=function(a){this.yieldResult=a}; $jscomp.generator.Context.prototype.throw_=function(a){this.abruptCompletion_={exception:a,isException:!0};this.jumpToErrorHandler_()};$jscomp.generator.Context.prototype["return"]=function(a){this.abruptCompletion_={"return":a};this.nextAddress=this.finallyAddress_};$jscomp.generator.Context.prototype.jumpThroughFinallyBlocks=function(a){this.abruptCompletion_={jumpTo:a};this.nextAddress=this.finallyAddress_};$jscomp.generator.Context.prototype.yield=function(a,b){this.nextAddress=b;return{value:a}}; $jscomp.generator.Context.prototype.yieldAll=function(a,b){var c=$jscomp.makeIterator(a),d=c.next();$jscomp.generator.ensureIteratorResultIsObject_(d);if(d.done)this.yieldResult=d.value,this.nextAddress=b;else return this.yieldAllIterator_=c,this.yield(d.value,b)};$jscomp.generator.Context.prototype.jumpTo=function(a){this.nextAddress=a};$jscomp.generator.Context.prototype.jumpToEnd=function(){this.nextAddress=0}; $jscomp.generator.Context.prototype.setCatchFinallyBlocks=function(a,b){this.catchAddress_=a;void 0!=b&&(this.finallyAddress_=b)};$jscomp.generator.Context.prototype.setFinallyBlock=function(a){this.catchAddress_=0;this.finallyAddress_=a||0};$jscomp.generator.Context.prototype.leaveTryBlock=function(a,b){this.nextAddress=a;this.catchAddress_=b||0}; $jscomp.generator.Context.prototype.enterCatchBlock=function(a){this.catchAddress_=a||0;a=this.abruptCompletion_.exception;this.abruptCompletion_=null;return a};$jscomp.generator.Context.prototype.enterFinallyBlock=function(a,b,c){c?this.finallyContexts_[c]=this.abruptCompletion_:this.finallyContexts_=[this.abruptCompletion_];this.catchAddress_=a||0;this.finallyAddress_=b||0}; $jscomp.generator.Context.prototype.leaveFinallyBlock=function(a,b){var c=this.finallyContexts_.splice(b||0)[0];if(c=this.abruptCompletion_=this.abruptCompletion_||c){if(c.isException)return this.jumpToErrorHandler_();void 0!=c.jumpTo&&this.finallyAddress_<c.jumpTo?(this.nextAddress=c.jumpTo,this.abruptCompletion_=null):this.nextAddress=this.finallyAddress_}else this.nextAddress=a};$jscomp.generator.Context.prototype.forIn=function(a){return new $jscomp.generator.Context.PropertyIterator(a)}; $jscomp.generator.Context.PropertyIterator=function(a){this.object_=a;this.properties_=[];for(var b in a)this.properties_.push(b);this.properties_.reverse()};$jscomp.generator.Context.PropertyIterator.prototype.getNext=function(){for(;0<this.properties_.length;){var a=this.properties_.pop();if(a in this.object_)return a}return null};$jscomp.generator.Engine_=function(a){this.context_=new $jscomp.generator.Context;this.program_=a}; $jscomp.generator.Engine_.prototype.next_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_.next,a,this.context_.next_);this.context_.next_(a);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.return_=function(a){this.context_.start_();var b=this.context_.yieldAllIterator_;if(b)return this.yieldAllStep_("return"in b?b["return"]:function(a){return{value:a,done:!0}},a,this.context_["return"]);this.context_["return"](a);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.throw_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_["throw"],a,this.context_.next_);this.context_.throw_(a);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.yieldAllStep_=function(a,b,c){try{var d=a.call(this.context_.yieldAllIterator_,b);$jscomp.generator.ensureIteratorResultIsObject_(d);if(!d.done)return this.context_.stop_(),d;var e=d.value}catch(f){return this.context_.yieldAllIterator_=null,this.context_.throw_(f),this.nextStep_()}this.context_.yieldAllIterator_=null;c.call(this.context_,e);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.nextStep_=function(){for(;this.context_.nextAddress;)try{var a=this.program_(this.context_);if(a)return this.context_.stop_(),{value:a.value,done:!1}}catch(b){this.context_.yieldResult=void 0,this.context_.throw_(b)}this.context_.stop_();if(this.context_.abruptCompletion_){a=this.context_.abruptCompletion_;this.context_.abruptCompletion_=null;if(a.isException)throw a.exception;return{value:a["return"],done:!0}}return{value:void 0,done:!0}}; $jscomp.generator.Generator_=function(a){this.next=function(b){return a.next_(b)};this["throw"]=function(b){return a.throw_(b)};this["return"]=function(b){return a.return_(b)};$jscomp.initSymbolIterator();this[Symbol.iterator]=function(){return this}};$jscomp.generator.createGenerator=function(a,b){$jscomp.generator.Generator_.prototype=a.prototype;return new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(b))}; $jscomp.checkEs6ConformanceViaProxy=function(){try{var a={},b=Object.create(new $jscomp.global.Proxy(a,{get:function(c,d,e){return c==a&&"q"==d&&e==b}}));return!0===b.q}catch(c){return!1}};$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS=!1;$jscomp.ES6_CONFORMANCE=$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS&&$jscomp.checkEs6ConformanceViaProxy();$jscomp.owns=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)}; $jscomp.polyfill("WeakMap",function(a){function b(){if(!a||!Object.seal)return!1;try{var b=Object.seal({}),c=Object.seal({}),d=new a([[b,2],[c,3]]);if(2!=d.get(b)||3!=d.get(c))return!1;d["delete"](b);d.set(c,4);return!d.has(b)&&4==d.get(c)}catch(n){return!1}}function c(a){$jscomp.owns(a,e)||$jscomp.defineProperty(a,e,{value:{}})}function d(a){var b=Object[a];b&&(Object[a]=function(a){c(a);return b(a)})}if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(a&&$jscomp.ES6_CONFORMANCE)return a}else if(b())return a; var e="$jscomp_hidden_"+Math.random();d("freeze");d("preventExtensions");d("seal");var f=0,g=function(a){this.id_=(f+=Math.random()+1).toString();if(a){$jscomp.initSymbol();$jscomp.initSymbolIterator();a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};g.prototype.set=function(a,b){c(a);if(!$jscomp.owns(a,e))throw Error("WeakMap key fail: "+a);a[e][this.id_]=b;return this};g.prototype.get=function(a){return $jscomp.owns(a,e)?a[e][this.id_]:void 0};g.prototype.has= function(a){return $jscomp.owns(a,e)&&$jscomp.owns(a[e],this.id_)};g.prototype["delete"]=function(a){return $jscomp.owns(a,e)&&$jscomp.owns(a[e],this.id_)?delete a[e][this.id_]:!1};return g},"es6","es3");$jscomp.MapEntry=function(){}; $jscomp.polyfill("Map",function(a){function b(){if($jscomp.ASSUME_NO_NATIVE_MAP||!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),c=new a($jscomp.makeIterator([[b,"s"]]));if("s"!=c.get(b)||1!=c.size||c.get({x:4})||c.set({x:4},"t")!=c||2!=c.size)return!1;var d=c.entries(),e=d.next();if(e.done||e.value[0]!=b||"s"!=e.value[1])return!1;e=d.next();return e.done||4!=e.value[0].x||"t"!=e.value[1]||!d.next().done?!1:!0}catch(t){return!1}} if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(a&&$jscomp.ES6_CONFORMANCE)return a}else if(b())return a;$jscomp.initSymbol();$jscomp.initSymbolIterator();var c=new WeakMap,d=function(a){this.data_={};this.head_=g();this.size=0;if(a){a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};d.prototype.set=function(a,b){var c=e(this,a);c.list||(c.list=this.data_[c.id]=[]);c.entry?c.entry.value=b:(c.entry={next:this.head_,previous:this.head_.previous,head:this.head_, key:a,value:b},c.list.push(c.entry),this.head_.previous.next=c.entry,this.head_.previous=c.entry,this.size++);return this};d.prototype["delete"]=function(a){a=e(this,a);return a.entry&&a.list?(a.list.splice(a.index,1),a.list.length||delete this.data_[a.id],a.entry.previous.next=a.entry.next,a.entry.next.previous=a.entry.previous,a.entry.head=null,this.size--,!0):!1};d.prototype.clear=function(){this.data_={};this.head_=this.head_.previous=g();this.size=0};d.prototype.has=function(a){return!!e(this, a).entry};d.prototype.get=function(a){return(a=e(this,a).entry)&&a.value};d.prototype.entries=function(){return f(this,function(a){return[a.key,a.value]})};d.prototype.keys=function(){return f(this,function(a){return a.key})};d.prototype.values=function(){return f(this,function(a){return a.value})};d.prototype.forEach=function(a,b){for(var c=this.entries(),d;!(d=c.next()).done;)d=d.value,a.call(b,d[1],d[0],this)};d.prototype[Symbol.iterator]=d.prototype.entries;var e=function(a,b){var d=b&&typeof b; "object"==d||"function"==d?c.has(b)?d=c.get(b):(d=""+ ++h,c.set(b,d)):d="p_"+b;var e=a.data_[d];if(e&&$jscomp.owns(a.data_,d))for(var f=0;f<e.length;f++){var g=e[f];if(b!==b&&g.key!==g.key||b===g.key)return{id:d,list:e,index:f,entry:g}}return{id:d,list:e,index:-1,entry:void 0}},f=function(a,b){var c=a.head_;return $jscomp.iteratorPrototype(function(){if(c){for(;c.head!=a.head_;)c=c.previous;for(;c.next!=c.head;)return c=c.next,{done:!1,value:b(c)};c=null}return{done:!0,value:void 0}})},g=function(){var a= {};return a.previous=a.next=a.head=a},h=0;return d},"es6","es3");$jscomp.iteratorFromArray=function(a,b){$jscomp.initSymbolIterator();a instanceof String&&(a+="");var c=0,d={next:function(){if(c<a.length){var e=c++;return{value:b(e,a[e]),done:!1}}d.next=function(){return{done:!0,value:void 0}};return d.next()}};d[Symbol.iterator]=function(){return d};return d}; $jscomp.assign="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)$jscomp.owns(d,e)&&(a[e]=d[e])}return a};$jscomp.polyfill("Object.assign",function(a){return a||$jscomp.assign},"es6","es3");$jscomp.polyfill("Object.is",function(a){return a?a:function(a,c){return a===c?0!==a||1/a===1/c:a!==a&&c!==c}},"es6","es3"); $jscomp.polyfill("Array.prototype.includes",function(a){return a?a:function(a,c){var b=this;b instanceof String&&(b=String(b));var e=b.length,f=c||0;for(0>f&&(f=Math.max(f+e,0));f<e;f++){var g=b[f];if(g===a||Object.is(g,a))return!0}return!1}},"es7","es3"); $jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError("The 'this' value for String.prototype."+c+" must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype."+c+" must not be a regular expression");return a+""};$jscomp.polyfill("String.prototype.includes",function(a){return a?a:function(a,c){return-1!==$jscomp.checkStringArgs(this,a,"includes").indexOf(a,c||0)}},"es6","es3"); $jscomp.polyfill("Set",function(a){function b(){if($jscomp.ASSUME_NO_NATIVE_SET||!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),c=new a($jscomp.makeIterator([b]));if(!c.has(b)||1!=c.size||c.add(b)!=c||1!=c.size||c.add({x:4})!=c||2!=c.size)return!1;var f=c.entries(),g=f.next();if(g.done||g.value[0]!=b||g.value[1]!=b)return!1;g=f.next();return g.done||g.value[0]==b||4!=g.value[0].x||g.value[1]!=g.value[0]?!1:f.next().done}catch(h){return!1}} if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(a&&$jscomp.ES6_CONFORMANCE)return a}else if(b())return a;$jscomp.initSymbol();$jscomp.initSymbolIterator();var c=function(a){this.map_=new Map;if(a){a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)this.add(b.value)}this.size=this.map_.size};c.prototype.add=function(a){this.map_.set(a,a);this.size=this.map_.size;return this};c.prototype["delete"]=function(a){a=this.map_["delete"](a);this.size=this.map_.size;return a};c.prototype.clear=function(){this.map_.clear(); this.size=0};c.prototype.has=function(a){return this.map_.has(a)};c.prototype.entries=function(){return this.map_.entries()};c.prototype.values=function(){return this.map_.values()};c.prototype.keys=c.prototype.values;c.prototype[Symbol.iterator]=c.prototype.values;c.prototype.forEach=function(a,b){var c=this;this.map_.forEach(function(d){return a.call(b,d,d,c)})};return c},"es6","es3"); $jscomp.polyfill("Array.from",function(a){return a?a:function(a,c,d){$jscomp.initSymbolIterator();c=null!=c?c:function(a){return a};var b=[],f=a[Symbol.iterator];if("function"==typeof f)for(a=f.call(a);!(f=a.next()).done;)b.push(c.call(d,f.value));else{f=a.length;for(var g=0;g<f;g++)b.push(c.call(d,a[g]))}return b}},"es6","es3");$jscomp.polyfill("Object.values",function(a){return a?a:function(a){var b=[],d;for(d in a)$jscomp.owns(a,d)&&b.push(a[d]);return b}},"es8","es3"); var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]?c[d]:c[d]={}}; goog.define=function(a,b){var c=b;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?c=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(c=goog.global.CLOSURE_DEFINES[a]));goog.exportPath_(a,c)};goog.DEBUG=!0;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1; goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(".")))&&!goog.getObjectByName(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={}); goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){b=b||goog.global;for(var c in a)b[c]=a[c]};goog.addDependency=function(a,b,c){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.ENABLE_DEBUG_LOADER=!0; goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};goog.require=function(a){if(!COMPILED){if(goog.isProvided_(a))return null;if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b)return goog.included_[b]=!0,goog.writeScripts_(),null}a="goog.require could not find: "+a;goog.logToConsole_(a);throw Error(a);}};goog.basePath="";goog.global.CLOSURE_NO_DEPS=!0;goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER; goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?");d=-1==d?c.length:d;if("base.js"== c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a,b){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(a,b)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a,b){if(goog.inHtmlDocument_()){var c=goog.global.document;if("complete"==c.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}void 0===b?c.write('<script type="text/javascript" src="'+a+'">\x3c/script>'):c.write('<script type="text/javascript">'+ b+"\x3c/script>");return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var f in d.requires[e])if(!goog.isProvided_(f))if(f in d.nameToPath)a(d.nameToPath[f]);else throw Error("Undefined nameToPath for "+f);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_;for(f in goog.included_)d.written[f]||a(f);for(var e=0;e<b.length;e++){var f=b[e];goog.dependencies_.written[f]=!0}for(e=0;e<b.length;e++)(f= b[e])&&goog.importScript_(goog.basePath+f)},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js"));goog.isDefAndNotNull=function(a){return null!=a};goog.isString=function(a){return"string"==typeof a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c}; goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,f){var d=Array.prototype.slice.call(arguments,2);return b.prototype[c].apply(a,d)}};COMPILED||(goog.global.COMPILED=COMPILED);/* Copyright 2016 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. */ var shakaDemo={AssetCard:function(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressBar_=document.createElement("progress");this.remakeButtonsFn_=d;this.card_.classList.add("mdl-card-wide");this.card_.classList.add("mdl-card");this.card_.classList.add("mdl-shadow--2dp");this.card_.classList.add("asset-card");d=document.createElement("div");d.classList.add("mdl-card__title"); this.card_.appendChild(d);var e=document.createElement("h2");e.classList.add("mdl-card__title-text");e.textContent=b.shortName||b.name;d.appendChild(e);if(b.iconUri){d=document.createElement("picture");e=document.createElement("source");e.srcset=b.iconUri.replace(/.png$/,".webp");e.type="image/webp";var f=document.createElement("source");f.srcset=b.iconUri;f.type="image/png";var g=document.createElement("img");g.src=b.iconUri;g.alt="";d.appendChild(e);d.appendChild(f);d.appendChild(g);this.card_.appendChild(d)}b.description&& c&&(c=document.createElement("div"),c.classList.add("mdl-card__supporting-text"),c.textContent=b.description,this.card_.appendChild(c));this.card_.appendChild(this.featureIconsContainer_);this.addFeatureIcons_(b);this.actions_.classList.add("mdl-card__actions");this.actions_.classList.add("mdl-card--border");this.card_.appendChild(this.actions_);c=document.createElement("div");this.progressBar_.classList.add("hidden");this.progressBar_.setAttribute("max",1);this.progressBar_.setAttribute("value", b.storedProgress);c.appendChild(this.progressBar_);this.card_.appendChild(c);a.appendChild(this.card_);this.remakeButtons()}};shakaDemo.AssetCard.prototype.addFeatureIcon_=function(a,b){var c=document.createElement("div");c.classList.add("feature-icon");c.setAttribute("icon",a);this.featureIconsContainer_.appendChild(c);shakaDemo.Tooltips.make(c,b)}; shakaDemo.AssetCard.prototype.addFeatureIcons_=function(a){var b=shakaAssets.Feature,c=shakaAssets.KeySystem;b=(new Map).set(b.SUBTITLES,"subtitles").set(b.CAPTIONS,"closed_caption").set(b.LIVE,"live").set(b.TRICK_MODE,"trick_mode").set(b.HIGH_DEFINITION,"high_definition").set(b.ULTRA_HIGH_DEFINITION,"ultra_high_definition").set(b.SURROUND,"surround_sound").set(b.MULTIPLE_LANGUAGES,"multiple_languages").set(b.AUDIO_ONLY,"audio_only");for(var d=$jscomp.makeIterator(a.features),e=d.next();!e.done;e= d.next()){e=e.value;var f=b.get(e);f&&this.addFeatureIcon_(f,e)}a=$jscomp.makeIterator(a.drm);for(b=a.next();!b.done;b=a.next())switch(b.value){case c.WIDEVINE:this.addFeatureIcon_("widevine","Widevine DRM");break;case c.CLEAR_KEY:this.addFeatureIcon_("clear_key","Clear Key DRM");break;case c.PLAYREADY:this.addFeatureIcon_("playready","PlayReady DRM")}}; shakaDemo.AssetCard.prototype.markAsUnsupported=function(a){this.card_.classList.add("asset-card-unsupported");this.makeUnsupportedButton_("Not Available",a)};shakaDemo.AssetCard.prototype.makeUnsupportedButton_=function(a,b){var c=this.addButton(a,function(){});c.setAttribute("disabled","");var d=document.createElement("div");c.parentElement&&c.parentElement.removeChild(c);d.classList.add("tooltip-attach-point");d.appendChild(c);this.actions_.appendChild(d);shakaDemo.Tooltips.make(d,b);return c}; shakaDemo.AssetCard.prototype.selectByAsset=function(a){this.card_.classList.remove("selected");this.asset_==a&&this.card_.classList.add("selected")};shakaDemo.AssetCard.prototype.remakeButtons=function(){shaka.ui.Utils.removeAllChildren(this.actions_);this.remakeButtonsFn_(this)}; shakaDemo.AssetCard.prototype.addStoreButton=function(){var a=this,b=function(a,b,c){b.classList.add("asset-card-corner-button");b=document.createElement("i");b.textContent=c;b.classList.add("material-icons");a.appendChild(b)},c=shakaDemoMain.getAssetUnsupportedReason(this.asset_,!0);c||goog.asserts.assert(this.asset_.storeCallback,"A storage callback is expected for all supported assets!");if(c)c=this.makeUnsupportedButton_("",c),b(c,c.parentElement||c,"get_app");else if(this.asset_.isStored()){var d= this.addButton("",function(){a.makeDeleteDialog_(d)});b(d,d,"offline_pin")}else{var e=this.addButton("",function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){return $jscomp.generator.createGenerator(g,function(b){switch(b.nextAddress){case 1:return e.disabled=!0,b.yield(a.asset_.storeCallback(),2);case 2:a.remakeButtons(),b.jumpToEnd()}})})});b(e,e,"get_app")}}; shakaDemo.AssetCard.prototype.makeDeleteDialog_=function(a){var b=this,c=this.card_.parentElement;if(c){var d=document.createElement("dialog");d.classList.add("mdl-dialog");c.appendChild(d);d.showModal||dialogPolyfill.registerDialog(d);c=document.createElement("h2");c.classList.add("mdl-typography--title");c.textContent="Delete the offline copy?";d.appendChild(c);var e=document.createElement("div");d.appendChild(e);c=function(a,b){var c=document.createElement("button");c.textContent=a;c.classList.add("mdl-button"); c.classList.add("mdl-button--colored");c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.addEventListener("click",function(){b()});e.appendChild(c);c.blur()};c("Yes",function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){return $jscomp.generator.createGenerator(g,function(c){switch(c.nextAddress){case 1:return d.close(),a.disabled=!0,c.yield(b.asset_.unstoreCallback(),2);case 2:b.remakeButtons(),c.jumpToEnd()}})})});c("No",function(){d.close()});d.showModal()}}; shakaDemo.AssetCard.prototype.updateProgress=function(){if(1>this.asset_.storedProgress){this.progressBar_.classList.remove("hidden");for(var a=$jscomp.makeIterator(this.actions_.childNodes),b=a.next();!b.done;b=a.next())b.value.disabled=!0}else for(this.progressBar_.classList.add("hidden"),a=$jscomp.makeIterator(this.actions_.childNodes),b=a.next();!b.done;b=a.next())b.value.disabled=!1;this.progressBar_.setAttribute("value",this.asset_.storedProgress)}; shakaDemo.AssetCard.prototype.addButton=function(a,b){var c=document.createElement("button");c.classList.add("mdl-button");c.classList.add("mdl-button--colored");c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.textContent=a;c.addEventListener("click",function(){c.hasAttribute("disabled")||b()});this.actions_.appendChild(c);return c};shakaDemo.CloseButton=function(a,b){var c=shaka.ui.Element.call(this,a,b)||this;c.button_=document.createElement("button");c.button_.classList.add("material-icons");c.button_.classList.add("close-button");c.button_.textContent="close";c.parent.appendChild(c.button_);c.button_.addEventListener("click",function(){document.fullscreenElement&&document.exitFullscreen();document.pictureInPictureElement&&document.exitPictureInPicture();shakaDemoMain.unload()});return c}; $jscomp.inherits(shakaDemo.CloseButton,shaka.ui.Element);shakaDemo.CloseButton.prototype.destroy=function(){return Promise.resolve()};shakaDemo.CloseButton.Factory=function(){};shakaDemo.CloseButton.Factory.prototype.create=function(a,b){return new shakaDemo.CloseButton(a,b)};var ShakaDemoAssetInfo=function(a,b,c,d){this.name=a;this.shortName="";this.iconUri=b;this.manifestUri=c;this.source=d;this.disabled=this.focus=!1;this.extraText=[];this.certificateUri=null;this.description="";this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.drmCallback=this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.extraConfig=null;this.storedProgress=1}; ShakaDemoAssetInfo.prototype.addDescription=function(a){this.description=a;return this};ShakaDemoAssetInfo.prototype.addCertificateUri=function(a){this.certificateUri=a;return this};ShakaDemoAssetInfo.caseLessAlphaComparator_=function(a,b){return a.toLowerCase()<b.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0};ShakaDemoAssetInfo.prototype.addFeature=function(a){this.features.push(a);this.features.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this}; ShakaDemoAssetInfo.prototype.addKeySystem=function(a){1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.CLEAR&&(this.drm=[]);this.drm.push(a);this.drm.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};ShakaDemoAssetInfo.prototype.setExtraConfig=function(a){this.extraConfig=a;return this};ShakaDemoAssetInfo.prototype.setRequestFilter=function(a){this.requestFilter=a;return this};ShakaDemoAssetInfo.prototype.setResponseFilter=function(a){this.responseFilter=a;return this}; ShakaDemoAssetInfo.prototype.addLicenseServer=function(a,b){this.licenseServers.set(a,b);return this};ShakaDemoAssetInfo.prototype.addLicenseRequestHeader=function(a,b){this.licenseRequestHeaders.set(a,b);return this};ShakaDemoAssetInfo.prototype.addExtraText=function(a){this.extraText.push(a);return this};ShakaDemoAssetInfo.prototype.markAsFocused=function(){this.focus=!0;return this};ShakaDemoAssetInfo.prototype.markAsFeatured=function(a){this.isFeatured=!0;this.shortName=a||this.shortName;return this}; ShakaDemoAssetInfo.prototype.markAsDisabled=function(){this.disabled=!0;return this};ShakaDemoAssetInfo.prototype.toJSON=function(){var a={},b;for(b in this){var c=this[b];if(c instanceof Map){var d={__type__:"map"};c=$jscomp.makeIterator(c.entries());for(var e=c.next();!e.done;e=c.next())e=e.value,d[e[0]]=e[1];a[b]=d}else a[b]=c}return a}; ShakaDemoAssetInfo.prototype.applyFilters=function(a){var b=this;a.clearAllRequestFilters();a.clearAllResponseFilters();this.licenseRequestHeaders.size&&a.registerRequestFilter(function(a,d){return b.addLicenseRequestHeaders_(b.licenseRequestHeaders,a,d)});this.requestFilter&&a.registerRequestFilter(this.requestFilter);this.responseFilter&&a.registerResponseFilter(this.responseFilter)}; ShakaDemoAssetInfo.prototype.getConfiguration=function(){var a={drm:{},manifest:{dash:{}}};this.licenseServers.size&&(a.drm.servers={},this.licenseServers.forEach(function(b,d){a.drm.servers[d]=b}));this.drmCallback&&(a.manifest.dash.customScheme=this.drmCallback);this.clearKeys.size&&(a.drm.clearKeys={},this.clearKeys.forEach(function(b,d){a.drm.clearKeys[d]=b}));if(this.extraConfig)for(var b in this.extraConfig)a[b]=this.extraConfig[b];return a}; ShakaDemoAssetInfo.prototype.addLicenseRequestHeaders_=function(a,b,c){b==shaka.net.NetworkingEngine.RequestType.LICENSE&&a.forEach(function(a,b){c.headers[b]=a})};ShakaDemoAssetInfo.prototype.isStored=function(){return null!=this.storedContent};ShakaDemoAssetInfo.makeBlankAsset=function(){return new ShakaDemoAssetInfo("","","",shakaAssets.Source.CUSTOM)}; ShakaDemoAssetInfo.fromJSON=function(a){var b={},c;for(c in a){var d=a[c];if(d&&"object"==typeof d&&"map"==d.__type__){var e=new Map,f;for(f in d)"__type__"!=f&&e.set(f,d[f]);b[c]=e}else b[c]=d}a=ShakaDemoAssetInfo.makeBlankAsset();Object.assign(a,b);return a};var shakaAssets={Source:{UNKNOWN:"Unknown",CUSTOM:"Custom",SHAKA:"Shaka",AXINOM:"Axinom",UNIFIED_STREAMING:"Unified Streaming",DASH_IF:"DASH-IF",WOWZA:"Wowza",BITCODIN:"Bitcodin",NIMBLE_STREAMER:"Nimble Streamer",AZURE_MEDIA_SERVICES:"Azure Media Services",GPAC:"GPAC",UPLYNK:"Verizon Digital Media Services"},KeySystem:{CLEAR_KEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps.1_0",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha",CLEAR:"no drm protection"},Feature:{MULTIKEY:"multiple keys", MULTIPERIOD:"multiple Periods",ENCRYPTED_WITH_CLEAR:"mixing encrypted and unencrypted periods",AESCTR_16_BYTE_IV:"encrypted with AES CTR Mode using a 16 byte IV",AESCTR_8_BYTE_IV:"encrypted with AES CTR Mode using a 8 byte IV",TRICK_MODE:"Special trick mode track",XLINK:"XLink",SUBTITLES:"Subtitles",CAPTIONS:"Captions",EMBEDDED_TEXT:"embedded text",MULTIPLE_LANGUAGES:"multiple languages",AUDIO_ONLY:"audio only",OFFLINE:"Downloadable",STORED:"Downloaded",LIVE:"Live",WEBM:"WebM",MP4:"MP4",MP2TS:"MPEG-2 TS", TTML:"TTML",WEBVTT:"WebVTT",HIGH_DEFINITION:"High definition",ULTRA_HIGH_DEFINITION:"Ultra-high definition",SURROUND:"Surround sound",DASH:"DASH",HLS:"HLS"},UplynkResponseFilter:function(a,b){a==shaka.net.NetworkingEngine.RequestType.MANIFEST&&(shakaAssets.uplynk_prefix=b.headers["x-uplynk-prefix"]?b.headers["x-uplynk-prefix"]:"")},UplynkRequestFilter:function(a,b){a==shaka.net.NetworkingEngine.RequestType.LICENSE&&(b.uris[0].includes("wv")&&shakaAssets.uplynk_prefix?b.uris[0]=shakaAssets.uplynk_prefix.concat("/wv"): b.uris[0].includes("ck")&&shakaAssets.uplynk_prefix?b.uris[0]=shakaAssets.uplynk_prefix.concat("/ck"):b.uris[0].includes("pr")&&shakaAssets.uplynk_prefix&&(b.uris[0]=shakaAssets.uplynk_prefix.concat("/pr")))}}; shakaAssets.testAssets=[(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths of a Video Dev Cartoon (DASH)","https://storage.googleapis.com/shaka-asset-icons/dark_truth.png","https://storage.googleapis.com/shaka-demo-assets/bbb-dark-truths/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths of a Video Dev Cartoon (HLS)", "https://storage.googleapis.com/shaka-asset-icons/dark_truth.png","https://storage.googleapis.com/shaka-demo-assets/bbb-dark-truths-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addDescription("A serious documentary about a problem plaguing video developers.").markAsFeatured("Big Buck Bunny: the Dark Truths").addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Angel One (multicodec, multilingual)", "https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A clip from a classic Star Trek TNG episode, presented in MPEG-DASH.").markAsFeatured("Angel One").addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE), (new ShakaDemoAssetInfo("Angel One (multicodec, multilingual, Widevine)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MULTIKEY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha", "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Angel One (multicodec, multilingual, ClearKey server)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-clearkey/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.CLEAR_KEY).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("org.w3.clearkey", "https://cwip-shaka-proxy.appspot.com/clearkey?_u3wDe7erb7v8Lqt8A3QDQ=ABEiM0RVZneImaq7zN3u_w"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE), (new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.MULTIKEY).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha", "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (multicodec)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE), (new ShakaDemoAssetInfo("Sintel w/ trick mode (MP4 only, 720p)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-trickplay/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TRICK_MODE).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (WebM only)", "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-webm-only/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (MP4 only)", "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine)", "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A Blender Foundation short film, protected by Widevine encryption.").markAsFeatured("Sintel").addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIKEY).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha", "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, VTT in MP4)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE), (new ShakaDemoAssetInfo("Sintel w/ 44 subtitle languages","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-many-subs/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod)", "https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png","https://storage.googleapis.com/shaka-demo-assets/heliocentrism/heliocentrism.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPERIOD).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod, xlink)","https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png", "https://storage.googleapis.com/shaka-demo-assets/heliocentrism-xlink/heliocentrism.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPERIOD).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.XLINK).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke-clear/dash.mpd", shakaAssets.Source.SHAKA)).addDescription("An audio-only presentation performed by Stefan Kartenberg.").markAsFeatured("Dig the Uke").addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec, Widevine)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke/dash.mpd", shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha","https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, TTML)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd", shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TTML).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd", shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Shaka Player History (multicodec, live, DASH)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM), (new ShakaDemoAssetInfo("Shaka Player History (live, HLS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.m3u8",shakaAssets.Source.SHAKA)).addDescription("A self-indulgent HLS livestream.").markAsFeatured("Shaka Player History").addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi-DRM","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png", "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest.mpd",shakaAssets.Source.AXINOM)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TTML).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBVTT).addLicenseServer("com.widevine.alpha", "https://drm-widevine-licensing.axtest.net/AcquireLicense").addLicenseServer("com.microsoft.playready","https://drm-playready-licensing.axtest.net/AcquireLi