From 9c7c42245d24dfeffa21740b40380be3979ea36a Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Wed, 18 May 2022 15:36:33 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0jessibuca=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web_src/static/js/jessibuca/decoder.js | 2 +- web_src/static/js/jessibuca/decoder.wasm | Bin 1226828 -> 1228067 bytes web_src/static/js/jessibuca/jessibuca.d.ts | 637 +++++++++++++++++++++ web_src/static/js/jessibuca/jessibuca.js | 2 +- 4 files changed, 639 insertions(+), 2 deletions(-) create mode 100644 web_src/static/js/jessibuca/jessibuca.d.ts diff --git a/web_src/static/js/jessibuca/decoder.js b/web_src/static/js/jessibuca/decoder.js index 73d6ee17..52607c75 100644 --- a/web_src/static/js/jessibuca/decoder.js +++ b/web_src/static/js/jessibuca/decoder.js @@ -1 +1 @@ -!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,(function(e,r,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(e),i=n(r),a=n(t);var s=function(e,r){return e(r={exports:{}},r.exports),r.exports}((function(e){var r,t=void 0!==t?t:{},n={};for(r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);var s,u,c,f,l,d="./this.program",p="object"==typeof window,h="function"==typeof importScripts,m="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,v="";m?(v=h?o.default.dirname(v)+"/":__dirname+"/",s=function(e,r){return f||(f=i.default),l||(l=o.default),e=l.normalize(e),f.readFileSync(e,r?null:"utf8")},c=function(e){var r=s(e,!0);return r.buffer||(r=new Uint8Array(r)),k(r.buffer),r},u=function(e,r,t){f||(f=i.default),l||(l=o.default),e=l.normalize(e),f.readFile(e,(function(e,n){e?t(e):r(n.buffer)}))},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),e.exports=t,process.on("uncaughtException",(function(e){if(!(e instanceof Zr))throw e})),process.on("unhandledRejection",ee),t.inspect=function(){return"[Emscripten Module object]"}):(p||h)&&(h?v=self.location.href:"undefined"!=typeof document&&document.currentScript&&(v=document.currentScript.src),v=0!==v.indexOf("blob:")?v.substr(0,v.lastIndexOf("/")+1):"",s=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},h&&(c=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),u=function(e,r,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)});var y,g,w=t.print||console.log.bind(console),E=t.printErr||console.warn.bind(console);for(r in n)n.hasOwnProperty(r)&&(t[r]=n[r]);function b(e){b.shown||(b.shown={}),b.shown[e]||(b.shown[e]=1,E(e))}n=null,t.arguments,t.thisProgram&&(d=t.thisProgram),t.quit,t.wasmBinary&&(y=t.wasmBinary),t.noExitRuntime,"object"!=typeof WebAssembly&&ee("no native wasm support detected");var _=!1;function k(e,r){e||ee("Assertion failed: "+r)}var T="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(e,r,t){for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.subarray&&T)return T.decode(e.subarray(r,o));for(var i="";r>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function C(e,r){return e?P($,e,r):""}function A(e,r,t,n){if(!(n>0))return 0;for(var o=t,i=t+n-1,a=0;a=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a);if(s<=127){if(t>=i)break;r[t++]=s}else if(s<=2047){if(t+1>=i)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(t+2>=i)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(t+3>=i)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o}function D(e,r,t){return A(e,$,r,t)}function S(e){for(var r=0,t=0;t=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++t)),n<=127?++r:r+=n<=2047?2:n<=65535?3:4}return r}var F,x,$,R,M,O,I,j,U,N,B="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function L(e,r){for(var t=e,n=t>>1,o=n+r/2;!(n>=o)&&M[n];)++n;if((t=n<<1)-e>32&&B)return B.decode($.subarray(e,t));for(var i="",a=0;!(a>=r/2);++a){var s=R[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function W(e,r,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,o=(t-=2)<2*e.length?t/2:e.length,i=0;i>1]=a,r+=2}return R[r>>1]=0,r-n}function z(e){return 2*e.length}function H(e,r){for(var t=0,n="";!(t>=r/4);){var o=O[e+4*t>>2];if(0==o)break;if(++t,o>=65536){var i=o-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(o)}return n}function V(e,r,t){if(void 0===t&&(t=2147483647),t<4)return 0;for(var n=r,o=n+t-4,i=0;i=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i);if(O[r>>2]=a,(r+=4)+4>o)break}return O[r>>2]=0,r-n}function X(e){for(var r=0,t=0;t=55296&&n<=57343&&++t,r+=4}return r}t.INITIAL_MEMORY;var G=[],q=[],Y=[];var K=0,J=null;function Q(e){K++,t.monitorRunDependencies&&t.monitorRunDependencies(K)}function Z(e){if(K--,t.monitorRunDependencies&&t.monitorRunDependencies(K),0==K&&J){var r=J;J=null,r()}}function ee(e){throw t.onAbort&&t.onAbort(e),E(e+=""),_=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}t.preloadedImages={},t.preloadedAudios={};var re,te,ne;function oe(e){return e.startsWith("data:application/octet-stream;base64,")}function ie(e){return e.startsWith("file://")}function ae(e){try{if(e==re&&y)return new Uint8Array(y);if(c)return c(e);throw"both async and sync fetching of the wasm failed"}catch(e){ee(e)}}function se(e){for(;e.length>0;){var r=e.shift();if("function"!=typeof r){var n=r.func;"number"==typeof n?void 0===r.arg?N.get(n)():N.get(n)(r.arg):n(void 0===r.arg?null:r.arg)}else r(t)}}function ue(){var e=new Error;if(!e.stack){try{throw new Error}catch(r){e=r}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}oe(re="decoder.wasm")||(re=function(e){return t.locateFile?t.locateFile(e,v):v+e}(re));var ce={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:function(e){var r="/"===e.charAt(0),t="/"===e.substr(-1);return(e=ce.normalizeArray(e.split("/").filter((function(e){return!!e})),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:function(e){var r=ce.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:function(e){if("/"===e)return"/";var r=(e=(e=ce.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===r?e:e.substr(r+1)},extname:function(e){return ce.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return ce.normalize(e.join("/"))},join2:function(e,r){return ce.normalize(e+"/"+r)}};var fe={resolve:function(){for(var e="",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var n=t>=0?arguments[t]:he.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r="/"===n.charAt(0)}return(r?"/":"")+(e=ce.normalizeArray(e.split("/").filter((function(e){return!!e})),!r).join("/"))||"."},relative:function(e,r){function t(e){for(var r=0;r=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=fe.resolve(e).substr(1),r=fe.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s0?t.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;e.input=Hr(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(w(P(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(w(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(E(P(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(E(P(e.output,0)),e.output=[])}}};function de(e){e=function(e,r){return Math.ceil(e/r)*r}(e,65536);var r=Qr(65536,e);return r?(function(e,r){$.fill(0,e,e+r)}(r,e),r):0}var pe={ops_table:null,mount:function(e){return pe.createNode(null,"/",16895,0)},createNode:function(e,r,t,n){if(he.isBlkdev(t)||he.isFIFO(t))throw new he.ErrnoError(63);pe.ops_table||(pe.ops_table={dir:{node:{getattr:pe.node_ops.getattr,setattr:pe.node_ops.setattr,lookup:pe.node_ops.lookup,mknod:pe.node_ops.mknod,rename:pe.node_ops.rename,unlink:pe.node_ops.unlink,rmdir:pe.node_ops.rmdir,readdir:pe.node_ops.readdir,symlink:pe.node_ops.symlink},stream:{llseek:pe.stream_ops.llseek}},file:{node:{getattr:pe.node_ops.getattr,setattr:pe.node_ops.setattr},stream:{llseek:pe.stream_ops.llseek,read:pe.stream_ops.read,write:pe.stream_ops.write,allocate:pe.stream_ops.allocate,mmap:pe.stream_ops.mmap,msync:pe.stream_ops.msync}},link:{node:{getattr:pe.node_ops.getattr,setattr:pe.node_ops.setattr,readlink:pe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:pe.node_ops.getattr,setattr:pe.node_ops.setattr},stream:he.chrdev_stream_ops}});var o=he.createNode(e,r,t,n);return he.isDir(o.mode)?(o.node_ops=pe.ops_table.dir.node,o.stream_ops=pe.ops_table.dir.stream,o.contents={}):he.isFile(o.mode)?(o.node_ops=pe.ops_table.file.node,o.stream_ops=pe.ops_table.file.stream,o.usedBytes=0,o.contents=null):he.isLink(o.mode)?(o.node_ops=pe.ops_table.link.node,o.stream_ops=pe.ops_table.link.stream):he.isChrdev(o.mode)&&(o.node_ops=pe.ops_table.chrdev.node,o.stream_ops=pe.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[r]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var n=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr:function(e){var r={};return r.dev=he.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,he.isDir(e.mode)?r.size=4096:he.isFile(e.mode)?r.size=e.usedBytes:he.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr:function(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&pe.resizeFileStorage(e,r.size)},lookup:function(e,r){throw he.genericErrors[44]},mknod:function(e,r,t,n){return pe.createNode(e,r,t,n)},rename:function(e,r,t){if(he.isDir(e.mode)){var n;try{n=he.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new he.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink:function(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir:function(e,r){var t=he.lookupNode(e,r);for(var n in t.contents)throw new he.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir:function(e){var r=[".",".."];for(var t in e.contents)e.contents.hasOwnProperty(t)&&r.push(t);return r},symlink:function(e,r,t){var n=pe.createNode(e,r,41471,0);return n.link=t,n},readlink:function(e){if(!he.isLink(e.mode))throw new he.ErrnoError(28);return e.link}},stream_ops:{read:function(e,r,t,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(a>8&&i.subarray)r.set(i.subarray(o,o+a),t);else for(var s=0;s0||n+t8)throw new he.ErrnoError(32);for(var o=ce.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=he.root,a="/",s=0;s40)throw new he.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var r;;){if(he.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?t+"/"+r:t+r:t}r=r?e.name+"/"+r:e.name,e=e.parent}},hashName:function(e,r){for(var t=0,n=0;n>>0)%he.nameTable.length},hashAddNode:function(e){var r=he.hashName(e.parent.id,e.name);e.name_next=he.nameTable[r],he.nameTable[r]=e},hashRemoveNode:function(e){var r=he.hashName(e.parent.id,e.name);if(he.nameTable[r]===e)he.nameTable[r]=e.name_next;else for(var t=he.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:function(e,r){var t=he.mayLookup(e);if(t)throw new he.ErrnoError(t,e);for(var n=he.hashName(e.id,r),o=he.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===r)return o}return he.lookup(e,r)},createNode:function(e,r,t,n){var o=new he.FSNode(e,r,t,n);return he.hashAddNode(o),o},destroyNode:function(e){he.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(e){var r=he.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:function(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:function(e,r){return he.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2},mayLookup:function(e){var r=he.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate:function(e,r){try{he.lookupNode(e,r);return 20}catch(e){}return he.nodePermissions(e,"wx")},mayDelete:function(e,r,t){var n;try{n=he.lookupNode(e,r)}catch(e){return e.errno}var o=he.nodePermissions(e,"wx");if(o)return o;if(t){if(!he.isDir(n.mode))return 54;if(he.isRoot(n)||he.getPath(n)===he.cwd())return 10}else if(he.isDir(n.mode))return 31;return 0},mayOpen:function(e,r){return e?he.isLink(e.mode)?32:he.isDir(e.mode)&&("r"!==he.flagsToPermissionString(r)||512&r)?31:he.nodePermissions(e,he.flagsToPermissionString(r)):44},MAX_OPEN_FDS:4096,nextfd:function(e,r){e=e||0,r=r||he.MAX_OPEN_FDS;for(var t=e;t<=r;t++)if(!he.streams[t])return t;throw new he.ErrnoError(33)},getStream:function(e){return he.streams[e]},createStream:function(e,r,t){he.FSStream||(he.FSStream=function(){},he.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new he.FSStream;for(var o in e)n[o]=e[o];e=n;var i=he.nextfd(r,t);return e.fd=i,he.streams[i]=e,e},closeStream:function(e){he.streams[e]=null},chrdev_stream_ops:{open:function(e){var r=he.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new he.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){he.devices[e]={stream_ops:r}},getDevice:function(e){return he.devices[e]},getMounts:function(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs:function(e,r){"function"==typeof e&&(r=e,e=!1),he.syncFSRequests++,he.syncFSRequests>1&&E("warning: "+he.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=he.getMounts(he.root.mount),n=0;function o(e){return he.syncFSRequests--,r(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach((function(r){if(!r.type.syncfs)return i(null);r.type.syncfs(r,e,i)}))},mount:function(e,r,t){var n,o="/"===t,i=!t;if(o&&he.root)throw new he.ErrnoError(10);if(!o&&!i){var a=he.lookupPath(t,{follow_mount:!1});if(t=a.path,n=a.node,he.isMountpoint(n))throw new he.ErrnoError(10);if(!he.isDir(n.mode))throw new he.ErrnoError(54)}var s={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,o?he.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount:function(e){var r=he.lookupPath(e,{follow_mount:!1});if(!he.isMountpoint(r.node))throw new he.ErrnoError(28);var t=r.node,n=t.mounted,o=he.getMounts(n);Object.keys(he.nameTable).forEach((function(e){for(var r=he.nameTable[e];r;){var t=r.name_next;o.includes(r.mount)&&he.destroyNode(r),r=t}})),t.mounted=null;var i=t.mount.mounts.indexOf(n);t.mount.mounts.splice(i,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,t){var n=he.lookupPath(e,{parent:!0}).node,o=ce.basename(e);if(!o||"."===o||".."===o)throw new he.ErrnoError(28);var i=he.mayCreate(n,o);if(i)throw new he.ErrnoError(i);if(!n.node_ops.mknod)throw new he.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},create:function(e,r){return r=void 0!==r?r:438,r&=4095,r|=32768,he.mknod(e,r,0)},mkdir:function(e,r){return r=void 0!==r?r:511,r&=1023,r|=16384,he.mknod(e,r,0)},mkdirTree:function(e,r){for(var t=e.split("/"),n="",o=0;othis.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}},i.prototype.setDataGetter=function(e){this.getter=e},i.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+t+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),o=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,i=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,a=1048576;o||(a=n);var s=this;s.setDataGetter((function(e){var r=e*a,o=(e+1)*a-1;if(o=Math.min(o,n-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,r){if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==a&&o.setRequestHeader("Range","bytes="+e+"-"+r),"undefined"!=typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):Hr(o.responseText||"",!0)}(r,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!i&&n||(a=n=1,n=this.getter(0).length,a=n,w("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!h)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:t};var u=he.createFile(e,r,s,n,o);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(u.stream_ops).forEach((function(e){var r=u.stream_ops[e];c[e]=function(){return he.forceLoadFile(u),r.apply(null,arguments)}})),c.read=function(e,r,t,n,o){he.forceLoadFile(u);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(i.slice)for(var s=0;s>2]=n.dev,O[t+4>>2]=0,O[t+8>>2]=n.ino,O[t+12>>2]=n.mode,O[t+16>>2]=n.nlink,O[t+20>>2]=n.uid,O[t+24>>2]=n.gid,O[t+28>>2]=n.rdev,O[t+32>>2]=0,ne=[n.size>>>0,(te=n.size,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],O[t+40>>2]=ne[0],O[t+44>>2]=ne[1],O[t+48>>2]=4096,O[t+52>>2]=n.blocks,O[t+56>>2]=n.atime.getTime()/1e3|0,O[t+60>>2]=0,O[t+64>>2]=n.mtime.getTime()/1e3|0,O[t+68>>2]=0,O[t+72>>2]=n.ctime.getTime()/1e3|0,O[t+76>>2]=0,ne=[n.ino>>>0,(te=n.ino,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],O[t+80>>2]=ne[0],O[t+84>>2]=ne[1],0},doMsync:function(e,r,t,n,o){var i=$.slice(e,e+t);he.msync(r,i,o,t,n)},doMkdir:function(e,r){return"/"===(e=ce.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),he.mkdir(e,r,0),0},doMknod:function(e,r,t){switch(61440&r){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return he.mknod(e,r,t),0},doReadlink:function(e,r,t){if(t<=0)return-28;var n=he.readlink(e),o=Math.min(t,S(n)),i=x[r+o];return D(n,r,t+1),x[r+o]=i,o},doAccess:function(e,r){if(-8&r)return-28;var t;if(!(t=he.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&r&&(n+="r"),2&r&&(n+="w"),1&r&&(n+="x"),n&&he.nodePermissions(t,n)?-2:0},doDup:function(e,r,t){var n=he.getStream(t);return n&&he.close(n),he.open(e,r,0,t,t).fd},doReadv:function(e,r,t,n){for(var o=0,i=0;i>2],s=O[r+(8*i+4)>>2],u=he.read(e,x,a,s,n);if(u<0)return-1;if(o+=u,u>2],s=O[r+(8*i+4)>>2],u=he.write(e,x,a,s,n);if(u<0)return-1;o+=u}return o},varargs:void 0,get:function(){return me.varargs+=4,O[me.varargs-4>>2]},getStr:function(e){return C(e)},getStreamFromFD:function(e){var r=he.getStream(e);if(!r)throw new he.ErrnoError(8);return r},get64:function(e,r){return e}};function ve(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var ye=void 0;function ge(e){for(var r="",t=e;$[t];)r+=ye[$[t++]];return r}var we={},Ee={},be={};function _e(e){if(void 0===e)return"_unknown";var r=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=48&&r<=57?"_"+e:e}function ke(e,r){return e=_e(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(r)}function Te(e,r){var t=ke(r,(function(e){this.name=r,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},t}var Pe=void 0;function Ce(e){throw new Pe(e)}var Ae=void 0;function De(e){throw new Ae(e)}function Se(e,r,t){function n(r){var n=t(r);n.length!==e.length&&De("Mismatched type converter count");for(var o=0;o>2])}function Ze(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function er(e){this.rawDestructor&&this.rawDestructor(e)}function rr(e){null!==e&&e.delete()}function tr(e,r,t){if(r===t)return e;if(void 0===t.baseClass)return null;var n=tr(e,r,t.baseClass);return null===n?null:t.downcast(n)}function nr(){return Object.keys(ar).length}function or(){var e=[];for(var r in ar)ar.hasOwnProperty(r)&&e.push(ar[r]);return e}function ir(e){Be=e,Le.length&&Be&&Be(We)}var ar={};function sr(e,r){return r=function(e,r){for(void 0===r&&Ce("ptr should not be undefined");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r}(e,r),ar[r]}function ur(e,r){return r.ptrType&&r.ptr||De("makeClassHandle requires ptr and ptrType"),!!r.smartPtrType!==!!r.smartPtr&&De("Both smartPtrType and smartPtr must be specified"),r.count={value:1},Ie(Object.create(e,{$$:{value:r}}))}function cr(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=sr(this.registeredClass,r);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?ur(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):ur(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(r),s=Ve[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var u=tr(r,this.registeredClass,i.registeredClass);return null===u?o.call(this):this.isSmartPointer?ur(i.registeredClass.instancePrototype,{ptrType:i,ptr:u,smartPtrType:this,smartPtr:e}):ur(i.registeredClass.instancePrototype,{ptrType:i,ptr:u})}function fr(e,r,t,n,o,i,a,s,u,c,f){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=u,this.rawShare=c,this.rawDestructor=f,o||void 0!==r.baseClass?this.toWireType=Ke:n?(this.toWireType=Ye,this.destructorFunction=null):(this.toWireType=Je,this.destructorFunction=null)}function lr(e,r,n){return e.includes("j")?function(e,r,n){var o=t["dynCall_"+e];return n&&n.length?o.apply(null,[r].concat(n)):o.call(null,r)}(e,r,n):N.get(r).apply(null,n)}function dr(e,r){var t,n,o,i=(e=ge(e)).includes("j")?(t=e,n=r,o=[],function(){o.length=arguments.length;for(var e=0;e>2)+n]);return t}function yr(e){for(;e.length;){var r=e.pop();e.pop()(r)}}function gr(e,r){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var t=ke(e.name||"unknownFunctionName",(function(){}));t.prototype=e.prototype;var n=new t,o=e.apply(n,r);return o instanceof Object?o:n}function wr(e,r,t,n,o){var i=r.length;i<2&&Ce("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==r[1]&&null!==t,s=!1,u=1;u0?", ":"")+l),d+=(c?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+");\n",s)d+="runDestructors(destructors);\n";else for(u=a?1:2;u4&&0==--_r[e].refcount&&(_r[e]=void 0,br.push(e))}function Tr(){for(var e=0,r=5;r<_r.length;++r)void 0!==_r[r]&&++e;return e}function Pr(){for(var e=5;e<_r.length;++e)if(void 0!==_r[e])return _r[e];return null}function Cr(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var r=br.length?br.pop():_r.length;return _r[r]={refcount:1,value:e},r}}function Ar(e){if(null===e)return"null";var r=typeof e;return"object"===r||"array"===r||"function"===r?e.toString():""+e}function Dr(e,r){switch(r){case 2:return function(e){return this.fromWireType(j[e>>2])};case 3:return function(e){return this.fromWireType(U[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Sr(e,r,t){switch(r){case 0:return t?function(e){return x[e]}:function(e){return $[e]};case 1:return t?function(e){return R[e>>1]}:function(e){return M[e>>1]};case 2:return t?function(e){return O[e>>2]}:function(e){return I[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function Fr(e){return e||Ce("Cannot use deleted val. handle = "+e),_r[e].value}function xr(e,r){var t=Ee[e];return void 0===t&&Ce(r+" has unknown type "+hr(e)),t}var $r={};var Rr=[];function Mr(e,r){return(e>>>0)+4294967296*r}function Or(e,r){if(e<=0)return e;var t=r<=32?Math.abs(1<=t&&(r<=32||e>t)&&(e=-2*t+e),e}function Ir(e,r){return e>=0?e:r<=32?2*Math.abs(1<0?"\n":"")+function(e){var r=ue(),t=r.lastIndexOf("_emscripten_log"),n=r.lastIndexOf("_emscripten_get_callstack"),o=r.indexOf("\n",Math.max(t,n))+1;r=r.slice(o),32&e&&b("EM_LOG_DEMANGLE is deprecated; ignoring"),8&e&&"undefined"==typeof emscripten_source_map&&(b('Source map information is not available, emscripten_log with EM_LOG_C_STACK will be ignored. Build with "--pre-js $EMSCRIPTEN/src/emscripten-source-map.min.js" linker flag to add source map loading to code.'),e^=8,e|=16);var i=null;if(128&e)for(i=jr(arguments);i[1].includes("_emscripten_");)i=jr(i[0]);var a=r.split("\n");r="";var s=new RegExp("\\s*(.*?)@(.*?):([0-9]+):([0-9]+)"),u=new RegExp("\\s*(.*?)@(.*):(.*)(:(.*))?"),c=new RegExp("\\s*at (.*?) \\((.*):(.*):(.*)\\)");for(var f in a){var l=a[f],d="",p="",h=0,m=0,v=c.exec(l);if(v&&5==v.length)d=v[1],p=v[2],h=v[3],m=v[4];else{if((v=s.exec(l))||(v=u.exec(l)),!(v&&v.length>=4)){r+=l+"\n";continue}d=v[1],p=v[2],h=v[3],m=0|v[4]}var y=!1;if(8&e){var g=emscripten_source_map.originalPositionFor({line:h,column:m});(y=g&&g.source)&&(64&e&&(g.source=g.source.substring(g.source.replace(/\\/g,"/").lastIndexOf("/")+1)),r+=" at "+d+" ("+g.source+":"+g.line+":"+g.column+")\n")}(16&e||!y)&&(64&e&&(p=p.substring(p.replace(/\\/g,"/").lastIndexOf("/")+1)),r+=(y?" = "+d:" at "+d)+" ("+p+":"+h+":"+m+")\n"),128&e&&i[0]&&(i[1]==d&&i[2].length>0&&(r=r.replace(/\s+$/,""),r+=" with values: "+i[1]+i[2]+"\n"),i=jr(i[0]))}return r.replace(/\s+$/,"")}(e)),1&e?4&e?E(r):2&e?console.warn(r):512&e?console.info(r):256&e?console.debug(r):w(r):6&e?E(r):w(r)}var Nr={};function Br(){if(!Br.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:d||"./this.program"};for(var r in Nr)void 0===Nr[r]?delete e[r]:e[r]=Nr[r];var t=[];for(var r in e)t.push(r+"="+e[r]);Br.strings=t}return Br.strings}var Lr=function(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=he.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n},Wr=365,zr=146;function Hr(e,r,t){var n=t>0?t:S(e)+1,o=new Array(n),i=A(e,o,0,o.length);return r&&(o.length=i),o}Object.defineProperties(Lr.prototype,{read:{get:function(){return(this.mode&Wr)===Wr},set:function(e){e?this.mode|=Wr:this.mode&=-366}},write:{get:function(){return(this.mode&zr)===zr},set:function(e){e?this.mode|=zr:this.mode&=-147}},isFolder:{get:function(){return he.isDir(this.mode)}},isDevice:{get:function(){return he.isChrdev(this.mode)}}}),he.FSNode=Lr,he.staticInit(),function(){for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);ye=e}(),Pe=t.BindingError=Te(Error,"BindingError"),Ae=t.InternalError=Te(Error,"InternalError"),He.prototype.isAliasOf=xe,He.prototype.clone=je,He.prototype.delete=Ue,He.prototype.isDeleted=Ne,He.prototype.deleteLater=ze,fr.prototype.getPointee=Ze,fr.prototype.destructor=er,fr.prototype.argPackAdvance=8,fr.prototype.readValueFromPointer=Qe,fr.prototype.deleteObject=rr,fr.prototype.fromWireType=cr,t.getInheritedInstanceCount=nr,t.getLiveInheritedInstances=or,t.flushPendingDeletes=We,t.setDelayFunction=ir,pr=t.UnboundTypeError=Te(Error,"UnboundTypeError"),t.count_emval_handles=Tr,t.get_first_emval=Pr;var Vr={y:function(e,r,t){me.varargs=t;try{var n=me.getStreamFromFD(e);switch(r){case 0:return(o=me.get())<0?-28:he.open(n.path,n.flags,0,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=me.get();return n.flags|=o,0;case 12:o=me.get();return R[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return i=28,O[qr()>>2]=i,-1}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||ee(e),-e.errno}var i},x:function(e,r,t){me.varargs=t;try{var n=me.getStr(e),o=t?me.get():0;return he.open(n,r,o).fd}catch(e){return void 0!==he&&e instanceof he.ErrnoError||ee(e),-e.errno}},s:function(e,r,t,n,o){},D:function(e,r,t,n,o){var i=ve(t);Fe(e,{name:r=ge(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?n:o},argPackAdvance:8,readValueFromPointer:function(e){var n;if(1===t)n=x;else if(2===t)n=R;else{if(4!==t)throw new TypeError("Unknown boolean type size: "+r);n=O}return this.fromWireType(n[e>>i])},destructorFunction:null})},n:function(e,r,n,o,i,a,s,u,c,f,l,d,p){l=ge(l),a=dr(i,a),u&&(u=dr(s,u)),f&&(f=dr(c,f)),p=dr(d,p);var h=_e(l);!function(e,r,n){t.hasOwnProperty(e)?((void 0===n||void 0!==t[e].overloadTable&&void 0!==t[e].overloadTable[n])&&Ce("Cannot register public name '"+e+"' twice"),Xe(t,e,e),t.hasOwnProperty(n)&&Ce("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),t[e].overloadTable[n]=r):(t[e]=r,void 0!==n&&(t[e].numArguments=n))}(h,(function(){mr("Cannot construct "+l+" due to unbound types",[o])})),Se([e,r,n],o?[o]:[],(function(r){var n,i;r=r[0],i=o?(n=r.registeredClass).instancePrototype:He.prototype;var s=ke(h,(function(){if(Object.getPrototypeOf(this)!==c)throw new Pe("Use 'new' to construct "+l);if(void 0===d.constructor_body)throw new Pe(l+" has no accessible constructor");var e=d.constructor_body[arguments.length];if(void 0===e)throw new Pe("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(d.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(i,{constructor:{value:s}});s.prototype=c;var d=new Ge(l,s,c,p,n,a,u,f),m=new fr(l,d,!0,!1,!1),v=new fr(l+"*",d,!1,!1,!1),y=new fr(l+" const*",d,!1,!0,!1);return Ve[e]={pointerType:v,constPointerType:y},function(e,r,n){t.hasOwnProperty(e)||De("Replacing nonexistant public symbol"),void 0!==t[e].overloadTable&&void 0!==n?t[e].overloadTable[n]=r:(t[e]=r,t[e].argCount=n)}(h,s),[m,v,y]}))},i:function(e,r,t,n,o,i){k(r>0);var a=vr(r,t);o=dr(n,o),Se([],[e],(function(e){var t="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[r-1])throw new Pe("Cannot register multiple constructors with identical number of parameters ("+(r-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[r-1]=function(){mr("Cannot construct "+e.name+" due to unbound types",a)},Se([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[r-1]=wr(t,n,null,o,i),[]})),[]}))},f:function(e,r,t,n,o,i,a,s){var u=vr(t,n);r=ge(r),i=dr(o,i),Se([],[e],(function(e){var n=(e=e[0]).name+"."+r;function o(){mr("Cannot call "+n+" due to unbound types",u)}r.startsWith("@@")&&(r=Symbol[r.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(r);var c=e.registeredClass.instancePrototype,f=c[r];return void 0===f||void 0===f.overloadTable&&f.className!==e.name&&f.argCount===t-2?(o.argCount=t-2,o.className=e.name,c[r]=o):(Xe(c,r,n),c[r].overloadTable[t-2]=o),Se([],u,(function(o){var s=wr(n,o,e,i,a);return void 0===c[r].overloadTable?(s.argCount=t-2,c[r]=s):c[r].overloadTable[t-2]=s,[]})),[]}))},I:function(e,r,t,n,o,i,a,s,u,c){r=ge(r),o=dr(n,o),Se([],[e],(function(e){var n=(e=e[0]).name+"."+r,f={get:function(){mr("Cannot access "+n+" due to unbound types",[t,a])},enumerable:!0,configurable:!0};return f.set=u?function(){mr("Cannot access "+n+" due to unbound types",[t,a])}:function(e){Ce(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,r,f),Se([],u?[t,a]:[t],(function(t){var a=t[0],f={get:function(){var r=Er(this,e,n+" getter");return a.fromWireType(o(i,r))},enumerable:!0};if(u){u=dr(s,u);var l=t[1];f.set=function(r){var t=Er(this,e,n+" setter"),o=[];u(c,t,l.toWireType(o,r)),yr(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,r,f),[]})),[]}))},C:function(e,r){Fe(e,{name:r=ge(r),fromWireType:function(e){var r=_r[e].value;return kr(e),r},toWireType:function(e,r){return Cr(r)},argPackAdvance:8,readValueFromPointer:Qe,destructorFunction:null})},l:function(e,r,t){var n=ve(t);Fe(e,{name:r=ge(r),fromWireType:function(e){return e},toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+Ar(r)+'" to '+this.name);return r},argPackAdvance:8,readValueFromPointer:Dr(r,n),destructorFunction:null})},c:function(e,r,t,n,o){r=ge(r),-1===o&&(o=4294967295);var i=ve(t),a=function(e){return e};if(0===n){var s=32-8*t;a=function(e){return e<>>s}}var u=r.includes("unsigned");Fe(e,{name:r,fromWireType:a,toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+Ar(t)+'" to '+this.name);if(to)throw new TypeError('Passing a number "'+Ar(t)+'" from JS side to C/C++ side to an argument of type "'+r+'", which is outside the valid range ['+n+", "+o+"]!");return u?t>>>0:0|t},argPackAdvance:8,readValueFromPointer:Sr(r,i,0!==n),destructorFunction:null})},b:function(e,r,t){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function o(e){var r=I,t=r[e>>=2],o=r[e+1];return new n(F,o,t)}Fe(e,{name:t=ge(t),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},m:function(e,r){var t="std::string"===(r=ge(r));Fe(e,{name:r,fromWireType:function(e){var r,n=I[e>>2];if(t)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==$[a]){var s=C(o,a-o);void 0===r?r=s:(r+=String.fromCharCode(0),r+=s),o=a+1}}else{var u=new Array(n);for(i=0;i>2]=o,t&&n)D(r,i+4,o+1);else if(n)for(var a=0;a255&&(Xr(i),Ce("String has UTF-16 code units that do not fit in 8 bits")),$[i+4+a]=s}else for(a=0;a>2],a=i(),u=e+4,c=0;c<=o;++c){var f=e+4+c*r;if(c==o||0==a[f>>s]){var l=n(u,f-u);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),u=f+r}}return Xr(e),t},toWireType:function(e,n){"string"!=typeof n&&Ce("Cannot pass non-string to C++ string type "+t);var i=a(n),u=Gr(4+i+r);return I[u>>2]=i>>s,o(n,u+4,i+r),null!==e&&e.push(Xr,u),u},argPackAdvance:8,readValueFromPointer:Qe,destructorFunction:function(e){Xr(e)}})},E:function(e,r){Fe(e,{isVoid:!0,name:r=ge(r),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,r){}})},v:function(e,r,t){e=Fr(e),r=xr(r,"emval::as");var n=[],o=Cr(n);return O[t>>2]=o,r.toWireType(n,e)},e:function(e,r,t,n){var o,i;(e=Rr[e])(r=Fr(r),t=void 0===(i=$r[o=t])?ge(o):i,null,n)},p:kr,d:function(e,r){for(var t=function(e,r){for(var t=new Array(e),n=0;n>2)+n],"parameter "+n);return t}(e,r),n=t[0],o=n.name+"_$"+t.slice(1).map((function(e){return e.name})).join("_")+"$",i=["retType"],a=[n],s="",u=0;u4&&(_r[e].refcount+=1)},q:function(e){yr(_r[e].value),kr(e)},B:function(e,r){return Cr((e=xr(e,"_emval_take_value")).readValueFromPointer(r))},a:function(){ee()},G:function e(){return void 0===e.start&&(e.start=Date.now()),1e3*(Date.now()-e.start)|0},H:function(e,r,t){var n=function(e,r){var t=e,n=r;function o(e){var r;return n=function(e,r){return"double"!==r&&"i64"!==r||7&e&&(e+=4),e}(n,e),"double"===e?(r=U[n>>3],n+=8):"i64"==e?(r=[O[n>>2],O[n+4>>2]],n+=8):(e="i32",r=O[n>>2],n+=4),r}for(var i,a,s,u,c=[];;){var f=t;if(0===(i=x[t>>0]))break;if(a=x[t+1>>0],37==i){var l=!1,d=!1,p=!1,h=!1,m=!1;e:for(;;){switch(a){case 43:l=!0;break;case 45:d=!0;break;case 35:p=!0;break;case 48:if(h)break e;h=!0;break;case 32:m=!0;break;default:break e}t++,a=x[t+1>>0]}var v=0;if(42==a)v=o("i32"),t++,a=x[t+1>>0];else for(;a>=48&&a<=57;)v=10*v+(a-48),t++,a=x[t+1>>0];var y,g=!1,w=-1;if(46==a){if(w=0,g=!0,t++,42==(a=x[t+1>>0]))w=o("i32"),t++;else for(;;){var E=x[t+1>>0];if(E<48||E>57)break;w=10*w+(E-48),t++}a=x[t+1>>0]}switch(w<0&&(w=6,g=!1),String.fromCharCode(a)){case"h":104==x[t+2>>0]?(t++,y=1):y=2;break;case"l":108==x[t+2>>0]?(t++,y=8):y=4;break;case"L":case"q":case"j":y=8;break;case"z":case"t":case"I":y=4;break;default:y=null}switch(y&&t++,a=x[t+1>>0],String.fromCharCode(a)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var b=100==a||105==a;s=o("i"+8*(y=y||4)),8==y&&(s=117==a?(s[0]>>>0)+4294967296*(s[1]>>>0):Mr(s[0],s[1])),y<=4&&(s=(b?Or:Ir)(s&Math.pow(256,y)-1,8*y));var _=Math.abs(s),k="";if(100==a||105==a)C=Or(s,8*y).toString(10);else if(117==a)C=Ir(s,8*y).toString(10),s=Math.abs(s);else if(111==a)C=(p?"0":"")+_.toString(8);else if(120==a||88==a){if(k=p&&0!=s?"0x":"",s<0){s=-s,C=(_-1).toString(16);for(var T=[],P=0;P=0&&(l?k="+"+k:m&&(k=" "+k)),"-"==C.charAt(0)&&(k="-"+k,C=C.substr(1));k.length+C.lengthS&&S>=-4?(a=(103==a?"f":"F").charCodeAt(0),w-=S+1):(a=(103==a?"e":"E").charCodeAt(0),w--),D=Math.min(w,20)}101==a||69==a?(C=s.toExponential(D),/[eE][-+]\d$/.test(C)&&(C=C.slice(0,-1)+"0"+C.slice(-1))):102!=a&&70!=a||(C=s.toFixed(D),0===s&&((u=s)<0||0===u&&1/u==-1/0)&&(C="-"+C));var F=C.split("e");if(A&&!p)for(;F[0].length>1&&F[0].includes(".")&&("0"==F[0].slice(-1)||"."==F[0].slice(-1));)F[0]=F[0].slice(0,-1);else for(p&&-1==C.indexOf(".")&&(F[0]+=".");w>D++;)F[0]+="0";C=F[0]+(F.length>1?"e"+F[1]:""),69==a&&(C=C.toUpperCase()),s>=0&&(l?C="+"+C:m&&(C=" "+C))}else C=(s<0?"-":"")+"inf",h=!1;for(;C.length>0]);else c=c.concat(Hr("(null)".substr(0,M),!0));if(d)for(;M0;)c.push(32);d||c.push(o("i8"));break;case"n":var I=o("i32*");O[I>>2]=c.length;break;case"%":c.push(i);break;default:for(P=f;P>0])}t+=2}else c.push(i),t+=1}return c}(r,t);Ur(e,P(n,0))},t:function(e){$.length,ee("OOM")},u:function(e,r){var t=0;return Br().forEach((function(n,o){var i=r+t;O[e+4*o>>2]=i,function(e,r,t){for(var n=0;n>0]=e.charCodeAt(n);t||(x[r>>0]=0)}(n,i),t+=n.length+1})),0},w:function(e,r){var t=Br();O[e>>2]=t.length;var n=0;return t.forEach((function(e){n+=e.length+1})),O[r>>2]=n,0},k:function(e){try{var r=me.getStreamFromFD(e);return he.close(r),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||ee(e),e.errno}},z:function(e,r){try{var t=me.getStreamFromFD(e),n=t.tty?2:he.isDir(t.mode)?3:he.isLink(t.mode)?7:4;return x[r>>0]=n,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||ee(e),e.errno}},A:function(e,r,t,n){try{var o=me.getStreamFromFD(e),i=me.doReadv(o,r,t);return O[n>>2]=i,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||ee(e),e.errno}},r:function(e,r,t,n,o){try{var i=me.getStreamFromFD(e),a=4294967296*t+(r>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(he.llseek(i,a,n),ne=[i.position>>>0,(te=i.position,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],O[o>>2]=ne[0],O[o+4>>2]=ne[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||ee(e),e.errno}},j:function(e,r,t,n){try{var o=me.getStreamFromFD(e),i=me.doWritev(o,r,t);return O[n>>2]=i,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||ee(e),e.errno}},F:function(e){var r=Date.now();return O[e>>2]=r/1e3|0,O[e+4>>2]=r%1e3*1e3|0,0},g:function(e){}};!function(){var e={a:Vr};function r(e,r){var n,o,i=e.exports;t.asm=i,g=t.asm.J,n=g.buffer,F=n,t.HEAP8=x=new Int8Array(n),t.HEAP16=R=new Int16Array(n),t.HEAP32=O=new Int32Array(n),t.HEAPU8=$=new Uint8Array(n),t.HEAPU16=M=new Uint16Array(n),t.HEAPU32=I=new Uint32Array(n),t.HEAPF32=j=new Float32Array(n),t.HEAPF64=U=new Float64Array(n),N=t.asm.N,o=t.asm.K,q.unshift(o),Z()}function n(e){r(e.instance)}function o(r){return function(){if(!y&&(p||h)){if("function"==typeof fetch&&!ie(re))return fetch(re,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+re+"'";return e.arrayBuffer()})).catch((function(){return ae(re)}));if(u)return new Promise((function(e,r){u(re,(function(r){e(new Uint8Array(r))}),r)}))}return Promise.resolve().then((function(){return ae(re)}))}().then((function(r){return WebAssembly.instantiate(r,e)})).then((function(e){return e})).then(r,(function(e){E("failed to asynchronously prepare wasm: "+e),ee(e)}))}if(Q(),t.instantiateWasm)try{return t.instantiateWasm(e,r)}catch(e){return E("Module.instantiateWasm callback failed with error: "+e),!1}y||"function"!=typeof WebAssembly.instantiateStreaming||oe(re)||ie(re)||"function"!=typeof fetch?o(n):fetch(re,{credentials:"same-origin"}).then((function(r){return WebAssembly.instantiateStreaming(r,e).then(n,(function(e){return E("wasm streaming compile failed: "+e),E("falling back to ArrayBuffer instantiation"),o(n)}))}))}(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.K).apply(null,arguments)};var Xr=t._free=function(){return(Xr=t._free=t.asm.L).apply(null,arguments)},Gr=t._malloc=function(){return(Gr=t._malloc=t.asm.M).apply(null,arguments)},qr=t.___errno_location=function(){return(qr=t.___errno_location=t.asm.O).apply(null,arguments)},Yr=t._strlen=function(){return(Yr=t._strlen=t.asm.P).apply(null,arguments)},Kr=t.___getTypeName=function(){return(Kr=t.___getTypeName=t.asm.Q).apply(null,arguments)};t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.R).apply(null,arguments)};var Jr,Qr=t._memalign=function(){return(Qr=t._memalign=t.asm.S).apply(null,arguments)};function Zr(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function et(e){function r(){Jr||(Jr=!0,t.calledRun=!0,_||(t.noFSInit||he.init.initialized||he.init(),he.ignorePermissions=!1,se(q),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)e=t.postRun.shift(),Y.unshift(e);var e;se(Y)}()))}K>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)e=t.preRun.shift(),G.unshift(e);var e;se(G)}(),K>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),r()}),1)):r()))}if(t.dynCall_ijiii=function(){return(t.dynCall_ijiii=t.asm.T).apply(null,arguments)},t.dynCall_viiijj=function(){return(t.dynCall_viiijj=t.asm.U).apply(null,arguments)},t.dynCall_jij=function(){return(t.dynCall_jij=t.asm.V).apply(null,arguments)},t.dynCall_jii=function(){return(t.dynCall_jii=t.asm.W).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.X).apply(null,arguments)},t._ff_h264_cabac_tables=83749,J=function e(){Jr||et(),Jr||(J=e)},t.run=et,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();et(),e.exports=t}));const u=1e3,c=!1,f=!0,l=!1,d="initVideo",p="render",h="playAudio",m="print",v="printErr",y="initAudio",g="audioCode",w="videoCode",E=1,b=2,_="init",k="decode",T="audioDecode",P="videoDecode",C="close",A="key",D="delta";(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})(),Date.now||(Date.now=function(){return(new Date).getTime()}),s.print=function(e){postMessage({cmd:m,text:e})},s.printErr=function(e){postMessage({cmd:v,text:e})},s.postRun=function(){var e=[],r=[],t={};"VideoEncoder"in self&&(t={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(e){t.isEmitInfo||(n.opt.debug&&console.log("Jessibuca: [worker] Webcodecs Video Decoder initSize"),postMessage({cmd:d,w:e.codedWidth,h:e.codedHeight}),t.isEmitInfo=!0,t.offscreenCanvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),t.offscreenCanvasCtx=t.offscreenCanvas.getContext("2d")),t.offscreenCanvasCtx.drawImage(e,0,0,e.codedWidth,e.codedHeight);let r=t.offscreenCanvas.transferToImageBitmap();postMessage({cmd:p,buffer:r,delay:n.delay,ts:0},[r]),setTimeout((function(){e.close?e.close():e.destroy()}),100)},error:function(e){console.error(e)}}),decode:function(e,r){const o=e[0]>>4==1;if(t.hasInit){const n=new EncodedVideoChunk({data:e.slice(5),timestamp:r,type:o?A:D});t.decoder.decode(n)}else if(o&&0===e[1]){const r=15&e[0];n.setVideoCodec(r);const o=function(e){let r=e.subarray(1,4),t="avc1.";for(let e=0;e<3;e++){let n=r[e].toString(16);n.length<2&&(n="0"+n),t+=n}return{codec:t,description:e}}(e.slice(5));t.decoder.configure(o),t.hasInit=!0}},reset(){t.hasInit=!1,t.isEmitInfo=!1,t.offscreenCanvas=null,t.offscreenCanvasCtx=null}});var n={opt:{debug:c,forceNoOffscreen:f,useWCS:l,videoBuffer:u},useOffscreen:function(){return!n.opt.forceNoOffscreen&&"undefined"!=typeof OffscreenCanvas},initAudioPlanar:function(e,t){postMessage({cmd:y,sampleRate:t,channels:e});var n=[],o=0;this.playAudioPlanar=function(t,i,a){for(var u=i,c=[],f=0,l=0;l<2;l++){var d=s.HEAPU32[(t>>2)+l]>>2;c[l]=s.HEAPF32.subarray(d,d+u)}if(o){if(!(u>=(i=1024-o)))return o+=u,r[0]=Float32Array.of(...r[0],...c[0]),void(2==e&&(r[1]=Float32Array.of(...r[1],...c[1])));n[0]=Float32Array.of(...r[0],...c[0].subarray(0,i)),2==e&&(n[1]=Float32Array.of(...r[1],...c[1].subarray(0,i))),postMessage({cmd:h,buffer:n,ts:a},n.map((e=>e.buffer))),f=i,u-=i}for(o=u;o>=1024;o-=1024)n[0]=c[0].slice(f,f+=1024),2==e&&(n[1]=c[1].slice(f-1024,f)),postMessage({cmd:h,buffer:n,ts:a},n.map((e=>e.buffer)));o&&(r[0]=c[0].slice(f),2==e&&(r[1]=c[1].slice(f)))}},setVideoCodec:function(e){postMessage({cmd:w,code:e})},setAudioCodec:function(e){postMessage({cmd:g,code:e})},setVideoSize:function(e,r){postMessage({cmd:d,w:e,h:r});var t=e*r,o=t>>2;n.useOffscreen()?(this.offscreenCanvas=new OffscreenCanvas(e,r),this.offscreenCanvasGL=this.offscreenCanvas.getContext("webgl"),this.webglObj=(e=>{var r=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),t=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n"),n=e.createShader(e.VERTEX_SHADER);e.shaderSource(n,r),e.compileShader(n),e.getShaderParameter(n,e.COMPILE_STATUS)||console.log("Vertex shader failed to compile: "+e.getShaderInfoLog(n));var o=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(o,t),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS)||console.log("Fragment shader failed to compile: "+e.getShaderInfoLog(o));var i=e.createProgram();e.attachShader(i,n),e.attachShader(i,o),e.linkProgram(i),e.getProgramParameter(i,e.LINK_STATUS)||console.log("Program failed to compile: "+e.getProgramInfoLog(i)),e.useProgram(i);var a=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,a),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);var s=e.getAttribLocation(i,"vertexPos");e.enableVertexAttribArray(s),e.vertexAttribPointer(s,2,e.FLOAT,!1,0,0);var u=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,u),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.STATIC_DRAW);var c=e.getAttribLocation(i,"texturePos");function f(r,t){var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(e.getUniformLocation(i,r),t),n}e.enableVertexAttribArray(c),e.vertexAttribPointer(c,2,e.FLOAT,!1,0,0);var l=f("ySampler",0),d=f("uSampler",1),p=f("vSampler",2);return{render:function(r,t,n,o,i){e.viewport(0,0,r,t),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,l),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r,t,0,e.LUMINANCE,e.UNSIGNED_BYTE,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,d),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,o),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,p),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,i),e.drawArrays(e.TRIANGLE_STRIP,0,4)},destroy:function(){try{e.deleteProgram(i),e.deleteBuffer(a),e.deleteBuffer(u),e.deleteTexture(l),e.deleteTexture(d),e.deleteBuffer(p)}catch(e){}}}})(this.offscreenCanvasGL),this.draw=function(n,i,a,u){this.webglObj.render(e,r,s.HEAPU8.subarray(i,i+t),s.HEAPU8.subarray(a,a+o),s.HEAPU8.subarray(u,u+o));let c=this.offscreenCanvas.transferToImageBitmap();postMessage({cmd:p,buffer:c,delay:this.delay,ts:n},[c])}):this.draw=function(e,r,n,i){var a=[s.HEAPU8.subarray(r,r+t),s.HEAPU8.subarray(n,n+o),s.HEAPU8.subarray(i,i+o)].map((e=>Uint8Array.from(e)));postMessage({cmd:p,output:a,delay:this.delay,ts:e},a.map((e=>e.buffer)))}},getDelay:function(e){return e?(this.firstTimestamp?e&&(this.delay=Date.now()-this.startTimestamp-(e-this.firstTimestamp)):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.delay):-1},resetDelay:function(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1},init:function(){n.opt.debug&&console.log("Jessibuca: [worker] init");const r=e=>{n.opt.useWCS&&n.useOffscreen()&&e.type===b&&t.decode?t.decode(e.payload,e.ts):e.decoder.decode(e.payload,e.ts)};this.stopId=setInterval((()=>{if(e.length)if(this.dropping){for((t=e.shift()).type===E&&0===t.payload[1]&&r(t);!t.isIFrame&&e.length;)(t=e.shift()).type===E&&0===t.payload[1]&&r(t);t.isIFrame&&(this.dropping=!1,r(t))}else{var t=e[0];if(-1===this.getDelay(t.ts))n.opt.debug&&console.log("Jessibuca: [worker]: common dumex delay is -1"),e.shift(),r(t);else if(this.delay>n.opt.videoBuffer+1e3)this.resetDelay(),this.dropping=!0;else for(;e.length&&(t=e[0],this.getDelay(t.ts)>n.opt.videoBuffer);)e.shift(),r(t)}}),10)},close:function(){n.opt.debug&&console.log("Jessibuca: [worker]: close"),clearInterval(this.stopId),this.stopId=null,o.clear(),i.clear(),t.reset&&t.reset(),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1,this.webglObj&&(this.webglObj.destroy(),this.offscreenCanvas=null,this.offscreenCanvasGL=null,this.offscreenCanvasCtx=null),e=[],r=[],delete this.playAudioPlanar,delete this.draw},pushBuffer:function(r,t){t.type===E?e.push({ts:t.ts,payload:r,decoder:o,type:E}):t.type===b&&e.push({ts:t.ts,payload:r,decoder:i,type:b,isIFrame:t.isIFrame})}},o=new s.AudioDecoder(n),i=new s.VideoDecoder(n);postMessage({cmd:_}),self.onmessage=function(e){var r=e.data;switch(r.cmd){case _:try{n.opt=Object.assign(n.opt,JSON.parse(r.opt))}catch(e){}o.sample_rate=r.sampleRate,n.init();break;case k:n.pushBuffer(r.buffer,r.options);break;case T:o.decode(r.buffer,r.ts);break;case P:i.decode(r.buffer,r.ts);break;case C:n.close()}}}})); +!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,(function(e,r,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(e),a=n(r),i=n(t);var s=function(e,r){return e(r={exports:{}},r.exports),r.exports}((function(e){var r,t=void 0!==t?t:{},n=(t={print:function(e){console.log("Jessibuca: [worker]:",e)},printErr:function(e){console.warn("Jessibuca: [worker]:",e),postMessage({cmd:"wasmError",message:e})}},{});for(r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);var s,u,c,f,l="./this.program";s="object"==typeof window,u="function"==typeof importScripts,c="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,f=!s&&!c&&!u;var d,p,h,m,v,g="";c?(g=u?o.default.dirname(g)+"/":__dirname+"/",d=function(e,r){return m||(m=a.default),v||(v=o.default),e=v.normalize(e),m.readFileSync(e,r?null:"utf8")},h=function(e){var r=d(e,!0);return r.buffer||(r=new Uint8Array(r)),T(r.buffer),r},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),e.exports=t,process.on("uncaughtException",(function(e){if(!(e instanceof et))throw e})),process.on("unhandledRejection",te),t.inspect=function(){return"[Emscripten Module object]"}):f?("undefined"!=typeof read&&(d=function(e){return read(e)}),h=function(e){var r;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(T("object"==typeof(r=read(e,"binary"))),r)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(s||u)&&(u?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",d=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},u&&(h=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),p=function(e,r,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)});var y=t.print||console.log.bind(console),w=t.printErr||console.warn.bind(console);for(r in n)n.hasOwnProperty(r)&&(t[r]=n[r]);n=null,t.arguments,t.thisProgram&&(l=t.thisProgram),t.quit;var E,b;function _(e){_.shown||(_.shown={}),_.shown[e]||(_.shown[e]=1,w(e))}t.wasmBinary&&(E=t.wasmBinary),t.noExitRuntime,"object"!=typeof WebAssembly&&te("no native wasm support detected");var k=!1;function T(e,r){e||te("Assertion failed: "+r)}var P="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function C(e,r,t){for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.subarray&&P)return P.decode(e.subarray(r,o));for(var a="";r>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a}function A(e,r){return e?C(R,e,r):""}function D(e,r,t,n){if(!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++i);if(s<=127){if(t>=a)break;r[t++]=s}else if(s<=2047){if(t+1>=a)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(t+3>=a)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o}function S(e,r,t){return D(e,R,r,t)}function F(e){for(var r=0,t=0;t=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++t)),n<=127?++r:r+=n<=2047?2:n<=65535?3:4}return r}var x,$,R,M,O,I,j,U,N,B,W="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function L(e,r){for(var t=e,n=t>>1,o=n+r/2;!(n>=o)&&O[n];)++n;if((t=n<<1)-e>32&&W)return W.decode(R.subarray(e,t));for(var a="",i=0;!(i>=r/2);++i){var s=M[e+2*i>>1];if(0==s)break;a+=String.fromCharCode(s)}return a}function z(e,r,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,o=(t-=2)<2*e.length?t/2:e.length,a=0;a>1]=i,r+=2}return M[r>>1]=0,r-n}function H(e){return 2*e.length}function V(e,r){for(var t=0,n="";!(t>=r/4);){var o=I[e+4*t>>2];if(0==o)break;if(++t,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n}function X(e,r,t){if(void 0===t&&(t=2147483647),t<4)return 0;for(var n=r,o=n+t-4,a=0;a=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++a);if(I[r>>2]=i,(r+=4)+4>o)break}return I[r>>2]=0,r-n}function G(e){for(var r=0,t=0;t=55296&&n<=57343&&++t,r+=4}return r}t.INITIAL_MEMORY;var q=[],J=[],Y=[],K=[];var Q=0,Z=null;function ee(e){Q++,t.monitorRunDependencies&&t.monitorRunDependencies(Q)}function re(e){if(Q--,t.monitorRunDependencies&&t.monitorRunDependencies(Q),0==Q&&Z){var r=Z;Z=null,r()}}function te(e){throw t.onAbort&&t.onAbort(e),w(e+=""),k=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function ne(e,r){return String.prototype.startsWith?e.startsWith(r):0===e.indexOf(r)}t.preloadedImages={},t.preloadedAudios={};function oe(e){return ne(e,"data:application/octet-stream;base64,")}function ae(e){return ne(e,"file://")}var ie,se,ue="decoder.wasm";function ce(e){try{if(e==ue&&E)return new Uint8Array(E);if(h)return h(e);throw"both async and sync fetching of the wasm failed"}catch(e){te(e)}}function fe(e){for(;e.length>0;){var r=e.shift();if("function"!=typeof r){var n=r.func;"number"==typeof n?void 0===r.arg?B.get(n)():B.get(n)(r.arg):n(void 0===r.arg?null:r.arg)}else r(t)}}function le(){var e=new Error;if(!e.stack){try{throw new Error}catch(r){e=r}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}oe(ue)||(ue=function(e){return t.locateFile?t.locateFile(e,g):g+e}(ue));var de={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:function(e){var r="/"===e.charAt(0),t="/"===e.substr(-1);return(e=de.normalizeArray(e.split("/").filter((function(e){return!!e})),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:function(e){var r=de.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:function(e){if("/"===e)return"/";var r=(e=(e=de.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===r?e:e.substr(r+1)},extname:function(e){return de.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return de.normalize(e.join("/"))},join2:function(e,r){return de.normalize(e+"/"+r)}};var pe={resolve:function(){for(var e="",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var n=t>=0?arguments[t]:ge.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r="/"===n.charAt(0)}return(r?"/":"")+(e=de.normalizeArray(e.split("/").filter((function(e){return!!e})),!r).join("/"))||"."},relative:function(e,r){function t(e){for(var r=0;r=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=pe.resolve(e).substr(1),r=pe.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s0?t.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;e.input=Xr(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(y(C(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(y(C(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(w(C(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(w(C(e.output,0)),e.output=[])}}};function me(e){for(var r=function(e,r){return r||(r=16),Math.ceil(e/r)*r}(e,16384),t=Yr(r);e=r)){r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var n=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr:function(e){var r={};return r.dev=ge.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,ge.isDir(e.mode)?r.size=4096:ge.isFile(e.mode)?r.size=e.usedBytes:ge.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr:function(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&ve.resizeFileStorage(e,r.size)},lookup:function(e,r){throw ge.genericErrors[44]},mknod:function(e,r,t,n){return ve.createNode(e,r,t,n)},rename:function(e,r,t){if(ge.isDir(e.mode)){var n;try{n=ge.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new ge.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink:function(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir:function(e,r){var t=ge.lookupNode(e,r);for(var n in t.contents)throw new ge.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir:function(e){var r=[".",".."];for(var t in e.contents)e.contents.hasOwnProperty(t)&&r.push(t);return r},symlink:function(e,r,t){var n=ve.createNode(e,r,41471,0);return n.link=t,n},readlink:function(e){if(!ge.isLink(e.mode))throw new ge.ErrnoError(28);return e.link}},stream_ops:{read:function(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-o,n);if(i>8&&a.subarray)r.set(a.subarray(o,o+i),t);else for(var s=0;s0||n+t8)throw new ge.ErrnoError(32);for(var o=de.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),a=ge.root,i="/",s=0;s40)throw new ge.ErrnoError(32)}}return{path:i,node:a}},getPath:function(e){for(var r;;){if(ge.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?t+"/"+r:t+r:t}r=r?e.name+"/"+r:e.name,e=e.parent}},hashName:function(e,r){for(var t=0,n=0;n>>0)%ge.nameTable.length},hashAddNode:function(e){var r=ge.hashName(e.parent.id,e.name);e.name_next=ge.nameTable[r],ge.nameTable[r]=e},hashRemoveNode:function(e){var r=ge.hashName(e.parent.id,e.name);if(ge.nameTable[r]===e)ge.nameTable[r]=e.name_next;else for(var t=ge.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:function(e,r){var t=ge.mayLookup(e);if(t)throw new ge.ErrnoError(t,e);for(var n=ge.hashName(e.id,r),o=ge.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===r)return o}return ge.lookup(e,r)},createNode:function(e,r,t,n){var o=new ge.FSNode(e,r,t,n);return ge.hashAddNode(o),o},destroyNode:function(e){ge.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(e){var r=ge.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:function(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:function(e,r){return ge.ignorePermissions||(-1===r.indexOf("r")||292&e.mode)&&(-1===r.indexOf("w")||146&e.mode)&&(-1===r.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var r=ge.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate:function(e,r){try{ge.lookupNode(e,r);return 20}catch(e){}return ge.nodePermissions(e,"wx")},mayDelete:function(e,r,t){var n;try{n=ge.lookupNode(e,r)}catch(e){return e.errno}var o=ge.nodePermissions(e,"wx");if(o)return o;if(t){if(!ge.isDir(n.mode))return 54;if(ge.isRoot(n)||ge.getPath(n)===ge.cwd())return 10}else if(ge.isDir(n.mode))return 31;return 0},mayOpen:function(e,r){return e?ge.isLink(e.mode)?32:ge.isDir(e.mode)&&("r"!==ge.flagsToPermissionString(r)||512&r)?31:ge.nodePermissions(e,ge.flagsToPermissionString(r)):44},MAX_OPEN_FDS:4096,nextfd:function(e,r){e=e||0,r=r||ge.MAX_OPEN_FDS;for(var t=e;t<=r;t++)if(!ge.streams[t])return t;throw new ge.ErrnoError(33)},getStream:function(e){return ge.streams[e]},createStream:function(e,r,t){ge.FSStream||(ge.FSStream=function(){},ge.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new ge.FSStream;for(var o in e)n[o]=e[o];e=n;var a=ge.nextfd(r,t);return e.fd=a,ge.streams[a]=e,e},closeStream:function(e){ge.streams[e]=null},chrdev_stream_ops:{open:function(e){var r=ge.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new ge.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){ge.devices[e]={stream_ops:r}},getDevice:function(e){return ge.devices[e]},getMounts:function(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs:function(e,r){"function"==typeof e&&(r=e,e=!1),ge.syncFSRequests++,ge.syncFSRequests>1&&w("warning: "+ge.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=ge.getMounts(ge.root.mount),n=0;function o(e){return ge.syncFSRequests--,r(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach((function(r){if(!r.type.syncfs)return a(null);r.type.syncfs(r,e,a)}))},mount:function(e,r,t){var n,o="/"===t,a=!t;if(o&&ge.root)throw new ge.ErrnoError(10);if(!o&&!a){var i=ge.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,ge.isMountpoint(n))throw new ge.ErrnoError(10);if(!ge.isDir(n.mode))throw new ge.ErrnoError(54)}var s={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,o?ge.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount:function(e){var r=ge.lookupPath(e,{follow_mount:!1});if(!ge.isMountpoint(r.node))throw new ge.ErrnoError(28);var t=r.node,n=t.mounted,o=ge.getMounts(n);Object.keys(ge.nameTable).forEach((function(e){for(var r=ge.nameTable[e];r;){var t=r.name_next;-1!==o.indexOf(r.mount)&&ge.destroyNode(r),r=t}})),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,t){var n=ge.lookupPath(e,{parent:!0}).node,o=de.basename(e);if(!o||"."===o||".."===o)throw new ge.ErrnoError(28);var a=ge.mayCreate(n,o);if(a)throw new ge.ErrnoError(a);if(!n.node_ops.mknod)throw new ge.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},create:function(e,r){return r=void 0!==r?r:438,r&=4095,r|=32768,ge.mknod(e,r,0)},mkdir:function(e,r){return r=void 0!==r?r:511,r&=1023,r|=16384,ge.mknod(e,r,0)},mkdirTree:function(e,r){for(var t=e.split("/"),n="",o=0;othis.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+t+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),o=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,a=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,i=1048576;o||(i=n);var s=this;s.setDataGetter((function(e){var r=e*i,o=(e+1)*i-1;if(o=Math.min(o,n-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,r){if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==i&&o.setRequestHeader("Range","bytes="+e+"-"+r),"undefined"!=typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):Xr(o.responseText||"",!0)}(r,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!a&&n||(i=n=1,n=this.getter(0).length,i=n,y("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new a;Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:i}}else s={isDevice:!1,url:t};var c=ge.createFile(e,r,s,n,o);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var f={};return Object.keys(c.stream_ops).forEach((function(e){var r=c.stream_ops[e];f[e]=function(){return ge.forceLoadFile(c),r.apply(null,arguments)}})),f.read=function(e,r,t,n,o){ge.forceLoadFile(c);var a=e.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s>2]=n.dev,I[t+4>>2]=0,I[t+8>>2]=n.ino,I[t+12>>2]=n.mode,I[t+16>>2]=n.nlink,I[t+20>>2]=n.uid,I[t+24>>2]=n.gid,I[t+28>>2]=n.rdev,I[t+32>>2]=0,se=[n.size>>>0,(ie=n.size,+Math.abs(ie)>=1?ie>0?(0|Math.min(+Math.floor(ie/4294967296),4294967295))>>>0:~~+Math.ceil((ie-+(~~ie>>>0))/4294967296)>>>0:0)],I[t+40>>2]=se[0],I[t+44>>2]=se[1],I[t+48>>2]=4096,I[t+52>>2]=n.blocks,I[t+56>>2]=n.atime.getTime()/1e3|0,I[t+60>>2]=0,I[t+64>>2]=n.mtime.getTime()/1e3|0,I[t+68>>2]=0,I[t+72>>2]=n.ctime.getTime()/1e3|0,I[t+76>>2]=0,se=[n.ino>>>0,(ie=n.ino,+Math.abs(ie)>=1?ie>0?(0|Math.min(+Math.floor(ie/4294967296),4294967295))>>>0:~~+Math.ceil((ie-+(~~ie>>>0))/4294967296)>>>0:0)],I[t+80>>2]=se[0],I[t+84>>2]=se[1],0},doMsync:function(e,r,t,n,o){var a=R.slice(e,e+t);ge.msync(r,a,o,t,n)},doMkdir:function(e,r){return"/"===(e=de.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),ge.mkdir(e,r,0),0},doMknod:function(e,r,t){switch(61440&r){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return ge.mknod(e,r,t),0},doReadlink:function(e,r,t){if(t<=0)return-28;var n=ge.readlink(e),o=Math.min(t,F(n)),a=$[r+o];return S(n,r,t+1),$[r+o]=a,o},doAccess:function(e,r){if(-8&r)return-28;var t;if(!(t=ge.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&r&&(n+="r"),2&r&&(n+="w"),1&r&&(n+="x"),n&&ge.nodePermissions(t,n)?-2:0},doDup:function(e,r,t){var n=ge.getStream(t);return n&&ge.close(n),ge.open(e,r,0,t,t).fd},doReadv:function(e,r,t,n){for(var o=0,a=0;a>2],s=I[r+(8*a+4)>>2],u=ge.read(e,$,i,s,n);if(u<0)return-1;if(o+=u,u>2],s=I[r+(8*a+4)>>2],u=ge.write(e,$,i,s,n);if(u<0)return-1;o+=u}return o},varargs:void 0,get:function(){return ye.varargs+=4,I[ye.varargs-4>>2]},getStr:function(e){return A(e)},getStreamFromFD:function(e){var r=ge.getStream(e);if(!r)throw new ge.ErrnoError(8);return r},get64:function(e,r){return e}};function we(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var Ee=void 0;function be(e){for(var r="",t=e;R[t];)r+=Ee[R[t++]];return r}var _e={},ke={},Te={};function Pe(e){if(void 0===e)return"_unknown";var r=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=48&&r<=57?"_"+e:e}function Ce(e,r){return e=Pe(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(r)}function Ae(e,r){var t=Ce(r,(function(e){this.name=r,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},t}var De=void 0;function Se(e){throw new De(e)}var Fe=void 0;function xe(e){throw new Fe(e)}function $e(e,r,t){function n(r){var n=t(r);n.length!==e.length&&xe("Mismatched type converter count");for(var o=0;o>2])}function tr(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function nr(e){this.rawDestructor&&this.rawDestructor(e)}function or(e){null!==e&&e.delete()}function ar(e,r,t){if(r===t)return e;if(void 0===t.baseClass)return null;var n=ar(e,r,t.baseClass);return null===n?null:t.downcast(n)}function ir(){return Object.keys(cr).length}function sr(){var e=[];for(var r in cr)cr.hasOwnProperty(r)&&e.push(cr[r]);return e}function ur(e){ze=e,He.length&&ze&&ze(Ve)}var cr={};function fr(e,r){return r=function(e,r){for(void 0===r&&Se("ptr should not be undefined");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r}(e,r),cr[r]}function lr(e,r){return r.ptrType&&r.ptr||xe("makeClassHandle requires ptr and ptrType"),!!r.smartPtrType!==!!r.smartPtr&&xe("Both smartPtrType and smartPtr must be specified"),r.count={value:1},Ne(Object.create(e,{$$:{value:r}}))}function dr(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=fr(this.registeredClass,r);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?lr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):lr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a,i=this.registeredClass.getActualType(r),s=qe[i];if(!s)return o.call(this);a=this.isConst?s.constPointerType:s.pointerType;var u=ar(r,this.registeredClass,a.registeredClass);return null===u?o.call(this):this.isSmartPointer?lr(a.registeredClass.instancePrototype,{ptrType:a,ptr:u,smartPtrType:this,smartPtr:e}):lr(a.registeredClass.instancePrototype,{ptrType:a,ptr:u})}function pr(e,r,t,n,o,a,i,s,u,c,f){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=i,this.rawGetPointee=s,this.rawConstructor=u,this.rawShare=c,this.rawDestructor=f,o||void 0!==r.baseClass?this.toWireType=Ze:n?(this.toWireType=Qe,this.destructorFunction=null):(this.toWireType=er,this.destructorFunction=null)}function hr(e,r,n){return-1!=e.indexOf("j")?function(e,r,n){var o=t["dynCall_"+e];return n&&n.length?o.apply(null,[r].concat(n)):o.call(null,r)}(e,r,n):B.get(r).apply(null,n)}function mr(e,r){var t,n,o,a=-1!=(e=be(e)).indexOf("j")?(t=e,n=r,o=[],function(){o.length=arguments.length;for(var e=0;e>2)+n]);return t}function Er(e){for(;e.length;){var r=e.pop();e.pop()(r)}}function br(e,r){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var t=Ce(e.name||"unknownFunctionName",(function(){}));t.prototype=e.prototype;var n=new t,o=e.apply(n,r);return o instanceof Object?o:n}function _r(e,r,t){return e instanceof Object||Se(t+' with invalid "this": '+e),e instanceof r.registeredClass.constructor||Se(t+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||Se("cannot call emscripten binding method "+t+" on deleted object"),Ke(e.$$.ptr,e.$$.ptrType.registeredClass,r.registeredClass)}var kr=[],Tr=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Pr(e){e>4&&0==--Tr[e].refcount&&(Tr[e]=void 0,kr.push(e))}function Cr(){for(var e=0,r=5;r>2])};case 3:return function(e){return this.fromWireType(N[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function xr(e,r,t){switch(r){case 0:return t?function(e){return $[e]}:function(e){return R[e]};case 1:return t?function(e){return M[e>>1]}:function(e){return O[e>>1]};case 2:return t?function(e){return I[e>>2]}:function(e){return j[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function $r(e){return e||Se("Cannot use deleted val. handle = "+e),Tr[e].value}function Rr(e,r){var t=ke[e];return void 0===t&&Se(r+" has unknown type "+gr(e)),t}var Mr={};var Or=[];function Ir(e,r){return(e>>>0)+4294967296*r}function jr(e,r){if(e<=0)return e;var t=r<=32?Math.abs(1<=t&&(r<=32||e>t)&&(e=-2*t+e),e}function Ur(e,r){return e>=0?e:r<=32?2*Math.abs(1<0?"\n":"")+function(e){var r=le(),t=r.lastIndexOf("_emscripten_log"),n=r.lastIndexOf("_emscripten_get_callstack"),o=r.indexOf("\n",Math.max(t,n))+1;r=r.slice(o),32&e&&_("EM_LOG_DEMANGLE is deprecated; ignoring"),8&e&&"undefined"==typeof emscripten_source_map&&(_('Source map information is not available, emscripten_log with EM_LOG_C_STACK will be ignored. Build with "--pre-js $EMSCRIPTEN/src/emscripten-source-map.min.js" linker flag to add source map loading to code.'),e^=8,e|=16);var a=null;if(128&e)for(a=Nr(arguments);a[1].indexOf("_emscripten_")>=0;)a=Nr(a[0]);var i=r.split("\n");r="";var s=new RegExp("\\s*(.*?)@(.*?):([0-9]+):([0-9]+)"),u=new RegExp("\\s*(.*?)@(.*):(.*)(:(.*))?"),c=new RegExp("\\s*at (.*?) \\((.*):(.*):(.*)\\)");for(var f in i){var l=i[f],d="",p="",h=0,m=0,v=c.exec(l);if(v&&5==v.length)d=v[1],p=v[2],h=v[3],m=v[4];else{if((v=s.exec(l))||(v=u.exec(l)),!(v&&v.length>=4)){r+=l+"\n";continue}d=v[1],p=v[2],h=v[3],m=0|v[4]}var g=!1;if(8&e){var y=emscripten_source_map.originalPositionFor({line:h,column:m});(g=y&&y.source)&&(64&e&&(y.source=y.source.substring(y.source.replace(/\\/g,"/").lastIndexOf("/")+1)),r+=" at "+d+" ("+y.source+":"+y.line+":"+y.column+")\n")}(16&e||!g)&&(64&e&&(p=p.substring(p.replace(/\\/g,"/").lastIndexOf("/")+1)),r+=(g?" = "+d:" at "+d)+" ("+p+":"+h+":"+m+")\n"),128&e&&a[0]&&(a[1]==d&&a[2].length>0&&(r=r.replace(/\s+$/,""),r+=" with values: "+a[1]+a[2]+"\n"),a=Nr(a[0]))}return r.replace(/\s+$/,"")}(e)),1&e?4&e?console.error(r):2&e?console.warn(r):512&e?console.info(r):256&e?console.debug(r):console.log(r):6&e?w(r):y(r)}var Wr={};function Lr(){if(!Lr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var r in Wr)e[r]=Wr[r];var t=[];for(var r in e)t.push(r+"="+e[r]);Lr.strings=t}return Lr.strings}var zr=function(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ge.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n},Hr=365,Vr=146;function Xr(e,r,t){var n=t>0?t:F(e)+1,o=new Array(n),a=D(e,o,0,o.length);return r&&(o.length=a),o}Object.defineProperties(zr.prototype,{read:{get:function(){return(this.mode&Hr)===Hr},set:function(e){e?this.mode|=Hr:this.mode&=-366}},write:{get:function(){return(this.mode&Vr)===Vr},set:function(e){e?this.mode|=Vr:this.mode&=-147}},isFolder:{get:function(){return ge.isDir(this.mode)}},isDevice:{get:function(){return ge.isChrdev(this.mode)}}}),ge.FSNode=zr,ge.staticInit(),function(){for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);Ee=e}(),De=t.BindingError=Ae(Error,"BindingError"),Fe=t.InternalError=Ae(Error,"InternalError"),Ge.prototype.isAliasOf=Me,Ge.prototype.clone=Be,Ge.prototype.delete=We,Ge.prototype.isDeleted=Le,Ge.prototype.deleteLater=Xe,pr.prototype.getPointee=tr,pr.prototype.destructor=nr,pr.prototype.argPackAdvance=8,pr.prototype.readValueFromPointer=rr,pr.prototype.deleteObject=or,pr.prototype.fromWireType=dr,t.getInheritedInstanceCount=ir,t.getLiveInheritedInstances=sr,t.flushPendingDeletes=Ve,t.setDelayFunction=ur,vr=t.UnboundTypeError=Ae(Error,"UnboundTypeError"),t.count_emval_handles=Cr,t.get_first_emval=Ar;var Gr={x:function(e,r,t){ye.varargs=t;try{var n=ye.getStreamFromFD(e);switch(r){case 0:return(o=ye.get())<0?-28:ge.open(n.path,n.flags,0,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=ye.get();return n.flags|=o,0;case 12:o=ye.get();return M[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return a=28,I[Kr()>>2]=a,-1}}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),-e.errno}var a},w:function(e,r,t){ye.varargs=t;try{var n=ye.getStr(e),o=t?ye.get():0;return ge.open(n,r,o).fd}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),-e.errno}},C:function(e,r,t,n,o){var a=we(t);Re(e,{name:r=be(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?n:o},argPackAdvance:8,readValueFromPointer:function(e){var n;if(1===t)n=$;else if(2===t)n=M;else{if(4!==t)throw new TypeError("Unknown boolean type size: "+r);n=I}return this.fromWireType(n[e>>a])},destructorFunction:null})},n:function(e,r,n,o,a,i,s,u,c,f,l,d,p){l=be(l),i=mr(a,i),u&&(u=mr(s,u)),f&&(f=mr(c,f)),p=mr(d,p);var h=Pe(l);!function(e,r,n){t.hasOwnProperty(e)?((void 0===n||void 0!==t[e].overloadTable&&void 0!==t[e].overloadTable[n])&&Se("Cannot register public name '"+e+"' twice"),Je(t,e,e),t.hasOwnProperty(n)&&Se("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),t[e].overloadTable[n]=r):(t[e]=r,void 0!==n&&(t[e].numArguments=n))}(h,(function(){yr("Cannot construct "+l+" due to unbound types",[o])})),$e([e,r,n],o?[o]:[],(function(r){var n,a;r=r[0],a=o?(n=r.registeredClass).instancePrototype:Ge.prototype;var s=Ce(h,(function(){if(Object.getPrototypeOf(this)!==c)throw new De("Use 'new' to construct "+l);if(void 0===d.constructor_body)throw new De(l+" has no accessible constructor");var e=d.constructor_body[arguments.length];if(void 0===e)throw new De("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(d.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(a,{constructor:{value:s}});s.prototype=c;var d=new Ye(l,s,c,p,n,i,u,f),m=new pr(l,d,!0,!1,!1),v=new pr(l+"*",d,!1,!1,!1),g=new pr(l+" const*",d,!1,!0,!1);return qe[e]={pointerType:v,constPointerType:g},function(e,r,n){t.hasOwnProperty(e)||xe("Replacing nonexistant public symbol"),void 0!==t[e].overloadTable&&void 0!==n?t[e].overloadTable[n]=r:(t[e]=r,t[e].argCount=n)}(h,s),[m,v,g]}))},i:function(e,r,t,n,o,a){T(r>0);var i=wr(r,t);o=mr(n,o);var s=[a],u=[];$e([],[e],(function(e){var t="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[r-1])throw new De("Cannot register multiple constructors with identical number of parameters ("+(r-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[r-1]=function(){yr("Cannot construct "+e.name+" due to unbound types",i)},$e([],i,(function(n){return e.registeredClass.constructor_body[r-1]=function(){arguments.length!==r-1&&Se(t+" called with "+arguments.length+" arguments, expected "+(r-1)),u.length=0,s.length=r;for(var e=1;e0?", ":"")+l),d+=(c?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+");\n",s)d+="runDestructors(destructors);\n";else for(u=i?1:2;u>>s}}var u=-1!=r.indexOf("unsigned");Re(e,{name:r,fromWireType:i,toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+Sr(t)+'" to '+this.name);if(to)throw new TypeError('Passing a number "'+Sr(t)+'" from JS side to C/C++ side to an argument of type "'+r+'", which is outside the valid range ['+n+", "+o+"]!");return u?t>>>0:0|t},argPackAdvance:8,readValueFromPointer:xr(r,a,0!==n),destructorFunction:null})},b:function(e,r,t){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function o(e){var r=j,t=r[e>>=2],o=r[e+1];return new n(x,o,t)}Re(e,{name:t=be(t),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},m:function(e,r){var t="std::string"===(r=be(r));Re(e,{name:r,fromWireType:function(e){var r,n=j[e>>2];if(t)for(var o=e+4,a=0;a<=n;++a){var i=e+4+a;if(a==n||0==R[i]){var s=A(o,i-o);void 0===r?r=s:(r+=String.fromCharCode(0),r+=s),o=i+1}}else{var u=new Array(n);for(a=0;a>2]=o,t&&n)S(r,a+4,o+1);else if(n)for(var i=0;i255&&(Jr(a),Se("String has UTF-16 code units that do not fit in 8 bits")),R[a+4+i]=s}else for(i=0;i>2],i=a(),u=e+4,c=0;c<=o;++c){var f=e+4+c*r;if(c==o||0==i[f>>s]){var l=n(u,f-u);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),u=f+r}}return Jr(e),t},toWireType:function(e,n){"string"!=typeof n&&Se("Cannot pass non-string to C++ string type "+t);var a=i(n),u=Yr(4+a+r);return j[u>>2]=a>>s,o(n,u+4,a+r),null!==e&&e.push(Jr,u),u},argPackAdvance:8,readValueFromPointer:rr,destructorFunction:function(e){Jr(e)}})},D:function(e,r){Re(e,{isVoid:!0,name:r=be(r),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,r){}})},u:function(e,r,t){e=$r(e),r=Rr(r,"emval::as");var n=[],o=Dr(n);return I[t>>2]=o,r.toWireType(n,e)},e:function(e,r,t,n){var o,a;(e=Or[e])(r=$r(r),t=void 0===(a=Mr[o=t])?be(o):a,null,n)},p:Pr,d:function(e,r){for(var t=function(e,r){for(var t=new Array(e),n=0;n>2)+n],"parameter "+n);return t}(e,r),n=t[0],o=n.name+"_$"+t.slice(1).map((function(e){return e.name})).join("_")+"$",a=["retType"],i=[n],s="",u=0;u4&&(Tr[e].refcount+=1)},q:function(e){Er(Tr[e].value),Pr(e)},A:function(e,r){return Dr((e=Rr(e,"_emval_take_value")).readValueFromPointer(r))},a:function(){te()},F:function e(){return void 0===e.start&&(e.start=Date.now()),1e3*(Date.now()-e.start)|0},G:function(e,r,t){var n=function(e,r){var t=e,n=r;function o(e){var r;return n=function(e,r){return"double"!==r&&"i64"!==r||7&e&&(e+=4),e}(n,e),"double"===e?(r=N[n>>3],n+=8):"i64"==e?(r=[I[n>>2],I[n+4>>2]],n+=8):(e="i32",r=I[n>>2],n+=4),r}for(var a,i,s,u,c=[];;){var f=t;if(0===(a=$[t>>0]))break;if(i=$[t+1>>0],37==a){var l=!1,d=!1,p=!1,h=!1,m=!1;e:for(;;){switch(i){case 43:l=!0;break;case 45:d=!0;break;case 35:p=!0;break;case 48:if(h)break e;h=!0;break;case 32:m=!0;break;default:break e}t++,i=$[t+1>>0]}var v=0;if(42==i)v=o("i32"),t++,i=$[t+1>>0];else for(;i>=48&&i<=57;)v=10*v+(i-48),t++,i=$[t+1>>0];var g,y=!1,w=-1;if(46==i){if(w=0,y=!0,t++,42==(i=$[t+1>>0]))w=o("i32"),t++;else for(;;){var E=$[t+1>>0];if(E<48||E>57)break;w=10*w+(E-48),t++}i=$[t+1>>0]}switch(w<0&&(w=6,y=!1),String.fromCharCode(i)){case"h":104==$[t+2>>0]?(t++,g=1):g=2;break;case"l":108==$[t+2>>0]?(t++,g=8):g=4;break;case"L":case"q":case"j":g=8;break;case"z":case"t":case"I":g=4;break;default:g=null}switch(g&&t++,i=$[t+1>>0],String.fromCharCode(i)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var b=100==i||105==i;s=o("i"+8*(g=g||4)),8==g&&(s=117==i?(s[0]>>>0)+4294967296*(s[1]>>>0):Ir(s[0],s[1])),g<=4&&(s=(b?jr:Ur)(s&Math.pow(256,g)-1,8*g));var _=Math.abs(s),k="";if(100==i||105==i)C=jr(s,8*g).toString(10);else if(117==i)C=Ur(s,8*g).toString(10),s=Math.abs(s);else if(111==i)C=(p?"0":"")+_.toString(8);else if(120==i||88==i){if(k=p&&0!=s?"0x":"",s<0){s=-s,C=(_-1).toString(16);for(var T=[],P=0;P=0&&(l?k="+"+k:m&&(k=" "+k)),"-"==C.charAt(0)&&(k="-"+k,C=C.substr(1));k.length+C.lengthS&&S>=-4?(i=(103==i?"f":"F").charCodeAt(0),w-=S+1):(i=(103==i?"e":"E").charCodeAt(0),w--),D=Math.min(w,20)}101==i||69==i?(C=s.toExponential(D),/[eE][-+]\d$/.test(C)&&(C=C.slice(0,-1)+"0"+C.slice(-1))):102!=i&&70!=i||(C=s.toFixed(D),0===s&&((u=s)<0||0===u&&1/u==-1/0)&&(C="-"+C));var F=C.split("e");if(A&&!p)for(;F[0].length>1&&-1!=F[0].indexOf(".")&&("0"==F[0].slice(-1)||"."==F[0].slice(-1));)F[0]=F[0].slice(0,-1);else for(p&&-1==C.indexOf(".")&&(F[0]+=".");w>D++;)F[0]+="0";C=F[0]+(F.length>1?"e"+F[1]:""),69==i&&(C=C.toUpperCase()),s>=0&&(l?C="+"+C:m&&(C=" "+C))}else C=(s<0?"-":"")+"inf",h=!1;for(;C.length>0]);else c=c.concat(Xr("(null)".substr(0,M),!0));if(d)for(;M0;)c.push(32);d||c.push(o("i8"));break;case"n":var O=o("i32*");I[O>>2]=c.length;break;case"%":c.push(a);break;default:for(P=f;P>0])}t+=2}else c.push(a),t+=1}return c}(r,t);Br(e,C(n,0))},s:function(e){R.length,te("OOM")},t:function(e,r){try{var t=0;return Lr().forEach((function(n,o){var a=r+t;I[e+4*o>>2]=a,function(e,r,t){for(var n=0;n>0]=e.charCodeAt(n);t||($[r>>0]=0)}(n,a),t+=n.length+1})),0}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),e.errno}},v:function(e,r){try{var t=Lr();I[e>>2]=t.length;var n=0;return t.forEach((function(e){n+=e.length+1})),I[r>>2]=n,0}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),e.errno}},k:function(e){try{var r=ye.getStreamFromFD(e);return ge.close(r),0}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),e.errno}},y:function(e,r){try{var t=ye.getStreamFromFD(e),n=t.tty?2:ge.isDir(t.mode)?3:ge.isLink(t.mode)?7:4;return $[r>>0]=n,0}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),e.errno}},z:function(e,r,t,n){try{var o=ye.getStreamFromFD(e),a=ye.doReadv(o,r,t);return I[n>>2]=a,0}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),e.errno}},r:function(e,r,t,n,o){try{var a=ye.getStreamFromFD(e),i=4294967296*t+(r>>>0),s=9007199254740992;return i<=-s||i>=s?-61:(ge.llseek(a,i,n),se=[a.position>>>0,(ie=a.position,+Math.abs(ie)>=1?ie>0?(0|Math.min(+Math.floor(ie/4294967296),4294967295))>>>0:~~+Math.ceil((ie-+(~~ie>>>0))/4294967296)>>>0:0)],I[o>>2]=se[0],I[o+4>>2]=se[1],a.getdents&&0===i&&0===n&&(a.getdents=null),0)}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),e.errno}},j:function(e,r,t,n){try{var o=ye.getStreamFromFD(e),a=ye.doWritev(o,r,t);return I[n>>2]=a,0}catch(e){return void 0!==ge&&e instanceof ge.ErrnoError||te(e),e.errno}},E:function(e){var r=Date.now();return I[e>>2]=r/1e3|0,I[e+4>>2]=r%1e3*1e3|0,0},g:function(e){}};!function(){var e={a:Gr};function r(e,r){var n,o,a=e.exports;t.asm=a,b=t.asm.I,n=b.buffer,x=n,t.HEAP8=$=new Int8Array(n),t.HEAP16=M=new Int16Array(n),t.HEAP32=I=new Int32Array(n),t.HEAPU8=R=new Uint8Array(n),t.HEAPU16=O=new Uint16Array(n),t.HEAPU32=j=new Uint32Array(n),t.HEAPF32=U=new Float32Array(n),t.HEAPF64=N=new Float64Array(n),B=t.asm.M,o=t.asm.J,J.unshift(o),re()}function n(e){r(e.instance)}function o(r){return function(){if(!E&&(s||u)){if("function"==typeof fetch&&!ae(ue))return fetch(ue,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ue+"'";return e.arrayBuffer()})).catch((function(){return ce(ue)}));if(p)return new Promise((function(e,r){p(ue,(function(r){e(new Uint8Array(r))}),r)}))}return Promise.resolve().then((function(){return ce(ue)}))}().then((function(r){return WebAssembly.instantiate(r,e)})).then(r,(function(e){w("failed to asynchronously prepare wasm: "+e),te(e)}))}if(ee(),t.instantiateWasm)try{return t.instantiateWasm(e,r)}catch(e){return w("Module.instantiateWasm callback failed with error: "+e),!1}E||"function"!=typeof WebAssembly.instantiateStreaming||oe(ue)||ae(ue)||"function"!=typeof fetch?o(n):fetch(ue,{credentials:"same-origin"}).then((function(r){return WebAssembly.instantiateStreaming(r,e).then(n,(function(e){return w("wasm streaming compile failed: "+e),w("falling back to ArrayBuffer instantiation"),o(n)}))}))}(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.J).apply(null,arguments)};var qr,Jr=t._free=function(){return(Jr=t._free=t.asm.K).apply(null,arguments)},Yr=t._malloc=function(){return(Yr=t._malloc=t.asm.L).apply(null,arguments)},Kr=t.___errno_location=function(){return(Kr=t.___errno_location=t.asm.N).apply(null,arguments)},Qr=t._strlen=function(){return(Qr=t._strlen=t.asm.O).apply(null,arguments)},Zr=t.___getTypeName=function(){return(Zr=t.___getTypeName=t.asm.P).apply(null,arguments)};function et(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function rt(e){function r(){qr||(qr=!0,t.calledRun=!0,k||(t.noFSInit||ge.init.initialized||ge.init(),fe(J),ge.ignorePermissions=!1,fe(Y),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)e=t.postRun.shift(),K.unshift(e);var e;fe(K)}()))}Q>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)e=t.preRun.shift(),q.unshift(e);var e;fe(q)}(),Q>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),r()}),1)):r()))}if(t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.Q).apply(null,arguments)},t.dynCall_ijiii=function(){return(t.dynCall_ijiii=t.asm.R).apply(null,arguments)},t.dynCall_viiijj=function(){return(t.dynCall_viiijj=t.asm.S).apply(null,arguments)},t.dynCall_jij=function(){return(t.dynCall_jij=t.asm.T).apply(null,arguments)},t.dynCall_jii=function(){return(t.dynCall_jii=t.asm.U).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.V).apply(null,arguments)},t._ff_h264_cabac_tables=82789,Z=function e(){qr||rt(),qr||(Z=e)},t.run=rt,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();rt(),e.exports=t}));const u=1e3,c=!1,f=!0,l=!1,d=!1,p="initVideo",h="render",m="playAudio",v="initAudio",g="audioCode",y="videoCode",w=1,E=2,b="init",_="decode",k="audioDecode",T="videoDecode",P="close",C="updateConfig",A="key",D="delta";(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})(),Date.now||(Date.now=function(){return(new Date).getTime()}),s.postRun=function(){var e=[],r=[],t={};"VideoEncoder"in self&&(t={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(e){t.isEmitInfo||(n.opt.debug&&console.log("Jessibuca: [worker] Webcodecs Video Decoder initSize"),postMessage({cmd:p,w:e.codedWidth,h:e.codedHeight}),t.isEmitInfo=!0,t.offscreenCanvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),t.offscreenCanvasCtx=t.offscreenCanvas.getContext("2d")),t.offscreenCanvasCtx.drawImage(e,0,0,e.codedWidth,e.codedHeight);let r=t.offscreenCanvas.transferToImageBitmap();postMessage({cmd:h,buffer:r,delay:n.delay,ts:0},[r]),setTimeout((function(){e.close?e.close():e.destroy()}),100)},error:function(e){console.error(e)}}),decode:function(e,r){const o=e[0]>>4==1;if(t.hasInit){const n=new EncodedVideoChunk({data:e.slice(5),timestamp:r,type:o?A:D});t.decoder.decode(n)}else if(o&&0===e[1]){const r=15&e[0];n.setVideoCodec(r);const o=function(e){let r=e.subarray(1,4),t="avc1.";for(let e=0;e<3;e++){let n=r[e].toString(16);n.length<2&&(n="0"+n),t+=n}return{codec:t,description:e}}(e.slice(5));t.decoder.configure(o),t.hasInit=!0}},reset(){t.hasInit=!1,t.isEmitInfo=!1,t.offscreenCanvas=null,t.offscreenCanvasCtx=null}});var n={opt:{debug:c,forceNoOffscreen:f,useWCS:l,videoBuffer:u,openWebglAlignment:d},useOffscreen:function(){return!n.opt.forceNoOffscreen&&"undefined"!=typeof OffscreenCanvas},initAudioPlanar:function(e,t){postMessage({cmd:v,sampleRate:t,channels:e});var n=[],o=0;this.playAudioPlanar=function(t,a,i){for(var u=a,c=[],f=0,l=0;l<2;l++){var d=s.HEAPU32[(t>>2)+l]>>2;c[l]=s.HEAPF32.subarray(d,d+u)}if(o){if(!(u>=(a=1024-o)))return o+=u,r[0]=Float32Array.of(...r[0],...c[0]),void(2==e&&(r[1]=Float32Array.of(...r[1],...c[1])));n[0]=Float32Array.of(...r[0],...c[0].subarray(0,a)),2==e&&(n[1]=Float32Array.of(...r[1],...c[1].subarray(0,a))),postMessage({cmd:m,buffer:n,ts:i},n.map((e=>e.buffer))),f=a,u-=a}for(o=u;o>=1024;o-=1024)n[0]=c[0].slice(f,f+=1024),2==e&&(n[1]=c[1].slice(f-1024,f)),postMessage({cmd:m,buffer:n,ts:i},n.map((e=>e.buffer)));o&&(r[0]=c[0].slice(f),2==e&&(r[1]=c[1].slice(f)))}},setVideoCodec:function(e){postMessage({cmd:y,code:e})},setAudioCodec:function(e){postMessage({cmd:g,code:e})},setVideoSize:function(e,r){postMessage({cmd:p,w:e,h:r});var t=e*r,o=t>>2;n.useOffscreen()?(this.offscreenCanvas=new OffscreenCanvas(e,r),this.offscreenCanvasGL=this.offscreenCanvas.getContext("webgl"),this.webglObj=((e,r)=>{var t=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),n=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n");r&&e.pixelStorei(e.UNPACK_ALIGNMENT,1);var o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,t),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS)||console.log("Vertex shader failed to compile: "+e.getShaderInfoLog(o));var a=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(a,n),e.compileShader(a),e.getShaderParameter(a,e.COMPILE_STATUS)||console.log("Fragment shader failed to compile: "+e.getShaderInfoLog(a));var i=e.createProgram();e.attachShader(i,o),e.attachShader(i,a),e.linkProgram(i),e.getProgramParameter(i,e.LINK_STATUS)||console.log("Program failed to compile: "+e.getProgramInfoLog(i)),e.useProgram(i);var s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);var u=e.getAttribLocation(i,"vertexPos");e.enableVertexAttribArray(u),e.vertexAttribPointer(u,2,e.FLOAT,!1,0,0);var c=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,c),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.STATIC_DRAW);var f=e.getAttribLocation(i,"texturePos");function l(r,t){var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(e.getUniformLocation(i,r),t),n}e.enableVertexAttribArray(f),e.vertexAttribPointer(f,2,e.FLOAT,!1,0,0);var d=l("ySampler",0),p=l("uSampler",1),h=l("vSampler",2);return{render:function(r,t,n,o,a){e.viewport(0,0,r,t),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,d),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r,t,0,e.LUMINANCE,e.UNSIGNED_BYTE,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,p),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,o),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,h),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,a),e.drawArrays(e.TRIANGLE_STRIP,0,4)},destroy:function(){try{e.deleteProgram(i),e.deleteBuffer(s),e.deleteBuffer(c),e.deleteTexture(d),e.deleteTexture(p),e.deleteBuffer(h)}catch(e){}}}})(this.offscreenCanvasGL,n.opt.openWebglAlignment),this.draw=function(n,a,i,u){this.webglObj.render(e,r,s.HEAPU8.subarray(a,a+t),s.HEAPU8.subarray(i,i+o),s.HEAPU8.subarray(u,u+o));let c=this.offscreenCanvas.transferToImageBitmap();postMessage({cmd:h,buffer:c,delay:this.delay,ts:n},[c])}):this.draw=function(e,r,n,a){var i=[s.HEAPU8.subarray(r,r+t),s.HEAPU8.subarray(n,n+o),s.HEAPU8.subarray(a,a+o)].map((e=>Uint8Array.from(e)));postMessage({cmd:h,output:i,delay:this.delay,ts:e},i.map((e=>e.buffer)))}},getDelay:function(e){return e?(this.firstTimestamp?e&&(this.delay=Date.now()-this.startTimestamp-(e-this.firstTimestamp)):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.delay):-1},resetDelay:function(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1},init:function(){n.opt.debug&&console.log("Jessibuca: [worker] init");const r=e=>{n.opt.useWCS&&n.useOffscreen()&&e.type===E&&t.decode?t.decode(e.payload,e.ts):e.decoder.decode(e.payload,e.ts)};this.stopId=setInterval((()=>{if(e.length)if(this.dropping){for((t=e.shift()).type===w&&0===t.payload[1]&&r(t);!t.isIFrame&&e.length;)(t=e.shift()).type===w&&0===t.payload[1]&&r(t);t.isIFrame&&(this.dropping=!1,r(t))}else{var t=e[0];if(-1===this.getDelay(t.ts))n.opt.debug&&console.log("Jessibuca: [worker]: common dumex delay is -1"),e.shift(),r(t);else if(this.delay>n.opt.videoBuffer+1e3)n.opt.debug&&console.log("Jessibuca: [worker]:",`delay is ${this.delay}, set dropping is true`),this.resetDelay(),this.dropping=!0;else for(;e.length&&(t=e[0],this.getDelay(t.ts)>n.opt.videoBuffer);)e.shift(),r(t)}}),10)},close:function(){n.opt.debug&&console.log("Jessibuca: [worker]: close"),clearInterval(this.stopId),this.stopId=null,o.clear(),a.clear(),t.reset&&t.reset(),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1,this.webglObj&&(this.webglObj.destroy(),this.offscreenCanvas=null,this.offscreenCanvasGL=null,this.offscreenCanvasCtx=null),e=[],r=[],delete this.playAudioPlanar,delete this.draw},pushBuffer:function(r,t){t.type===w?e.push({ts:t.ts,payload:r,decoder:o,type:w}):t.type===E&&e.push({ts:t.ts,payload:r,decoder:a,type:E,isIFrame:t.isIFrame})}},o=new s.AudioDecoder(n),a=new s.VideoDecoder(n);postMessage({cmd:b}),self.onmessage=function(e){var r=e.data;switch(r.cmd){case b:try{n.opt=Object.assign(n.opt,JSON.parse(r.opt))}catch(e){}o.sample_rate=r.sampleRate,n.init();break;case _:n.pushBuffer(r.buffer,r.options);break;case k:o.decode(r.buffer,r.ts);break;case T:a.decode(r.buffer,r.ts);break;case P:n.close();break;case C:n.opt[r.key]=r.value}}}})); diff --git a/web_src/static/js/jessibuca/decoder.wasm b/web_src/static/js/jessibuca/decoder.wasm index 7ea58dfb9b319c5d4e45e8e5252b26c40d5816d9..f7a09a44f2d207aa5c94443fa52b5854d7c78003 100755 GIT binary patch delta 249001 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 zð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

x~;E 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 Td}ZG=j16K<`GH(g&K>^`N~ZV7 delta 247167 zcmeFad7KnQwm+H?Sy`1!WmQ)7Let$qR?$F%>;fVpk{}=`;5MVPxQ*U%Y)}UW9cKip z5kzDWG?73MZ59;~1!jjVf+P)@ z^sM5}#$U`PAdSmM6wZuSP-nsf)M4W(V|)fzJ%EQonTrc@&yDWN#eCd2Hco<>aB+rb zCa?(?hbEu|Do}d_)^1cG1NhV?s!X7=Y#cD*<77f+9B>;apTn7PR0%+2m&Q}IEH2b5 zBM%WJvfxp{-@+mpH8UYYNMrz_p(NFk{U%%qV>KfYNBa|y0;*6$=svZHL|n!r2VDU9 z=#4N00D2~B5gEsiCqmI1mCxY>T+yWvksYaF%9XV^(8^q_QVT>PG!PpJXF_gri&P)6VjS%`lcgY__Bs`2K1o?K> z+P_yFld;$(Y^434wBD< zW%>}M3@N8!qFlm;Dp7TE!HoqxqUm8h62|n=R80#<6w6}tlj*2Ov`8ePDWzIM(==7l z!y3m=OS*6#M%hwDLp?=HrB4o93J-p@NbZU5EUdRy!ljm_Y85KVhC?AmEmo9Hkx(ck z8&Vz3&>}^eRu<7sEz+htS?mNH~0&qG~qq)rO|DvSMwRjh+C7hMzFkRV7@c^3#ip zK?Kd#bZxky8zIh_N%4*+?D= zQ|;{kGyS)<4p*L)ZxIl~wxw$&hE@nPHI-?aes)+pM{60@6fLalny#FyU^F6{s{aP# z()8!I7(=EU7d|hf*kQ$vglz?wfin03y0&_LD}PKl{fCIEE0NOQ{XP=u82N);()N#C zihw3Cv(d*36kS)*4%c;C4QsZ2A&919#P#q+#Wn{1VvG?%v~_NBu2gXJQO8S*bo`Rm z{(xJR4p>tge8>$)!ha;B~?aNdE3SVaErI84aDDhGq%w+sm zd%|Fo5|c+mQ3Y5~;~>7;v!@yY_o#LlQvkF!02;hcI6F#Mzsg91RKbs1d$Jzmt-I^m z2}QwA8A#Tyu&`3s3VRtwdH$b&l{tJ+@7|1YrFnDCTc|{Uh!%~4(c-xuHQY*~r}E<& zW=qK8VIIT2NkP7inYroq1JyUxy=Fir9`m6K;|GQ{`|JP{B-x(cmx>>}O4*n(4 zHq7-G+2#I1-DyEnG5d33?jd)lvTglu>}Hwj%~Mn>a$1}X;|e=nnWwQcl{m4(@ZPq619&?K^-FPeVn)b3rX^ZvX`Hsl<(GR1Uoz@QPQ}uQ0snAyId3B@p zn6=hgZVBs0^ImqFImP_RIArWJJ~8fP^t;J;z_`b_!>BfyApolm6&i^`7;vwaeOP z)mwY5J=WXSyX+0?O)K*+>oseO^{VxX^|JMn^`iBH^}O|*^{n-b^|bYr^`y1gdct~6 zd(_%st+(o|b=DfI)>>^nVr^14nva>A%;nl*{-Cymud-HJ4_gmeE35~t2drh*{nmZf zz1C7|iM7~TWNlO*Q#Y88nl;v=+CA3Y)&}iSZ6U6AWdLZMxz?;RmuWTp0c{aqV9mGg zwB}iJtvjqamT%o|-Db_UW?8pdGp!jCP_4PfoNlexrdhXGb=rDuDy}yJ&MI@I`G|R+ zb~nFYyN6G)Zn7p@ldK!9iB`3B#Qeql**t9iWd2}&Z+>SILJye_o0)ITwc0o4A#;tk zR{I*)ugp#Aa`OT6L362g7r$3q$Pb!dn4g=UnFq{I%}>ma&5z6v&Hd&F=KJP*=DQNm z{pK=rpSfDAH}{&4Xsfk%aNTWgHlH=0HlH(BXiND++P!?2`L?;!e9Qco`KI}Xxx?IU zZZlucm|M-)%q`}t<`d@Q=9A`A<}2n(?Pc>t^I>hJ_5!ZYn-lE?{66zu^HFt!x?ZhQ z*Qra)wd!JXky&HzX7l+P^=@;ad6&6>Ht~ndS_0x;f3f#hhy1Y~Ex}HYb@kniI`x^N8__@w0K* z_|f>m_}=)=_}2KwSggIk7isr|zBaxxzBCRRUl^YopBV>?PmLPw?$ABj$Hqs-hsJ*6 zgPz9w#(T!Q#y+Fo*lX-D-Z6F?&-3T_F5_+EE#qIto5mZ)4r9Bq&8SsZtFIedjn|A- zs$Wx3e&MUeE5^&lOU5F#Mtzn~XV35jp%;x8jOUGKjeFF))u;JV_7s1{Sg78mE>NE~ zo-&>^=BszA^HiZ8Vqde(#$5Fdb&l$*x2w0Qv(;HDHSvV;xUn(U#AC*z#s*`3qbBYQ z)fwxIwZ@u8P1I(aSZzFFtZLH4%40V1u`8sI{)GOxzDeJxKc+vbZ_wB4>-4qy8okzks4$hO(eKgk))(q`=?nDv`knebUFdW5 zJM=mFt!nT)Tdz-kk@(q}rSDCCo;d8>s_#jDmiWn;slSsvkoeJ=uJ2BMn)tz)rteCA zlK9@aMcL&t-3BPSd)A@vBOzXP@8-zvE5l*usZo! z%Pbw!~uR zP;ydoc4Cq9b@ImKtVE6TRdQnT*2F!|tWfalZ*AtbIFS4)F*PyY`84@s;^xGi&L_zq z5>pcMoR5>=CvNhKN{%1CFL^NWi!6~JEPp3y^n0WHov6|8O|f6>@9fF3pY3n$NwLHBH+Ho~zlZFv?Opcl$Zq>9 z`%C+v{e}N>X>K`aA&D<8*XV=?%?LGE8_S^PO`z`xl_M7$__6~cyz0LlLzixlY zU$YPLE%q1uRr_=Piv1aX**?HuvR|}cu%EY|vp?m}+RxZe+fUk??I-NV?M?PZ`!V}b zdxQNN-)_BS-4dN1t+UtJYwb05t-aD-Wj|uCwjZ`1vRBv-X6)tm1NJieKKovKTI80< z{q|COiM`0KvG1|(wint9?D_Vc_B>nIbL~59-@e_x&7N(~vTwC#+B58F_AT~Q`(}HJ zeUm-eo@C!>ABp}F{W*F#`cw4B=nv8FqSgG{=%MJ>(XXOkM!$(3jD8XQJo;JmK=jk- zC()0hlcPh9Sk=)-*>W~Nye%{_dSi4CyD2&;xkI1}Jbh*zv<~6^x%H*>HSS+o=AIW%zOkS!T=Le6=f_(V zvk&~XEk0%4{bb9b{N7vr3tFDa?-l;VeG2JqL(9L=t#zwP_N{+Lt1as5k+lEI>phCA z4@asxDN0qEjdD(R70-3?aG`&>+uI(QW}*Hr^AuNcD*YAiX+?K!d`_w4%21oRip#1} zimQ4xzL9EOx&}E_gG*iRs+ByNW`jfhy%|XJX840s>)1yB=Tu2}HYLpV%hG>mb9_HN zv}|brj|$VHtM=lGH;+oq^UrMEyg#4^C5G6lH;2*{DnW_zDQ>x1t_T64i~xu%JO@CA zH9}4MHEL^G_h)zc-?X0C6u~+2ecll;hWsrG$o zbSrteLrHy=R47_v1xY1N-%|sR(CNR}+2fyeT!&=ewCbvhv&r>OQ1Z;O z_v_LNh+NyHU7~MFmB{BC@*nEb3VE+~Y0(Tw=96bZuA=U&Ta%9kqk@8b^*wyBH(G+bvJE*Jf$9( z9KZ|-X)M|ebsrh+o6_?5`4@HHh=D0TzO5Q_cKL&j|CGJvck8j9)%c(EI5!g;;7+|i z9rdcKHy=?)xv~4x#x(r7?r=I&$%IF_$c-|c4x%3}SaWmR|ZZro4-MD6u%}OO?LMQ?` z;hGY+$Pmae+f&DSTNfKu$EgT@HUa}Exnd*%QKQP$GMP=*`ZeyS(36z zH2$d+Qpx2@?nHO3lorSW*N&+ng>hufkA`y17$C~2kv|q5-}b&m8*3J!{l@RPu5PYD z{{lo028h<)-D?QL!0bPv8(+1-Z{E8S12CZXU?knr`ypIUIB{Q~0|tatudx)+L< zE3#_0^jXegdsI&u0eWxd>-YTqlY==AUwM ze_nmKcH+saIlJ8N(f@pQdF{;p!+G1wA!W18iGm8^-kdDXO2Y$rw zdd9Qv6-4MdV!LOu}fc*DXeyI}k`=6eA zqj}?3Dh9o46<+^7=sI(eeCbyp@SL&4aE%g5#$JOI zCs)cJKJ04$vB9J5ADG98QkENYe(-w?>B)ZZtA=#L^{yd*!u80IR=Bo0?Iv9BJ#7@O ziJ=!{v2qBj>xbsBa_RN|E>^ek>abrwtgkuoYn2ctm~BsQ?{tTp^D@IAq(m@Yj!M%_oKZcSf{kBWu~n!WMDN zKc}5#od~1Ii#px>iqR*sF8+n1ORlJZ+5nZD3V?7%r5T1D%~f1uUCY=6dUit-$aa}9 z&Q&3h(%?_Jh2%R4r1&IgIW{2s$R?yUgV?2Ebkdqv&#E*R$Y@?^mDA53KE6e}4Us;I zZb5RgK8gtf)kWkuU=ScCC}DjB1bM{2ZTt|n!QVN)E35O(2`$4&X3ir^I!|Ei0l!P; zcw8^dT+NpG+cQ_PiN06ug(ilg-2Z2$qrbYk3o_oVri?QudTe6t?GpQ6Lcn@oa@YQ8n^Y^#+A_4Z)InWO08wH_w&SgjSHiN^MV%g z$+;HJYuv*5jVqyr^JNQ1r?S~IYrpn?#}mJ6Tmh~8E@&m6oNMKGja&JB<4S1d_p+6v zQ(vBY(!k16mtm5s{V}APSIwP^F*MbDRGLFAoNi;?lQJ-gE+*!!=2aDnL>o|hoy`1$;EaUHnex)`a$uHb_} z9s18NxE&e4ziV1|Pk}Ag-wk`pFvyK?Dne$fRGm~d>>W|6NS9Jg4|;W!Gt0LZwqlmw zZDAK4dC0$H;mno`n6m&nQ*q%bR6=7Kl?tX4E=YD3_|dyZ76kclA{w%4ue!U8v77yA z_l#5zyuUxIEcKr$W_V;hN?+?&Vi&h-R>nGLjU*3WFotMpQNZGQY zJ@b>x?`ufezx+|w@U~^eUS=L9ss(zz?%^}QAfc6Cu-&zXR=%kM!Ix{VWy@>5HDzXG z+pK`uE`9vO)Q8YfUJnxF%qy%)bNSFQc%QA|?r(a$T<_qjUSE3I_jm!Tto`QkGZ@?L z57_*N^sAw?>ao*c7DEV+1XE!*0K zE$~m@dNQt*K8?~#rZH$dz+ldFMmLz+V0&kJ?e48%=H$%EyfOLJ>r%D#*mk|y1|IdQ z55nHT_x*L-I=KU(LaJF6<{u#yakaoOalD#O$)s%UtJ{ZkY+DNZS$Z}!Te#B}3fGN* zgcb0ptr=aIMWGUCf2%?fm&94CG73A#p8xhF_OJ{;uLq4>T3c->JW6C!~8wesq06;)INil(TtrT1; zH$(&l33_odxIrqqkr{0T@e$a0iVUX6NJ%tm<>M6a{+Mfc3TA^ivylBRDZ?4mEBMYK zqE1A(N!Ff4#IPhw|Gtu!VD11dimQZ%U}*59rxh<3CxZUZ;Q`BDk77Uq#w3`EG>*tV zPzKq=xK34yTad&&rHO5TZ)5TT*QjZEnN&ou0#?v7(imB?rXr(KYT#l?FE#=m8A?8E zD~t^}l91u0;*hfvG+kOLdYUj?+J8)_?Fb0Ye6qi}6C zxNK~Ssr@;y%aLMKT65KrWNE{7*TiQ9tXXr7bOpN7;yN!h2K?Zp`QS1TK@%+sS@Q@& zDIN#=oLI>I3g%i~$jU&==L%V$!Z`siqCW%@TvU<@3%7_BHg8N!3}X}om&7#0@FLbc zj+xqoa@Q8I^uR3TU|)el1ITGU96ij2wTNawGy+rDb1y$AGIz{VfH1(l?LNAD35m*96F+F*q0%)y@{5vTSJSLeRY1wH2;g4`4 z4Rt{LE>&p*1N#0G5;{O12%ZR$gLoW}IU$14eotGvIC@!neg z#&Yd%gvj?u4nl`7nK?%Y)ghn@JpH-J5K`Xkj`l@FCC)L^k&_a(=tvsuV0AnU3x%2G-vHI*|~+r zBwG$IBeGB;2~0&Yqqmg+g^7(`p(n}NGJKn%v{l68SvIBjw@^m1nhNrfP*=T;C{hIp zA7}&;zj)b9iQ?VntRO6BO<4TYoTb=O(V`RzU>QL@1W+Iq%9B+CW{Z0I7-(kg^lQL} z8t6huL!MMYk;v}BSiIiVMtPAj=#Pdeg{QJKg8NeD2Z41!Cf)$eK-E#fjD&-losocB z!=yFkihxcuZGt#vqLd;Ofs#^$qGsWoV55p8s9af* zL|;z+(G+f45yXQhCh0qZU;w`~hHQ*Ss~3QN{TPbg;o%5_=%jodK>(Dvj*5*9#uIBE zDrGfU^AOjTvx;J*mIMZUwgAnbuvl5nn#IFppGoSd7{#!7qnr&aj3D}o2Bqa*4#pw< zBs#WWC4GaHlVIoqJ0i;!uy4FVHv&xqqLsnABJM(vo8sMWq!%v%?CKV*8OVKcYu0Q8 z5tn8#s7%^6>m_&-#*i%nJ2)?x$wwtv3l^f()e!Blg{X=IguYT0X?c_ct>iir3`->x zHVQ+@1~VG{{@)u4&@xLO!{qKtqXKDzv8S06OdwcKWrukZv|zg+`@Dh@3vtBKO16l6h2RNZU8(^Ue{>Drw1$N59$gGv(g4}7f3v)(n{*I8MMmy10{sE~ z6F>2cS?ssJY@uRpkGxIA>UfxKp>lQG47Q01)ZG?k zo4NSBEjvFv34`yn6KAwz^=zl;RLLqk9(w{vW`;~}JPDk)#KcNgP>7izo%F_YK`g6e ze`ak(ygf^^0it_*HW_bq?b(SIf}3H zS)~}!h26lOuY0KryN|KU#h7kv*dHe1pg=}y2ShxBXdSx-0>x&~0AyQ|XjkBSK`4Z< z90X)>Ba<#f@ohB-Z*vm5RH2ii&>9!rLgLMCtd)+?!l*c$An{8#Hk$3K8`Yhi%`T|s z9I7|0aip#{%kDc(Tp|$A-CD^uMu-2ltL*Rq7t(i(}YAOh_6sy+${X-mxL!BUY`Z>pfsJh7$+>jesZ z+Jm+0bRa|y{b?|%fg3_Cnzvi8a*%2?q(Vstsp6ELteBbNw>{aP!q{#wCS{7pdqT-S zE?V_sMdHVvtRi?WGtIJ;4tR!Zic@>BHn}31Ub6Uoz1Scm9q7gSvB&FG22{HPs;d#@1`;p8F$+777SphG=p+W~Z9ug{+lip++pFT!6A=K#+S$?V zP$N(a2pu%wV#pTspamn_Ld4axEkuGA2+NS%vD8V?fC|d1hzMqp*H2I#xOMtTtOPf+ z4+3!$`>>)4!vnTKXB&0Z3A*ZnG(bc=)rXzj5sQO}nw-vs0$CKE(7|n?%u@nYj$w_P@Pnd8g!96S;lkA4k`)fZqLzbA@k9B9=#AE$f zPbS2d{aDxLH}Xb%7&CZRY&nfIX)al-zo!tE4mx$|Hdv))9{>=>} zp`aTS?2Q4){;*jr@p6CGwR91pCWg}vsKZ{?EzCABCG;Z@DDqej6dUHTKP0{h1vzl7 z(Mhm>-8v7u;*Xbc{A}DFlcf-xla1w?UbY31@#|&|VP>do4rM|)Q5Hg(Tq-I=!b8p+s$HrDkFTE& z7jI78{?plB&NnX>&yQd`*|TENNYEG*1_zZYB@0@RHY25$BPPax5hFis69YK!LE+g9h{z#);xDWZDD&fASY>h!*pE~X@fN=l zi;$k^aRpo30b7h0uamwI#1?vHI*;a3vaBsvtrX||x`HZ(1E&Wki4Iq?J0dj*yOIs? z+?DKdwoP=tiVf)Ac)!g9gqBMicDG?;=P2u72`i*EuGv_>4nyIFz4e`(cg5nXSntRS z_25Uq+IJO8UCjp6zM3d#zY;2??O3{5+p zOEyQ?b!aw0hn-4Qg_G zyq;Lp@g9&>u>B^7D#$6OU&DI;=EnC47;TXY`haoh#d`#}K;ZV`y&FCEmCtgZ`V-ar zrse9|5tRr-?bN(45f&wXgZb7*^!yt;e$a=3KTp|@1lf&RI;{cX8N?2N10qO<{Ig`p zKTC%Evv}xltef?+M0P86Lwx)1#992ewlQ%f%6LoWS8hQM4I+8k`fZW(*|Az z4O$yAV@3mgirfOYnsF*hgPdOcuMI`U1_h{npw^3DPg%j^xQ54SEG|{@>zyaUq$40h zP!R1@@^Q{iHJ>z2CRH=%ah&fCN>$5{3?Y}K{?Lq}0h|oUj?u2Tj-4~4E9ha+wm^-T zgV?FW+k>r^nq((f9}(HlT%V?58b}Qe`QluNy3{*7iN~))nCUB7k=S4CyN;z!2II_; z^B_x+$u`x-ghGd$_n;B5qo5JNrZ&kIr~I9@`c0mqa19`5B?okcXOg8M9I$x?1)Zo% zZ6Ljzp+{Y0$9wU+NP@}SuA=tutbJtVXXqwSeedtAf^`-8^{hO+<%5v7?E}%_de%3x z4y+V$J`h)4&(15X{~$yW1zG^0Ap&F6e<0qvo}Iut253xnHEM<9nkwGtZ862L3SHEBE{0Dp1I<%j-7RD;jdElR{P1*Ad zLlX98&?Y>OOdMz$2Z2j6CqDisJNxuHn#OQp+L6p81%^n36qB^#0M`xPoKp`D4b%}$ z#VY4}Qsss6F84#812@q-xKB*Efpsn{Aa@UMkm^!y!@pZ9Ubum^Xg(#JQlLDrL4ref zNOO=pHs@CH%MGkYqihw~Dv**6opWp5>El>?CW-@tLHO>anY65GGA_FI|o<$p2uEe&~ z@tJWulbfl;%%H?06WDPlEebaZqH&6!tPA&zDwz(9st(u+0t`M<_Y*_gffxAOaUgjp$h8IQ4s3_}PA;wN*SFm@) zo{88W@Ray*A{$XykxEL{D+K|~ERKlCA8%yW^sPu^!J8Ns(Nt^&@MiB;Nz;R@YJcpx zjzP_HH|litGG{atS`riz<|Nn#AMPfjq;=iUN$hIICf9A4%x1DSx4okV^q2>F6=F!i zmXHInQ50CO|0q_~fh)a5W-@CbrcPm9%?fP27zGygCf7YRh26~3llBk*s4D_c3Iioo znuCL_O#rf4jGD?iqrv%8Sv8C7r}Cg^Y8pJ4&ElkK@Tb~{33!YA{FdyKxO*B)b+3@p z4eP_HFeXLR3q#tQZfFE10}%#JyRA1ZY*SQoiT^?=GZ$d2F_(&_`z*r>|8b}vb#Q@>@Ra!2i{x}t8PQ&;}pTp zVwH8b(ViPPdH2p^L%Mwy!m=UkXXhQ2v>v>Ca1#P)^sd28f`AGbl!gJit($0ZC%dTp zJ-E1ourC3oJ_-?a8EkeewIsmvB$#qEnnDZAVix=-_uQOdNSjNsM4STSdEBTst zAsnLVgr^Qpn`2#fbUG^71FSfL{oPnV$Uw;<-_>SEIatTK~?(ugAjL;;W>#Dgcq zTXZmGgiHmKT0v9-6EHqH4TCu@OVaWmo=}n&f^;{Q0|EAN0}z$8XG6XqctquqTtelk zhk#5#GZJe27?txiyXI^5##7AA7bXZnOQ+=vpP4UwKDD0kc&??U=o6NNe&z(VlBzV| zpKT5u>mA@vJ&!c%d9LbztO)^3ZG!~^(n$b$!clYbr9}McK~`FjCvHOtG3!CrN{$Y~ z9-w+sW+?!NCpkU{*ftpv<6( zrk#|UrB>zaUDy2yFobST`{Sgi2Y6z2z#&d+b^_F^o)J zfDUqLlpE)Y>j5=G4AnR_sFUkzg!bW5Fc+@Ms3zskAlQm`IEzq1YE!}uE>i+11szSr z@sjIx3O%UglXtLm5z+z$c^WpSWQd;cV=E+0xCAJH*Ue#&IWo8mx+^YeQ-lVBDudJU zGJwLq05@I++RE&R_`^!(#;LZBWGht+!X?DCm8=tF<$B~55E|(?q4527Nk#D8rz_b> zEh1j4F`fa#Vk>k8HU7eKR#xR5LZ|?na0jkpJu4zuNkxPqj-7%;1?pWVkRQiKNJ)OX z8^|;*2L&1r_+x9>e}Sl}wX8G7 z{g|V9chI-dDAIT|m#&qg`Rdw+(LA#DKaJ*Y$rZWL?6Xde=GE)|+tI8I+J9jk8{aUR z!|Sr6Ip;r)W^DccW;E9XE&gFWYoX^xQ&g{K?r}}WteVExn=1R2AF~?yiotk!eRj;g z#6#xjG5d%L23i-ZY|PuZ6Ym(DLtB}f^t#gcf>;56JwtiqO9Zd4WM65u6g78bU!(Gs zV9eV=Far6IP9pLo{0*!qV-Z+bMkoiZ3hBbU#~QVYBQVrzCq)hB@zWA+CnY{jcf2iPCIHB^T_T_?fG_7h^#qxh_3vW`Cn2d#ki*N5S`ydbrW1CKu{x^85Z z?XecT13^s^)|i{zZH`?EWD7MEj(SV6Co(D~Ze-1_NI*QmXdvMRw5!r^9bo@q25)_U zk>pD|auWl#q{AYl%mlO;r6=;~g(TSk(8ba!yA~n{h2&Eahz3hlDzJoLn^+OhmcT!P zk?Ob!j8rNi+Hb-(v8Y>Al`it0!C__v7>D7zt=cQMM7Tw8Yl0^Qp+m4tf_BN)?A5$w zdo{PDEJd5eu$)v%wec9m5Yyu|DQy4C)rFSILrfLH9x4ciEnSI$D<71>HG~rIZ4U0E z##C?Ojg$4!8a!%hui{rE&$<@kDg#Xu`jhu284r#x}qVnD2OPOj<)*}1>AC|>VJzf zY;`*L(iG<$sB#(DJ4ScY1?X@QdW_>+O=_ph#2HUu#VUYTCa%KEMcJ4C=cy44!~c*N z$}x!%xQ(D4skcVtNEZ;=L=aSi48$-uAz3av(Fd1!9*Em zZa4zlJV?y4x}*ga%CkN`6N+KW_Oa1)O&c_lXpCG0@`W2Zj>V+>c*{}{Ik8-cd?v*O zaWI|enH1>-V9@i%$XF5?IhWFf)Rc`_o}>U7#u+I> z&<$BE1}4dtkXAE|N-hsU7EH$m5JwgG&y_*kv1#)t=$RaN>_RyzGcVaBLr4Y#TStjI zj%El*@;q^@Uok{}j6hLrJan7Ep)Zqsk%{(EDDr?C0%>#uao{}!T$9Lg4TU2l&7?b) zov_EQN>zxTs7k(cj-M#8F+W+Eh6Fe}m}tiwLzof)L&2A@a%7VDNN_oPs1!cakSlOh zUX~^E5KthKXGht_e^)y?x}p7}z#pqJ`Rt%Re5@u?DV&?nnWkb1r*U$Fh}}<3#8M?c zKafZ$10Dty={-A98Z@jVd}GN(s}NEp(=|U)avYJ7S{9xweF{S=+jQdz1LX(lhz0|Z zL9L$AXiktDn=K$k2jw+oS~*Go1Jfd4nd>lQsMN=KF_xdqnD$M$RvJ3T;#+diVMI|r z%sgTlDK{Fi?r8z`dDcC*G26>Jv1}d5yHq^j-2f2!e{OCRvb;?1Io8cmRg8a*HP1jm z2khF2f|6%)ION$iC~#CBuqO!$cKtU6B*XoiJdN59*!AC(I96@2>#_Otf6k_vWAQ1L zzyd4s-)m4gHGZu@1A*RzO%Yec00(j%a+Ss>r(GqRW`dEH#iVczN=R*cG@s@taO9J6*-Wd~K{ zylc#+SrvV5Cda3_1j(nmG*@%8|LDmdP&Hs(sP0BomD)Ln7SUd6?w~+E4|4_lBdvPz z%}cD9CF-ItvlKhGiD!}bB@hcK&QJdmxBdP2ERW}0n=a2;GQ~N4j^I_OGc##+_fdv} zghg(-nD`3ofa6UoUSTCe!)}QSbFjfTA&W3;0~SjGC@sK3DFxAPVV)BU8{tp{L(hJd zwc;?^I={;L1NzmkViQ+bOnsGAQ0l`$>K8$(zJ+1)_&(8V3%i-_Pi$c`;Dp0cv8W*+ zApMY>6l@UFP*nMjn++XDa3t_WD2gJTAh@vTc!!3LM-WhyR5$}vkeMBW_Yv9m4C@>u zjFgg_;)o&d6`Vr^TjhKY66utIq`-}l=Cd?2oGh_mWJq)Q8p!3mBEqzF@_3UQDi;PU zn`6|0W+l3<76(0`#q6L5;CS>vOxwxI#SL3o*~ww>4$akHAw}jXW#o~P5V2jT2|%%Z zE9(#M>}U|M8p-fz1cJ1$WwS=eH35Yw3(c0LE|f;VSV=-#z_=zXYDldt<&O>?d+t}wZP!bSHv_c z&P|MTaWF)IlNOl5omok$83+Jb)|r(CY(}%ubeoB_+gN4utPu<_G#dj4ofN1gj2-!= z>vpgqV%!cE8o4C@R$swN*vL!oPJAUjW*}2n7N4( zZ{Wqk90$my+=EzaHQ$wJKsOwFYEVWV4ar3aj0ap4z@TBp7PenWi+C_f#K|(Vk+hKS zd0|0wr~K&FF@-1x86xp7Y!1q{C8F=KGg(qx@E$8UQ6koez5gR(`JqF^Ta0;~brXBv zV___v#?R6G-d$o7E{h82V5&_6aAjTuK?HVYeH!>x z&x_m~buw@~s8HV^fo8dU?-#t2EKQPQL7YR@2qb%MtQ!y~@!BL50Rav4g0KU}3w+wZ zbAzMPne~P(ft^AUOE7@5ll4DdHe%-*!G73it{KE8f{76&HVAwk2}4ZWiIw{{J8|qU z79gns+k7c01RK!6%2op!h+Q>BgLp^^JV~tlP$3dPeU|TenJ7smlcY=pC^6t|R`%!I zr2e&UG{#A40Nwftax$kY33WTIo^H90J5|UXPLbTZ>g=F5~Xb_S* zn^hbG>t3Qu8EX^C6d*#5%Jgktcc_>RC|%IKV&HAw6&O)jYyM#A*O zw_V8!92}t?q(NW=Rs;NeY-o@Y6t-Y=^uMtMbB=eu^J2kAY{>7L4go@tS(Sd&@HUzx zxwWH4))UqSIowuUK0HOz=jJzh<+cllcJ3+xVj%dW|y#V4I7Q`8;ak4 z%G^>g%lBB(2N`jG@E10Oc6@qUv7bW|3qEDD*vaC!1Ng+w$#th6VB14{)lYTqmuvve zWB*il+1KoE3=d-GA(o5oZbGZZtG91jV$ur&p7c%DfSUo7J|>-Ugd6iI~)`s*s@%?eYHm}wt2~ARGDmqVpIU=DZiKh#)nt#j{Kf*H(7yBRrf`CoO`bvXNItI@ zH$;HegJP)8JM&eKiGS$43*DDz-{01O?nY5;@DH&~`xk?kj`Uzld-^DkpI(O5Wcfh} zBAMfD+=3%*xpSi_PK{vQ%saS6l}r2bLl$rcuq(o=-m21BO?9->R$O87L1y)9s2l7| zUvKiuabVT8_@#xWm!Ta?2mdnG%ls{kz2jq2h7cCM{9%es7Edul?8RG&Sw)=UhK3<5 z4W@(`i=W(6sa-)Rh z%{_!zE+TmfJ_9U1i1GfgINQegiNNXNI1XzWVj^z+4d~7oEu~_&$er@II%ENM1@G<& zeCXiYXjhS4#K$VCQusK(?%}`_8~~%r3sXP$#d!;WJ`(2x3QS0mF!slf%40K4oa^we zte?2a;iuuY#Q_HWgr2}j&VJ&!1PIwr3{UXV6Z)mF;SV2}V)TXbQjfyUK*OQdoWXKC z91i5s#|I-`xKWO{I{}J4D$fYzNH9$#lKku>4i7tYf;fs3j%*ZWjUld0@@Y2CG?U0H z#>c#zWg=PtRBjbr3iu?RHpJ=zK8zW23;D@xy69KP#{$3FLOz}i7Tt!v~`Fq1FrPKO2d5$0F1Uil)azUbbJSD@l~&G;WN zE^C_c-gx`08UI5H=k!xiwLbrBViN4VA%wTTuwh6Ma#ac&M5MUEbop(;)F8Z2Mm2p z86Rfc^=#O~f9E^#Y#HRitzv%}_ZJLm6t>G)nu`~2R}J7=_Slsyfo{{t0NC* zU+(V7N3-1m3$?8{o&w z?CH%rG;2d5o7%zgmtOo-`ABDRTAj$<9B@eL*P8&>v%v9vDEf?17Wn8Bd7H@k*D<&t z!n_lC>r)R=-<;NDXg~!O!WO~#TPrvvV|z34-Kt9TeK8TY0uOWO!Oc_ImZu)YkrVl8 zUH3l^Dekl;{-a%bDxK^81b?i6YvL+Vq)qi68_bYDE2KhNt|i%}!^Y5d^oy0s(tj0j~s@(*4p z&iidpt?WGBma&Su0q65E63w;0=Ml#14~xhD0F6;04*vlrM1{EQkK7C1O6nf}BfllY z)`-(C;pgCX*CkNJYs5R3@H*VO{e=(5E%O)N7dQ7(eg$sRE=Bj&h_^45iOnwK7vl{* zDHgY0#yhYzbsKQwtX6^)*A3v!#E8q0Q5!(54WQNrP-_FIwE@)H0BWrusN%vws48LB z3c&oN?vzoyyX@EBuH>H*ed;d0ns3JUR#w-g$M6Y~gpwfZuH#Qr_6>jMvm_mnIzWv0 z2fu_;@v@z>C&f+UIDIO z3Xy&i_l)Po>=m(YJO=*Gx}D=;heSTm)DZrNx@ew(4WkKs_4cgx;$TXagCJ*Wn8u>tt`S-+Wly|x_a~bKm+131+|6}S)0H9 zl*MUvaT;Gk%>9aS)!e%<=M(7tNhd5`lvWpIYn1dyb#?KgC5uy_5lIeePhITtMT_VQ zU?|TPEyjN&q!n*N{<04aR01j@;kVC$3aVKw`cLMi;`+(_dT{8MlX+!^K4+zRT_GBQxazHj+fa$S z{8Uv19-jLic9$#V9DUSEm2yr>Yt^fj-?hpXE<|2E6>j*hl`2(5w(uGhrux~>WvSjF zDqN{FfNuB%mh&tIrwUt^Sq7FH$bxT9Y`%%7i{$Y=ykjcSUmt;fw5)^TyPJ6TR7oHF(fo{GzjsGcf>sN@_Krx*% zou6zzL@$BToid%DHn0u#gF6>^oP5lXw^Ht{2zm9dg2MRxySIlP0=jN~6}SX+^;Eg- zoc@$Sg-FccW7xsENi+C$tmRi6%Ve#CuWE&%A|ax7v`t|F1&yXPap6KS@LT*0_2-o|FMWt}#$gs2o$c{Ov| z(rG6A;zI%19)_T`>2X=NgaK5D01cT$gl+&KKAXkMm|bVg=3g^ri=S`f_`7tX^mhJ1 zChk49WdZ^$u-v?5tw)m;8TX!=OEDKZ!AqGq&55+S1sSAae}VVn`^sp1e-LS?0K&Ni zxs5CI*Txhmy5ntfrFIpqM zkRQjwY954@GYfw@f!IV+H+Tb4A*Ydzjjf8eK1XhFfhuXt#i}{{yb#{Qb&)&Z3zy<} zGi|w|(ZHAflX83%FtE$&2F~T0S@iybq_<-Mj;NMl=u+5si1(#+7u4{7GV{%6RP;Ld zbi^VUDiwA5V!n_?WIE>1iY0v7IcpXq!JJyEz>B63B43as&2?x#C5Dk$g2c&4gt@I@ z($A5lDWerKmdXrohb$dIVqYY_KfmslrTlnqZbb8eNnH2bef(XPO~4uT)?)QCiO%e_B2DwT3!FDA@q@c|)a4)8bOIPyaPyqf#6nH%ezH>SrK*<=*}6nyghqN zTvyAlDc$~T*iGgrk}~LH1$1&V?5q=f4eZ%|!dnCDv7fkO4Npa8JQtQ8%ceDaJ^Mji zx0c_@?i0>BJ{1k$xsLZh;+A!MB@!ppaSw@`>vD-Db@qDB7}DY!cy|;WumJ&rC&dlH z+y9~MO~9)tvWEZLUDdfsZk7%tB#;0%m$2`MfS{5F1O!xE$6cI3#lVb$z&N9lAgHJ~ z>=Y_GVNpO)aJ}wCWfT<^9aKQnsHmu@xS^vc|KF*;H$+Fj_x=9Q^NG3LUF)e+r%s(Z zb?VgJ54(eNo&=}DxxsCwdHEi<$TWGx?M9;D5xVam=G#ZmXVZ`(CPG_1au5k^YJmHT0bq)Da!?_!vz_5nHy30E0U@h3s{cbI2Tl|^HpEod-9k$M4 z(^8re^LfQ4@!*s0fJV*a zc2U_muyPq}aRIEct}@#S0sfraj{@T`N>Euf`=FrA)uaV(-iGmgkPh|5Kj9+9}w zh_?W$F;Bb4|1Y7CM$I%kpLXwYW|@C%L>QiB)^0@2HOoA+(e1$Fi;b>fA$-lhTyY2a z#J`ZX(BeJgCf(I*&6Cf#@xuDMY`+Kd!zajFf4BMe8Fw2AUwW3g;Yjnzv$)MU(pw(0FST^$a!NZDO4_)Ex7i{kq^e_mb+GbxaDVRVT{0E-wn^UYk+gE~w?V zeK2=jMxsS|Y3QQUMdFn^ELBDXX*JljE~C6OsOPsuJi&w+%#(uJNGY7tWQRnCc|um! zwuVL#R3gQFN1riw=J*<|g=lHC40Yy+%x*zDd}J@=jr4y5Vr)va# zZo(HwnM4L#)?+SGN*Z5UK6Fy93fZX3-4zl^OohF#3DksnW$_a46=V;UnS2YY?b#P5 zn0SUwjF)riCg*x6$WEs54ngvS7v0vbTfg31^0MV{AH3{d1Z*d7akubj_lo-@kKM1h zBk8f;ueyDCOnB8@!(+)-G=)RW)~&3*hnl{xxjk7tiQ^REdgv6)*Z+1`{#Lra**1lp zy^@!{CPG9fGvN)lRdIV}!kH+6JE8Yt&SNsQdnCzaZ@44cJ69$5{OsP5U%o)cT1B9K zW?$S;EfD`g$V=j~Clz4!vd=md(<(<|H)}));CehaawU=Q}tJu=L<#3m*>u6b(=HbW;fQv z0^vU;-s6DAzo{YUU+JKOsWzsAZgNdt3sr1>ELI)NF)dVKGQWlD+S$3q9C4H?an_qt zj#53{?KhZfk5ZkTrRIU7R5u>G>?7H9sLGA0N8QI;w-Z#kQ!Th#x)tQf z3uj5gm)i8p%Jj?X^b2QJ!!&iAXSBJH_&C{4_J!#*a?0FB?N7h#+Dpg=NwmA+Z4Ylb zVc=dHXm*^a+T)Of1G3fwi4*KhJ?m4?*_;BkYQwqdmxbwF`Z@13H?;fvag`hz;Ak)voc z>NHg$-l$pLWR}b72yfJ;`ZU$|pgU?-Qn;fwWv43qQJcM|sjfU)ovxZu?Cew3Al9ER zpQ1s6wQ6^&ScN;ewq5g8mud+qOu<>rP(9C72}GcrX|*e%4VKH{fYiDeGA{ zXqi95%sN+f?zcAqiWXyr#-R=2}_nMMy<+xo2(;tvgal$^u6*llm4hWw6h+{@KYxF1^68QVOLj@ zM%o~G*K#@C8K&-!s$__KVp?Z|lu zbyBV{6t2LD$da*xx#CaiL|lEn@+b8Nr`B{Fs}5dTPfW7T2_JdR4Bf5AT_nZRU+r4<^D(?W1m`TiI~shzQ=KQ{jCS=E4irhHf}Sn!?hRZLW#* zgq;XIzfN1#AS9HqGaqYykq6KvoKmIQWv+G-4)VY(GqXx129K~e!hFNU9;CNQcLXB) z436-B#8+OBij(5R`<+_}xudCsuwHY^(NaBXKCV(nciP#;EexHHyS!OD^m^BFLyrUjfImL`MEKhVED;2l}Y>el)(wFg4NT*_*Oe9%oHKCzg&xU?-+E;?USEFnrF{$q~ClK@GAY*`xFFh87;yC4XYBAAN0sD;1>*+YeKSZHWbe`bD+wj=H)-D zR7D)g`aHNGS8n8?SC)5;;N5uUY zGpmJ+8oN*AOiM!J%27}j#3#iO5lgY!elwDf$2S6Vg3oPtpA)fLG^zv&83jA`e>h4s6r$DppBGsu~PVi(z6nGgU1#y#uFC!C= zl8f)q{BRspv1Y(+b%y!pRMl)CCJaZ3$pY@BFoxxkiTQIZPk9+pC^0Aaf>WjMTc4U9 zQ+ZGwOvhcbI9tc|BTj{bFIE-R((lywHXWvanE+{;4u=Zp0$l!uR~`@uU^+a%>;zq9 zXgI-Jk)gSOODV(X)eO{n#fR=m{q0tkM+@7mwbO?Dn!O`jM)XK!kb?cTzMPUpv;3NO+rpoC*^i zHgp$9^H~+ICbm2*(6QT?K_-PjrP;PDs5BBA6e%y}#pMs}N_iA^27Ak^h`7_-%Je^g zu0ZE{kS~Q)@e7)WYd}pAMl7L)p;gO~U1>?snN@1Ui7+5ot@GU#Pf$^zoHT*`cTu6+ zM3@|VS(Fh8E}BTj9>YXwm1c4O0~m(`M{o|8HVT~xHU2O2Nw#;5nWQR;BTOWMG|K|A z8SQXQiF|dEYSa5cC%iDKjM;gRb<`ONvgK|J;ACqq$O31AWIBzA30NzXM~pL7wL5R1 zRFO&pLL$M9_kFn8Il5HlfXH3t#i;j#tdWpi@u2K!5Wag?dGmwV4+r$`&kCus%_Em! zd*R-dXg;X=s#7W2_B*`F-g1=!8Z#ECL8{{pMBy|7jWb?mTiW?VmaO#A^vd{`X2f05 zS<9_s|L5LoAcW(7SqhDHgJ<9WvR~L%+C^JgVNkg=yo5T6<0aD)T$6g2_)1Nb0{bbT zw0XSrau`8~zcVcU8lXFd_`G<@pa|%S_~*p&aF>Yzd`y6d1jQ2qZ>n5h_-wC0E5uuCTpfXOKaW81Uqoo2IIktdmg@S_V2guHq<80~DWr>nO&1bEmq~c4}p-jol z@0Ou7r)v*ZY3XxfoMkX$#f1rq-~|}PgW|JRSvW79DA#ZapU$F|V*gooYHGDBOjG(v z%CaXl)}haVhQinA@41qL0(YJ{X)zedy!j(>%>G{iiG@_ zSmY|}2nO~f!pAh(tHWBH{hbWdW3+ga=#jd*>rMo<;37Aks^X#!l10Yw|7gHXdlWW0lY#k z?Gles_L>r@8!vZL6U~@bNZevdyjj(xAPO~uJZ8%A?0a#l+mXnO$&)D70vJ2a+Bc;D z4LFuJJ_Mkl_=Ig&)1VG`Y8(V8C>{YqV6`Kmxx7_}vk2qMEcv_YQ=JRpMTcTI3hjuw zIa*Q&&lS?Yk0EV?%?ygc^OReK5Xp*YwTna%%hhy`r5MOTIv(fVAw6VR63F~t5E%wxn!9KKQB{>La5Z}kF82mCo{;}{bXN_LRZ<;$ zhz-?=-LMGD+3_rz7~XdNzibYz38^`R77vc1x|dnKJcNhJ?7Af_a~^JGO&f>gd3mB_ zbU5|`hHt#&gwjd5G6Hkyo_G<{JR>z*MlwW<`o>&)xhl;UvZtPK_!4;E<*Iye7Ia)y zj^@P*PvMG6)_~HRsl@UK;p3>R*sPG+RwPb;vr(56U!htb{dUatuE?k!9EsEnOy2>{ zmFtNSj-Y3D4xo7R#Vxujp5cG=@3t4V8)qfeP6?}MFL9Y6QMMGm4u8mTblTn z%?zeX!S?zDS`dj;V@X*(qBK8dzv9m9^mjaBTNsZlY6!7z?rJoGQk(`Z1Uok5do@fJ zQNyjj>c~8TBiBRzVVe~rPih=SLo(%>nbz&LcamiW-yJycqe8lhtHIBIb@arA z;V)lf1})EB82(xiD3Xe2rSbAVBo|!8U1`OJ`H9Hji*MW0XCbWPifYypvi{ z6{WC9NK#DEW5HLmzP4T+VmSZb=OUB9akHdooB4ZHExFTdl^r^~w*;G3So@w3>#?9N z`~<4#6A5qrA{Yr%%mS8h@Q|rNP5l9QHxLxzrj&lW(ye+zPUObjg$bQ%kh^dJc@Xy& zEFgHnLTRDIdxHxik;=;X&<5!-CBn+YtgKN3sxumJA%Wxsn##KQac{wbh4ZOetn(wk zM%m!w`b`}OW(PmhX5T{#=g$YySg<7pzRfW>Qb`IhJwKj#FO6wHxVIp#fo;Kp7;|1E zUJaE>Pk5xIE(aqgs-{NzZ+?Q2YsqE_j@soYO(xqM_eyIi!$l>#oOfCG{7Q{veZpI9LDRxXC) zb`;dqOryQd;K-z&AgBdqQiEqdvEfj#X<=S4xI`jAsk!({HM9!sGt?HaU?hIw`~?dv zwSXOHH7FMMt(HjTv_FH`Uus2$=o7JpvKydebT%Gg_Pfy-i}hj*)807m2&9t`05g&K zEQHk(##U?!N@7zjv`GYDfmA@IXQjahp~alf3c%4xq)kI9yi;2uW{geow3U;zOsU_*f&>6O>2K3OD|FiiEHyjFGW=P6l_;3T0+AhaW8Ws=7Q zm^|QAv_7yaf6pYYV}I2%$6u$qG!(*#gmfX|CL;Zw7Zwtghl0s55K@IaKp{g=3vyFM zJQFDg;f*efiW;X{vQsBlgV2#8;Z%)Gs8R?(ibW#NiSw09a3afp*0jG~1-&xL70r=$ zD;VW*P!To&{w5Sh0zMO%1Rsqh0R1h_BtYOz*Q?X=#6FO}k)>!u-rr}O*{Wh>8u%Qc zVsJ_PF}d7%C0bE0-87)HUKpS_ysxqOkS~PJ(SY%>a$!eE%A_zC&sHTR2=6+^aES>Q zU;&mnneoksshzEQ^{e?VD(sFmO+ITVX*SAmxle;cLG2@Q%VV$ygedv@>g$|ozMIch^B~i90TalX zX6yphkH;+wR8P*Nyu3gaW5E2;0`gUvlNYLvd{r;x>v8khLRFggzQb_~p-ln3y=k^c z4RXFUr!4}64@}J>)wa1@SVuH_qWfSa;X;vHj{L{X6N}UtrB$)mnZlWw-asF7LOjw@ z?FMoFho<*pwT<~AaM-hu1Y8`~JMP4|VFhzX+*R}RpOxNbhw~Z`73;?YC%cQ0gab@m zlvTz3j6CT}*^6X^WHzKr#j;cSl}%Tdeye{! zUd>%HlCYgX7)G;Y{IyM2PXp{*{nPQF#+77kC0Q5?g??j`u{CU8>hB|!(~v5R1U28< zRN%_K)ZZBwN~Np{DXTh+mF~02z=?gSUlk85Mr^7u4upJX6M+x=Qh!?qz1MuLYQB$1%OzSNM$V&Oa2$+?1L zKO~R3k+pE?)>j#CVzK?ayg*6(Tl*?PIa~SHE>(v*6=uUyHOs#Pneox^!bj}${6~_1 zxJ9jvy7kGVcN_b&*5GA-k)@ho=b_=VKK0y{dhSj=_oSYiQ_pRw=ibzFOX|5b^{j6a zmbW|g+?9Gh#D=;xetFCTV;hnyZdVgrch-ZZV2$dHQDSn~8s&LzGHH&zTgjoMd+uhA zxZiwzH!|LRX23f2ymOVwSg%GgbWdEbhVpgOdNrFz`+L-I0x!PD1}5)OW1X3%>|XUJ z9yRx>4khL0~7W2sJ;%CKc&(IKLJ3DKtY!>UDc-oxrW z<a>=UM8x;p0>HMaEGk8J`KEcm1$!Id8~k&@v0XH;v-z4IA0*md{rFnc$t=JJd^ zr^@Bo?K#y-p2t3?@G!W;T=ZNRe_bm6u2lSs v*r|I+RBj?b)JFMwq{|LKUBJxfM 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

Yjqo!q0N}5 zyR1}=eiv6R=deI_VIBa=S)&eqr69A;kgJ>sO%j_{u6VZ-^Kc1Sv7{7%ajZ1-W?YpK#5=e50OvC^{fgD?G zFYD$%-6U{wF#=fvp)ejDTsWL1$KcUY$(5^L2pm{=kw6Ir*4Rj@`lSa|wDS`|j{@Ms zI}%(k+$Yo&NaN0AI_Se9!D0bYZ@so3QeEBY?=pp;RiB5{VZ|R91|KvO#qU#ALRKW~ zWHMBU9q`Fk><6tMQVURq^!SH*i684>H3O60tcTUeocor9o2T`jhgD&0!xA%Y z+R?hvBe+0j=n;>oHc@9F4&t1#(N{g9PU})Kp1zIsci(Noz@t2c(e$gi&jP4odh=&5 zcE%>Mf?V`n^MY>wC=p?HzhD~Ee|l6cR*rzm(JiY`f;jrP zDm9&-x2n`>Hrczb!jR?Y^H!+~jbcg(JfC3@M^`ytul6q|7dTO}U%auy;^s%u`s_y6Y#NQpcdR3_nd^h2p9XPpfkX*{g4?RyW6f zS#toOZJ$Ne*+vh17A0egsvn-En^p_`>vQVnY_W|a+>2Zva`c_gtJmyJYpW)%RvRF7 z>=4~#3E}>V3aFuP4|MbiYt?b~vYmR-TGcWGYc8nbKfF`FyjHcM>95zSS>=_ldw!Pp zJztm>IV}AJ@Ofr3=ZnJoY&69$kL}do{q=pt_Bu|3rEq8kZwv z1~cGy5!ncdu)`NH>-##dH4WtBx~ν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 退出全屏;arrowUp -> 声音增加;arrowDown -> 声音减少; + */ + hotKey?: boolean; + /** + * 在使用MSE或者Webcodecs 播放H265的时候,是否自动降级到wasm模式。 + * 设置为false 则直接关闭播放,抛出Error 异常,设置为true 则会自动切换成wasm模式播放。 + */ + autoWasm?: boolean; + /** + * heartTimeout 心跳超时之后自动再播放,不再抛出异常,而直接重新播放视频地址。 + */ + heartTimeoutReplay?: boolean, + /** + * heartTimeoutReplay 从试次数,超过之后,不再自动播放 + */ + heartTimeoutReplayTimes?: number, + /** + * loadingTimeout loading之后自动再播放,不再抛出异常,而直接重新播放视频地址。 + */ + loadingTimeoutReplay?: boolean, + /** + * heartTimeoutReplay 从试次数,超过之后,不再自动播放 + */ + loadingTimeoutReplayTimes?: number + /** + * wasm解码报错之后,不再抛出异常,而是直接重新播放视频地址。 + */ + wasmDecodeErrorReplay?: boolean, + /** + * https://github.com/langhuihui/jessibuca/issues/152 解决方案 + * 例如:WebGL图像预处理默认每次取4字节的数据,但是540x960分辨率下的U、V分量宽度是540/2=270不能被4整除,导致绿屏。 + */ + openWebglAlignment?: boolean + } +} + + +declare class Jessibuca { + + constructor(config?: Jessibuca.Config); + + /** + * 是否开启控制台调试打印 + @example + // 开启 + jessibuca.setDebug(true) + // 关闭 + jessibuca.setDebug(false) + */ + setDebug(flag: boolean): void; + + /** + * 静音 + @example + jessibuca.mute() + */ + mute(): void; + + /** + * 取消静音 + @example + jessibuca.cancelMute() + */ + cancelMute(): void; + + /** + * 留给上层用户操作来触发音频恢复的方法。 + * + * iPhone,chrome等要求自动播放时,音频必须静音,需要由一个真实的用户交互操作来恢复,不能使用代码。 + * + * https://developers.google.com/web/updates/2017/09/autoplay-policy-changes + */ + audioResume(): void; + + /** + * + * 设置超时时长, 单位秒 + * 在连接成功之前和播放中途,如果超过设定时长无数据返回,则回调timeout事件 + + @example + jessibuca.setTimeout(10) + + jessibuca.on('timeout',function(){ + // + }); + */ + setTimeout(): void; + + /** + * @param mode + * 0 视频画面完全填充canvas区域,画面会被拉伸 等同于参数 `isResize` 为false + * + * 1 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边 等同于参数 `isResize` 为true + * + * 2 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全 等同于参数 `isFullResize` 为true + @example + jessibuca.setScaleMode(0) + + jessibuca.setScaleMode(1) + + jessibuca.setScaleMode(2) + */ + setScaleMode(mode: number): void; + + /** + * 暂停播放 + * + * 可以在pause 之后,再调用 `play()`方法就继续播放之前的流。 + @example + jessibuca.pause().then(()=>{ + console.log('pause success') + + jessibuca.play().then(()=>{ + + }).catch((e)=>{ + + }) + + }).catch((e)=>{ + console.log('pause error',e); + }) + */ + pause(): Promise; + + /** + * 关闭视频,不释放底层资源 + @example + jessibuca.close(); + */ + close(): void; + + /** + * 关闭视频,释放底层资源 + @example + jessibuca.destroy() + */ + destroy(): void; + + /** + * 清理画布为黑色背景 + @example + jessibuca.clearView() + */ + clearView(): void; + + /** + * 播放视频 + @example + + jessibuca.play('url').then(()=>{ + console.log('play success') + }).catch((e)=>{ + console.log('play error',e) + }) + // + jessibuca.play() + */ + play(url?: string): Promise; + + /** + * 重新调整视图大小 + */ + resize(): void; + + /** + * 设置最大缓冲时长,单位秒,播放器会自动消除延迟。 + * + * 等同于 `videoBuffer` 参数。 + * + @example + // 设置 200ms 缓冲 + jessibuca.setBufferTime(0.2) + */ + setBufferTime(time: number): void; + + /** + * 设置旋转角度,只支持,0(默认) ,180,270 三个值。 + * + * > 可用于实现监控画面小窗和全屏效果,由于iOS没有全屏API,此方法可以模拟页面内全屏效果而且多端效果一致。 * + @example + jessibuca.setRotate(0) + + jessibuca.setRotate(90) + + jessibuca.setRotate(270) + */ + setRotate(deg: number): void; + + /** + * + * 设置音量大小,取值0 — 1 + * + * > 区别于 mute 和 cancelMute 方法,虽然设置setVolume(0) 也能达到 mute方法,但是mute 方法是不调用底层播放音频的,能提高性能。而setVolume(0)只是把声音设置为0 ,以达到效果。 + * @param volume 当为0时,完全无声;当为1时,最大音量,默认值 + @example + jessibuca.setVolume(0.2) + + jessibuca.setVolume(0) + + jessibuca.setVolume(1) + */ + setVolume(volume: number): void; + + /** + * 返回是否加载完毕 + @example + var result = jessibuca.hasLoaded() + console.log(result) // true + */ + hasLoaded(): boolean; + + /** + * 开启屏幕常亮,在手机浏览器上, canvas标签渲染视频并不会像video标签那样保持屏幕常亮。 + * H5目前在chrome\edge 84, android chrome 84及以上有原生亮屏API, 需要是https页面 + * 其余平台为模拟实现,此时为兼容实现,并不保证所有浏览器都支持 + @example + jessibuca.setKeepScreenOn() + */ + setKeepScreenOn(): boolean; + + /** + * 全屏(取消全屏)播放视频 + @example + jessibuca.setFullscreen(true) + // + jessibuca.setFullscreen(false) + */ + setFullscreen(flag: boolean): void; + + /** + * + * 截图,调用后弹出下载框保存截图 + * @param filename 可选参数, 保存的文件名, 默认 `时间戳` + * @param format 可选参数, 截图的格式,可选png或jpeg或者webp ,默认 `png` + * @param quality 可选参数, 当格式是jpeg或者webp时,压缩质量,取值0 ~ 1 ,默认 `0.92` + * @param type 可选参数, 可选download或者base64或者blob,默认`download` + + @example + + jessibuca.screenshot("test","png",0.5) + + const base64 = jessibuca.screenshot("test","png",0.5,'base64') + + const fileBlob = jessibuca.screenshot("test",'blob') + */ + screenshot(filename?: string, format?: string, quality?: number, type?: string): void; + + /** + * 开始录制。 + * @param fileName 可选,默认时间戳 + * @param fileType 可选,默认webm,支持webm 和mp4 格式 + + @example + jessibuca.startRecord('xxx','webm') + */ + startRecord(fileName: string, fileType: string): void; + + /** + * 暂停录制并下载。 + @example + jessibuca.stopRecordAndSave() + */ + stopRecordAndSave(): void; + + /** + * 返回是否正在播放中状态。 + @example + var result = jessibuca.isPlaying() + console.log(result) // true + */ + isPlaying(): boolean; + + /** + * 返回是否静音。 + @example + var result = jessibuca.isMute() + console.log(result) // true + */ + isMute(): boolean; + + /** + * 返回是否正在录制。 + @example + var result = jessibuca.isRecording() + console.log(result) // true + */ + isRecording(): boolean; + + + /** + * 监听 jessibuca 初始化事件 + * @example + * jessibuca.on("load",function(){console.log('load')}) + */ + on(event: 'load', callback: () => void): void; + + /** + * 视频播放持续时间,单位ms + * @example + * jessibuca.on('timeUpdate',function (ts) {console.log('timeUpdate',ts);}) + */ + on(event: 'timeUpdate', callback: () => void): void; + + /** + * 当解析出视频信息时回调,2个回调参数 + * @example + * jessibuca.on("videoInfo",function(data){console.log('width:',data.width,'height:',data.width)}) + */ + on(event: 'videoInfo', callback: (data: { + /** 视频宽 */ + width: number; + /** 视频高 */ + height: number; + }) => void): void; + + /** + * 当解析出音频信息时回调,2个回调参数 + * @example + * jessibuca.on("audioInfo",function(data){console.log('numOfChannels:',data.numOfChannels,'sampleRate',data.sampleRate)}) + */ + on(event: 'audioInfo', callback: (data: { + /** 声频通道 */ + numOfChannels: number; + /** 采样率 */ + sampleRate: number; + }) => void): void; + + /** + * 信息,包含错误信息 + * @example + * jessibuca.on("log",function(data){console.log('data:',data)}) + */ + on(event: 'log', callback: () => void): void; + + /** + * 错误信息 + * @example + * jessibuca.on("error",function(error){ + if(error === Jessibuca.ERROR.fetchError){ + // + } + else if(error === Jessibuca.ERROR.webcodecsH265NotSupport){ + // + } + console.log('error:',error) + }) + */ + on(event: 'error', callback: (err: Jessibuca.ERROR) => void): void; + + /** + * 当前网速, 单位KB 每秒1次, + * @example + * jessibuca.on("kBps",function(data){console.log('kBps:',data)}) + */ + on(event: 'kBps', callback: (value: number) => void): void; + + /** + * 渲染开始 + * @example + * jessibuca.on("start",function(){console.log('start render')}) + */ + on(event: 'start', callback: () => void): void; + + /** + * 当设定的超时时间内无数据返回,则回调 + * @example + * jessibuca.on("timeout",function(error){console.log('timeout:',error)}) + */ + on(event: 'timeout', callback: (error: Jessibuca.TIMEOUT) => void): void; + + /** + * 当play()的时候,如果没有数据返回,则回调 + * @example + * jessibuca.on("loadingTimeout",function(){console.log('timeout')}) + */ + on(event: 'loadingTimeout', callback: () => void): void; + + /** + * 当播放过程中,如果超过timeout之后没有数据渲染,则抛出异常。 + * @example + * jessibuca.on("delayTimeout",function(){console.log('timeout')}) + */ + on(event: 'delayTimeout', callback: () => void): void; + + /** + * 当前是否全屏 + * @example + * jessibuca.on("fullscreen",function(flag){console.log('is fullscreen',flag)}) + */ + on(event: 'fullscreen', callback: () => void): void; + + /** + * 触发播放事件 + * @example + * jessibuca.on("play",function(flag){console.log('play')}) + */ + on(event: 'play', callback: () => void): void; + + /** + * 触发暂停事件 + * @example + * jessibuca.on("pause",function(flag){console.log('pause')}) + */ + on(event: 'pause', callback: () => void): void; + + /** + * 触发声音事件,返回boolean值 + * @example + * jessibuca.on("mute",function(flag){console.log('is mute',flag)}) + */ + on(event: 'mute', callback: () => void): void; + + /** + * 流状态统计,流开始播放后回调,每秒1次。 + * @example + * jessibuca.on("stats",function(s){console.log("stats is",s)}) + */ + on(event: 'stats', callback: (stats: { + /** 当前缓冲区时长,单位毫秒 */ + buf: number; + /** 当前视频帧率 */ + fps: number; + /** 当前音频码率,单位bit */ + abps: number; + /** 当前视频码率,单位bit */ + vbps: number; + /** 当前视频帧pts,单位毫秒 */ + ts: number; + }) => void): void; + + /** + * 渲染性能统计,流开始播放后回调,每秒1次。 + * @param performance 0: 表示卡顿,1: 表示流畅,2: 表示非常流程 + * @example + * jessibuca.on("performance",function(performance){console.log("performance is",performance)}) + */ + on(event: 'performance', callback: (performance: 0 | 1 | 2) => void): void; + + /** + * 录制开始的事件 + + * @example + * jessibuca.on("recordStart",function(){console.log("record start")}) + */ + on(event: 'recordStart', callback: () => void): void; + + /** + * 录制结束的事件 + + * @example + * jessibuca.on("recordEnd",function(){console.log("record end")}) + */ + on(event: 'recordEnd', callback: () => void): void; + + /** + * 录制的时候,返回的录制时长,1s一次 + + * @example + * jessibuca.on("recordingTimestamp",function(timestamp){console.log("recordingTimestamp is",timestamp)}) + */ + on(event: 'recordingTimestamp', callback: (timestamp: number) => void): void; + + /** + * 监听调用play方法 经过 初始化-> 网络请求-> 解封装 -> 解码 -> 渲染 一系列过程的时间消耗 + * @param event + * @param callback + */ + on(event: 'playToRenderTimes', callback: (times: { + playInitStart: number, // 1 初始化 + playStart: number, // 2 初始化 + streamStart: number, // 3 网络请求 + streamResponse: number, // 4 网络请求 + demuxStart: number, // 5 解封装 + decodeStart: number, // 6 解码 + videoStart: number, // 7 渲染 + playTimestamp: number,// playStart- playInitStart + streamTimestamp: number,// streamStart - playStart + streamResponseTimestamp: number,// streamResponse - streamStart + demuxTimestamp: number, // demuxStart - streamResponse + decodeTimestamp: number, // decodeStart - demuxStart + videoTimestamp: number,// videoStart - decodeStart + allTimestamp: number // videoStart - playInitStart + }) => void): void + + /** + * 监听方法 + * + @example + + jessibuca.on("load",function(){console.log('load')}) + */ + on(event: string, callback: Function): void; + +} + +export default Jessibuca; diff --git a/web_src/static/js/jessibuca/jessibuca.js b/web_src/static/js/jessibuca/jessibuca.js index bbe05d27..54abcbc7 100644 --- a/web_src/static/js/jessibuca/jessibuca.js +++ b/web_src/static/js/jessibuca/jessibuca.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).jessibuca=t()}(this,(function(){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t){return e(t={exports:{}},t.exports),t.exports}var i,o=t((function(e){e.exports=function(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e},e.exports.__esModule=!0,e.exports.default=e.exports})),r=(i=o)&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i;const A=0,n=1,s="flv",a="m7s",d={videoBuffer:1e3,isResize:!0,isFullResize:!1,isFlv:!1,debug:!1,hotKey:!1,loadingTimeout:10,heartTimeout:10,timeout:10,supportDblclickFullscreen:!1,showBandwidth:!1,keepScreenOn:!1,isNotMute:!1,hasAudio:!0,hasVideo:!0,operateBtns:{fullscreen:!1,screenshot:!1,play:!1,audio:!1,record:!1},hasControl:!1,loadingText:"",background:"",decoder:"decoder.js",url:"",rotate:0,forceNoOffscreen:!0,hiddenAutoPause:!1,protocol:n,demuxType:s,useWCS:!1,useMSE:!1,useOffscreen:!1},c="init",l="initVideo",u="render",h="playAudio",p="initAudio",m="audioCode",g="videoCode",f=1,b=2,y=8,v=9,w="init",S="decode",E="audioDecode",B="close",C={fullscreen:"fullscreen$2",webFullscreen:"webFullscreen",decoderWorkerInit:"decoderWorkerInit",play:"play",playing:"playing",pause:"pause",mute:"mute",load:"load",loading:"loading",videoInfo:"videoInfo",timeUpdate:"timeUpdate",audioInfo:"audioInfo",log:"log",error:"error",kBps:"kBps",timeout:"timeout",delayTimeout:"delayTimeout",loadingTimeout:"loadingTimeout",stats:"stats",performance:"performance",record:"record",recording:"recording",recordingTimestamp:"recordingTimestamp",recordStart:"recordStart",recordEnd:"recordEnd",recordCreateError:"recordCreateError",buffer:"buffer",videoFrame:"videoFrame",start:"start",metadata:"metadata",resize:"resize",streamEnd:"streamEnd",streamSuccess:"streamSuccess",streamMessage:"streamMessage",streamError:"streamError",volumechange:"volumechange",destroy:"destroy",mseSourceOpen:"mseSourceOpen",mseSourceClose:"mseSourceClose",mseSourceBufferError:"mseSourceBufferError",mseSourceBufferBusy:"mseSourceBufferBusy",videoWaiting:"videoWaiting",videoTimeUpdate:"videoTimeUpdate",videoSyncAudio:"videoSyncAudio",playToRenderTimes:"playToRenderTimes"},R={load:C.load,timeUpdate:C.timeUpdate,videoInfo:C.videoInfo,audioInfo:C.audioInfo,error:C.error,kBps:C.kBps,log:C.log,start:C.start,timeout:C.timeout,loadingTimeout:C.loadingTimeout,delayTimeout:C.delayTimeout,fullscreen:"fullscreen",play:C.play,pause:C.pause,mute:C.mute,stats:C.stats,performance:C.performance,recordingTimestamp:C.recordingTimestamp,recordStart:C.recordStart,recordEnd:C.recordEnd,playToRenderTimes:C.playToRenderTimes},k={playError:"playIsNotPauseOrUrlIsNull",fetchError:"fetchError",websocketError:"websocketError",webcodecsH265NotSupport:"webcodecsH265NotSupport",mediaSourceH265NotSupport:"mediaSourceH265NotSupport",wasmDecodeError:"wasmDecodeError"},T="notConnect",I="open",x="close",D="error",L={download:"download",base64:"base64",blob:"blob"},j={7:"H264(AVC)",12:"H265(HEVC)"},U=7,F=12,V={10:"AAC",7:"ALAW",8:"MULAW"},O=32,Q=33,M=34,W=0,G=1,J=2,N="mp4",z="webm",P="webcodecs",Y="webgl",H="offscreen",X="key",Z="delta",q='video/mp4; codecs="avc1.64002A"',K="ended",_="open",$="closed",ee=1e3,te=27,ie=38,oe=40;class re{constructor(e){this.log=function(t){if(e._opt.debug){for(var i=arguments.length,o=new Array(i>1?i-1:0),r=1;r1?i-1:0),r=1;r1?i-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:{};if(!e)return;if(Array.isArray(t))return t.map((t=>this.proxy(e,t,i,o)));e.addEventListener(t,i,o);const r=()=>e.removeEventListener(t,i,o);return this.destroys.push(r),r}destroy(){this.master.debug.log("Events","destroy"),this.destroys.forEach((e=>e()))}}var ne=t((function(e){!function(){var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},i=e.exports,o=function(){for(var e,i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=0,r=i.length,A={};o0&&void 0!==arguments[0]?arguments[0]:"";const t=e.split(","),i=atob(t[1]),o=t[0].replace("data:","").replace(";base64","");let r=i.length,A=new Uint8Array(r);for(;r--;)A[r]=i.charCodeAt(r);return new File([A],"file",{type:o})}function de(e,t){const i=document.createElement("a");i.download=t,i.href=URL.createObjectURL(e),i.click(),setTimeout((()=>{URL.revokeObjectURL(e)}),ge()?1e3:0)}function ce(){return(new Date).getTime()}function le(e,t,i){return Math.max(Math.min(e,Math.max(t,i)),Math.min(t,i))}function ue(e,t,i){if(e)return"object"==typeof t&&Object.keys(t).forEach((i=>{ue(e,i,t[i])})),e.style[t]=i,e}function he(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!e)return 0;const o=getComputedStyle(e,null).getPropertyValue(t);return i?parseFloat(o):o}function pe(){return performance&&"function"==typeof performance.now?performance.now():Date.now()}function me(e){let t=0,i=pe();return o=>{t+=o;const r=pe(),A=r-i;A>=1e3&&(e(t/A*1e3),i=r,t=0)}}function ge(){const e=window.navigator.userAgent.toLowerCase();return e&&/iphone|ipad|ipod|ios/.test(e)}function fe(e){if(null==e||""===e)return"0 KB/S";let t=parseFloat(e);return t=t.toFixed(2),t+"KB/S"}function be(e){return null==e}function ye(e){return!be(e)}ne.isEnabled,(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})();class ve{on(e,t,i){const o=this.e||(this.e={});return(o[e]||(o[e]=[])).push({fn:t,ctx:i}),this}once(e,t,i){const o=this;function r(){o.off(e,r);for(var A=arguments.length,n=new Array(A),s=0;s1?i-1:0),r=1;r{delete i[e]})),void delete this.e;const o=i[e],r=[];if(o&&t)for(let e=0,i=o.length;e{var t=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),i=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n"),o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,t),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS)||console.log("Vertex shader failed to compile: "+e.getShaderInfoLog(o));var r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(r,i),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)||console.log("Fragment shader failed to compile: "+e.getShaderInfoLog(r));var A=e.createProgram();e.attachShader(A,o),e.attachShader(A,r),e.linkProgram(A),e.getProgramParameter(A,e.LINK_STATUS)||console.log("Program failed to compile: "+e.getProgramInfoLog(A)),e.useProgram(A);var n=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);var s=e.getAttribLocation(A,"vertexPos");e.enableVertexAttribArray(s),e.vertexAttribPointer(s,2,e.FLOAT,!1,0,0);var a=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,a),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.STATIC_DRAW);var d=e.getAttribLocation(A,"texturePos");function c(t,i){var o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(e.getUniformLocation(A,t),i),o}e.enableVertexAttribArray(d),e.vertexAttribPointer(d,2,e.FLOAT,!1,0,0);var l=c("ySampler",0),u=c("uSampler",1),h=c("vSampler",2);return{render:function(t,i,o,r,A){e.viewport(0,0,t,i),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,l),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,t,i,0,e.LUMINANCE,e.UNSIGNED_BYTE,o),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,u),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,t/2,i/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,r),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,h),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,t/2,i/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,A),e.drawArrays(e.TRIANGLE_STRIP,0,4)},destroy:function(){try{e.deleteProgram(A),e.deleteBuffer(n),e.deleteBuffer(a),e.deleteTexture(l),e.deleteTexture(u),e.deleteBuffer(h)}catch(e){}}}})(this.contextGl);this.contextGlRender=e.render,this.contextGlDestroy=e.destroy}_initContext2D(){this.context2D=this.$videoElement.getContext("2d")}_initCanvasRender(){this.player._opt.useWCS&&!this._supportOffscreen()?(this.renderType=P,this._initContext2D()):this._supportOffscreen()?(this.renderType=H,this._bindOffscreen()):(this.renderType=Y,this._initContextGl())}_supportOffscreen(){return"function"==typeof this.$videoElement.transferControlToOffscreen&&this.player._opt.useOffscreen}_bindOffscreen(){this.bitmaprenderer=this.$videoElement.getContext("bitmaprenderer")}initCanvasViewSize(){this.$videoElement.width=this.videoInfo.width,this.$videoElement.height=this.videoInfo.height,this.resize()}render(e){switch(this.player.videoTimestamp=e.ts,this.renderType){case H:this.bitmaprenderer.transferFromImageBitmap(e.buffer);break;case Y:this.contextGlRender(this.$videoElement.width,this.$videoElement.height,e.output[0],e.output[1],e.output[2]);break;case P:this.context2D.drawImage(e.videoFrame,0,0,this.$videoElement.width,this.$videoElement.height)}}screenshot(e,t,i,o){e=e||ce(),o=o||L.download;const r={png:"image/png",jpeg:"image/jpeg",webp:"image/webp"};let A=.92;!r[t]&&L[t]&&(o=t,t="png",i=void 0),"string"==typeof i&&(o=i,i=void 0),void 0!==i&&(A=Number(i));const n=this.$videoElement.toDataURL(r[t]||r.png,A),s=ae(n);return o===L.base64?n:o===L.blob?s:void(o===L.download&&de(s,e))}clearView(){switch(this.renderType){case H:(function(e,t){const i=document.createElement("canvas");return i.width=e,i.height=t,createImageBitmap(i,0,0,e,t)})(this.$videoElement.width,this.$videoElement.height).then((e=>{this.bitmaprenderer.transferFromImageBitmap(e)}));break;case Y:this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);break;case P:this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height)}}resize(){this.player.debug.log("canvasVideo","resize");const e=this.player._opt,t=this.player.width;let i=this.player.height;e.hasControl&&(i-=38);let o=this.$videoElement.width,r=this.$videoElement.height;const A=e.rotate;let n=(t-o)/2,s=(i-r)/2;270!==A&&90!==A||(o=this.$videoElement.height,r=this.$videoElement.width);const a=t/o,d=i/r;let c=a>d?d:a;e.isResize||a!==d&&(c=a+","+d),e.isFullResize&&(c=a>d?a:d);let l="scale("+c+")";A&&(l+=" rotate("+A+"deg)"),this.$videoElement.style.transform=l,this.$videoElement.style.left=n+"px",this.$videoElement.style.top=s+"px"}}class Ee extends we{constructor(e){super(),this.player=e;const t=document.createElement("video");t.muted=!0,t.style.position="absolute",t.style.top=0,t.style.left=0,e.$container.appendChild(t),this.$videoElement=t,this.videoInfo={width:"",height:"",encType:""},this.resize();const{proxy:i}=this.player.events;i(this.$videoElement,"canplay",(()=>{this.player.debug.log("Video","canplay")})),i(this.$videoElement,"waiting",(()=>{this.player.emit(C.videoWaiting)})),i(this.$videoElement,"timeupdate",(e=>{})),this.player.debug.log("Video","init")}destroy(){this.player.$container.removeChild(this.$videoElement),this.$videoElement=null,this.init=!1,this.off(),this.player.debug.log("Video","destroy")}play(){this.$videoElement.play()}clearView(){}screenshot(e,t,i,o){e=e||ce(),o=o||L.download;let r=.92;!{png:"image/png",jpeg:"image/jpeg",webp:"image/webp"}[t]&&L[t]&&(o=t,t="png",i=void 0),"string"==typeof i&&(o=i,i=void 0),void 0!==i&&(r=Number(i));const A=this.$videoElement;let n=document.createElement("canvas");n.width=A.videoWidth,n.height=A.videoHeight;n.getContext("2d").drawImage(A,0,0,n.width,n.height);const s=n.toDataURL(L[t]||L.png,r),a=ae(s);return o===L.base64?s:o===L.blob?a:void(o===L.download&&de(a,e))}initCanvasViewSize(){this.resize()}resize(){this.$videoElement.width=this.player.width,this.$videoElement.height=this.player._opt.hasControl?this.player.height-38:this.player.height;const e=this.player._opt;let t="contain";const i=e.rotate;e.isResize||(t="fill"),e.isFullResize&&(t="none"),this.$videoElement.style.objectFit=t,this.$videoElement.style.transform="rotate("+i+"deg)"}}class Be{constructor(e){return new(Be.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.useMSE?Ee:Se}}class Ce extends ve{constructor(e){super(),this.bufferList=[],this.player=e,this.scriptNode=null,this.hasInitScriptNode=!1,this.audioContextChannel=null,this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.gainNode=this.audioContext.createGain();const t=this.audioContext.createBufferSource();t.buffer=this.audioContext.createBuffer(1,1,22050),t.connect(this.audioContext.destination),t.noteOn?t.noteOn(0):t.start(0),this.audioBufferSourceNode=t,this.mediaStreamAudioDestinationNode=this.audioContext.createMediaStreamDestination(),this.audioEnabled(!0),this.gainNode.gain.value=0,this.playing=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1,this.hasAudio=!1,this.on(C.videoSyncAudio,(e=>{this.player.debug.log("AudioContext",`videoSyncAudio , audioTimestamp: ${e.audioTimestamp},videoTimestamp: ${e.videoTimestamp},diff:${e.diff}`),this.audioSyncVideoOption=e})),this.player.debug.log("AudioContext","init")}destroy(){this.closeAudio(),this.audioContext.close(),this.audioContext=null,this.gainNode=null,this.init=!1,this.hasAudio=!1,this.playing=!1,this.scriptNode&&(this.scriptNode.onaudioprocess=se,this.scriptNode=null),this.audioBufferSourceNode=null,this.mediaStreamAudioDestinationNode=null,this.hasInitScriptNode=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.off(),this.player.debug.log("AudioContext","destroy")}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encType=V[e.encTypeCode]),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.emit(C.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return this.playing}get isMute(){return 0===this.gainNode.gain.value||this.isStateSuspended()}get volume(){return this.gainNode.gain.value}get bufferSize(){return this.bufferList.length}initScriptNode(){if(this.playing=!0,this.hasInitScriptNode)return;const e=this.audioInfo.channels,t=this.audioContext.createScriptProcessor(1024,0,e);t.onaudioprocess=t=>{const i=t.outputBuffer;if(this.bufferList.length&&this.playing){if(!this.player._opt.useWCS&&!this.player._opt.useMSE){if(this.audioSyncVideoOption.diff>ee)return void this.player.debug.warn("AudioContext",`audioSyncVideoOption more than diff :${this.audioSyncVideoOption.diff}, waiting`);if(this.audioSyncVideoOption.diff<-1e3){this.player.debug.warn("AudioContext",`audioSyncVideoOption less than diff :${this.audioSyncVideoOption.diff}, dropping`);let e=this.bufferList.shift();for(;e.ts-this.player.videoTimestamp<-1e3&&this.bufferList.length>0;)e=this.bufferList.shift();if(0===this.bufferList.length)return}}if(0===this.bufferList.length)return;const t=this.bufferList.shift();t&&t.ts&&(this.player.audioTimestamp=t.ts);for(let o=0;o20&&(this.player.debug.warn("AudioContext",`bufferList is large: ${this.bufferList.length}`),this.bufferList.length>50&&this.bufferList.shift()))}pause(){this.audioSyncVideoOption={diff:null},this.playing=!1,this.clear()}resume(){this.playing=!0}}class Re{constructor(e){return new(Re.getLoaderFactory())(e)}static getLoaderFactory(){return Ce}}class ke extends ve{constructor(e){super(),this.player=e,this.playing=!1,this.abortController=new AbortController,this.streamRate=me((t=>{e.emit(C.kBps,(t/1024).toFixed(2))})),e.debug.log("FetchStream","init")}destroy(){this.abort(),this.off(),this.streamRate=null,this.player.debug.log("FetchStream","destroy")}fetchStream(e){const{demux:t}=this.player;this.player._times.streamStart=ce(),fetch(e,{signal:this.abortController.signal}).then((e=>{const i=e.body.getReader();this.emit(C.streamSuccess);const o=()=>{i.read().then((e=>{let{done:i,value:r}=e;i?t.close():(this.streamRate&&this.streamRate(r.byteLength),t.dispatch(r),o())})).catch((e=>{t.close(),this.emit(k.fetchError,e),this.player.emit(C.error,k.fetchError),this.abort()}))};o()})).catch((e=>{this.abort(),this.emit(k.fetchError,e),this.player.emit(C.error,k.fetchError)}))}abort(){this.abortController&&(this.abortController.abort(),this.abortController=null)}}class Te extends ve{constructor(e){super(),this.player=e,this.socket=null,this.socketStatus=T,this.wsUrl=null,this.streamRate=me((t=>{e.emit(C.kBps,(t/1024).toFixed(2))}))}destroy(){this.socket&&(this.socket.close(),this.socket=null),this.socketStatus=T,this.streamRate=null,this.wsUrl=null,this.off(),this.player.debug.log("websocketLoader","destroy")}_createWebSocket(){const e=this.player,{debug:t,events:{proxy:i},demux:o}=e;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer",i(this.socket,"open",(()=>{this.emit(C.streamSuccess),t.log("websocketLoader","socket open"),this.socketStatus=I})),i(this.socket,"message",(e=>{this.streamRate&&this.streamRate(e.data.byteLength),this._handleMessage(e.data)})),i(this.socket,"close",(()=>{t.log("websocketLoader","socket close"),this.emit(C.streamEnd),this.socketStatus=x})),i(this.socket,"error",(e=>{t.log("websocketLoader","socket error"),this.emit(k.websocketError,e),this.player.emit(C.error,k.websocketError),this.socketStatus=D,o.close(),t.log("websocketLoader","socket error:",e)}))}_handleMessage(e){const{demux:t}=this.player;t?t.dispatch(e):this.player.debug.warn("websocketLoader","websocket handle message demux is null")}fetchStream(e){this.player._times.streamStart=ce(),this.wsUrl=e,this._createWebSocket()}}class Ie{constructor(e){return new(Ie.getLoaderFactory(e._opt.protocol))(e)}static getLoaderFactory(e){return e===n?ke:e===A?Te:void 0}}var xe=t((function(t){function i(e,t){if(!e)throw"First parameter is required.";t=new o(e,t=t||{type:"video"});var A=this;function n(i){i&&(t.initCallback=function(){i(),i=t.initCallback=null});var o=new r(e,t);(h=new o(e,t)).record(),u("recording"),t.disableLogs||console.log("Initialized recorderType:",h.constructor.name,"for output-type:",t.type)}function s(e){if(e=e||function(){},h){if("paused"===A.state)return A.resumeRecording(),void setTimeout((function(){s(e)}),1);"recording"===A.state||t.disableLogs||console.warn('Recording state should be: "recording", however current state is: ',A.state),t.disableLogs||console.log("Stopped recording "+t.type+" stream."),"gif"!==t.type?h.stop(i):(h.stop(),i()),u("stopped")}else m();function i(i){if(h){Object.keys(h).forEach((function(e){"function"!=typeof h[e]&&(A[e]=h[e])}));var o=h.blob;if(!o){if(!i)throw"Recording failed.";h.blob=o=i}if(o&&!t.disableLogs&&console.log(o.type,"->",b(o.size)),e){var r;try{r=l.createObjectURL(o)}catch(e){}"function"==typeof e.call?e.call(A,r):e(r)}t.autoWriteToDisk&&d((function(e){var i={};i[t.type+"Blob"]=e,x.Store(i)}))}else"function"==typeof e.call?e.call(A,""):e("")}}function a(e){postMessage((new FileReaderSync).readAsDataURL(e))}function d(e,i){if(!e)throw"Pass a callback function over getDataURL.";var o=i?i.blob:(h||{}).blob;if(!o)return t.disableLogs||console.warn("Blob encoder did not finish its job yet."),void setTimeout((function(){d(e,i)}),1e3);if("undefined"==typeof Worker||navigator.mozGetUserMedia){var r=new FileReader;r.readAsDataURL(o),r.onload=function(t){e(t.target.result)}}else{var A=function(e){try{var t=l.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(t);return l.revokeObjectURL(t),i}catch(e){}}(a);A.onmessage=function(t){e(t.data)},A.postMessage(o)}}function c(e){e=e||0,"paused"!==A.state?"stopped"!==A.state&&(e>=A.recordingDuration?s(A.onRecordingStopped):(e+=1e3,setTimeout((function(){c(e)}),1e3))):setTimeout((function(){c(e)}),1e3)}function u(e){A&&(A.state=e,"function"==typeof A.onStateChanged.call?A.onStateChanged.call(A,e):A.onStateChanged(e))}var h,p='It seems that recorder is destroyed or "startRecording" is not invoked for '+t.type+" recorder.";function m(){!0!==t.disableLogs&&console.warn(p)}var g={startRecording:function(i){return t.disableLogs||console.log("RecordRTC version: ",A.version),i&&(t=new o(e,i)),t.disableLogs||console.log("started recording "+t.type+" stream."),h?(h.clearRecordedData(),h.record(),u("recording"),A.recordingDuration&&c(),A):(n((function(){A.recordingDuration&&c()})),A)},stopRecording:s,pauseRecording:function(){h?"recording"===A.state?(u("paused"),h.pause(),t.disableLogs||console.log("Paused recording.")):t.disableLogs||console.warn("Unable to pause the recording. Recording state: ",A.state):m()},resumeRecording:function(){h?"paused"===A.state?(u("recording"),h.resume(),t.disableLogs||console.log("Resumed recording.")):t.disableLogs||console.warn("Unable to resume the recording. Recording state: ",A.state):m()},initRecorder:n,setRecordingDuration:function(e,t){if(void 0===e)throw"recordingDuration is required.";if("number"!=typeof e)throw"recordingDuration must be a number.";return A.recordingDuration=e,A.onRecordingStopped=t||function(){},{onRecordingStopped:function(e){A.onRecordingStopped=e}}},clearRecordedData:function(){h?(h.clearRecordedData(),t.disableLogs||console.log("Cleared old recorded data.")):m()},getBlob:function(){if(h)return h.blob;m()},getDataURL:d,toURL:function(){if(h)return l.createObjectURL(h.blob);m()},getInternalRecorder:function(){return h},save:function(e){h?y(h.blob,e):m()},getFromDisk:function(e){h?i.getFromDisk(t.type,e):m()},setAdvertisementArray:function(e){t.advertisement=[];for(var i=e.length,o=0;o-1&&"netscape"in window&&/ rv:/.test(navigator.userAgent),m=!h&&!u&&!!navigator.webkitGetUserMedia||v()||-1!==navigator.userAgent.toLowerCase().indexOf("chrome/"),g=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);g&&!m&&-1!==navigator.userAgent.indexOf("CriOS")&&(g=!1,m=!0);var f=window.MediaStream;function b(e){if(0===e)return"0 Bytes";var t=parseInt(Math.floor(Math.log(e)/Math.log(1e3)),10);return(e/Math.pow(1e3,t)).toPrecision(3)+" "+["Bytes","KB","MB","GB","TB"][t]}function y(e,t){if(!e)throw"Blob object is required.";if(!e.type)try{e.type="video/webm"}catch(e){}var i=(e.type||"video/webm").split("/")[1];if(-1!==i.indexOf(";")&&(i=i.split(";")[0]),t&&-1!==t.indexOf(".")){var o=t.split(".");t=o[0],i=o[1]}var r=(t||Math.round(9999999999*Math.random())+888888888)+"."+i;if(void 0!==navigator.msSaveOrOpenBlob)return navigator.msSaveOrOpenBlob(e,r);if(void 0!==navigator.msSaveBlob)return navigator.msSaveBlob(e,r);var A=document.createElement("a");A.href=l.createObjectURL(e),A.download=r,A.style="display:none;opacity:0;color:transparent;",(document.body||document.documentElement).appendChild(A),"function"==typeof A.click?A.click():(A.target="_blank",A.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))),l.revokeObjectURL(A.href)}function v(){return"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||(!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0)}function w(e,t){return e&&e.getTracks?e.getTracks().filter((function(e){return e.kind===(t||"audio")})):[]}function S(e,t){"srcObject"in t?t.srcObject=e:"mozSrcObject"in t?t.mozSrcObject=e:t.srcObject=e}void 0===f&&"undefined"!=typeof webkitMediaStream&&(f=webkitMediaStream),void 0!==f&&void 0===f.prototype.stop&&(f.prototype.stop=function(){this.getTracks().forEach((function(e){e.stop()}))}),i.invokeSaveAsDialog=y,i.getTracks=w,i.getSeekableBlob=function(e,t){if("undefined"==typeof EBML)throw new Error("Please link: https://www.webrtc-experiment.com/EBML.js");var i=new EBML.Reader,o=new EBML.Decoder,r=EBML.tools,A=new FileReader;A.onload=function(e){o.decode(this.result).forEach((function(e){i.read(e)})),i.stop();var A=r.makeMetadataSeekable(i.metadatas,i.duration,i.cues),n=this.result.slice(i.metadataSize),s=new Blob([A,n],{type:"video/webm"});t(s)},A.readAsArrayBuffer(e)},i.bytesToSize=b,i.isElectron=v;var E={};function B(){if(p||g||u)return!0;var e,t,i=navigator.userAgent,o=""+parseFloat(navigator.appVersion),r=parseInt(navigator.appVersion,10);return(m||h)&&(e=i.indexOf("Chrome"),o=i.substring(e+7)),-1!==(t=o.indexOf(";"))&&(o=o.substring(0,t)),-1!==(t=o.indexOf(" "))&&(o=o.substring(0,t)),r=parseInt(""+o,10),isNaN(r)&&(o=""+parseFloat(navigator.appVersion),r=parseInt(navigator.appVersion,10)),r>=49}function C(e,t){var i=this;if(void 0===e)throw'First argument "MediaStream" is required.';if("undefined"==typeof MediaRecorder)throw"Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder.";if("audio"===(t=t||{mimeType:"video/webm"}).type){var o;if(w(e,"video").length&&w(e,"audio").length)navigator.mozGetUserMedia?(o=new f).addTrack(w(e,"audio")[0]):o=new f(w(e,"audio")),e=o;t.mimeType&&-1!==t.mimeType.toString().toLowerCase().indexOf("audio")||(t.mimeType=m?"audio/webm":"audio/ogg"),t.mimeType&&"audio/ogg"!==t.mimeType.toString().toLowerCase()&&navigator.mozGetUserMedia&&(t.mimeType="audio/ogg")}var r,A=[];function n(){i.timestamps.push((new Date).getTime()),"function"==typeof t.onTimeStamp&&t.onTimeStamp(i.timestamps[i.timestamps.length-1],i.timestamps)}function s(e){return r&&r.mimeType?r.mimeType:e.mimeType||"video/webm"}function a(){A=[],r=null,i.timestamps=[]}this.getArrayOfBlobs=function(){return A},this.record=function(){i.blob=null,i.clearRecordedData(),i.timestamps=[],d=[],A=[];var o=t;t.disableLogs||console.log("Passing following config over MediaRecorder API.",o),r&&(r=null),m&&!B()&&(o="video/vp8"),"function"==typeof MediaRecorder.isTypeSupported&&o.mimeType&&(MediaRecorder.isTypeSupported(o.mimeType)||(t.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",o.mimeType),o.mimeType="audio"===t.type?"audio/webm":"video/webm"));try{r=new MediaRecorder(e,o),t.mimeType=o.mimeType}catch(t){r=new MediaRecorder(e)}o.mimeType&&!MediaRecorder.isTypeSupported&&"canRecordMimeType"in r&&!1===r.canRecordMimeType(o.mimeType)&&(t.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",o.mimeType)),r.ondataavailable=function(e){if(e.data&&d.push("ondataavailable: "+b(e.data.size)),"number"!=typeof t.timeSlice)!e.data||!e.data.size||e.data.size<100||i.blob?i.recordingCallback&&(i.recordingCallback(new Blob([],{type:s(o)})),i.recordingCallback=null):(i.blob=t.getNativeBlob?e.data:new Blob([e.data],{type:s(o)}),i.recordingCallback&&(i.recordingCallback(i.blob),i.recordingCallback=null));else if(e.data&&e.data.size&&(A.push(e.data),n(),"function"==typeof t.ondataavailable)){var r=t.getNativeBlob?e.data:new Blob([e.data],{type:s(o)});t.ondataavailable(r)}},r.onstart=function(){d.push("started")},r.onpause=function(){d.push("paused")},r.onresume=function(){d.push("resumed")},r.onstop=function(){d.push("stopped")},r.onerror=function(e){e&&(e.name||(e.name="UnknownError"),d.push("error: "+e),t.disableLogs||(-1!==e.name.toString().toLowerCase().indexOf("invalidstate")?console.error("The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.",e):-1!==e.name.toString().toLowerCase().indexOf("notsupported")?console.error("MIME type (",o.mimeType,") is not supported.",e):-1!==e.name.toString().toLowerCase().indexOf("security")?console.error("MediaRecorder security error",e):"OutOfMemory"===e.name?console.error("The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"IllegalStreamModification"===e.name?console.error("A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"OtherRecordingError"===e.name?console.error("Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"GenericError"===e.name?console.error("The UA cannot provide the codec or recording option that has been requested.",e):console.error("MediaRecorder Error",e)),function(e){if(!i.manuallyStopped&&r&&"inactive"===r.state)return delete t.timeslice,void r.start(6e5);setTimeout(void 0,1e3)}(),"inactive"!==r.state&&"stopped"!==r.state&&r.stop())},"number"==typeof t.timeSlice?(n(),r.start(t.timeSlice)):r.start(36e5),t.initCallback&&t.initCallback()},this.timestamps=[],this.stop=function(e){e=e||function(){},i.manuallyStopped=!0,r&&(this.recordingCallback=e,"recording"===r.state&&r.stop(),"number"==typeof t.timeSlice&&setTimeout((function(){i.blob=new Blob(A,{type:s(t)}),i.recordingCallback(i.blob)}),100))},this.pause=function(){r&&"recording"===r.state&&r.pause()},this.resume=function(){r&&"paused"===r.state&&r.resume()},this.clearRecordedData=function(){r&&"recording"===r.state&&i.stop(a),a()},this.getInternalRecorder=function(){return r},this.blob=null,this.getState=function(){return r&&r.state||"inactive"};var d=[];this.getAllStates=function(){return d},void 0===t.checkForInactiveTracks&&(t.checkForInactiveTracks=!1);i=this;!function o(){if(r&&!1!==t.checkForInactiveTracks)return!1===function(){if("active"in e){if(!e.active)return!1}else if("ended"in e&&e.ended)return!1;return!0}()?(t.disableLogs||console.log("MediaStream seems stopped."),void i.stop()):void setTimeout(o,1e3)}(),this.name="MediaStreamRecorder",this.toString=function(){return this.name}}function R(e,t){if(!w(e,"audio").length)throw"Your stream has no audio tracks.";var o,r=this,A=[],n=[],s=!1,a=0,d=2,c=(t=t||{}).desiredSampRate;function u(){if(!1===t.checkForInactiveTracks)return!0;if("active"in e){if(!e.active)return!1}else if("ended"in e&&e.ended)return!1;return!0}function h(e,t){function i(e,t){var i,o=e.numberOfAudioChannels,r=e.leftBuffers.slice(0),A=e.rightBuffers.slice(0),n=e.sampleRate,s=e.internalInterleavedLength,a=e.desiredSampRate;function d(e,t,i){var o=Math.round(e.length*(t/i)),r=[],A=Number((e.length-1)/(o-1));r[0]=e[0];for(var n=1;n96e3)&&(t.disableLogs||console.log("sample-rate must be under range 22050 and 96000.")),t.disableLogs||t.desiredSampRate&&console.log("Desired sample-rate: "+t.desiredSampRate);var y=!1;function v(){A=[],n=[],a=0,E=!1,s=!1,y=!1,p=null,r.leftchannel=A,r.rightchannel=n,r.numberOfAudioChannels=d,r.desiredSampRate=c,r.sampleRate=b,r.recordingLength=a,B={left:[],right:[],recordingLength:0}}function S(){o&&(o.onaudioprocess=null,o.disconnect(),o=null),m&&(m.disconnect(),m=null),v()}this.pause=function(){y=!0},this.resume=function(){if(!1===u())throw"Please make sure MediaStream is active.";if(!s)return t.disableLogs||console.log("Seems recording has been restarted."),void this.record();y=!1},this.clearRecordedData=function(){t.checkForInactiveTracks=!1,s&&this.stop(S),S()},this.name="StereoAudioRecorder",this.toString=function(){return this.name};var E=!1;o.onaudioprocess=function(e){if(!y)if(!1===u()&&(t.disableLogs||console.log("MediaStream seems stopped."),o.disconnect(),s=!1),s){E||(E=!0,t.onAudioProcessStarted&&t.onAudioProcessStarted(),t.initCallback&&t.initCallback());var i=e.inputBuffer.getChannelData(0),c=new Float32Array(i);if(A.push(c),2===d){var l=e.inputBuffer.getChannelData(1),h=new Float32Array(l);n.push(h)}a+=f,r.recordingLength=a,void 0!==t.timeSlice&&(B.recordingLength+=f,B.left.push(c),2===d&&B.right.push(h))}else m&&(m.disconnect(),m=null)},p.createMediaStreamDestination?o.connect(p.createMediaStreamDestination()):o.connect(p.destination),this.leftchannel=A,this.rightchannel=n,this.numberOfAudioChannels=d,this.desiredSampRate=c,this.sampleRate=b,r.recordingLength=a;var B={left:[],right:[],recordingLength:0};function C(){s&&"function"==typeof t.ondataavailable&&void 0!==t.timeSlice&&(B.left.length?(h({desiredSampRate:c,sampleRate:b,numberOfAudioChannels:d,internalInterleavedLength:B.recordingLength,leftBuffers:B.left,rightBuffers:1===d?[]:B.right},(function(e,i){var o=new Blob([i],{type:"audio/wav"});t.ondataavailable(o),setTimeout(C,t.timeSlice)})),B={left:[],right:[],recordingLength:0}):setTimeout(C,t.timeSlice))}}function k(e,t){if("undefined"==typeof html2canvas)throw"Please link: https://www.webrtc-experiment.com/screenshot.js";(t=t||{}).frameInterval||(t.frameInterval=10);var i=!1;["captureStream","mozCaptureStream","webkitCaptureStream"].forEach((function(e){e in document.createElement("canvas")&&(i=!0)}));var o,r,A,n=!(!window.webkitRTCPeerConnection&&!window.webkitGetUserMedia||!window.chrome),s=50,a=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(n&&a&&a[2]&&(s=parseInt(a[2],10)),n&&s<52&&(i=!1),t.useWhammyRecorder&&(i=!1),i)if(t.disableLogs||console.log("Your browser supports both MediRecorder API and canvas.captureStream!"),e instanceof HTMLCanvasElement)o=e;else{if(!(e instanceof CanvasRenderingContext2D))throw"Please pass either HTMLCanvasElement or CanvasRenderingContext2D.";o=e.canvas}else navigator.mozGetUserMedia&&(t.disableLogs||console.error("Canvas recording is NOT supported in Firefox."));this.record=function(){if(A=!0,i&&!t.useWhammyRecorder){var e;"captureStream"in o?e=o.captureStream(25):"mozCaptureStream"in o?e=o.mozCaptureStream(25):"webkitCaptureStream"in o&&(e=o.webkitCaptureStream(25));try{var n=new f;n.addTrack(w(e,"video")[0]),e=n}catch(e){}if(!e)throw"captureStream API are NOT available.";(r=new C(e,{mimeType:t.mimeType||"video/webm"})).record()}else h.frames=[],u=(new Date).getTime(),l();t.initCallback&&t.initCallback()},this.getWebPImages=function(i){if("canvas"===e.nodeName.toLowerCase()){var o=h.frames.length;h.frames.forEach((function(e,i){var r=o-i;t.disableLogs||console.log(r+"/"+o+" frames remaining"),t.onEncodingCallback&&t.onEncodingCallback(r,o);var A=e.image.toDataURL("image/webp",1);h.frames[i].image=A})),t.disableLogs||console.log("Generating WebM"),i()}else i()},this.stop=function(e){A=!1;var o=this;i&&r?r.stop(e):this.getWebPImages((function(){h.compile((function(i){t.disableLogs||console.log("Recording finished!"),o.blob=i,o.blob.forEach&&(o.blob=new Blob([],{type:"video/webm"})),e&&e(o.blob),h.frames=[]}))}))};var d=!1;function c(){h.frames=[],A=!1,d=!1}function l(){if(d)return u=(new Date).getTime(),setTimeout(l,500);if("canvas"===e.nodeName.toLowerCase()){var i=(new Date).getTime()-u;return u=(new Date).getTime(),h.frames.push({image:(o=document.createElement("canvas"),r=o.getContext("2d"),o.width=e.width,o.height=e.height,r.drawImage(e,0,0),o),duration:i}),void(A&&setTimeout(l,t.frameInterval))}var o,r;html2canvas(e,{grabMouse:void 0===t.showMousePointer||t.showMousePointer,onrendered:function(e){var i=(new Date).getTime()-u;if(!i)return setTimeout(l,t.frameInterval);u=(new Date).getTime(),h.frames.push({image:e.toDataURL("image/webp",1),duration:i}),A&&setTimeout(l,t.frameInterval)}})}this.pause=function(){d=!0,r instanceof C&&r.pause()},this.resume=function(){d=!1,r instanceof C?r.resume():A||this.record()},this.clearRecordedData=function(){A&&this.stop(c),c()},this.name="CanvasRecorder",this.toString=function(){return this.name};var u=(new Date).getTime(),h=new I.Video(100)}function T(e,t){function i(e){e=void 0!==e?e:10;var t=(new Date).getTime()-a;return t?A?(a=(new Date).getTime(),setTimeout(i,100)):(a=(new Date).getTime(),s.paused&&s.play(),l.drawImage(s,0,0,c.width,c.height),d.frames.push({duration:t,image:c.toDataURL("image/webp")}),void(r||setTimeout(i,e,e))):setTimeout(i,e,e)}function o(e,t,i,o,r){var A=document.createElement("canvas");A.width=c.width,A.height=c.height;var n,s,a,d=A.getContext("2d"),l=[],u=-1===t,h=t&&t>0&&t<=e.length?t:e.length,p=0,m=0,g=0,f=Math.sqrt(Math.pow(255,2)+Math.pow(255,2)+Math.pow(255,2)),b=i&&i>=0&&i<=1?i:0,y=o&&o>=0&&o<=1?o:0,v=!1;s=-1,a=(n={length:h,functionToLoop:function(t,i){var o,r,A,n=function(){!v&&A-o<=A*y||(u&&(v=!0),l.push(e[i])),t()};if(v)n();else{var s=new Image;s.onload=function(){d.drawImage(s,0,0,c.width,c.height);var e=d.getImageData(0,0,c.width,c.height);o=0,r=e.data.length,A=e.data.length/4;for(var t=0;t127)throw"TrackNumber > 127 not supported";return[128|e.trackNum,e.timecode>>8,255&e.timecode,t].map((function(e){return String.fromCharCode(e)})).join("")+e.frame}({discardable:0,frame:e.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(t)});return t+=e.duration,{data:i,id:163}})))}function i(e){for(var t=[];e>0;)t.push(255&e),e>>=8;return new Uint8Array(t.reverse())}function o(e){var t=[];e=(e.length%8?new Array(9-e.length%8).join("0"):"")+e;for(var i=0;i1?2*A[0].width:A[0].width;var s=1;3!==e&&4!==e||(s=2),5!==e&&6!==e||(s=3),7!==e&&8!==e||(s=4),9!==e&&10!==e||(s=5),r.height=A[0].height*s}else r.width=n.width||360,r.height=n.height||240;t&&t instanceof HTMLVideoElement&&u(t),A.forEach((function(e,t){u(e,t)})),setTimeout(l,n.frameInterval)}}function u(e,t){if(!o){var i=0,r=0,n=e.width,s=e.height;1===t&&(i=e.width),2===t&&(r=e.height),3===t&&(i=e.width,r=e.height),4===t&&(r=2*e.height),5===t&&(i=e.width,r=2*e.height),6===t&&(r=3*e.height),7===t&&(i=e.width,r=3*e.height),void 0!==e.stream.left&&(i=e.stream.left),void 0!==e.stream.top&&(r=e.stream.top),void 0!==e.stream.width&&(n=e.stream.width),void 0!==e.stream.height&&(s=e.stream.height),A.drawImage(e,i,r,n,s),"function"==typeof e.stream.onRender&&e.stream.onRender(A,i,r,n,s,t)}}function h(e){var i=document.createElement("video");return function(e,t){"srcObject"in t?t.srcObject=e:"mozSrcObject"in t?t.mozSrcObject=e:t.srcObject=e}(e,i),i.className=t,i.muted=!0,i.volume=0,i.width=e.width||n.width||360,i.height=e.height||n.height||240,i.play(),i}function p(t){i=[],(t=t||e).forEach((function(e){if(e.getTracks().filter((function(e){return"video"===e.kind})).length){var t=h(e);t.stream=e,i.push(t)}}))}void 0!==s?c.AudioContext=s:"undefined"!=typeof webkitAudioContext&&(c.AudioContext=webkitAudioContext),this.startDrawingFrames=function(){l()},this.appendStreams=function(t){if(!t)throw"First parameter is required.";t instanceof Array||(t=[t]),t.forEach((function(t){var o=new d;if(t.getTracks().filter((function(e){return"video"===e.kind})).length){var r=h(t);r.stream=t,i.push(r),o.addTrack(t.getTracks().filter((function(e){return"video"===e.kind}))[0])}if(t.getTracks().filter((function(e){return"audio"===e.kind})).length){var A=n.audioContext.createMediaStreamSource(t);n.audioDestination=n.audioContext.createMediaStreamDestination(),A.connect(n.audioDestination),o.addTrack(n.audioDestination.stream.getTracks().filter((function(e){return"audio"===e.kind}))[0])}e.push(o)}))},this.releaseStreams=function(){i=[],o=!0,n.gainNode&&(n.gainNode.disconnect(),n.gainNode=null),n.audioSources.length&&(n.audioSources.forEach((function(e){e.disconnect()})),n.audioSources=[]),n.audioDestination&&(n.audioDestination.disconnect(),n.audioDestination=null),n.audioContext&&n.audioContext.close(),n.audioContext=null,A.clearRect(0,0,r.width,r.height),r.stream&&(r.stream.stop(),r.stream=null)},this.resetVideoStreams=function(e){!e||e instanceof Array||(e=[e]),p(e)},this.name="MultiStreamsMixer",this.toString=function(){return this.name},this.getMixedStream=function(){o=!1;var t=function(){var e;p(),"captureStream"in r?e=r.captureStream():"mozCaptureStream"in r?e=r.mozCaptureStream():n.disableLogs||console.error("Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features");var t=new d;return e.getTracks().filter((function(e){return"video"===e.kind})).forEach((function(e){t.addTrack(e)})),r.stream=t,t}(),i=function(){c.AudioContextConstructor||(c.AudioContextConstructor=new c.AudioContext);n.audioContext=c.AudioContextConstructor,n.audioSources=[],!0===n.useGainNode&&(n.gainNode=n.audioContext.createGain(),n.gainNode.connect(n.audioContext.destination),n.gainNode.gain.value=0);var t=0;if(e.forEach((function(e){if(e.getTracks().filter((function(e){return"audio"===e.kind})).length){t++;var i=n.audioContext.createMediaStreamSource(e);!0===n.useGainNode&&i.connect(n.gainNode),n.audioSources.push(i)}})),!t)return;return n.audioDestination=n.audioContext.createMediaStreamDestination(),n.audioSources.forEach((function(e){e.connect(n.audioDestination)})),n.audioDestination.stream}();return i&&i.getTracks().filter((function(e){return"audio"===e.kind})).forEach((function(e){t.addTrack(e)})),e.forEach((function(e){e.fullcanvas})),t}}function j(e,t){e=e||[];var i,o,r=this;(t=t||{elementClass:"multi-streams-mixer",mimeType:"video/webm",video:{width:360,height:240}}).frameInterval||(t.frameInterval=10),t.video||(t.video={}),t.video.width||(t.video.width=360),t.video.height||(t.video.height=240),this.record=function(){var r;i=new L(e,t.elementClass||"multi-streams-mixer"),(r=[],e.forEach((function(e){w(e,"video").forEach((function(e){r.push(e)}))})),r).length&&(i.frameInterval=t.frameInterval||10,i.width=t.video.width||360,i.height=t.video.height||240,i.startDrawingFrames()),t.previewStream&&"function"==typeof t.previewStream&&t.previewStream(i.getMixedStream()),(o=new C(i.getMixedStream(),t)).record()},this.stop=function(e){o&&o.stop((function(t){r.blob=t,e(t),r.clearRecordedData()}))},this.pause=function(){o&&o.pause()},this.resume=function(){o&&o.resume()},this.clearRecordedData=function(){o&&(o.clearRecordedData(),o=null),i&&(i.releaseStreams(),i=null)},this.addStreams=function(r){if(!r)throw"First parameter is required.";r instanceof Array||(r=[r]),e.concat(r),o&&i&&(i.appendStreams(r),t.previewStream&&"function"==typeof t.previewStream&&t.previewStream(i.getMixedStream()))},this.resetVideoStreams=function(e){i&&(!e||e instanceof Array||(e=[e]),i.resetVideoStreams(e))},this.getMixer=function(){return i},this.name="MultiStreamRecorder",this.toString=function(){return this.name}}function U(e,t){var i,o,r;function A(){return new ReadableStream({start:function(o){var r=document.createElement("canvas"),A=document.createElement("video"),n=!0;A.srcObject=e,A.muted=!0,A.height=t.height,A.width=t.width,A.volume=0,A.onplaying=function(){r.width=t.width,r.height=t.height;var e=r.getContext("2d"),s=1e3/t.frameRate,a=setInterval((function(){if(i&&(clearInterval(a),o.close()),n&&(n=!1,t.onVideoProcessStarted&&t.onVideoProcessStarted()),e.drawImage(A,0,0),"closed"!==o._controlledReadableStream.state)try{o.enqueue(e.getImageData(0,0,t.width,t.height))}catch(e){}}),s)},A.play()}})}function n(e,a){if(!t.workerPath&&!a)return i=!1,void fetch("https://unpkg.com/webm-wasm@latest/dist/webm-worker.js").then((function(t){t.arrayBuffer().then((function(t){n(e,t)}))}));if(!t.workerPath&&a instanceof ArrayBuffer){var d=new Blob([a],{type:"text/javascript"});t.workerPath=l.createObjectURL(d)}t.workerPath||console.error("workerPath parameter is missing."),(o=new Worker(t.workerPath)).postMessage(t.webAssemblyPath||"https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm"),o.addEventListener("message",(function(e){"READY"===e.data?(o.postMessage({width:t.width,height:t.height,bitrate:t.bitrate||1200,timebaseDen:t.frameRate||30,realtime:t.realtime}),A().pipeTo(new WritableStream({write:function(e){i?console.error("Got image, but recorder is finished!"):o.postMessage(e.data.buffer,[e.data.buffer])}}))):e.data&&(r||s.push(e.data))}))}"undefined"!=typeof ReadableStream&&"undefined"!=typeof WritableStream||console.error("Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js"),(t=t||{}).width=t.width||640,t.height=t.height||480,t.frameRate=t.frameRate||30,t.bitrate=t.bitrate||1200,t.realtime=t.realtime||!0,this.record=function(){s=[],r=!1,this.blob=null,n(e),"function"==typeof t.initCallback&&t.initCallback()},this.pause=function(){r=!0},this.resume=function(){r=!1};var s=[];this.stop=function(e){i=!0;var t=this;!function(e){o?(o.addEventListener("message",(function(t){null===t.data&&(o.terminate(),o=null,e&&e())})),o.postMessage(null)):e&&e()}((function(){t.blob=new Blob(s,{type:"video/webm"}),e(t.blob)}))},this.name="WebAssemblyRecorder",this.toString=function(){return this.name},this.clearRecordedData=function(){s=[],r=!1,this.blob=null},this.blob=null}i.DiskStorage=x,i.GifRecorder=D,i.MultiStreamRecorder=j,i.RecordRTCPromisesHandler=function(e,t){if(!this)throw'Use "new RecordRTCPromisesHandler()"';if(void 0===e)throw'First argument "MediaStream" is required.';var o=this;o.recordRTC=new i(e,t),this.startRecording=function(){return new Promise((function(e,t){try{o.recordRTC.startRecording(),e()}catch(e){t(e)}}))},this.stopRecording=function(){return new Promise((function(e,t){try{o.recordRTC.stopRecording((function(i){o.blob=o.recordRTC.getBlob(),o.blob&&o.blob.size?e(i):t("Empty blob.",o.blob)}))}catch(e){t(e)}}))},this.pauseRecording=function(){return new Promise((function(e,t){try{o.recordRTC.pauseRecording(),e()}catch(e){t(e)}}))},this.resumeRecording=function(){return new Promise((function(e,t){try{o.recordRTC.resumeRecording(),e()}catch(e){t(e)}}))},this.getDataURL=function(e){return new Promise((function(e,t){try{o.recordRTC.getDataURL((function(t){e(t)}))}catch(e){t(e)}}))},this.getBlob=function(){return new Promise((function(e,t){try{e(o.recordRTC.getBlob())}catch(e){t(e)}}))},this.getInternalRecorder=function(){return new Promise((function(e,t){try{e(o.recordRTC.getInternalRecorder())}catch(e){t(e)}}))},this.reset=function(){return new Promise((function(e,t){try{e(o.recordRTC.reset())}catch(e){t(e)}}))},this.destroy=function(){return new Promise((function(e,t){try{e(o.recordRTC.destroy())}catch(e){t(e)}}))},this.getState=function(){return new Promise((function(e,t){try{e(o.recordRTC.getState())}catch(e){t(e)}}))},this.blob=null,this.version="5.6.2"},i.WebAssemblyRecorder=U}));class De extends ve{constructor(e){super(),this.player=e,this.fileName="",this.fileType=z,this.isRecording=!1,this.recordingTimestamp=0,this.recordingInterval=null,e.debug.log("Recorder","init")}destroy(){this._reset(),this.player.debug.log("Recorder","destroy")}setFileName(e,t){this.fileName=e,N!==t&&z!==t||(this.fileType=t)}get recording(){return this.isRecording}get recordTime(){return this.recordingTimestamp}startRecord(){const e=this.player.debug,t={type:"video",mimeType:"video/webm;codecs=h264",onTimeStamp:t=>{e.log("Recorder","record timestamp :"+t)},disableLogs:!this.player._opt.debug};try{const e=this.player.video.$videoElement.captureStream(25);if(this.player.audio.mediaStreamAudioDestinationNode&&this.player.audio.mediaStreamAudioDestinationNode.stream&&!this.player.audio.isStateSuspended()&&this.player.audio.hasAudio){const t=this.player.audio.mediaStreamAudioDestinationNode.stream;if(t.getAudioTracks().length>0){const i=t.getAudioTracks()[0];i&&i.enabled&&e.addTrack(i)}}this.recorder=xe(e,t)}catch(t){e.error("Recorder",t),this.emit(C.recordCreateError)}this.recorder&&(this.isRecording=!0,this.emit(C.recording,!0),this.recorder.startRecording(),e.log("Recorder","start recording"),this.player.emit(C.recordStart),this.recordingInterval=window.setInterval((()=>{this.recordingTimestamp+=1,this.player.emit(C.recordingTimestamp,this.recordingTimestamp)}),1e3))}stopRecordAndSave(){this.recorder&&this.isRecording&&this.recorder.stopRecording((()=>{this.player.debug.log("Recorder","stop recording"),this.player.emit(C.recordEnd),function(e,t,i){const o=window.URL.createObjectURL(e),r=document.createElement("a");r.href=o,r.download=(t||ce())+"."+(i||FILE_SUFFIX.webm),r.click(),setTimeout((()=>{window.URL.revokeObjectURL(o)}),ge()?1e3:0)}(this.recorder.getBlob(),this.fileName,this.fileType),this._reset(),this.emit(C.recording,!1)}))}_reset(){this.isRecording=!1,this.recordingTimestamp=0,this.recorder&&(this.recorder.destroy(),this.recorder=null),this.fileName=null,this.recordingInterval&&clearInterval(this.recordingInterval),this.recordingInterval=null}}class Le{constructor(e){return new(Le.getLoaderFactory())(e)}static getLoaderFactory(){return De}}class je{constructor(e){this.player=e,this.decoderWorker=new Worker(e._opt.decoder),this._initDecoderWorker(),e.debug.log("decoderWorker","init")}destroy(){this.decoderWorker.postMessage({cmd:B}),this.decoderWorker.terminate(),this.decoderWorker=null,this.player.debug.log("decoderWorker","destroy")}_initDecoderWorker(){const{debug:e,events:{proxy:t}}=this.player;this.decoderWorker.onmessage=t=>{const i=t.data;switch(i.cmd){case c:e.log("decoderWorker","onmessage:",c),this.player.loaded||this.player.emit(C.load),this.player.emit(C.decoderWorkerInit),this._initWork();break;case g:e.log("decoderWorker","onmessage:",g,i.code),this.player._times.decodeStart||(this.player._times.decodeStart=ce()),this.player.video.updateVideoInfo({encTypeCode:i.code});break;case m:e.log("decoderWorker","onmessage:",m,i.code),this.player.audio.updateAudioInfo({encTypeCode:i.code});break;case l:e.log("decoderWorker","onmessage:",l,`width:${i.w},height:${i.h}`),this.player.video.updateVideoInfo({width:i.w,height:i.h}),this.player.video.initCanvasViewSize();break;case p:e.log("decoderWorker","onmessage:",p,`channels:${i.channels},sampleRate:${i.sampleRate}`),this.player.audio.updateAudioInfo(i),this.player.audio.initScriptNode(i);break;case u:this.player.handleRender(),this.player.video.render(i),this.player.emit(C.timeUpdate,i.ts),this.player.updateStats({fps:!0,ts:i.ts,buf:i.delay}),this.player._times.videoStart||(this.player._times.videoStart=ce(),this.player.handlePlayToRenderTimes());break;case h:e.log("decoderWorker","onmessage:",h,`msg ts:${i.ts}`),this.player.playing&&this.player.audio.play(i.buffer,i.ts);break;default:this.player[i.cmd]&&this.player[i.cmd](i)}}}_initWork(){const e={debug:this.player._opt.debug,forceNoOffscreen:this.player._opt.forceNoOffscreen,useWCS:this.player._opt.useWCS,videoBuffer:this.player._opt.videoBuffer};this.decoderWorker.postMessage({cmd:w,opt:JSON.stringify(e),sampleRate:this.player.audio.audioContext.sampleRate})}decodeVideo(e,t,i){const o={type:b,ts:Math.max(t,0),isIFrame:i};this.decoderWorker.postMessage({cmd:S,buffer:e,options:o},[e.buffer])}decodeAudio(e,t){this.player._opt.useWCS&&!this.player._opt.useOffscreen||this.player._opt.useMSE?this._decodeAudioNoDelay(e,t):this._decodeAudio(e,t)}_decodeAudio(e,t){const i={type:f,ts:Math.max(t,0)};this.decoderWorker.postMessage({cmd:S,buffer:e,options:i},[e.buffer])}_decodeAudioNoDelay(e,t){this.decoderWorker.postMessage({cmd:E,buffer:e,ts:Math.max(t,0)},[e.buffer])}}class Ue extends ve{constructor(e){super(),this.player=e,this.stopId=null,this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.bufferList=[],this.dropping=!1,this.initInterval()}destroy(){this.stopId&&(clearInterval(this.stopId),this.stopId=null),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.bufferList=[],this.dropping=!1,this.off()}getDelay(e){return e?(this.firstTimestamp?e&&(this.delay=Date.now()-this.startTimestamp-(e-this.firstTimestamp)):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.delay):-1}resetDelay(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1}initInterval(){const e=this.player._opt.videoBuffer;this.player.debug.log("common dumex","init Interval");let t=()=>{let t;if(this.bufferList.length)if(this.dropping){for(t=this.bufferList.shift(),t.type===f&&0===t.payload[1]&&this._doDecoderDecode(t);!t.isIFrame&&this.bufferList.length;)t=this.bufferList.shift(),t.type===f&&0===t.payload[1]&&this._doDecoderDecode(t);t.isIFrame&&(this.dropping=!1,this._doDecoderDecode(t))}else if(t=this.bufferList[0],-1===this.getDelay(t.ts))this.bufferList.shift(),this._doDecoderDecode(t);else if(this.delay>e+1e3)this.resetDelay(),this.dropping=!0;else for(;this.bufferList.length&&(t=this.bufferList[0],this.getDelay(t.ts)>e);)this.bufferList.shift(),this._doDecoderDecode(t)};t(),this.stopId=setInterval(t,10)}_doDecode(e,t,i,o){const r=this.player,{decoderWorker:A}=r;let n={ts:i,type:t,isIFrame:!1};r._opt.useWCS&&!r._opt.useOffscreen||r._opt.useMSE?(t===b&&(n.isIFrame=o),this.pushBuffer(e,n)):t===b?A.decodeVideo(e,i,o):t===f&&A.decodeAudio(e,i)}_doDecoderDecode(e){const t=this.player,{decoderWorker:i,webcodecsDecoder:o,mseDecoder:r}=t;e.type===f?i.decodeAudio(e.payload,e.ts):e.type===b&&(t._opt.useWCS&&!t._opt.useOffscreen?o.decodeVideo(e.payload,e.ts,e.isIFrame):t._opt.useMSE&&r.decodeVideo(e.payload,e.ts,e.isIFrame))}pushBuffer(e,t){t.type===f?this.bufferList.push({ts:t.ts,payload:e,type:f}):t.type===b&&this.bufferList.push({ts:t.ts,payload:e,type:b,isIFrame:t.isIFrame})}close(){}}class Fe extends Ue{constructor(e){super(e),this.input=this._inputFlv(),this.flvDemux=this.dispatchFlvData(this.input),e.debug.log("FlvDemux","init")}destroy(){super.destroy(),this.input=null,this.flvDemux=null,this.player.debug.log("FlvDemux","destroy")}dispatch(e){this.flvDemux(e)}*_inputFlv(){yield 9;const e=new ArrayBuffer(4),t=new Uint8Array(e),i=new Uint32Array(e),o=this.player;for(;;){t[3]=0;const e=yield 15,r=e[4];t[0]=e[7],t[1]=e[6],t[2]=e[5];const A=i[0];t[0]=e[10],t[1]=e[9],t[2]=e[8];let n=i[0];16777215===n&&(t[3]=e[11],n=i[0]);const s=yield A;switch(r){case y:o._opt.hasAudio&&(o.updateStats({abps:s.byteLength}),s.byteLength>0&&this._doDecode(s,f,n));break;case v:if(o._times.demuxStart||(o._times.demuxStart=ce()),o._opt.hasVideo){o.updateStats({vbps:s.byteLength});const e=s[0]>>4==1;s.byteLength>0&&this._doDecode(s,b,n,e)}}}}dispatchFlvData(e){let t=e.next(),i=null;return o=>{let r=new Uint8Array(o);if(i){let e=new Uint8Array(i.length+r.length);e.set(i),e.set(r,i.length),r=e,i=null}for(;r.length>=t.value;){let i=r.slice(t.value);t=e.next(r.slice(0,t.value)),r=i}r.length>0&&(i=r)}}close(){this.input&&this.input.return(null)}}class Ve extends Ue{constructor(e){super(e),e.debug.log("M7sDemux","init")}destroy(){super.destroy(),this.player.debug.log("M7sDemux","destroy")}dispatch(e){const t=this.player,i=new DataView(e),o=i.getUint8(0),r=i.getUint32(1,!1);switch(o){case f:if(t._opt.hasAudio){const i=new Uint8Array(e,5);t.updateStats({abps:i.byteLength}),i.byteLength>0&&this._doDecode(i,o,r)}break;case b:if(t._opt.hasVideo&&(t._times.demuxStart||(t._times.demuxStart=ce()),i.byteLength>5)){const A=new Uint8Array(e,5),n=i.getUint8(5)>>4==1;t.updateStats({vbps:A.byteLength}),A.byteLength>0&&this._doDecode(A,o,r,n)}}}}class Oe{constructor(e){return new(Oe.getLoaderFactory(e._opt.demuxType))(e)}static getLoaderFactory(e){return e===a?Ve:e===s?Fe:void 0}}class Qe extends ve{constructor(e){super(),this.player=e,this.hasInit=!1,this.isInitInfo=!1,this.decoder=null,this.initDecoder(),e.debug.log("Webcodecs","init")}destroy(){this.decoder&&(this.decoder.close(),this.decoder=null),this.hasInit=!1,this.isInitInfo=!1,this.off(),this.player.debug.log("Webcodecs","destroy")}initDecoder(){const e=this;this.decoder=new VideoDecoder({output(t){e.handleDecode(t)},error(t){e.handleError(t)}})}handleDecode(e){this.isInitInfo||(this.player.video.updateVideoInfo({width:e.codedWidth,height:e.codedHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0),this.player._times.videoStart||(this.player._times.videoStart=ce(),this.player.handlePlayToRenderTimes()),this.player.handleRender(),this.player.video.render({videoFrame:e}),this.player.updateStats({fps:!0,ts:0,buf:this.player.demux.delay}),setTimeout((function(){e.close?e.close():e.destroy()}),100)}handleError(e){this.player.debug.log("Webcodecs","VideoDecoder handleError",e)}decodeVideo(e,t,i){if(this.hasInit){const o=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:i?X:Z});this.decoder.decode(o)}else if(i&&0===e[1]){const t=15&e[0];if(this.player.video.updateVideoInfo({encTypeCode:t}),t===F)return void this.emit(k.webcodecsH265NotSupport);this.player._times.decodeStart||(this.player._times.decodeStart=ce());const i=function(e){let t=e.subarray(1,4),i="avc1.";for(let e=0;e<3;e++){let o=t[e].toString(16);o.length<2&&(o="0"+o),i+=o}return{codec:i,description:e}}(e.slice(5));this.decoder.configure(i),this.hasInit=!0}}}const Me={play:"播放",pause:"暂停",audio:"",mute:"",screenshot:"截图",loading:"加载",fullscreen:"全屏",fullscreenExit:"退出全屏",record:"录制",recordStop:"停止录制"};var We=Object.keys(Me).reduce(((e,t)=>(e[t]=`\n \n ${Me[t]?`${Me[t]}`:""}\n`,e)),{}),Ge=(e,t)=>{const{events:{proxy:i}}=e,o=document.createElement("object");o.setAttribute("aria-hidden","true"),o.setAttribute("tabindex",-1),o.type="text/html",o.data="about:blank",ue(o,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});let r=e.width,A=e.height;i(o,"load",(()=>{i(o.contentDocument.defaultView,"resize",(()=>{e.width===r&&e.height===A||(r=e.width,A=e.height,e.emit(C.resize))}))})),e.$container.appendChild(o),e.on(C.destroy,(()=>{e.$container.removeChild(o)})),e.on(C.volumechange,(()=>{!function(e){if(0===e)ue(t.$volumeOn,"display","none"),ue(t.$volumeOff,"display","flex"),ue(t.$volumeHandle,"top","48px");else if(t.$volumeHandle&&t.$volumePanel){const i=he(t.$volumePanel,"height")||60,o=he(t.$volumeHandle,"height"),r=i-(i-o)*e-o;ue(t.$volumeHandle,"top",`${r}px`),ue(t.$volumeOn,"display","flex"),ue(t.$volumeOff,"display","none")}t.$volumePanelText&&(t.$volumePanelText.innerHTML=parseInt(100*e))}(e.volume)})),e.on(C.loading,(e=>{ue(t.$loading,"display",e?"flex":"none"),ue(t.$poster,"display","none"),e&&ue(t.$playBig,"display","none")}));try{const i=()=>{ue(t.$fullscreenExit,"display",e.fullscreen?"flex":"none"),ue(t.$fullscreen,"display",e.fullscreen?"none":"flex")};ne.on("change",i),e.events.destroys.push((()=>{ne.off("change",i)}))}catch(e){}e.on(C.recording,(()=>{ue(t.$record,"display",e.recording?"none":"flex"),ue(t.$recordStop,"display",e.recording?"flex":"none")})),e.on(C.recordingTimestamp,(e=>{})),e.on(C.playing,(e=>{ue(t.$play,"display",e?"none":"flex"),ue(t.$playBig,"display",e?"none":"block"),ue(t.$pause,"display",e?"flex":"none"),ue(t.$screenshot,"display",e?"flex":"none"),ue(t.$record,"display",e?"flex":"none"),ue(t.$fullscreen,"display",e?"flex":"none"),e||t.$speed&&(t.$speed.innerHTML=fe(""))})),e.on(C.kBps,(e=>{const i=fe(e);t.$speed&&(t.$speed.innerHTML=i)}))};function Je(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===i&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}Je('@keyframes rotation{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}.jessibuca-container .jessibuca-icon{cursor:pointer;width:16px;height:16px}.jessibuca-container .jessibuca-poster{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:contain;pointer-events:none}.jessibuca-container .jessibuca-play-big{position:absolute;display:none;height:100%;width:100%;background:rgba(0,0,0,.4);background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:50%;cursor:pointer;background-size:48px 48px}.jessibuca-container .jessibuca-play-big:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC")}.jessibuca-container .jessibuca-loading{display:none;flex-direction:column;justify-content:center;align-items:center;position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.jessibuca-container .jessibuca-loading-text{line-height:20px;font-size:13px;color:#fff;margin-top:10px}.jessibuca-container .jessibuca-controls{background-color:#161616;display:flex;flex-direction:column;justify-content:flex-end;position:absolute;z-index:40;left:0;right:0;bottom:0;height:38px;padding-left:13px;padding-right:13px;font-size:14px;color:#fff;opacity:0;visibility:hidden;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.jessibuca-container .jessibuca-controls .jessibuca-controls-item{position:relative;display:flex;justify-content:center;padding:0 8px}.jessibuca-container .jessibuca-controls .jessibuca-controls-item:hover .icon-title-tips{visibility:visible;opacity:1}.jessibuca-container .jessibuca-controls .jessibuca-fullscreen,.jessibuca-container .jessibuca-controls .jessibuca-fullscreen-exit,.jessibuca-container .jessibuca-controls .jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-microphone-close,.jessibuca-container .jessibuca-controls .jessibuca-pause,.jessibuca-container .jessibuca-controls .jessibuca-play,.jessibuca-container .jessibuca-controls .jessibuca-record,.jessibuca-container .jessibuca-controls .jessibuca-record-stop,.jessibuca-container .jessibuca-controls .jessibuca-screenshot{display:none}.jessibuca-container .jessibuca-controls .jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-icon-mute{z-index:1}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom{display:flex;justify-content:space-between;height:100%}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-left,.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-right{display:flex;align-items:center}.jessibuca-container.jessibuca-controls-show .jessibuca-controls{opacity:1;visibility:visible}.jessibuca-container.jessibuca-hide-cursor *{cursor:none!important}.jessibuca-container.jessibuca-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100%!important;height:100%!important;background:#000}.jessibuca-container .jessibuca-icon-loading{width:50px;height:50px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%;animation:rotation 1s linear infinite}.jessibuca-container .jessibuca-icon-screenshot{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAE5UlEQVRoQ+1YW2sdVRT+1s7JxbsoVkEUrIIX0ouz15zYNA+N1RdtQfCltlUfvLbqL/BCwZ8grbHtizQqPojgBSr0JkiMmT2nxgapqBURtPVCq7HxJCeZJVPmxDlzZubMmXOSEsnAvOy917fXt9e39tp7E5b4R0vcfywTuNgRbBgBx3HuJqLVzPzmYjprjHkcwAlmLqXNm4XAISLaSESPaq2HF4OE67rbRGRYRA7btn1fbgLGmKsA/Azg0gBkGzO/vZAkHMd5hIiqc5wHcCMz/5k0Z2oExsfHV1QqldPAf8lORNu11m8tBAljzFYAYWxRSl1vWdZvuQj4RsYYF4AVBlgIOVVlE55HRIxt23ZuCfmGjuOsJ6LPoiAistW27XfaEYmIbOYhPc9bXywWR1oiEJDYQkR1zrYjEjGyqfqbKd8a7kJVtLgQ+30i8pht2wfyRKIdmJkJBPkQTbILfudJ7CTZNBvVpggEcgpvc/ML38zESbLJsxBNE/A9biX0rdjGyTQXgbxyapdsarb0PMlXtWnGoXbKpm0Essqp3bJpK4E0OXmed3+hUBDP8w5FI91M0rdcyLLILElOCbaZilSWeXMncRx4klTCY1spfG3dhZJWx3GcDUR0EEB3ZMw0ET2gtT6SZWWzjmlrBIJCl0hAKfWgZVmHszqXZVxbCSxpCS2JJA6umIhe8ZKKVLPbaBJ+S9toqVRa53nedgAbAKwIwH4FcAzAa0R0l4i8F7PPz189k6RFRA+LyNcAXojDV0oNW5b1eW4Cxpg9AHZkSaaa6hhzb065uDSCH2LmRB8Sk9gY4293g43Qo/1pV80m8yQMfZSZ781cB1zXHRKRZ2IMpgD8A+DamL4ZItqitX4/jbQx5iEA7wLoihn3V/ACckWMJN/QWj9b1x5tGBsbW6uUOh5pPy0iL3Z2dn6ilJqanp5ep5TaJSLhF4NppdRNaU8gPmapVLrO87yfIoXuWyJ6uVKp+HmFjo6OQSJ6FcBtYT+UUmstyxqvkWuUgDFmP4AnQu2/e563qlgs+u9DNZ8xZhRAX7VRRPbath0XuXk7Y8xeAE+FgL6fnJzsHRwcLIfBR0ZGLunq6poAsDLUvp+Zw7b1r9PGmJMAbg8Z7WDmoThZuK67WkS+DD18fcPMdzSQUBR/EzN/nIC/SUQ+DPXV4dclsTHmHAD/SfHCNzc3t7Kvr++HJKeMMacA3BL0nyuXyzcPDAxMxo0fHR29slAo/Ajg6qD/fE9Pzw29vb1/x42fmJi4vFwu+5G/LOg/y8zXNJLQ2dAES5JANMQ7mfn1jBI6ycx3NiMhItqstf4oAX+ziHwQ6qvDj5NQNIn/ALCKmX+JSeIvABRD7fuY+ekGBPYBeDI05tTMzExvf3+/vz2Hk91/ET8RSeI6/DoCpVJpjed5fmKGvzMAXpqdnT3oed5Ud3d3v4jsAqBr9Ei0Rmv9VRqBBPzvROQVETnq2xJRdRu9tRF+bCVOKWT+Kvl/TSIFk6SW/LAjKfjV5K8rZABi8dOOEv7FI7Z8x6zwEWbemLbyMfJr5qiSiJ96oclymBOR3bZtP9+M89WxxpjdAHY2sN3DzM8ljWl4I3Nd9x7/OE1ENcdpETnmH3e11n41zv0l4J8RkU+J6AAz+xtF4teQQG7PFslwmcAiLfSyhC72Qv9/I/Avns2OT7QJskoAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-screenshot:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAED0lEQVRoQ+2ZycsdRRTFf2ejqHFAMQqiYBTUoElUHLNx3GgCgpuYRF2o0UT9CxwQ/BMkMSbZSKLiQgQHUDCJgjiAxiEiESdEcJbEedgcKaj3UV+/6q7u/jovPPkK3qbr1ql76p5bt6qemPKmKfefeQKHOoLFCNg+H1gi6fFJOmv7VmCvpD1N87Yh8ApwNXCzpB2TIGF7DRDm2inpmt4EbB8LfAMcGUHWSHryYJKwfRMwmuMP4BRJv9TN2RgB2wuB72BWsq+V9MTBIGF7NZBiGzhJ0o+9CIRBtt8FLqgADC6nRDbpVO9Iuqi3hCKB5cDrGZDVkp4aIhIV2aSQyyW9MScCkcQqIOfsnCORkc3I31b5VtyFRmg1IQ7dt0ja3icSQ2C2JhAjUU2ykd+dE7tBNp2i2olAJJFuc+nCt564QTadF6IzgUhiVGiqyinKaQjZpJP2ItBXTkPJZhACXeU0pGwGI9BWTkPLZlACBTldG4o5EA6E1dY66edcyNrs8Q36zg1vVaTazNs7iXPgDVJJzYs7VRvHRzaDEohyugJ4CTi84sg/wHWSdnVxsGQ7aQLXS9pZcqpL/6AEplpCU5HE8YpJ9YrXUKQ6baN1+HPaRm1fBqwFQnKGK2ZoPwCvAo8Ai4FnMpPMHMwapHUj8DFwbw3+Dklv9iZgexOwvktSRduxU2VDlErwmyXV+lCbxLbDdndlCT3TX3vV7JgnKfRuSVflfMkSsL0ZuDMz4E/gL+CETN+/wCpJzzaRtn0D8DRwWMbu1/gCcnSm7zFJd1W/jxGwvQx4r2IYnlbuA14GAomQFw8B6YtBKFSnNj2BxEJ3IvB1pdB9CjwQ8yqYhcg/DJxZ8WOZpA/SbzkC24DbEqOfgPMkBRKzmu23gEuSj1sk5SI3Y2J7C3BHMuZz4FxJf6fgto8APgIWJd+3SUrHjr9O294HnJUMWi8pSGqs2V4CvJ88fH0i6eyChKr4KyS9WIO/Ang+6RvDz0XgABCeFEdtkaQv65yy/QVweuwPY0+T9FuNQ8cAXwHHxf7wdHiypN9r7BfEl8GjYv9+SceXJLQ/mSDYTh2Baog3SHq0pYT2STqno4RWSnqhBn8l8FzSN4bfJol/jkn8bXUS228DFyfft0paVyCwFbg9sQkSDEkctueZZju8iO+tJPEYfo7A0piYKd73wP3xnB+20cvjNnphxdmlkj4sEMjhfwY8COyOY0fb6Bkl/K6FLKxS+M1KpDhJY8mvrG5doRwlf66QZfGbjhLh4pEt35kV3iUp/IvTunU8qtTil/7gaHOY2yjpntaez9b5RmBDYewmSXfX2RRvZLYvbThOh+NuqMa9Ww1+yLnXgO2SwkZR24oEens2oYHzBCa00PMSOtQL/f+NwH+Hg8hAnbrYgQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABA0lEQVRoQ+1YwQqCUBAcfWXXsLr2AXWTPXno8yVB8AP6Aa3oHI+kCDqYaawJljSe133uzO44bx0M/HEG/v1gAd9mkAyQgY4I/F8LJUlyrQFtD2AtIkcNoFEU+Z7n7QD4DfFHEVlocrVmgAUAIAOl3mILPcDgEFcUhyrUKMGUUcroc3NQRimj9XJBGaWMvvPydKN0o6/9QTdKN6rZANxj6EbpRulGuZnjYqs8BbyR8Ub2Izeys+u6yyAIDpo/ehzHM2NMDsA0xFsRmWhyfTIDWSXxCEBmrd2EYXjSHJqm6bQoii2AOYBL5Z0xgFxEVppcrQvQJO0zhgX0iXbdWWSADHRE4AZQ731AhEUeNwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAA7klEQVRoQ+2YSwrCQBBEX6HiVvxsPYDewfN7By/gD9ciQkvERQwJdBSiYs0mEDo96aruombEjy/9+P/jAj7NoBkwA28i8H8tFBFRA9oeWEo6ZgCNiDGwAYpn3TpKmmVytWbABQBmoNRbbqEHGB7iiuJYhRol2DJqGX1uDsuoZdRmLuNZSzGWUcuoZdRHSp/IylNgK2ErYSthK3FHwLcSvpXIjoLt9Jfa6TMwl3TIMBkRE2AH9BriL5KGmVyvWIltJXEfKN6tJJ0ym0bECFgDU+Ba+WZQFCdpkcnVuoBM0i5jXECXaNftZQbMwJsI3AAPN3dAQflHegAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC+UlEQVRoQ+1ZS2sTURT+zlDJYE3XSq219QHVuEjnJDT+Bff9Abqw2voAEfGxqygUqWhVFHGl/yMLu9BwByxk5SNI66ML6U7axjhHbmhgWiftncxoOiV3FcI53z3f/e65594zhIQPSnj86BBot4IdBToKRFyBnbeFlFIScVEiuYvIWC6Xe2YK8pcC7SYA4CMzH4mDQBXAqilQBDsLQLfPf9FxnF4i8kwwmypARI+Wl5dvmIBEsUmlUkNE9NaHsVCpVAZGR0d/m+A2JSAid3K53E0TkCg2pVKpz7KseR/GfKVSGYxMAMA0M1+JEpyJb6lUOm5ZVnkrAsVisaunp+esiByr1Wp3R0ZGvmifzZK4XQQWHMc52MgBpdQuAOcAXABwuB400ZTjONdaIjA7O5u2bVsnWU1EujzP+5nP5xdMVjvIJkCBD8x8VCm1G8AYgAkAAxt8Z5j5YmgCSqlTAJ4D2OcD/AXgATNfbYVEAIFPIvKKiE4D6GuCea8xX6gtpJT6DmBvECgRFRzHeROWRAABE4iWCbwHEFhkPM/L5vP5dyaz+23+KwHXdR3P854S0YG1ILSCuthNMfNM2OC1/RYENLY+ygcBnPfht6ZAA6BYLNr6dyqVokKhsGpaNQ2TWJstreXaE2aed133sojcj41AKyvdzCdAgSXLsk4MDw9/a/i4rntbRPxFNZoC/5jAV2be759DKTUJ4FZSFFi0bbs/k8noy2R9dAjEuWU2YgXkQOK3kD6BMsysi2Z9JC2Jdcw/ALzwPO+xvmcl7Rj177JVEbkO4BARjSflFDJJuW1dBxJPoCIiL4noDIB1BS0pW6j+oJmbm+uuVqvjRKQfLr0bZHnIzJf0f6HeAybahrUJqAPruhLlcnnPysqKfpXp11n/Gv62zoHAroS+AafT6QkiGrIsazKbzX7eVIHEt1US39gCkOzWYthkjNE+tuZujDGZQ8XRXn8N4KT5lLFZ6uaYPt+nwyDuvC80YdhvB9uOAu1WoaNAR4GIK/AHvdr+QAexB7EAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACfUlEQVRoQ+2ZSYsUQRCFvycK4nJXXEbHBdwO4kn/gv9CD467ICIutxEFkREdFUU86T/xojcPntyQcT2INw+uISFVkD1Wd2dWlU7nUHlqisiX+fJFZGREi8yHMt8/HYG5VrBToFOg4QnMPxcyM2t4KE2nT0i6EwvylwIjQOCFpE1tEPgGfI0FamC3AFgazP8IrJL0KwZzkAI3gLMxIA1ttgCPA4w3wHpJP2NwBxG4KOlcDEgTGzNbA8wEGP57vA0CU5JONtlczFwz2wY8HUbAzBYCB4CtwCVJb33OIAXmioC70LoyBsxsEXAQOApsLIhelnS6FgEzW+5BBvwA/FS+SPJFa40KBZ5L2mxmS4AJ4IjHxCzwaUnHkgmY2V7gLrAyAPwOXJN0qg6DCgIvgQfAPsDjo2pcKddLciEz+wCs6AO6W9KjVBIVBGIgahN4BvRLMjslPYlZPbT53wR2AbeBtcUmXEFPdh5U06mbd/shBBzbr/Jx4FCAX0+BEsDMFocEYrNmFcE+BD4XsXZL0oyZnQCutkagzkn3m1NBwDe/Q9L74MAuFEqUn5op8I8JvJO0elacTALnc1HAH3Njkvwx+WeYWUegTa/pwaqIgexdyIN4uyRPmqULZRXEvulPwD3gpr+zcrtGQxfzRHYG2AAczuUWiom3kc4D2RN4BdwH9gM9CS0XFyoLGu9UuN974eIFVDiuSzruH5LqgRhtU20q8kBPV8LMlhVVmVdnYwX+SMdAZVeieAF7eeltmElJr4cpkH1bJfvGVvatxdR4bMu+teZuWxtKxWncXn8I7EldtQV7vz79fp9KwZp//9CksB8F206BuVahU6BToOEJ/Ab7+KdABdTt8AAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAHTElEQVRoQ+1Zb4xcVRX/nZl5u2/LrrO0EFKoBYpVaRu3u/e+3WlDZJdIRLQhNLIiEggxqURIjGmqTTAmWiRpjH4wghq+KIQYupYQEvEDmEVdyu7OfbPbzQaEYqtSwTb4Z3aV7s6b9445mzvm7XRm3oy7oanZ82ny5txzz++ec8+/S7jIiS5y/bEG4EJbcJkFpqenryqXy6cbKBUB+AeANIBuAG8AuAzAn06ePOkNDw+H9dZOTU11h2H4EwB7ALwL4FIA7wFw7O9aSxkAE9H9SqnHazGc50LGGFFQlGuW/pbNZq/aunXrYtICY8xmAD8C8HEAnUn8sf9/oLX+SiKAQqFweRRFvwewvgbzmwA+BOAkgEsAZAG85rpubseOHaVmlTHGfBTAYwA6gKU7WCaiOWaWPT9mv1eLO6S1/mYiAGPMddYtUtXMRPRVx3F+FkXRup07d/7FGDMEYExrHTSrfIVvfHx8Uy6XO22MWae1fu/IkSPpbdu2pRcWFmpakYgeVEo92gyAdQCKADI1HZL581rrp4lIfHPV6Pjx45cEQfCvBgL3a62/nwhgZmbm0lKp9OeYf56rMqmc9v4oikb6+/v/uhoIGigvAUGChdBBrfXhRAD5fL6XiCZsZDhHRAeY+VBVlIiYeTQMw725XG5uJSDqKc/M9xDR1wFsF/lEdKdS6ulEABMTExvS6fQMgCsBhPPz825nZ+dnieinANrjApj5mSAI7t61a9fC/+JSDZS/t62t7WgQBH+0IVoA7GsqjDIz+b4vCyXcnSuXy9fmcrkz+Xz+TgB3ENHeqlN43HXdB7dv3x60AqKR8p7nPXHixIn2YrEo7itRipn5057n/SrRAhbA320eEAGbtdbvyvfJycn16XR6BIBEnzg9PD8//63BwcGwGRBJylcEG2MkbEtUFAS3NgVAmI0xkl23Wt/bppR6rSK0UChcGUXRcwBUFYjDWuuDSffBHpBk82XEzPfKyVc+Wlf+HQDJGQLgDs/zjiZawJrudQBXAzirlNpIRMs2nJiY+HA6nRYQH4kJ7NZaS/htSBLlgiB4jJnFJZeoWnn7jYwxDxCRJK/LmXnI87yXEgHEzHs2m81urlce5PP5fiL6BYAPAmhrJZmNjo5murq6ngdwcy3lK0rKYc7Nze1n5gNE9Cml1HgiAGviguu6A0nlge/7N83Nzf12aGionHTy1f+Pjo5KdBuOu00tGZKpmfmHAJ5oygJjY2Nd3d3di0nKt6rwSvjFK6Iocnp7e/+ZaIGVbHSh1q51ZBfq5Cv7rllgzQIrPIGLwoUkqdVLqssASCKbnp6+ure3VyrSRGLmVHWpkbioRYbx8fErHMcZbKofsGMVKRHu01pLc1+XJMGUSqXPEdGTrZQSIlAycVdX1+FSqXRw9+7dUvXWJFE+k8lI53e71vrZphKZMeYPMvvJZDK3SfNea1GsZpoH8EWl1NFmLTE7O9u2sLDwNoANAA65rvtwrcw/NTV1TRiGp2w/8AXP836eCMAWWicAXENEvymXy/sGBgakvP4v1ajnzzDzl7TWzyX1A1KquK4r7hkf2xxQSn2vem2sHwijKLqlv7//xUQAtpyW6YBMJUJm3hNvJBo0I3XL3fim1kVfAHB9/Dsz3+95nkztlsgClYr1BgBRKpW6oa+v75VEAMJgjDkrNbj8jndCzXZSSXfU930l/bRtWyvsC+KKAEYq98kYIzy3W4abtNajiQCsBQTAByzzsNZ6ZLWUrygwOTl5YyqVEgXjriQjzVcdx9nb09Nz1vf9F5j5EzK5Y+ZBz/NeTgRw7Nixjra2NpkLycBW5jK3OY7zUq2hU6NmJMkK8r/v+3uYWXrsZdMOAM86jnN3EAS/BjAgjgDgy1rrHycCsBNkCZ9X2DtwIxGNVS9cqfLWPalQKNzFzN8GcK2dQCxtRUTSxPQx827L+13P876WCMA27W8BOG82Wlm8GsrHZNHIyEhqy5YtvwTwyXqWI6KHlFKPJAKwYVSiULVZl9aupvJxZexIU+J8TRBE9B2l1DcSAdjLKneg1nh9fzabfbRYLG4qlUpvd3R0bCqXy7tOnTr1VKOHjVqb2jC5j4gmwzAM0+l0OgzDVCqVkvGhuO8yYuZHPM97KBGA7/vXM/O0TBpqMMvo+x17waWGkhLgMrGK1vrJpCRWkRcrD+STvCvIXiJLhgNdddzoAa21vCmcR8uKOWPMRgBSPrRSpcpY8T6l1FNJ0UfeBTKZjNyxlqg60cUXL1PUupBsIO9XMkqX96v4mFvcS0Z+Mg86TUTtzCxvCh1E9BmllPxXk+zrzxQRzTBzJxG5zCzuIjJ32DG+WCOuk1hFqoKlfNSMBWSU5zDzFnEPInqLmSWpbZANARzRWr8jQHt6ev4tAuX34uLi+iiKiknjdskzlepzdna2s729PSgWi24YhuszmYxn99sYRdHSGx0RnUmlUqf7+vqO1zuYVlylJbO/X8xrAN6vk15zoQt90v+3FvgPXUePXrKTg9MAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADd0lEQVRoQ+2Zz2sdVRTHv+fJBDW6anDVXen6wZszYxYBiYgtFGst3VSDunKjpS0GpUlqfjVpsVVs6aaL0or4YxMVFCJZ2ZLdPUP+gq5bQnTxtNAkfTnlhnnlkmQy9yV9780rudt77tzv5/y4v4bQ4Y06XD/2ANodwec/AiJygJnvtdvTWfPnRkBEJAiCN8rl8kMfiPn5+Ve7u7v3rays0Orq6lJfX99/PuN2auMDoAD+BvA2M6/mTWSMOUtE48D6AjHGzN/kjdlNvy+AnWOOmQ/lTSYiEwDOWzsimgrDcCRvzG76GwGw8/zJzO9sN6GInAMwbW1UdSSKoqndCMwb6wNwGsB39Q+p6h/M/C4R2dTa1AoHYBWKyCkA1+pqiWi2Wq0e7e/vf7yRoJAAKcQggMtuJKIoOtoxACnE0/xOi/SXMAxPuhCFjUBdpIjYVWXSEf0TM3/g9BeriDMKdSPEz8z8vrU1xgwT0YXCrEJZy1iSJKOqOub0/8jMA0mSfKKqNwoPkHp7ioiGHIhRIvpHVa93BEBa2JcAfOlALAHo6RgAKzRJkk9V1S6xL7kpV4idOM31taxaIKJHqmpPnMMA9hcOQES2PDJkAT1XAAC+ZebPfWB3auNzmLObVsNRUNUXVHUujuM7OxXnMy4XwOcj29mIyOuq+lapVGrYCelKpkEQ3CyXy4tbzdN0AGPMxr2iYZ+sra3FcRybtgCIiK2BKw2rdgaUSqWoUqlIkQAepFDdAF7cBq5ERI9rtdr1OI7tmE2t6SmUEYFHAEaexYW/1QC2EF+ru5GIvg7D0D2GNJxprQY4o6qv1I/b6SpzOYqiLxpWng5oOQAzXxWRWwA+dkRfYOb1p5hGW6sBJpn5KytSRG4D+KguWFXHoyhy7xdeLC0F2ChSRL4H8OFuINoKYIUbY34gogHH3eeZef1K6tPaDpCm068A3nMEDzHzxY4BUNWSiPxORO6z5aDPPlGICNQ9bYyZIaLjjudzIQoFkKbTbwCO+UI0HcB9J/LdeY0xs0R02IGYYObRrWqiFQCfEZEtSHsfmGZm+4qxbbM/hQD8BeBNa0hEM2EYnmgLgP3lFARBT1dXly4vL//b29tbzQNIU+llAHeJaLFSqRzJes5vegR8xGbZLCwsHKzVav8z8/0sm0ID+MDvAfh4qZk2exFopnd9vv0ELrXBQO7fD10AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC/ElEQVRoQ+2Zy49NQRCHvx+ReK6IlZ34E7CUiCAR4xEbTLCyQRATYswwb2IQZDYWgojHZpCQECts+ResiQwLj0RClNSkb9Lu3HtPz7mZc8+V6eXt6tP1VVV3VdcVbT7U5vozC9BqD/7/HjCzlZLet9rS9fbP9ICZvQPWSfqRAmFmS4ClMHm+JiR9S1mXVyYFwIBXwEZJv7I2MrPjQH8A6JN0OWtNM/OpAL7HS0mbsjYzswGgN8gNS+rJWtPM/HQAfJ9nkrY22tDMTgMjQaZH0nAzCmatTQE4ClyNPvQU2CbJQ2vKKB2Aa2hmR4DrkbbPgQ5Jv6sJSgkQILqA0dgTkjraBiBAxPHtPz2UtDuGKK0HKkqamd8qg5HS9yXtjebLdYjrHNRqiAeS9gQvnQGGSnML1bvGzOwc0BfN35PUaWYHgRulBwjW9ju+O4JwqM/AWFsABIgLwKkIYgJY1jYAAeJQuGIXVIVcKTKxh8WfBin9J+AVpx/eFWUEqFkyNACKp0rhgWYArkg6kQibSyylmPOklQdibijBX+fSLHFRJkDid+qKmdlaYENOI0zeEcBNSZ9qbVIEQHWuyGOTNZLetgrAz8ClPFpHa1ZL8rf5lFGEB2oBfAxQi4D5DeDmAP7mGJPka0oD4LnDr9imH/xFe8AP4vLIjBclxWXItCOtaIBjwOKo3HaFRyWdnLbmYUHhAJKumdkt4ECk9JCkSitmWixFAwxKOjt5uZvdBvZH2vZLit8XSSBFA/yjpJndAfY1A9FSgOCJu0BnBNErqfIkzfRCywECxCNgR6Rtt6TzmdqHBmyKXG4ZM4sTWc04NzNPWE+AuG3ZlZInSuGBinXMbBzYGVkrE6JUACGcHgPbUyGKAIj7REmZ18y897o5ghiQ5E/bltRChwE/kF7Xj0jyLkbDYWbzgBfA+iA4LmlXqwD8LydvszjAF0lfswBCKC0E3gBeP22p186f8RBKUbaejJmtAr5L+lBPptQAKfCzAClWmkmZWQ/MpHVTvv0X9iFAQGQyevIAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACrUlEQVRoQ+2ZPYgTURCAZzbBXJnCeL2Cnb87b9MEtPBUrrMQFAtrtT5/ClGs9LBWWz0RtbBUFCF4oJDsbO68wsLA2YqQSmLlvpEHu7IuMdlLcus+yUKKhJfZ+ebnvZl5CJY/aLn+MAP41x7M1QPMfFtr/crzvHfTAs8FoNPp1LTWzwHgqIg0lFLvrQHwfX8BER8DwC6jNCIecF13wwoA3/dvIuKNpLJa60Oe560XGoCZd4rICiKeTCtaeABmPg4AJmRqg6xcaABmvg4At4aFRyEBhoVM4UMoCplHADCfJTEL5YEsIVNID5iQAYCHALCYxeq5b6PMfF5EBAAEESthGK7W6/XPRpFWq7W3VCqtZg2ZcT3g+/6i4zjzIlLSWn/yPO/DIGMNLCWY2Sj/+xGRK0qpZfNDEASnROTFVi0fr8+aA8z8Ld6KEfGt67oLYwMAwEUium8EREn7OgeAjwCwPyo/nrque3YSgAtE9GDaAM1mc65arc4Zuf1+P2w0Gt9jJZl5DQAORt+fENG5wgEw8zUAMB/zbBBRwyqAIAjuiMjlSOlNItpjFUCqWl0josMzgChR/9hGAWBbknjmAdPhDdqa0gfZzAMJKyVP4v8hhJYRcSni+0JEu63ahZj5anyQici6UuqIVQDdbrfS6/UqRulyufyTiH5sF8AlIro37VpoWEHIzGZ2tM+sEZFnSqkzk9RCS0R01wjIsZz+mug53hDRia0AnI4bGgDYISItz/M2jYC8Gpp2u30MEWuO4zha665Sqp0ZYFStX/iWchRAItFGzoHSsrJ2ZFl1mHg6bfVYJeGJv85CC++BpIJZ5kSFC6G0ha0e7mYJqcJ7IOkRay84UhD2XjHFIFZf8iW9YcYoYRi+tO6aNeupOs66iU/icV46zf/MAKZpzXFk/QL+JG1PUPhRiQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACSElEQVRoQ+2Zu4sUQRCHf5+C+gf4yBXMfMYHGvjCzEBQDIzV+HwEohipGKupD0QNDE8UEwUFTe68wEDhTMVUMFJ+0tArzbjs9u3Ojt0wBR0M9MzUV1XdXVWNKhcq1189wP/2YKcesH1d0nPgdVvgnQDY3iTpqaT9kuaAt9UA2D4o6aGkzVHpXcByFQC2r0q60lB2D7BUNIDtjZIeSDoyRNGyAWwfiiET4n6YlAtg+7Kka2PCozyAMSHT5CkLIIbMfUlbMhdmOQCZIVOeB2LI3JN0NNPq6bTZe8D2aUmOY72kN8DnoIXt7eF5FSEzkQdsB+OEsFwr6RPwbpixhqYStoPyqVwAbkaAY5KeTWD5wStZHrD9XdJgK34FhBP9H8kFOAvciQBhn3/RAcBHSTvjfx4DJ6cBOAPcbRvA9gZJYQT5DfwYKGl7UdLu+PwIOFUiwCVJYQRZBuZqA7gh6XxUegXYVhtAmq0uAnt7gLhQm9vorBZx74Hcc6D3QLKH/z2JGyVnlYs4pCfzEe4rsLW2XehicpAtAftqAwiZbhhBfgE/ZwVwDrjddi40KiG0HXpHO+KcJ8CJaXKheeBWBOgqnf6W1BwvgcOrATieFDTrJL0HViJAVwXNgVgPrJH0BfiQDTDKtREiNK7KLSnHASQLLacP1PxcVkWWq8PU3emq2yqJJ0b1Qsv2QKpdZp+orBBqmrfq5m5mSJXtgUZI1XnB0YCo94opCal6L/ka3ghtlIXqrllzT9VJ5k19Ek/y0zbf6QHatOYk3/oDujC8QMWgjf4AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-text{font-size:14px;width:30px}.jessibuca-container .jessibuca-speed{font-size:14px;color:#fff}.jessibuca-container .jessibuca-quality-menu-list{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px}.jessibuca-container .jessibuca-quality-menu-list.jessibuca-quality-menu-shown{visibility:visible;opacity:1}.jessibuca-container .icon-title-tips{pointer-events:none;position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s ease 0s,opacity .3s ease 0s;background-color:rgba(0,0,0,.5);border-radius:4px}.jessibuca-container .icon-title{display:inline-block;padding:5px 10px;font-size:12px;white-space:nowrap;color:#fff}.jessibuca-container .jessibuca-quality-menu{padding:8px 0}.jessibuca-container .jessibuca-quality-menu-item{display:block;height:25px;margin:0;padding:0 10px;cursor:pointer;font-size:14px;text-align:center;width:50px;color:hsla(0,0%,100%,.5);transition:color .3s,background-color .3s}.jessibuca-container .jessibuca-quality-menu-item:hover{background-color:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-quality-menu-item:focus{outline:none}.jessibuca-container .jessibuca-quality-menu-item.jessibuca-quality-menu-item-active{color:#2298fc}.jessibuca-container .jessibuca-volume-panel-wrap{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%) translateY(22%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px;height:120px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-wrap.jessibuca-volume-panel-wrap-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-volume-panel{cursor:pointer;position:absolute;top:21px;height:60px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-text{position:absolute;left:0;top:0;width:50px;height:20px;line-height:20px;text-align:center;color:#fff;font-size:12px}.jessibuca-container .jessibuca-volume-panel-handle{position:absolute;top:48px;left:50%;width:12px;height:12px;border-radius:12px;margin-left:-6px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:before{bottom:-54px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:after{bottom:6px;background:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-volume-panel-handle:after,.jessibuca-container .jessibuca-volume-panel-handle:before{content:"";position:absolute;display:block;left:50%;width:3px;margin-left:-1px;height:60px}');class Ne{constructor(e){var t;this.player=e,((e,t)=>{e.$container.classList.add("jessibuca-controls-show");const i=e._opt,o=i.operateBtns;e.$container.insertAdjacentHTML("beforeend",`\n ${i.background?`

`:""}\n
\n ${We.loading}\n ${i.loadingText?`
${i.loadingText}
`:""}\n
\n ${i.hasControl&&o.play?'
':""}\n ${i.hasControl?`\n
\n
\n
\n ${i.showBandwidth?'
':""}\n
\n
\n ${o.audio?`\n
\n ${We.audio}\n ${We.mute}\n
\n
\n
\n
\n
\n
\n
\n `:""}\n ${o.play?`
${We.play}
${We.pause}
`:""}\n ${o.screenshot?`
${We.screenshot}
`:""}\n ${o.record?`
${We.record}
${We.recordStop}
`:""}\n ${o.fullscreen?`
${We.fullscreen}
${We.fullscreenExit}
`:""}\n
\n
\n
\n `:""}\n\n `),Object.defineProperty(t,"$poster",{value:e.$container.querySelector(".jessibuca-poster")}),Object.defineProperty(t,"$loading",{value:e.$container.querySelector(".jessibuca-loading")}),Object.defineProperty(t,"$play",{value:e.$container.querySelector(".jessibuca-play")}),Object.defineProperty(t,"$playBig",{value:e.$container.querySelector(".jessibuca-play-big")}),Object.defineProperty(t,"$pause",{value:e.$container.querySelector(".jessibuca-pause")}),Object.defineProperty(t,"$controls",{value:e.$container.querySelector(".jessibuca-controls")}),Object.defineProperty(t,"$fullscreen",{value:e.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(t,"$fullscreen",{value:e.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(t,"$volume",{value:e.$container.querySelector(".jessibuca-volume")}),Object.defineProperty(t,"$volumePanelWrap",{value:e.$container.querySelector(".jessibuca-volume-panel-wrap")}),Object.defineProperty(t,"$volumePanelText",{value:e.$container.querySelector(".jessibuca-volume-panel-text")}),Object.defineProperty(t,"$volumePanel",{value:e.$container.querySelector(".jessibuca-volume-panel")}),Object.defineProperty(t,"$volumeHandle",{value:e.$container.querySelector(".jessibuca-volume-panel-handle")}),Object.defineProperty(t,"$volumeOn",{value:e.$container.querySelector(".jessibuca-icon-audio")}),Object.defineProperty(t,"$volumeOff",{value:e.$container.querySelector(".jessibuca-icon-mute")}),Object.defineProperty(t,"$fullscreen",{value:e.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(t,"$fullscreenExit",{value:e.$container.querySelector(".jessibuca-fullscreen-exit")}),Object.defineProperty(t,"$record",{value:e.$container.querySelector(".jessibuca-record")}),Object.defineProperty(t,"$recordStop",{value:e.$container.querySelector(".jessibuca-record-stop")}),Object.defineProperty(t,"$screenshot",{value:e.$container.querySelector(".jessibuca-screenshot")}),Object.defineProperty(t,"$speed",{value:e.$container.querySelector(".jessibuca-speed")})})(e,this),Ge(e,this),t=this,Object.defineProperty(t,"controlsRect",{get:()=>t.$controls.getBoundingClientRect()}),((e,t)=>{const{events:{proxy:i},debug:o}=e;function r(e){const{bottom:i,height:o}=t.$volumePanel.getBoundingClientRect(),{height:r}=t.$volumeHandle.getBoundingClientRect();return le(i-e.y-r/2,0,o-r/2)/(o-r)}i(window,["click","contextmenu"],(i=>{i.composedPath().indexOf(e.$container)>-1?t.isFocus=!0:t.isFocus=!1})),i(window,"orientationchange",(()=>{setTimeout((()=>{e.resize()}),300)})),i(t.$controls,"click",(e=>{e.stopPropagation()})),i(t.$pause,"click",(t=>{e.pause()})),i(t.$play,"click",(t=>{e.play()})),i(t.$playBig,"click",(t=>{e.play()})),i(t.$volume,"mouseover",(()=>{t.$volumePanelWrap.classList.add("jessibuca-volume-panel-wrap-show")})),i(t.$volume,"mouseout",(()=>{t.$volumePanelWrap.classList.remove("jessibuca-volume-panel-wrap-show")})),i(t.$volumeOn,"click",(i=>{i.stopPropagation(),ue(t.$volumeOn,"display","none"),ue(t.$volumeOff,"display","block"),e.lastVolume=e.volume,e.volume=0})),i(t.$volumeOff,"click",(i=>{i.stopPropagation(),ue(t.$volumeOn,"display","block"),ue(t.$volumeOff,"display","none"),e.volume=e.lastVolume||.5})),i(t.$screenshot,"click",(t=>{t.stopPropagation(),e.video.screenshot()})),i(t.$volumePanel,"click",(t=>{t.stopPropagation(),e.volume=r(t)})),i(t.$volumeHandle,"mousedown",(()=>{t.isVolumeDroging=!0})),i(t.$volumeHandle,"mousemove",(i=>{t.isVolumeDroging&&(e.volume=r(i))})),i(document,"mouseup",(()=>{t.isVolumeDroging&&(t.isVolumeDroging=!1)})),i(t.$record,"click",(t=>{t.stopPropagation(),e.recording=!0})),i(t.$recordStop,"click",(t=>{t.stopPropagation(),e.recording=!1})),i(t.$fullscreen,"click",(t=>{t.stopPropagation(),e.fullscreen=!0})),i(t.$fullscreenExit,"click",(t=>{t.stopPropagation(),e.fullscreen=!1}))})(e,this),e._opt.hotKey&&((e,t)=>{const{events:{proxy:i}}=e,o={};function r(e,t){o[e]?o[e].push(t):o[e]=[t]}r(te,(()=>{e.fullscreen&&(e.fullscreen=!1)})),r(ie,(()=>{e.volume+=.05})),r(oe,(()=>{e.volume-=.05})),i(window,"keydown",(e=>{if(t.isFocus){const t=document.activeElement.tagName.toUpperCase(),i=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==i&&"true"!==i){const t=o[e.keyCode];t&&(e.preventDefault(),t.forEach((e=>e())))}}}))})(e,this),this.player.debug.log("Control","init")}destroy(){this.$poster&&this.player.$container.removeChild(this.$poster),this.$loading&&this.player.$container.removeChild(this.$loading),this.$controls&&this.player.$container.removeChild(this.$controls),this.player.debug.log("control","destroy")}autoSize(){const e=this.player;e.$container.style.padding="0 0";const t=e.width,i=e.height,o=t/i,r=e.audio.$videoElement.width/e.audio.$videoElement.height;if(o>r){const o=(t-i*r)/2;e.$container.style.padding=`0 ${o}px`}else{const o=(i-t/r)/2;e.$container.style.padding=`${o}px 0`}}}Je(".jessibuca-container{position:relative;width:100%;height:100%;overflow:hidden}.jessibuca-container.jessibuca-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100%!important;height:100%!important;background:#000}");class ze{static init(){ze.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};for(let e in ze.types)ze.types.hasOwnProperty(e)&&(ze.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let e=ze.constants={};e.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),e.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),e.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSC=e.STCO=e.STTS,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),e.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),e.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,o=Array.prototype.slice.call(arguments,1),r=o.length;for(let e=0;e>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let A=8;for(let e=0;e>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return ze.box(ze.types.trak,ze.tkhd(e),ze.mdia(e))}static tkhd(e){let t=e.id,i=e.duration,o=e.presentWidth,r=e.presentHeight;return ze.box(ze.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,o>>>8&255,255&o,0,0,r>>>8&255,255&r,0,0]))}static mdia(e){return ze.box(ze.types.mdia,ze.mdhd(e),ze.hdlr(e),ze.minf(e))}static mdhd(e){let t=e.timescale,i=e.duration;return ze.box(ze.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))}static hdlr(e){let t=null;return t="audio"===e.type?ze.constants.HDLR_AUDIO:ze.constants.HDLR_VIDEO,ze.box(ze.types.hdlr,t)}static minf(e){let t=null;return t="audio"===e.type?ze.box(ze.types.smhd,ze.constants.SMHD):ze.box(ze.types.vmhd,ze.constants.VMHD),ze.box(ze.types.minf,t,ze.dinf(),ze.stbl(e))}static dinf(){return ze.box(ze.types.dinf,ze.box(ze.types.dref,ze.constants.DREF))}static stbl(e){return ze.box(ze.types.stbl,ze.stsd(e),ze.box(ze.types.stts,ze.constants.STTS),ze.box(ze.types.stsc,ze.constants.STSC),ze.box(ze.types.stsz,ze.constants.STSZ),ze.box(ze.types.stco,ze.constants.STCO))}static stsd(e){return"audio"===e.type?ze.box(ze.types.stsd,ze.constants.STSD_PREFIX,ze.mp4a(e)):"avc"===e.videoType?ze.box(ze.types.stsd,ze.constants.STSD_PREFIX,ze.avc1(e)):ze.box(ze.types.stsd,ze.constants.STSD_PREFIX,ze.hvc1(e))}static mp4a(e){let t=e.channelCount,i=e.audioSampleRate,o=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return ze.box(ze.types.mp4a,o,ze.esds(e))}static esds(e){let t=e.config||[],i=t.length,o=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(t).concat([6,1,2]));return ze.box(ze.types.esds,o)}static avc1(e){let t=e.avcc;const i=e.codecWidth,o=e.codecHeight;let r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,o>>>8&255,255&o,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return ze.box(ze.types.avc1,r,ze.box(ze.types.avcC,t))}static hvc1(e){let t=e.avcc;const i=e.codecWidth,o=e.codecHeight;let r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,o>>>8&255,255&o,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return ze.box(ze.types.hvc1,r,ze.box(ze.types.hvcC,t))}static mvex(e){return ze.box(ze.types.mvex,ze.trex(e))}static trex(e){let t=e.id,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return ze.box(ze.types.trex,i)}static moof(e,t){return ze.box(ze.types.moof,ze.mfhd(e.sequenceNumber),ze.traf(e,t))}static mfhd(e){let t=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return ze.box(ze.types.mfhd,t)}static traf(e,t){let i=e.id,o=ze.box(ze.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),r=ze.box(ze.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),A=ze.sdtp(e),n=ze.trun(e,A.byteLength+16+16+8+16+8+8);return ze.box(ze.types.traf,o,r,n,A)}static sdtp(e){let t=new Uint8Array(5),i=e.flags;return t[4]=i.isLeading<<6|i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy,ze.box(ze.types.sdtp,t)}static trun(e,t){let i=new Uint8Array(28);t+=36,i.set([0,0,15,1,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);let o=e.duration,r=e.size,A=e.flags,n=e.cts;return i.set([o>>>24&255,o>>>16&255,o>>>8&255,255&o,r>>>24&255,r>>>16&255,r>>>8&255,255&r,A.isLeading<<2|A.dependsOn,A.isDependedOn<<6|A.hasRedundancy<<4|A.isNonSync,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n],12),ze.box(ze.types.trun,i)}static mdat(e){return ze.box(ze.types.mdat,e)}}ze.init();class Pe{constructor(e){this.TAG="ExpGolomb",this._buffer=e,this._buffer_index=0,this._total_bytes=e.byteLength,this._total_bits=8*e.byteLength,this._current_word=0,this._current_word_bits_left=0}destroy(){this._buffer=null}_fillCurrentWord(){let e=this._total_bytes-this._buffer_index,t=Math.min(4,e),i=new Uint8Array(4);i.set(this._buffer.subarray(this._buffer_index,this._buffer_index+t)),this._current_word=new DataView(i.buffer).getUint32(0,!1),this._buffer_index+=t,this._current_word_bits_left=8*t}readBits(e){if(e<=this._current_word_bits_left){let t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}let t=this._current_word_bits_left?this._current_word:0;t>>>=32-this._current_word_bits_left;let i=e-this._current_word_bits_left;this._fillCurrentWord();let o=Math.min(i,this._current_word_bits_left),r=this._current_word>>>32-o;return this._current_word<<=o,this._current_word_bits_left-=o,t=t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){let e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){let e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class Ye{static _ebsp2rbsp(e){let t=e,i=t.byteLength,o=new Uint8Array(i),r=0;for(let e=0;e=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(o[r]=t[e],r++);return new Uint8Array(o.buffer,0,r)}static parseSPS(e){let t=Ye._ebsp2rbsp(e),i=new Pe(t);i.readByte();let o=i.readByte();i.readByte();let r=i.readByte();i.readUEG();let A=Ye.getProfileString(o),n=Ye.getLevelString(r),s=1,a=420,d=[0,420,422,444],c=8;if((100===o||110===o||122===o||244===o||44===o||83===o||86===o||118===o||128===o||138===o||144===o)&&(s=i.readUEG(),3===s&&i.readBits(1),s<=3&&(a=d[s]),c=i.readUEG()+8,i.readUEG(),i.readBits(1),i.readBool())){let e=3!==s?8:12;for(let t=0;t0&&e<16?(v=t[e-1],w=o[e-1]):255===e&&(v=i.readByte()<<8|i.readByte(),w=i.readByte()<<8|i.readByte())}if(i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(4),i.readBool()&&i.readBits(24)),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool()){let e=i.readBits(32),t=i.readBits(32);E=i.readBool(),B=t,C=2*e,S=B/C}}let R=1;1===v&&1===w||(R=v/w);let k=0,T=0;if(0===s)k=1,T=2-m;else{k=3===s?1:2,T=(1===s?2:1)*(2-m)}let I=16*(h+1),x=16*(p+1)*(2-m);I-=(g+f)*k,x-=(b+y)*T;let D=Math.ceil(I*R);return i.destroy(),i=null,{profile_string:A,level_string:n,bit_depth:c,ref_frames:u,chroma_format:a,chroma_format_string:Ye.getChromaFormatString(a),frame_rate:{fixed:E,fps:S,fps_den:C,fps_num:B},sar_ratio:{width:v,height:w},codec_size:{width:I,height:x},present_size:{width:D,height:x}}}static _skipScalingList(e,t){let i=8,o=8,r=0;for(let A=0;A{this.mediaSourceOpen=!0,this.player.emit(C.mseSourceOpen)})),i(this.mediaSource,"sourceclose",(()=>{this.player.emit(C.mseSourceClose)})),e.debug.log("MediaSource","init")}destroy(){this.stop(),this.bufferList=[],this.mediaSource=null,this.mediaSourceOpen=!1,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.sequenceNumber=0,this.cacheTrack=null,this.timeInit=!1,this.off(),this.player.debug.log("MediaSource","destroy")}get state(){return this.mediaSource.readyState}get isStateOpen(){return this.state===_}get isStateClosed(){return this.state===$}get isStateEnded(){return this.state===K}get duration(){return this.mediaSource.duration}set duration(e){this.mediaSource.duration=e}decodeVideo(e,t,i){const o=this.player;if(this.hasInit)this._decodeVideo(e,t,i);else if(i&&0===e[1]){const r=15&e[0];if(o.video.updateVideoInfo({encTypeCode:r}),r===F)return void this.emit(k.mediaSourceH265NotSupport);o._times.decodeStart||(o._times.decodeStart=ce()),this._decodeConfigurationRecord(e,t,i,r),this.hasInit=!0}}_doDecode(){const e=this.bufferList.shift();e&&this._decodeVideo(e.payload,e.ts,e.isIframe)}_decodeConfigurationRecord(e,t,i,o){let r=e.slice(5),A={};o===U?A=function(e){const t={},i=new DataView(e.buffer);let o=i.getUint8(0),r=i.getUint8(1);if(i.getUint8(2),i.getUint8(3),1!==o||0===r)return;const A=1+(3&i.getUint8(4));if(3!==A&&4!==A)return;let n=31&i.getUint8(5);if(0===n)return;let s=6;for(let o=0;o1&&(this.removeBuffer(s.buffered.start(0),s.buffered.end(0)),this.timeInit=!1),s.drop&&n-this.cacheTrack.dts>1e3)s.drop=!1,this.cacheTrack={};else if(this.cacheTrack&&n>this.cacheTrack.dts){let e=8+this.cacheTrack.size,i=new Uint8Array(e);i[0]=e>>>24&255,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i.set(ze.types.mdat,4),i.set(this.cacheTrack.data,8),this.cacheTrack.duration=n-this.cacheTrack.dts;let r=ze.moof(this.cacheTrack,this.cacheTrack.dts),A=new Uint8Array(r.byteLength+i.byteLength);A.set(r,0),A.set(i,r.byteLength),this.appendBuffer(A.buffer),o.handleRender(),o.updateStats({fps:!0,ts:t,buf:o.demux.delay}),o._times.videoStart||(o._times.videoStart=ce(),o.handlePlayToRenderTimes())}else o.debug.log("MediaSource","timeInit set false , cacheTrack = {}"),this.timeInit=!1,this.cacheTrack={};this.cacheTrack.id=1,this.cacheTrack.sequenceNumber=++this.sequenceNumber,this.cacheTrack.size=A,this.cacheTrack.dts=n,this.cacheTrack.cts=0,this.cacheTrack.isKeyframe=i,this.cacheTrack.data=r,this.cacheTrack.flags={isLeading:0,dependsOn:i?2:1,isDependedOn:i?1:0,hasRedundancy:0,isNonSync:i?0:1},this.timeInit||1!==s.buffered.length||(o.debug.log("MediaSource","timeInit set true"),this.timeInit=!0,s.currentTime=s.buffered.end(0)),!this.isInitInfo&&s.videoWidth>0&&s.videoHeight>0&&(o.debug.log("MediaSource",`updateVideoInfo: ${s.videoWidth},${s.videoHeight}`),o.video.updateVideoInfo({width:s.videoWidth,height:s.videoHeight}),o.video.initCanvasViewSize(),this.isInitInfo=!0)}appendBuffer(e){const{debug:t,events:{proxy:i}}=this.player;null===this.sourceBuffer&&(this.sourceBuffer=this.mediaSource.addSourceBuffer(q),i(this.sourceBuffer,"error",(e=>{this.player.emit(C.mseSourceBufferError,e),this.dropSourceBuffer(!0)}))),!1===this.sourceBuffer.updating&&this.isStateOpen?this.sourceBuffer.appendBuffer(e):this.isStateClosed?this.player.emit(C.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed"):this.isStateEnded?this.player.emit(C.mseSourceBufferError,"mediaSource is closed"):!0===this.sourceBuffer.updating&&(this.player.emit(C.mseSourceBufferBusy),this.dropSourceBuffer(!0))}stop(){this.isStateOpen&&this.sourceBuffer&&this.sourceBuffer.abort(),this.endOfStream()}dropSourceBuffer(e){const t=this.player.video.$videoElement;this.dropping=e,t.buffered.length>0&&t.buffered.end(0)-t.currentTime>1&&(t.currentTime=t.buffered.end(0))}removeBuffer(e,t){if(this.isStateOpen&&!1===this.sourceBuffer.updating)try{this.sourceBuffer.remove(e,t)}catch(e){console.error(e)}}endOfStream(){this.isStateOpen&&this.mediaSource.endOfStream()}}const Xe=()=>"undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,Ze=()=>"wakeLock"in navigator;class qe{constructor(e){if(this.player=e,this.enabled=!1,Ze()){this._wakeLock=null;const e=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()};document.addEventListener("visibilitychange",e),document.addEventListener("fullscreenchange",e)}else Xe()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm","data:video/webm;base64,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"),this._addSourceToVideo(this.noSleepVideo,"mp4","data:video/mp4;base64,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"),this.noSleepVideo.addEventListener("loadedmetadata",(()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",(()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}))})))}_addSourceToVideo(e,t,i){var o=document.createElement("source");o.src=i,o.type=`video/${t}`,e.appendChild(o)}get isEnabled(){return this.enabled}enable(){const e=this.player.debug;if(Ze())return navigator.wakeLock.request("screen").then((t=>{this._wakeLock=t,this.enabled=!0,e.log("wakeLock","Wake Lock active."),this._wakeLock.addEventListener("release",(()=>{e.log("wakeLock","Wake Lock released.")}))})).catch((t=>{throw this.enabled=!1,e.error("wakeLock",`${t.name}, ${t.message}`),t}));if(Xe())return this.disable(),this.noSleepTimer=window.setInterval((()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))}),15e3),this.enabled=!0,Promise.resolve();return this.noSleepVideo.play().then((e=>(this.enabled=!0,e))).catch((e=>{throw this.enabled=!1,e}))}disable(){const e=this.player.debug;Ze()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):Xe()?this.noSleepTimer&&(e.warn("wakeLock","NoSleep now disabled for older iOS devices."),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}class Ke extends ve{constructor(e,t){var i;super(),this.$container=e,this._opt=Object.assign({},d,t),this.debug=new re(this),this._opt.useWCS&&(this._opt.useWCS="VideoEncoder"in window),this._opt.useMSE&&(this._opt.useMSE=window.MediaSource&&window.MediaSource.isTypeSupported(q)),this._opt.useMSE?(this._opt.useWCS&&this.debug.log("Player","useWCS set true->false"),this._opt.forceNoOffscreen||this.debug.log("Player","forceNoOffscreen set false->true"),this._opt.useWCS=!1,this._opt.forceNoOffscreen=!0):this._opt.useWCS,this._opt.forceNoOffscreen||("undefined"==typeof OffscreenCanvas?(this._opt.forceNoOffscreen=!0,this._opt.useOffscreen=!1):this._opt.useOffscreen=!0),this._opt.hasControl=this._hasControl(),this._loading=!1,this._playing=!1,this._hasLoaded=!1,this._checkHeartTimeout=null,this._checkLoadingTimeout=null,this._startBpsTime=null,this._isPlayingBeforePageHidden=!1,this._stats={buf:0,fps:0,abps:0,vbps:0,ts:0},this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._videoTimestamp=0,this._audioTimestamp=0,i=this,Object.defineProperty(i,"rect",{get:()=>{const e=i.$container.getBoundingClientRect();return e.width=Math.max(e.width,i.$container.clientWidth),e.height=Math.max(e.height,i.$container.clientHeight),e}}),["bottom","height","left","right","top","width"].forEach((e=>{Object.defineProperty(i,e,{get:()=>i.rect[e]})})),this.events=new Ae(this),this.video=new Be(this),this.audio=new Re(this),this.recorder=new Le(this),this.decoderWorker=new je(this),this.stream=null,this.demux=null,this._opt.useWCS&&(this.webcodecsDecoder=new Qe(this)),this._opt.useMSE&&(this.mseDecoder=new He(this)),this.control=new Ne(this),this.keepScreenOn=new qe(this),(e=>{try{const t=()=>{e.emit(R.fullscreen,e.fullscreen),e.fullscreen?e._opt.useMSE&&e.resize():e.resize()};ne.on("change",t),e.events.destroys.push((()=>{ne.off("change",t)}))}catch(e){}if(e.on(C.decoderWorkerInit,(()=>{e.debug.log("player","has loaded"),e._hasLoaded=!0})),e.on(C.play,(()=>{e.loading=!1})),e.on(C.fullscreen,(t=>{if(t)try{ne.request(e.$container).then((()=>{})).catch((t=>{e.webFullscreen=!0}))}catch(t){e.webFullscreen=!0}else try{ne.exit().then((()=>{})).catch((()=>{e.webFullscreen=!1}))}catch(t){e.webFullscreen=!1}})),e.on(C.webFullscreen,(t=>{if(t){e.$container.classList.add("webmediaplayer-fullscreen-web");const{clientHeight:t,clientWidth:i}=document.body,{clientHeight:o,clientWidth:r}=e.video.$videoElement;if(i/t{e.video.resize()})),e._opt.debug){const t=[C.timeUpdate];Object.keys(C).forEach((i=>{e.on(C[i],(o=>{t.includes(i)||e.debug.log("player events",C[i],o)}))})),Object.keys(k).forEach((t=>{e.on(k[t],(i=>{e.debug.log("player event error",k[t],i)}))}))}})(this),(e=>{const{_opt:t,debug:i,events:{proxy:o}}=e;t.supportDblclickFullscreen&&o(e.$container,"dblclick",(()=>{e.fullscreen=!e.fullscreen})),o(document,"visibilitychange",(()=>{t.hiddenAutoPause&&(i.log("visibilitychange",document.visibilityState,e._isPlayingBeforePageHidden),"visible"===document.visibilityState?e._isPlayingBeforePageHidden&&e.play():(e._isPlayingBeforePageHidden=e.playing,e.playing&&e.pause()))})),o(window,"fullscreenchange",(()=>{null!==e.keepScreenOn&&"visible"===document.visibilityState&&e.enableWakeLock()}))})(this),this._opt.useWCS&&this.debug.log("Player","use WCS"),this._opt.useMSE&&this.debug.log("Player","use MSE"),this._opt.useOffscreen&&this.debug.log("Player","use offscreen"),this.debug.log("Player options",this._opt)}destroy(){this._loading=!1,this._playing=!1,this._hasLoaded=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.video&&(this.video.destroy(),this.video=null),this.audio&&(this.audio.destroy(),this.audio=null),this.stream&&(this.stream.destroy(),this.stream=null),this.recorder&&(this.recorder.destroy(),this.recorder=null),this.control&&(this.control.destroy(),this.control=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.demux&&(this.demux.destroy(),this.demux=null),this.events&&(this.events.destroy(),this.events=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.releaseWakeLock(),this.keepScreenOn=null,this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this.emit("destroy"),this.off(),this.debug.log("play","destroy end")}set fullscreen(e){this.emit(C.fullscreen,e)}get fullscreen(){return document.isFullScreen||document.mozIsFullScreen||document.webkitIsFullScreen||this.webFullscreen}set webFullscreen(e){this.emit(C.webFullscreen,e)}get webFullscreen(){return this.$container.classList.contains("jessibuca-fullscreen-web")}get loaded(){return this._hasLoaded}set playing(e){e&&(this.loading=!1),this.playing!==e&&(this._playing=e,this.emit(C.playing,e),this.emit(C.volumechange,this.volume),e?this.emit(C.play):this.emit(C.pause))}get playing(){return this._playing}get volume(){return this.audio&&this.audio.volume}set volume(e){this.audio.setVolume(e)}set loading(e){this.loading!==e&&(this._loading=e,this.emit(C.loading,this._loading))}get loading(){return this._loading}set recording(e){this.playing&&(e?this.recorder.startRecord():this.recorder.stopRecordAndSave())}get recording(){return this.recorder&&this.recorder.recording}set audioTimestamp(e){null!==e&&(this._audioTimestamp=e)}get audioTimestamp(){return this._audioTimestamp}set videoTimestamp(e){null!==e&&(this._videoTimestamp=e,this._opt.useWCS||this._opt.useMSE||this.audioTimestamp&&this.videoTimestamp&&this.audio.emit(C.videoSyncAudio,{audioTimestamp:this.audioTimestamp,videoTimestamp:this.videoTimestamp,diff:this.audioTimestamp-this.videoTimestamp}))}get videoTimestamp(){return this._videoTimestamp}updateOption(e){this._opt=Object.assign({},this._opt,e)}init(){return new Promise(((e,t)=>{this.stream||(this.stream=new Ie(this)),this.demux||(this.demux=new Oe(this)),this._opt.useWCS&&(this.webcodecsDecoder||(this.webcodecsDecoder=new Qe(this))),this._opt.useMSE&&(this.mseDecoder||(this.mseDecoder=new He(this))),this.decoderWorker?e():(this.decoderWorker=new je(this),this.once(C.decoderWorkerInit,(()=>{e()})))}))}play(e){return new Promise(((t,i)=>{if(!e&&!this._opt.url)return i();this.loading=!0,this.playing=!1,this._times.playInitStart=ce(),e||(e=this._opt.url),this._opt.url=e,this.clearCheckHeartTimeout(),this.init().then((()=>{this._times.playStart=ce(),this._opt.isNotMute&&this.mute(!1),this.webcodecsDecoder&&this.webcodecsDecoder.once(k.webcodecsH265NotSupport,(()=>{this.emit(k.webcodecsH265NotSupport),this.emit(C.error,k.webcodecsH265NotSupport)})),this.mseDecoder&&this.mseDecoder.once(k.mediaSourceH265NotSupport,(()=>{this.emit(k.mediaSourceH265NotSupport),this.emit(C.error,k.mediaSourceH265NotSupport)})),this.enableWakeLock(),this.stream.fetchStream(e),this.checkLoadingTimeout(),this.stream.once(k.fetchError,(e=>{i(e)})),this.stream.once(k.websocketError,(e=>{i(e)})),this.stream.once(C.streamSuccess,(()=>{t(),this._times.streamResponse=ce(),this._opt.useMSE&&this.video.play()}))})).catch((e=>{i(e)}))}))}close(){return new Promise(((e,t)=>{this._close().then((()=>{this.video.clearView(),e()}))}))}_close(){return new Promise(((e,t)=>{this.stream&&(this.stream.destroy(),this.stream=null),this.demux&&(this.demux.destroy(),this.demux=null),this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.playing=!1,this.loading=!1,this.recording=!1,this.audio.pause(),this.releaseWakeLock(),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},setTimeout((()=>{e()}),0)}))}pause(e){return e?this.close():this._close()}mute(e){this.audio.mute(e)}resize(){this.video.resize()}startRecord(e,t){this.recording||(this.recorder.setFileName(e,t),this.recording=!0)}stopRecordAndSave(){this.recording&&(this.recording=!1)}_hasControl(){let e=!1,t=!1;return Object.keys(this._opt.operateBtns).forEach((e=>{this._opt.operateBtns[e]&&(t=!0)})),(this._opt.showBandwidth||this._opt.text||t)&&(e=!0),e}checkHeart(){this.clearCheckHeartTimeout(),this.checkHeartTimeout()}checkHeartTimeout(){this._checkHeartTimeout=setTimeout((()=>{this.pause(!1).then((()=>{this.emit(C.timeout,C.delayTimeout),this.emit(C.delayTimeout)}))}),1e3*this._opt.heartTimeout)}clearCheckHeartTimeout(){this._checkHeartTimeout&&(clearTimeout(this._checkHeartTimeout),this._checkHeartTimeout=null)}checkLoadingTimeout(){this._checkLoadingTimeout=setTimeout((()=>{this.pause(!1).then((()=>{this.emit(C.timeout,C.loadingTimeout),this.emit(C.loadingTimeout)}))}),1e3*this._opt.loadingTimeout)}clearCheckLoadingTimeout(){this._checkLoadingTimeout&&(clearTimeout(this._checkLoadingTimeout),this._checkLoadingTimeout=null)}handleRender(){this.loading&&(this.emit(C.start),this.loading=!1,this.clearCheckLoadingTimeout()),this.playing||(this.playing=!0),this.checkHeart()}updateStats(e){e=e||{},this._startBpsTime||(this._startBpsTime=ce()),ye(e.ts)&&(this._stats.ts=e.ts),ye(e.buf)&&(this._stats.buf=e.buf),e.fps&&(this._stats.fps+=1),e.abps&&(this._stats.abps+=e.abps),e.vbps&&(this._stats.vbps+=e.vbps);const t=ce();t-this._startBpsTime<1e3||(this.emit(C.stats,this._stats),this.emit(C.performance,function(e){let t=0;return e>=24?t=2:e>=15&&(t=1),t}(this._stats.fps)),this._stats.fps=0,this._stats.abps=0,this._stats.vbps=0,this._startBpsTime=t)}resetStats(){this._startBpsTime=null,this._stats={buf:0,fps:0,abps:0,vbps:0,ts:0}}enableWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn.enable()}releaseWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn.disable()}handlePlayToRenderTimes(){const e=this._times;e.playTimestamp=e.playStart-e.playInitStart,e.streamTimestamp=e.streamStart-e.playStart,e.streamResponseTimestamp=e.streamResponse-e.streamStart,e.demuxTimestamp=e.demuxStart-e.streamResponse,e.decodeTimestamp=e.decodeStart-e.demuxStart,e.videoTimestamp=e.videoStart-e.decodeStart,e.allTimestamp=e.videoStart-e.playInitStart,this.emit(C.playToRenderTimes,e)}}class _e extends ve{constructor(e){super();let t=e,i=e.container;if("string"==typeof e.container&&(i=document.querySelector(e.container)),!i)throw new Error("Jessibuca need container option");i.classList.add("jessibuca-container"),delete t.container,ye(t.videoBuffer)&&(t.videoBuffer=1e3*Number(t.videoBuffer)),ye(t.timeout)&&(be(t.loadingTimeout)&&(t.loadingTimeout=t.timeout),be(t.heartTimeout)&&(t.heartTimeout=t.timeout)),this._opt=t,this.$container=i,this.href=null,this.events=new Ae(this),this.player=new Ke(i,t),this._bindEvents()}destroy(){this.player.destroy(),this.player=null,this.off()}_bindEvents(){Object.keys(R).forEach((e=>{this.player.on(R[e],(t=>{this.emit(e,t)}))}))}setDebug(e){this.player.updateOption({isDebug:!!e})}mute(){this.player.mute(!0)}cancelMute(){this.player.mute(!1)}setVolume(e){this.player.volume=e}audioResume(){this.player.audio.audioEnabled(!0)}setTimeout(e){e=Number(e),this.player.updateOption({timeout:e,loadingTimeout:e,heartTimeout:e})}setScaleMode(e){let t={isFullResize:!1,isResize:!1};switch(e=Number(e)){case W:t.isFullResize=!1,t.isResize=!1;break;case G:t.isFullResize=!1,t.isResize=!0;break;case J:t.isFullResize=!0,t.isResize=!0}this.player.updateOption(t),this.resize()}pause(){return this.player.pause()}close(){return this._opt.url="",this.player.close()}clearView(){this.player.video.clearView()}play(e){return new Promise(((t,i)=>{if(!e&&!this._opt.url)return this.emit(C.error,k.playError),void i();if(e){if(!this._opt.url)return this._play(e);e===this._opt.url?this.player.playing?t():(this.clearView(),this.player.play(this._opt.url).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))}))):this.player.pause().then((()=>(this.clearView(),this._play(e)))).catch((()=>{i()}))}else this.player.play(this._opt.url).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))}))}))}_play(e){return new Promise(((t,i)=>{this._opt.url=e;const o=0===e.indexOf("http"),r=o?n:A,d=o||-1!==e.indexOf(".flv")||this._opt.isFlv?s:a;this.player.updateOption({protocol:r,demuxType:d}),this.player.once(k.mediaSourceH265NotSupport,(()=>{this.close()})),this.player.once(k.webcodecsH265NotSupport,(()=>{this.close()})),this.hasLoaded()?this.player.play(e).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))})):this.player.once(C.decoderWorkerInit,(()=>{this.player.play(e).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))}))}))}))}resize(){this.player.resize()}setBufferTime(e){e=Number(e),this.player.updateOption({videoBuffer:1e3*e})}setRotate(e){e=parseInt(e,10);this._opt.rotate!==e&&-1!==[0,90,270].indexOf(e)&&(this.player.updateOption({rotate:e}),this.resize())}hasLoaded(){return this.player.loaded}setKeepScreenOn(){this.player.updateOption({keepScreenOn:!0})}setFullscreen(e){const t=!!e;this.player.fullscreen!==t&&(this.player.fullscreen=t)}screenshot(e,t,i,o){return this.player.video.screenshot(e,t,i,o)}startRecord(e,t){return new Promise(((i,o)=>{this.player.playing?(this.player.startRecord(e,t),i()):o()}))}stopRecordAndSave(){this.player.recording&&this.player.stopRecordAndSave()}isPlaying(){return this.player.playing}isMute(){return this.player.audio.isMute}isRecording(){return this.player.recorder.recording}}return r(_e,"ERROR",k),r(_e,"TIMEOUT",{loadingTimeout:C.loadingTimeout,delayTimeout:C.delayTimeout}),window.Jessibuca=_e,_e})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).jessibuca=t()}(this,(function(){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t){return e(t={exports:{}},t.exports),t.exports}var i,o=t((function(e){e.exports=function(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e},e.exports.__esModule=!0,e.exports.default=e.exports})),r=(i=o)&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i;const A=0,s=1,n="flv",a="m7s",d={videoBuffer:1e3,isResize:!0,isFullResize:!1,isFlv:!1,debug:!1,hotKey:!1,loadingTimeout:10,heartTimeout:5,timeout:10,loadingTimeoutReplay:!1,heartTimeoutReplay:!1,loadingTimeoutReplayTimes:3,heartTimeoutReplayTimes:3,supportDblclickFullscreen:!1,showBandwidth:!1,keepScreenOn:!1,isNotMute:!1,hasAudio:!0,hasVideo:!0,operateBtns:{fullscreen:!1,screenshot:!1,play:!1,audio:!1,record:!1},controlAutoHide:!1,hasControl:!1,loadingText:"",background:"",decoder:"decoder.js",url:"",rotate:0,forceNoOffscreen:!0,hiddenAutoPause:!1,protocol:s,demuxType:n,useWCS:!1,useMSE:!1,useOffscreen:!1,autoWasm:!0,wasmDecodeErrorReplay:!0,openWebglAlignment:!1},c="init",l="initVideo",u="render",h="playAudio",p="initAudio",m="audioCode",g="videoCode",f="wasmError",b="Invalid NAL unit size",y=1,v=2,w=8,S=9,E="init",B="decode",C="audioDecode",R="close",k="updateConfig",T={fullscreen:"fullscreen$2",webFullscreen:"webFullscreen",decoderWorkerInit:"decoderWorkerInit",play:"play",playing:"playing",pause:"pause",mute:"mute",load:"load",loading:"loading",videoInfo:"videoInfo",timeUpdate:"timeUpdate",audioInfo:"audioInfo",log:"log",error:"error",kBps:"kBps",timeout:"timeout",delayTimeout:"delayTimeout",loadingTimeout:"loadingTimeout",stats:"stats",performance:"performance",record:"record",recording:"recording",recordingTimestamp:"recordingTimestamp",recordStart:"recordStart",recordEnd:"recordEnd",recordCreateError:"recordCreateError",buffer:"buffer",videoFrame:"videoFrame",start:"start",metadata:"metadata",resize:"resize",streamEnd:"streamEnd",streamSuccess:"streamSuccess",streamMessage:"streamMessage",streamError:"streamError",volumechange:"volumechange",destroy:"destroy",mseSourceOpen:"mseSourceOpen",mseSourceClose:"mseSourceClose",mseSourceBufferError:"mseSourceBufferError",mseSourceBufferBusy:"mseSourceBufferBusy",videoWaiting:"videoWaiting",videoTimeUpdate:"videoTimeUpdate",videoSyncAudio:"videoSyncAudio",playToRenderTimes:"playToRenderTimes"},I={load:T.load,timeUpdate:T.timeUpdate,videoInfo:T.videoInfo,audioInfo:T.audioInfo,error:T.error,kBps:T.kBps,log:T.log,start:T.start,timeout:T.timeout,loadingTimeout:T.loadingTimeout,delayTimeout:T.delayTimeout,fullscreen:"fullscreen",play:T.play,pause:T.pause,mute:T.mute,stats:T.stats,performance:T.performance,recordingTimestamp:T.recordingTimestamp,recordStart:T.recordStart,recordEnd:T.recordEnd,playToRenderTimes:T.playToRenderTimes},x={playError:"playIsNotPauseOrUrlIsNull",fetchError:"fetchError",websocketError:"websocketError",webcodecsH265NotSupport:"webcodecsH265NotSupport",mediaSourceH265NotSupport:"mediaSourceH265NotSupport",wasmDecodeError:"wasmDecodeError"},D="notConnect",j="open",L="close",U="error",F={download:"download",base64:"base64",blob:"blob"},V={7:"H264(AVC)",12:"H265(HEVC)"},O=7,M=12,Q={10:"AAC",7:"ALAW",8:"MULAW"},W=32,G=33,J=34,N=0,P=1,z=2,Y="mp4",H="webm",X="webcodecs",Z="webgl",q="offscreen",K="key",_="delta",$='video/mp4; codecs="avc1.64002A"',ee="ended",te="open",ie="closed",oe=1e3,re=27,Ae=38,se=40;class ne{constructor(e){this.log=function(t){if(e._opt.debug){for(var i=arguments.length,o=new Array(i>1?i-1:0),r=1;r1?i-1:0),r=1;r1?i-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:{};if(!e)return;if(Array.isArray(t))return t.map((t=>this.proxy(e,t,i,o)));e.addEventListener(t,i,o);const r=()=>e.removeEventListener(t,i,o);return this.destroys.push(r),r}destroy(){this.master.debug&&this.master.debug.log("Events","destroy"),this.destroys.forEach((e=>e()))}}var de=t((function(e){!function(){var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},i=e.exports,o=function(){for(var e,i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=0,r=i.length,A={};o0&&void 0!==arguments[0]?arguments[0]:"";const t=e.split(","),i=atob(t[1]),o=t[0].replace("data:","").replace(";base64","");let r=i.length,A=new Uint8Array(r);for(;r--;)A[r]=i.charCodeAt(r);return new File([A],"file",{type:o})}function ue(e,t){const i=document.createElement("a");i.download=t,i.href=URL.createObjectURL(e),i.click(),setTimeout((()=>{URL.revokeObjectURL(e)}),ve()?1e3:0)}function he(){return(new Date).getTime()}function pe(e,t,i){return Math.max(Math.min(e,Math.max(t,i)),Math.min(t,i))}function me(e,t,i){if(e)return"object"==typeof t&&Object.keys(t).forEach((i=>{me(e,i,t[i])})),e.style[t]=i,e}function ge(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!e)return 0;const o=getComputedStyle(e,null).getPropertyValue(t);return i?parseFloat(o):o}function fe(){return performance&&"function"==typeof performance.now?performance.now():Date.now()}function be(e){let t=0,i=fe();return o=>{t+=o;const r=fe(),A=r-i;A>=1e3&&(e(t/A*1e3),i=r,t=0)}}function ye(){return/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase())}function ve(){const e=window.navigator.userAgent.toLowerCase();return e&&/iphone|ipad|ipod|ios/.test(e)}function we(e){if(null==e||""===e)return"0 KB/S";let t=parseFloat(e);return t=t.toFixed(2),t+"KB/S"}function Se(e){return null==e}function Ee(e){return!Se(e)}de.isEnabled,(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})();class Be{on(e,t,i){const o=this.e||(this.e={});return(o[e]||(o[e]=[])).push({fn:t,ctx:i}),this}once(e,t,i){const o=this;function r(){o.off(e,r);for(var A=arguments.length,s=new Array(A),n=0;n1?i-1:0),r=1;r{delete i[e]})),void delete this.e;const o=i[e],r=[];if(o&&t)for(let e=0,i=o.length;e{var i=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),o=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n");t&&e.pixelStorei(e.UNPACK_ALIGNMENT,1);var r=e.createShader(e.VERTEX_SHADER);e.shaderSource(r,i),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)||console.log("Vertex shader failed to compile: "+e.getShaderInfoLog(r));var A=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(A,o),e.compileShader(A),e.getShaderParameter(A,e.COMPILE_STATUS)||console.log("Fragment shader failed to compile: "+e.getShaderInfoLog(A));var s=e.createProgram();e.attachShader(s,r),e.attachShader(s,A),e.linkProgram(s),e.getProgramParameter(s,e.LINK_STATUS)||console.log("Program failed to compile: "+e.getProgramInfoLog(s)),e.useProgram(s);var n=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);var a=e.getAttribLocation(s,"vertexPos");e.enableVertexAttribArray(a),e.vertexAttribPointer(a,2,e.FLOAT,!1,0,0);var d=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,d),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.STATIC_DRAW);var c=e.getAttribLocation(s,"texturePos");function l(t,i){var o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(e.getUniformLocation(s,t),i),o}e.enableVertexAttribArray(c),e.vertexAttribPointer(c,2,e.FLOAT,!1,0,0);var u=l("ySampler",0),h=l("uSampler",1),p=l("vSampler",2);return{render:function(t,i,o,r,A){e.viewport(0,0,t,i),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,u),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,t,i,0,e.LUMINANCE,e.UNSIGNED_BYTE,o),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,h),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,t/2,i/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,r),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,p),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,t/2,i/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,A),e.drawArrays(e.TRIANGLE_STRIP,0,4)},destroy:function(){try{e.deleteProgram(s),e.deleteBuffer(n),e.deleteBuffer(d),e.deleteTexture(u),e.deleteTexture(h),e.deleteBuffer(p)}catch(e){}}}})(this.contextGl,this.player._opt.openWebglAlignment);this.contextGlRender=e.render,this.contextGlDestroy=e.destroy}_initContext2D(){this.context2D=this.$videoElement.getContext("2d")}_initCanvasRender(){this.player._opt.useWCS&&!this._supportOffscreen()?(this.renderType=X,this._initContext2D()):this._supportOffscreen()?(this.renderType=q,this._bindOffscreen()):(this.renderType=Z,this._initContextGl())}_supportOffscreen(){return"function"==typeof this.$videoElement.transferControlToOffscreen&&this.player._opt.useOffscreen}_bindOffscreen(){this.bitmaprenderer=this.$videoElement.getContext("bitmaprenderer")}initCanvasViewSize(){this.$videoElement.width=this.videoInfo.width,this.$videoElement.height=this.videoInfo.height,this.resize()}render(e){switch(this.player.videoTimestamp=e.ts,this.renderType){case q:this.bitmaprenderer.transferFromImageBitmap(e.buffer);break;case Z:this.contextGlRender(this.$videoElement.width,this.$videoElement.height,e.output[0],e.output[1],e.output[2]);break;case X:this.context2D.drawImage(e.videoFrame,0,0,this.$videoElement.width,this.$videoElement.height)}}screenshot(e,t,i,o){e=e||he(),o=o||F.download;const r={png:"image/png",jpeg:"image/jpeg",webp:"image/webp"};let A=.92;!r[t]&&F[t]&&(o=t,t="png",i=void 0),"string"==typeof i&&(o=i,i=void 0),void 0!==i&&(A=Number(i));const s=this.$videoElement.toDataURL(r[t]||r.png,A),n=le(s);return o===F.base64?s:o===F.blob?n:void(o===F.download&&ue(n,e))}clearView(){switch(this.renderType){case q:(function(e,t){const i=document.createElement("canvas");return i.width=e,i.height=t,createImageBitmap(i,0,0,e,t)})(this.$videoElement.width,this.$videoElement.height).then((e=>{this.bitmaprenderer.transferFromImageBitmap(e)}));break;case Z:this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);break;case X:this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height)}}resize(){this.player.debug.log("canvasVideo","resize");const e=this.player._opt;let t=this.player.width,i=this.player.height;e.hasControl&&!e.controlAutoHide&&(ye()&&this.player.fullscreen?t-=38:i-=38);let o=this.$videoElement.width,r=this.$videoElement.height;const A=e.rotate;let s=(t-o)/2,n=(i-r)/2;270!==A&&90!==A||(o=this.$videoElement.height,r=this.$videoElement.width);const a=t/o,d=i/r;let c=a>d?d:a;e.isResize||a!==d&&(c=a+","+d),e.isFullResize&&(c=a>d?a:d);let l="scale("+c+")";A&&(l+=" rotate("+A+"deg)"),this.$videoElement.style.transform=l,this.$videoElement.style.left=s+"px",this.$videoElement.style.top=n+"px"}}class ke extends Ce{constructor(e){super(),this.player=e;const t=document.createElement("video");t.muted=!0,t.style.position="absolute",t.style.top=0,t.style.left=0,e.$container.appendChild(t),this.$videoElement=t,this.videoInfo={width:"",height:"",encType:""},this.resize();const{proxy:i}=this.player.events;i(this.$videoElement,"canplay",(()=>{this.player.debug.log("Video","canplay")})),i(this.$videoElement,"waiting",(()=>{this.player.emit(T.videoWaiting)})),i(this.$videoElement,"timeupdate",(e=>{})),this.player.debug.log("Video","init")}destroy(){this.player.$container.removeChild(this.$videoElement),this.$videoElement=null,this.init=!1,this.off(),this.player.debug.log("Video","destroy")}play(){this.$videoElement.play()}clearView(){}screenshot(e,t,i,o){e=e||he(),o=o||F.download;let r=.92;!{png:"image/png",jpeg:"image/jpeg",webp:"image/webp"}[t]&&F[t]&&(o=t,t="png",i=void 0),"string"==typeof i&&(o=i,i=void 0),void 0!==i&&(r=Number(i));const A=this.$videoElement;let s=document.createElement("canvas");s.width=A.videoWidth,s.height=A.videoHeight;s.getContext("2d").drawImage(A,0,0,s.width,s.height);const n=s.toDataURL(F[t]||F.png,r),a=le(n);return o===F.base64?n:o===F.blob?a:void(o===F.download&&ue(a,e))}initCanvasViewSize(){this.resize()}resize(){let e=this.player.width,t=this.player.height;const i=this.player._opt,o=i.rotate;i.hasControl&&!i.controlAutoHide&&(ye()&&this.player.fullscreen?e-=38:t-=38),this.$videoElement.width=e,this.$videoElement.height=t,270!==o&&90!==o||(this.$videoElement.width=t,this.$videoElement.height=e);let r=(e-this.$videoElement.width)/2,A=(t-this.$videoElement.height)/2,s="contain";i.isResize||(s="fill"),i.isFullResize&&(s="none"),this.$videoElement.style.objectFit=s,this.$videoElement.style.transform="rotate("+o+"deg)",this.$videoElement.style.left=r+"px",this.$videoElement.style.top=A+"px"}}class Te{constructor(e){return new(Te.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.useMSE?ke:Re}}class Ie extends Be{constructor(e){super(),this.bufferList=[],this.player=e,this.scriptNode=null,this.hasInitScriptNode=!1,this.audioContextChannel=null,this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.gainNode=this.audioContext.createGain();const t=this.audioContext.createBufferSource();t.buffer=this.audioContext.createBuffer(1,1,22050),t.connect(this.audioContext.destination),t.noteOn?t.noteOn(0):t.start(0),this.audioBufferSourceNode=t,this.mediaStreamAudioDestinationNode=this.audioContext.createMediaStreamDestination(),this.audioEnabled(!0),this.gainNode.gain.value=0,this.playing=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1,this.hasAudio=!1,this.on(T.videoSyncAudio,(e=>{this.audioSyncVideoOption=e})),this.player.debug.log("AudioContext","init")}destroy(){this.closeAudio(),this.audioContext.close(),this.audioContext=null,this.gainNode=null,this.init=!1,this.hasAudio=!1,this.playing=!1,this.scriptNode&&(this.scriptNode.onaudioprocess=ce,this.scriptNode=null),this.audioBufferSourceNode=null,this.mediaStreamAudioDestinationNode=null,this.hasInitScriptNode=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.off(),this.player.debug.log("AudioContext","destroy")}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encType=Q[e.encTypeCode]),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.emit(T.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return this.playing}get isMute(){return 0===this.gainNode.gain.value||this.isStateSuspended()}get volume(){return this.gainNode.gain.value}get bufferSize(){return this.bufferList.length}initScriptNode(){if(this.playing=!0,this.hasInitScriptNode)return;const e=this.audioInfo.channels,t=this.audioContext.createScriptProcessor(1024,0,e);t.onaudioprocess=t=>{const i=t.outputBuffer;if(this.bufferList.length&&this.playing){if(!this.player._opt.useWCS&&!this.player._opt.useMSE){if(this.audioSyncVideoOption.diff>oe)return void this.player.debug.warn("AudioContext",`audioSyncVideoOption more than diff :${this.audioSyncVideoOption.diff}, waiting`);if(this.audioSyncVideoOption.diff<-1e3){this.player.debug.warn("AudioContext",`audioSyncVideoOption less than diff :${this.audioSyncVideoOption.diff}, dropping`);let e=this.bufferList.shift();for(;e.ts-this.player.videoTimestamp<-1e3&&this.bufferList.length>0;)e=this.bufferList.shift();if(0===this.bufferList.length)return}}if(0===this.bufferList.length)return;const t=this.bufferList.shift();t&&t.ts&&(this.player.audioTimestamp=t.ts);for(let o=0;o20&&(this.player.debug.warn("AudioContext",`bufferList is large: ${this.bufferList.length}`),this.bufferList.length>50&&this.bufferList.shift()))}pause(){this.audioSyncVideoOption={diff:null},this.playing=!1,this.clear()}resume(){this.playing=!0}}class xe{constructor(e){return new(xe.getLoaderFactory())(e)}static getLoaderFactory(){return Ie}}class De extends Be{constructor(e){super(),this.player=e,this.playing=!1,this.abortController=new AbortController,this.streamRate=be((t=>{e.emit(T.kBps,(t/1024).toFixed(2))})),e.debug.log("FetchStream","init")}destroy(){this.abort(),this.off(),this.streamRate=null,this.player.debug.log("FetchStream","destroy")}fetchStream(e){const{demux:t}=this.player;this.player._times.streamStart=he(),fetch(e,{signal:this.abortController.signal}).then((e=>{const i=e.body.getReader();this.emit(T.streamSuccess);const o=()=>{i.read().then((e=>{let{done:i,value:r}=e;i?t.close():(this.streamRate&&this.streamRate(r.byteLength),t.dispatch(r),o())})).catch((e=>{t.close(),this.emit(x.fetchError,e),this.player.emit(T.error,x.fetchError),this.abort()}))};o()})).catch((e=>{this.abort(),this.emit(x.fetchError,e),this.player.emit(T.error,x.fetchError)}))}abort(){this.abortController&&(this.abortController.abort(),this.abortController=null)}}class je extends Be{constructor(e){super(),this.player=e,this.socket=null,this.socketStatus=D,this.wsUrl=null,this.streamRate=be((t=>{e.emit(T.kBps,(t/1024).toFixed(2))}))}destroy(){this.socket&&(this.socket.close(),this.socket=null),this.socketStatus=D,this.streamRate=null,this.wsUrl=null,this.off(),this.player.debug.log("websocketLoader","destroy")}_createWebSocket(){const e=this.player,{debug:t,events:{proxy:i},demux:o}=e;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer",i(this.socket,"open",(()=>{this.emit(T.streamSuccess),t.log("websocketLoader","socket open"),this.socketStatus=j})),i(this.socket,"message",(e=>{this.streamRate&&this.streamRate(e.data.byteLength),this._handleMessage(e.data)})),i(this.socket,"close",(()=>{t.log("websocketLoader","socket close"),this.emit(T.streamEnd),this.socketStatus=L})),i(this.socket,"error",(e=>{t.log("websocketLoader","socket error"),this.emit(x.websocketError,e),this.player.emit(T.error,x.websocketError),this.socketStatus=U,o.close(),t.log("websocketLoader","socket error:",e)}))}_handleMessage(e){const{demux:t}=this.player;t?t.dispatch(e):this.player.debug.warn("websocketLoader","websocket handle message demux is null")}fetchStream(e){this.player._times.streamStart=he(),this.wsUrl=e,this._createWebSocket()}}class Le{constructor(e){return new(Le.getLoaderFactory(e._opt.protocol))(e)}static getLoaderFactory(e){return e===s?De:e===A?je:void 0}}var Ue=t((function(t){function i(e,t){if(!e)throw"First parameter is required.";t=new o(e,t=t||{type:"video"});var A=this;function s(i){i&&(t.initCallback=function(){i(),i=t.initCallback=null});var o=new r(e,t);(h=new o(e,t)).record(),u("recording"),t.disableLogs||console.log("Initialized recorderType:",h.constructor.name,"for output-type:",t.type)}function n(e){if(e=e||function(){},h){if("paused"===A.state)return A.resumeRecording(),void setTimeout((function(){n(e)}),1);"recording"===A.state||t.disableLogs||console.warn('Recording state should be: "recording", however current state is: ',A.state),t.disableLogs||console.log("Stopped recording "+t.type+" stream."),"gif"!==t.type?h.stop(i):(h.stop(),i()),u("stopped")}else m();function i(i){if(h){Object.keys(h).forEach((function(e){"function"!=typeof h[e]&&(A[e]=h[e])}));var o=h.blob;if(!o){if(!i)throw"Recording failed.";h.blob=o=i}if(o&&!t.disableLogs&&console.log(o.type,"->",b(o.size)),e){var r;try{r=l.createObjectURL(o)}catch(e){}"function"==typeof e.call?e.call(A,r):e(r)}t.autoWriteToDisk&&d((function(e){var i={};i[t.type+"Blob"]=e,x.Store(i)}))}else"function"==typeof e.call?e.call(A,""):e("")}}function a(e){postMessage((new FileReaderSync).readAsDataURL(e))}function d(e,i){if(!e)throw"Pass a callback function over getDataURL.";var o=i?i.blob:(h||{}).blob;if(!o)return t.disableLogs||console.warn("Blob encoder did not finish its job yet."),void setTimeout((function(){d(e,i)}),1e3);if("undefined"==typeof Worker||navigator.mozGetUserMedia){var r=new FileReader;r.readAsDataURL(o),r.onload=function(t){e(t.target.result)}}else{var A=function(e){try{var t=l.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(t);return l.revokeObjectURL(t),i}catch(e){}}(a);A.onmessage=function(t){e(t.data)},A.postMessage(o)}}function c(e){e=e||0,"paused"!==A.state?"stopped"!==A.state&&(e>=A.recordingDuration?n(A.onRecordingStopped):(e+=1e3,setTimeout((function(){c(e)}),1e3))):setTimeout((function(){c(e)}),1e3)}function u(e){A&&(A.state=e,"function"==typeof A.onStateChanged.call?A.onStateChanged.call(A,e):A.onStateChanged(e))}var h,p='It seems that recorder is destroyed or "startRecording" is not invoked for '+t.type+" recorder.";function m(){!0!==t.disableLogs&&console.warn(p)}var g={startRecording:function(i){return t.disableLogs||console.log("RecordRTC version: ",A.version),i&&(t=new o(e,i)),t.disableLogs||console.log("started recording "+t.type+" stream."),h?(h.clearRecordedData(),h.record(),u("recording"),A.recordingDuration&&c(),A):(s((function(){A.recordingDuration&&c()})),A)},stopRecording:n,pauseRecording:function(){h?"recording"===A.state?(u("paused"),h.pause(),t.disableLogs||console.log("Paused recording.")):t.disableLogs||console.warn("Unable to pause the recording. Recording state: ",A.state):m()},resumeRecording:function(){h?"paused"===A.state?(u("recording"),h.resume(),t.disableLogs||console.log("Resumed recording.")):t.disableLogs||console.warn("Unable to resume the recording. Recording state: ",A.state):m()},initRecorder:s,setRecordingDuration:function(e,t){if(void 0===e)throw"recordingDuration is required.";if("number"!=typeof e)throw"recordingDuration must be a number.";return A.recordingDuration=e,A.onRecordingStopped=t||function(){},{onRecordingStopped:function(e){A.onRecordingStopped=e}}},clearRecordedData:function(){h?(h.clearRecordedData(),t.disableLogs||console.log("Cleared old recorded data.")):m()},getBlob:function(){if(h)return h.blob;m()},getDataURL:d,toURL:function(){if(h)return l.createObjectURL(h.blob);m()},getInternalRecorder:function(){return h},save:function(e){h?y(h.blob,e):m()},getFromDisk:function(e){h?i.getFromDisk(t.type,e):m()},setAdvertisementArray:function(e){t.advertisement=[];for(var i=e.length,o=0;o-1&&"netscape"in window&&/ rv:/.test(navigator.userAgent),m=!h&&!u&&!!navigator.webkitGetUserMedia||v()||-1!==navigator.userAgent.toLowerCase().indexOf("chrome/"),g=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);g&&!m&&-1!==navigator.userAgent.indexOf("CriOS")&&(g=!1,m=!0);var f=window.MediaStream;function b(e){if(0===e)return"0 Bytes";var t=parseInt(Math.floor(Math.log(e)/Math.log(1e3)),10);return(e/Math.pow(1e3,t)).toPrecision(3)+" "+["Bytes","KB","MB","GB","TB"][t]}function y(e,t){if(!e)throw"Blob object is required.";if(!e.type)try{e.type="video/webm"}catch(e){}var i=(e.type||"video/webm").split("/")[1];if(-1!==i.indexOf(";")&&(i=i.split(";")[0]),t&&-1!==t.indexOf(".")){var o=t.split(".");t=o[0],i=o[1]}var r=(t||Math.round(9999999999*Math.random())+888888888)+"."+i;if(void 0!==navigator.msSaveOrOpenBlob)return navigator.msSaveOrOpenBlob(e,r);if(void 0!==navigator.msSaveBlob)return navigator.msSaveBlob(e,r);var A=document.createElement("a");A.href=l.createObjectURL(e),A.download=r,A.style="display:none;opacity:0;color:transparent;",(document.body||document.documentElement).appendChild(A),"function"==typeof A.click?A.click():(A.target="_blank",A.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))),l.revokeObjectURL(A.href)}function v(){return"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||(!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0)}function w(e,t){return e&&e.getTracks?e.getTracks().filter((function(e){return e.kind===(t||"audio")})):[]}function S(e,t){"srcObject"in t?t.srcObject=e:"mozSrcObject"in t?t.mozSrcObject=e:t.srcObject=e}void 0===f&&"undefined"!=typeof webkitMediaStream&&(f=webkitMediaStream),void 0!==f&&void 0===f.prototype.stop&&(f.prototype.stop=function(){this.getTracks().forEach((function(e){e.stop()}))}),i.invokeSaveAsDialog=y,i.getTracks=w,i.getSeekableBlob=function(e,t){if("undefined"==typeof EBML)throw new Error("Please link: https://www.webrtc-experiment.com/EBML.js");var i=new EBML.Reader,o=new EBML.Decoder,r=EBML.tools,A=new FileReader;A.onload=function(e){o.decode(this.result).forEach((function(e){i.read(e)})),i.stop();var A=r.makeMetadataSeekable(i.metadatas,i.duration,i.cues),s=this.result.slice(i.metadataSize),n=new Blob([A,s],{type:"video/webm"});t(n)},A.readAsArrayBuffer(e)},i.bytesToSize=b,i.isElectron=v;var E={};function B(){if(p||g||u)return!0;var e,t,i=navigator.userAgent,o=""+parseFloat(navigator.appVersion),r=parseInt(navigator.appVersion,10);return(m||h)&&(e=i.indexOf("Chrome"),o=i.substring(e+7)),-1!==(t=o.indexOf(";"))&&(o=o.substring(0,t)),-1!==(t=o.indexOf(" "))&&(o=o.substring(0,t)),r=parseInt(""+o,10),isNaN(r)&&(o=""+parseFloat(navigator.appVersion),r=parseInt(navigator.appVersion,10)),r>=49}function C(e,t){var i=this;if(void 0===e)throw'First argument "MediaStream" is required.';if("undefined"==typeof MediaRecorder)throw"Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder.";if("audio"===(t=t||{mimeType:"video/webm"}).type){var o;if(w(e,"video").length&&w(e,"audio").length)navigator.mozGetUserMedia?(o=new f).addTrack(w(e,"audio")[0]):o=new f(w(e,"audio")),e=o;t.mimeType&&-1!==t.mimeType.toString().toLowerCase().indexOf("audio")||(t.mimeType=m?"audio/webm":"audio/ogg"),t.mimeType&&"audio/ogg"!==t.mimeType.toString().toLowerCase()&&navigator.mozGetUserMedia&&(t.mimeType="audio/ogg")}var r,A=[];function s(){i.timestamps.push((new Date).getTime()),"function"==typeof t.onTimeStamp&&t.onTimeStamp(i.timestamps[i.timestamps.length-1],i.timestamps)}function n(e){return r&&r.mimeType?r.mimeType:e.mimeType||"video/webm"}function a(){A=[],r=null,i.timestamps=[]}this.getArrayOfBlobs=function(){return A},this.record=function(){i.blob=null,i.clearRecordedData(),i.timestamps=[],d=[],A=[];var o=t;t.disableLogs||console.log("Passing following config over MediaRecorder API.",o),r&&(r=null),m&&!B()&&(o="video/vp8"),"function"==typeof MediaRecorder.isTypeSupported&&o.mimeType&&(MediaRecorder.isTypeSupported(o.mimeType)||(t.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",o.mimeType),o.mimeType="audio"===t.type?"audio/webm":"video/webm"));try{r=new MediaRecorder(e,o),t.mimeType=o.mimeType}catch(t){r=new MediaRecorder(e)}o.mimeType&&!MediaRecorder.isTypeSupported&&"canRecordMimeType"in r&&!1===r.canRecordMimeType(o.mimeType)&&(t.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",o.mimeType)),r.ondataavailable=function(e){if(e.data&&d.push("ondataavailable: "+b(e.data.size)),"number"!=typeof t.timeSlice)!e.data||!e.data.size||e.data.size<100||i.blob?i.recordingCallback&&(i.recordingCallback(new Blob([],{type:n(o)})),i.recordingCallback=null):(i.blob=t.getNativeBlob?e.data:new Blob([e.data],{type:n(o)}),i.recordingCallback&&(i.recordingCallback(i.blob),i.recordingCallback=null));else if(e.data&&e.data.size&&(A.push(e.data),s(),"function"==typeof t.ondataavailable)){var r=t.getNativeBlob?e.data:new Blob([e.data],{type:n(o)});t.ondataavailable(r)}},r.onstart=function(){d.push("started")},r.onpause=function(){d.push("paused")},r.onresume=function(){d.push("resumed")},r.onstop=function(){d.push("stopped")},r.onerror=function(e){e&&(e.name||(e.name="UnknownError"),d.push("error: "+e),t.disableLogs||(-1!==e.name.toString().toLowerCase().indexOf("invalidstate")?console.error("The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.",e):-1!==e.name.toString().toLowerCase().indexOf("notsupported")?console.error("MIME type (",o.mimeType,") is not supported.",e):-1!==e.name.toString().toLowerCase().indexOf("security")?console.error("MediaRecorder security error",e):"OutOfMemory"===e.name?console.error("The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"IllegalStreamModification"===e.name?console.error("A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"OtherRecordingError"===e.name?console.error("Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"GenericError"===e.name?console.error("The UA cannot provide the codec or recording option that has been requested.",e):console.error("MediaRecorder Error",e)),function(e){if(!i.manuallyStopped&&r&&"inactive"===r.state)return delete t.timeslice,void r.start(6e5);setTimeout(void 0,1e3)}(),"inactive"!==r.state&&"stopped"!==r.state&&r.stop())},"number"==typeof t.timeSlice?(s(),r.start(t.timeSlice)):r.start(36e5),t.initCallback&&t.initCallback()},this.timestamps=[],this.stop=function(e){e=e||function(){},i.manuallyStopped=!0,r&&(this.recordingCallback=e,"recording"===r.state&&r.stop(),"number"==typeof t.timeSlice&&setTimeout((function(){i.blob=new Blob(A,{type:n(t)}),i.recordingCallback(i.blob)}),100))},this.pause=function(){r&&"recording"===r.state&&r.pause()},this.resume=function(){r&&"paused"===r.state&&r.resume()},this.clearRecordedData=function(){r&&"recording"===r.state&&i.stop(a),a()},this.getInternalRecorder=function(){return r},this.blob=null,this.getState=function(){return r&&r.state||"inactive"};var d=[];this.getAllStates=function(){return d},void 0===t.checkForInactiveTracks&&(t.checkForInactiveTracks=!1);i=this;!function o(){if(r&&!1!==t.checkForInactiveTracks)return!1===function(){if("active"in e){if(!e.active)return!1}else if("ended"in e&&e.ended)return!1;return!0}()?(t.disableLogs||console.log("MediaStream seems stopped."),void i.stop()):void setTimeout(o,1e3)}(),this.name="MediaStreamRecorder",this.toString=function(){return this.name}}function R(e,t){if(!w(e,"audio").length)throw"Your stream has no audio tracks.";var o,r=this,A=[],s=[],n=!1,a=0,d=2,c=(t=t||{}).desiredSampRate;function u(){if(!1===t.checkForInactiveTracks)return!0;if("active"in e){if(!e.active)return!1}else if("ended"in e&&e.ended)return!1;return!0}function h(e,t){function i(e,t){var i,o=e.numberOfAudioChannels,r=e.leftBuffers.slice(0),A=e.rightBuffers.slice(0),s=e.sampleRate,n=e.internalInterleavedLength,a=e.desiredSampRate;function d(e,t,i){var o=Math.round(e.length*(t/i)),r=[],A=Number((e.length-1)/(o-1));r[0]=e[0];for(var s=1;s96e3)&&(t.disableLogs||console.log("sample-rate must be under range 22050 and 96000.")),t.disableLogs||t.desiredSampRate&&console.log("Desired sample-rate: "+t.desiredSampRate);var y=!1;function v(){A=[],s=[],a=0,E=!1,n=!1,y=!1,p=null,r.leftchannel=A,r.rightchannel=s,r.numberOfAudioChannels=d,r.desiredSampRate=c,r.sampleRate=b,r.recordingLength=a,B={left:[],right:[],recordingLength:0}}function S(){o&&(o.onaudioprocess=null,o.disconnect(),o=null),m&&(m.disconnect(),m=null),v()}this.pause=function(){y=!0},this.resume=function(){if(!1===u())throw"Please make sure MediaStream is active.";if(!n)return t.disableLogs||console.log("Seems recording has been restarted."),void this.record();y=!1},this.clearRecordedData=function(){t.checkForInactiveTracks=!1,n&&this.stop(S),S()},this.name="StereoAudioRecorder",this.toString=function(){return this.name};var E=!1;o.onaudioprocess=function(e){if(!y)if(!1===u()&&(t.disableLogs||console.log("MediaStream seems stopped."),o.disconnect(),n=!1),n){E||(E=!0,t.onAudioProcessStarted&&t.onAudioProcessStarted(),t.initCallback&&t.initCallback());var i=e.inputBuffer.getChannelData(0),c=new Float32Array(i);if(A.push(c),2===d){var l=e.inputBuffer.getChannelData(1),h=new Float32Array(l);s.push(h)}a+=f,r.recordingLength=a,void 0!==t.timeSlice&&(B.recordingLength+=f,B.left.push(c),2===d&&B.right.push(h))}else m&&(m.disconnect(),m=null)},p.createMediaStreamDestination?o.connect(p.createMediaStreamDestination()):o.connect(p.destination),this.leftchannel=A,this.rightchannel=s,this.numberOfAudioChannels=d,this.desiredSampRate=c,this.sampleRate=b,r.recordingLength=a;var B={left:[],right:[],recordingLength:0};function C(){n&&"function"==typeof t.ondataavailable&&void 0!==t.timeSlice&&(B.left.length?(h({desiredSampRate:c,sampleRate:b,numberOfAudioChannels:d,internalInterleavedLength:B.recordingLength,leftBuffers:B.left,rightBuffers:1===d?[]:B.right},(function(e,i){var o=new Blob([i],{type:"audio/wav"});t.ondataavailable(o),setTimeout(C,t.timeSlice)})),B={left:[],right:[],recordingLength:0}):setTimeout(C,t.timeSlice))}}function k(e,t){if("undefined"==typeof html2canvas)throw"Please link: https://www.webrtc-experiment.com/screenshot.js";(t=t||{}).frameInterval||(t.frameInterval=10);var i=!1;["captureStream","mozCaptureStream","webkitCaptureStream"].forEach((function(e){e in document.createElement("canvas")&&(i=!0)}));var o,r,A,s=!(!window.webkitRTCPeerConnection&&!window.webkitGetUserMedia||!window.chrome),n=50,a=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(s&&a&&a[2]&&(n=parseInt(a[2],10)),s&&n<52&&(i=!1),t.useWhammyRecorder&&(i=!1),i)if(t.disableLogs||console.log("Your browser supports both MediRecorder API and canvas.captureStream!"),e instanceof HTMLCanvasElement)o=e;else{if(!(e instanceof CanvasRenderingContext2D))throw"Please pass either HTMLCanvasElement or CanvasRenderingContext2D.";o=e.canvas}else navigator.mozGetUserMedia&&(t.disableLogs||console.error("Canvas recording is NOT supported in Firefox."));this.record=function(){if(A=!0,i&&!t.useWhammyRecorder){var e;"captureStream"in o?e=o.captureStream(25):"mozCaptureStream"in o?e=o.mozCaptureStream(25):"webkitCaptureStream"in o&&(e=o.webkitCaptureStream(25));try{var s=new f;s.addTrack(w(e,"video")[0]),e=s}catch(e){}if(!e)throw"captureStream API are NOT available.";(r=new C(e,{mimeType:t.mimeType||"video/webm"})).record()}else h.frames=[],u=(new Date).getTime(),l();t.initCallback&&t.initCallback()},this.getWebPImages=function(i){if("canvas"===e.nodeName.toLowerCase()){var o=h.frames.length;h.frames.forEach((function(e,i){var r=o-i;t.disableLogs||console.log(r+"/"+o+" frames remaining"),t.onEncodingCallback&&t.onEncodingCallback(r,o);var A=e.image.toDataURL("image/webp",1);h.frames[i].image=A})),t.disableLogs||console.log("Generating WebM"),i()}else i()},this.stop=function(e){A=!1;var o=this;i&&r?r.stop(e):this.getWebPImages((function(){h.compile((function(i){t.disableLogs||console.log("Recording finished!"),o.blob=i,o.blob.forEach&&(o.blob=new Blob([],{type:"video/webm"})),e&&e(o.blob),h.frames=[]}))}))};var d=!1;function c(){h.frames=[],A=!1,d=!1}function l(){if(d)return u=(new Date).getTime(),setTimeout(l,500);if("canvas"===e.nodeName.toLowerCase()){var i=(new Date).getTime()-u;return u=(new Date).getTime(),h.frames.push({image:(o=document.createElement("canvas"),r=o.getContext("2d"),o.width=e.width,o.height=e.height,r.drawImage(e,0,0),o),duration:i}),void(A&&setTimeout(l,t.frameInterval))}var o,r;html2canvas(e,{grabMouse:void 0===t.showMousePointer||t.showMousePointer,onrendered:function(e){var i=(new Date).getTime()-u;if(!i)return setTimeout(l,t.frameInterval);u=(new Date).getTime(),h.frames.push({image:e.toDataURL("image/webp",1),duration:i}),A&&setTimeout(l,t.frameInterval)}})}this.pause=function(){d=!0,r instanceof C&&r.pause()},this.resume=function(){d=!1,r instanceof C?r.resume():A||this.record()},this.clearRecordedData=function(){A&&this.stop(c),c()},this.name="CanvasRecorder",this.toString=function(){return this.name};var u=(new Date).getTime(),h=new I.Video(100)}function T(e,t){function i(e){e=void 0!==e?e:10;var t=(new Date).getTime()-a;return t?A?(a=(new Date).getTime(),setTimeout(i,100)):(a=(new Date).getTime(),n.paused&&n.play(),l.drawImage(n,0,0,c.width,c.height),d.frames.push({duration:t,image:c.toDataURL("image/webp")}),void(r||setTimeout(i,e,e))):setTimeout(i,e,e)}function o(e,t,i,o,r){var A=document.createElement("canvas");A.width=c.width,A.height=c.height;var s,n,a,d=A.getContext("2d"),l=[],u=-1===t,h=t&&t>0&&t<=e.length?t:e.length,p=0,m=0,g=0,f=Math.sqrt(Math.pow(255,2)+Math.pow(255,2)+Math.pow(255,2)),b=i&&i>=0&&i<=1?i:0,y=o&&o>=0&&o<=1?o:0,v=!1;n=-1,a=(s={length:h,functionToLoop:function(t,i){var o,r,A,s=function(){!v&&A-o<=A*y||(u&&(v=!0),l.push(e[i])),t()};if(v)s();else{var n=new Image;n.onload=function(){d.drawImage(n,0,0,c.width,c.height);var e=d.getImageData(0,0,c.width,c.height);o=0,r=e.data.length,A=e.data.length/4;for(var t=0;t127)throw"TrackNumber > 127 not supported";return[128|e.trackNum,e.timecode>>8,255&e.timecode,t].map((function(e){return String.fromCharCode(e)})).join("")+e.frame}({discardable:0,frame:e.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(t)});return t+=e.duration,{data:i,id:163}})))}function i(e){for(var t=[];e>0;)t.push(255&e),e>>=8;return new Uint8Array(t.reverse())}function o(e){var t=[];e=(e.length%8?new Array(9-e.length%8).join("0"):"")+e;for(var i=0;i1?2*A[0].width:A[0].width;var n=1;3!==e&&4!==e||(n=2),5!==e&&6!==e||(n=3),7!==e&&8!==e||(n=4),9!==e&&10!==e||(n=5),r.height=A[0].height*n}else r.width=s.width||360,r.height=s.height||240;t&&t instanceof HTMLVideoElement&&u(t),A.forEach((function(e,t){u(e,t)})),setTimeout(l,s.frameInterval)}}function u(e,t){if(!o){var i=0,r=0,s=e.width,n=e.height;1===t&&(i=e.width),2===t&&(r=e.height),3===t&&(i=e.width,r=e.height),4===t&&(r=2*e.height),5===t&&(i=e.width,r=2*e.height),6===t&&(r=3*e.height),7===t&&(i=e.width,r=3*e.height),void 0!==e.stream.left&&(i=e.stream.left),void 0!==e.stream.top&&(r=e.stream.top),void 0!==e.stream.width&&(s=e.stream.width),void 0!==e.stream.height&&(n=e.stream.height),A.drawImage(e,i,r,s,n),"function"==typeof e.stream.onRender&&e.stream.onRender(A,i,r,s,n,t)}}function h(e){var i=document.createElement("video");return function(e,t){"srcObject"in t?t.srcObject=e:"mozSrcObject"in t?t.mozSrcObject=e:t.srcObject=e}(e,i),i.className=t,i.muted=!0,i.volume=0,i.width=e.width||s.width||360,i.height=e.height||s.height||240,i.play(),i}function p(t){i=[],(t=t||e).forEach((function(e){if(e.getTracks().filter((function(e){return"video"===e.kind})).length){var t=h(e);t.stream=e,i.push(t)}}))}void 0!==n?c.AudioContext=n:"undefined"!=typeof webkitAudioContext&&(c.AudioContext=webkitAudioContext),this.startDrawingFrames=function(){l()},this.appendStreams=function(t){if(!t)throw"First parameter is required.";t instanceof Array||(t=[t]),t.forEach((function(t){var o=new d;if(t.getTracks().filter((function(e){return"video"===e.kind})).length){var r=h(t);r.stream=t,i.push(r),o.addTrack(t.getTracks().filter((function(e){return"video"===e.kind}))[0])}if(t.getTracks().filter((function(e){return"audio"===e.kind})).length){var A=s.audioContext.createMediaStreamSource(t);s.audioDestination=s.audioContext.createMediaStreamDestination(),A.connect(s.audioDestination),o.addTrack(s.audioDestination.stream.getTracks().filter((function(e){return"audio"===e.kind}))[0])}e.push(o)}))},this.releaseStreams=function(){i=[],o=!0,s.gainNode&&(s.gainNode.disconnect(),s.gainNode=null),s.audioSources.length&&(s.audioSources.forEach((function(e){e.disconnect()})),s.audioSources=[]),s.audioDestination&&(s.audioDestination.disconnect(),s.audioDestination=null),s.audioContext&&s.audioContext.close(),s.audioContext=null,A.clearRect(0,0,r.width,r.height),r.stream&&(r.stream.stop(),r.stream=null)},this.resetVideoStreams=function(e){!e||e instanceof Array||(e=[e]),p(e)},this.name="MultiStreamsMixer",this.toString=function(){return this.name},this.getMixedStream=function(){o=!1;var t=function(){var e;p(),"captureStream"in r?e=r.captureStream():"mozCaptureStream"in r?e=r.mozCaptureStream():s.disableLogs||console.error("Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features");var t=new d;return e.getTracks().filter((function(e){return"video"===e.kind})).forEach((function(e){t.addTrack(e)})),r.stream=t,t}(),i=function(){c.AudioContextConstructor||(c.AudioContextConstructor=new c.AudioContext);s.audioContext=c.AudioContextConstructor,s.audioSources=[],!0===s.useGainNode&&(s.gainNode=s.audioContext.createGain(),s.gainNode.connect(s.audioContext.destination),s.gainNode.gain.value=0);var t=0;if(e.forEach((function(e){if(e.getTracks().filter((function(e){return"audio"===e.kind})).length){t++;var i=s.audioContext.createMediaStreamSource(e);!0===s.useGainNode&&i.connect(s.gainNode),s.audioSources.push(i)}})),!t)return;return s.audioDestination=s.audioContext.createMediaStreamDestination(),s.audioSources.forEach((function(e){e.connect(s.audioDestination)})),s.audioDestination.stream}();return i&&i.getTracks().filter((function(e){return"audio"===e.kind})).forEach((function(e){t.addTrack(e)})),e.forEach((function(e){e.fullcanvas})),t}}function L(e,t){e=e||[];var i,o,r=this;(t=t||{elementClass:"multi-streams-mixer",mimeType:"video/webm",video:{width:360,height:240}}).frameInterval||(t.frameInterval=10),t.video||(t.video={}),t.video.width||(t.video.width=360),t.video.height||(t.video.height=240),this.record=function(){var r;i=new j(e,t.elementClass||"multi-streams-mixer"),(r=[],e.forEach((function(e){w(e,"video").forEach((function(e){r.push(e)}))})),r).length&&(i.frameInterval=t.frameInterval||10,i.width=t.video.width||360,i.height=t.video.height||240,i.startDrawingFrames()),t.previewStream&&"function"==typeof t.previewStream&&t.previewStream(i.getMixedStream()),(o=new C(i.getMixedStream(),t)).record()},this.stop=function(e){o&&o.stop((function(t){r.blob=t,e(t),r.clearRecordedData()}))},this.pause=function(){o&&o.pause()},this.resume=function(){o&&o.resume()},this.clearRecordedData=function(){o&&(o.clearRecordedData(),o=null),i&&(i.releaseStreams(),i=null)},this.addStreams=function(r){if(!r)throw"First parameter is required.";r instanceof Array||(r=[r]),e.concat(r),o&&i&&(i.appendStreams(r),t.previewStream&&"function"==typeof t.previewStream&&t.previewStream(i.getMixedStream()))},this.resetVideoStreams=function(e){i&&(!e||e instanceof Array||(e=[e]),i.resetVideoStreams(e))},this.getMixer=function(){return i},this.name="MultiStreamRecorder",this.toString=function(){return this.name}}function U(e,t){var i,o,r;function A(){return new ReadableStream({start:function(o){var r=document.createElement("canvas"),A=document.createElement("video"),s=!0;A.srcObject=e,A.muted=!0,A.height=t.height,A.width=t.width,A.volume=0,A.onplaying=function(){r.width=t.width,r.height=t.height;var e=r.getContext("2d"),n=1e3/t.frameRate,a=setInterval((function(){if(i&&(clearInterval(a),o.close()),s&&(s=!1,t.onVideoProcessStarted&&t.onVideoProcessStarted()),e.drawImage(A,0,0),"closed"!==o._controlledReadableStream.state)try{o.enqueue(e.getImageData(0,0,t.width,t.height))}catch(e){}}),n)},A.play()}})}function s(e,a){if(!t.workerPath&&!a)return i=!1,void fetch("https://unpkg.com/webm-wasm@latest/dist/webm-worker.js").then((function(t){t.arrayBuffer().then((function(t){s(e,t)}))}));if(!t.workerPath&&a instanceof ArrayBuffer){var d=new Blob([a],{type:"text/javascript"});t.workerPath=l.createObjectURL(d)}t.workerPath||console.error("workerPath parameter is missing."),(o=new Worker(t.workerPath)).postMessage(t.webAssemblyPath||"https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm"),o.addEventListener("message",(function(e){"READY"===e.data?(o.postMessage({width:t.width,height:t.height,bitrate:t.bitrate||1200,timebaseDen:t.frameRate||30,realtime:t.realtime}),A().pipeTo(new WritableStream({write:function(e){i?console.error("Got image, but recorder is finished!"):o.postMessage(e.data.buffer,[e.data.buffer])}}))):e.data&&(r||n.push(e.data))}))}"undefined"!=typeof ReadableStream&&"undefined"!=typeof WritableStream||console.error("Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js"),(t=t||{}).width=t.width||640,t.height=t.height||480,t.frameRate=t.frameRate||30,t.bitrate=t.bitrate||1200,t.realtime=t.realtime||!0,this.record=function(){n=[],r=!1,this.blob=null,s(e),"function"==typeof t.initCallback&&t.initCallback()},this.pause=function(){r=!0},this.resume=function(){r=!1};var n=[];this.stop=function(e){i=!0;var t=this;!function(e){o?(o.addEventListener("message",(function(t){null===t.data&&(o.terminate(),o=null,e&&e())})),o.postMessage(null)):e&&e()}((function(){t.blob=new Blob(n,{type:"video/webm"}),e(t.blob)}))},this.name="WebAssemblyRecorder",this.toString=function(){return this.name},this.clearRecordedData=function(){n=[],r=!1,this.blob=null},this.blob=null}i.DiskStorage=x,i.GifRecorder=D,i.MultiStreamRecorder=L,i.RecordRTCPromisesHandler=function(e,t){if(!this)throw'Use "new RecordRTCPromisesHandler()"';if(void 0===e)throw'First argument "MediaStream" is required.';var o=this;o.recordRTC=new i(e,t),this.startRecording=function(){return new Promise((function(e,t){try{o.recordRTC.startRecording(),e()}catch(e){t(e)}}))},this.stopRecording=function(){return new Promise((function(e,t){try{o.recordRTC.stopRecording((function(i){o.blob=o.recordRTC.getBlob(),o.blob&&o.blob.size?e(i):t("Empty blob.",o.blob)}))}catch(e){t(e)}}))},this.pauseRecording=function(){return new Promise((function(e,t){try{o.recordRTC.pauseRecording(),e()}catch(e){t(e)}}))},this.resumeRecording=function(){return new Promise((function(e,t){try{o.recordRTC.resumeRecording(),e()}catch(e){t(e)}}))},this.getDataURL=function(e){return new Promise((function(e,t){try{o.recordRTC.getDataURL((function(t){e(t)}))}catch(e){t(e)}}))},this.getBlob=function(){return new Promise((function(e,t){try{e(o.recordRTC.getBlob())}catch(e){t(e)}}))},this.getInternalRecorder=function(){return new Promise((function(e,t){try{e(o.recordRTC.getInternalRecorder())}catch(e){t(e)}}))},this.reset=function(){return new Promise((function(e,t){try{e(o.recordRTC.reset())}catch(e){t(e)}}))},this.destroy=function(){return new Promise((function(e,t){try{e(o.recordRTC.destroy())}catch(e){t(e)}}))},this.getState=function(){return new Promise((function(e,t){try{e(o.recordRTC.getState())}catch(e){t(e)}}))},this.blob=null,this.version="5.6.2"},i.WebAssemblyRecorder=U}));class Fe extends Be{constructor(e){super(),this.player=e,this.fileName="",this.fileType=H,this.isRecording=!1,this.recordingTimestamp=0,this.recordingInterval=null,e.debug.log("Recorder","init")}destroy(){this._reset(),this.player.debug.log("Recorder","destroy")}setFileName(e,t){this.fileName=e,Y!==t&&H!==t||(this.fileType=t)}get recording(){return this.isRecording}get recordTime(){return this.recordingTimestamp}startRecord(){const e=this.player.debug,t={type:"video",mimeType:"video/webm;codecs=h264",onTimeStamp:t=>{e.log("Recorder","record timestamp :"+t)},disableLogs:!this.player._opt.debug};try{const e=this.player.video.$videoElement.captureStream(25);if(this.player.audio&&this.player.audio.mediaStreamAudioDestinationNode&&this.player.audio.mediaStreamAudioDestinationNode.stream&&!this.player.audio.isStateSuspended()&&this.player.audio.hasAudio&&this.player._opt.hasAudio){const t=this.player.audio.mediaStreamAudioDestinationNode.stream;if(t.getAudioTracks().length>0){const i=t.getAudioTracks()[0];i&&i.enabled&&e.addTrack(i)}}this.recorder=Ue(e,t)}catch(t){e.error("Recorder",t),this.emit(T.recordCreateError)}this.recorder&&(this.isRecording=!0,this.emit(T.recording,!0),this.recorder.startRecording(),e.log("Recorder","start recording"),this.player.emit(T.recordStart),this.recordingInterval=window.setInterval((()=>{this.recordingTimestamp+=1,this.player.emit(T.recordingTimestamp,this.recordingTimestamp)}),1e3))}stopRecordAndSave(){this.recorder&&this.isRecording&&this.recorder.stopRecording((()=>{this.player.debug.log("Recorder","stop recording"),this.player.emit(T.recordEnd),function(e,t,i){const o=window.URL.createObjectURL(e),r=document.createElement("a");r.href=o,r.download=(t||he())+"."+(i||H),r.click(),setTimeout((()=>{window.URL.revokeObjectURL(o)}),ve()?1e3:0)}(this.recorder.getBlob(),this.fileName,this.fileType),this._reset(),this.emit(T.recording,!1)}))}_reset(){this.isRecording=!1,this.recordingTimestamp=0,this.recorder&&(this.recorder.destroy(),this.recorder=null),this.fileName=null,this.recordingInterval&&clearInterval(this.recordingInterval),this.recordingInterval=null}}class Ve{constructor(e){return new(Ve.getLoaderFactory())(e)}static getLoaderFactory(){return Fe}}class Oe{constructor(e){this.player=e,this.decoderWorker=new Worker(e._opt.decoder),this._initDecoderWorker(),e.debug.log("decoderWorker","init")}destroy(){this.decoderWorker.postMessage({cmd:R}),this.decoderWorker.terminate(),this.decoderWorker=null,this.player.debug.log("decoderWorker","destroy")}_initDecoderWorker(){const{debug:e,events:{proxy:t}}=this.player;this.decoderWorker.onmessage=t=>{const i=t.data;switch(i.cmd){case c:e.log("decoderWorker","onmessage:",c),this.player.loaded||this.player.emit(T.load),this.player.emit(T.decoderWorkerInit),this._initWork();break;case g:e.log("decoderWorker","onmessage:",g,i.code),this.player._times.decodeStart||(this.player._times.decodeStart=he()),this.player.video.updateVideoInfo({encTypeCode:i.code});break;case m:e.log("decoderWorker","onmessage:",m,i.code),this.player.audio&&this.player.audio.updateAudioInfo({encTypeCode:i.code});break;case l:e.log("decoderWorker","onmessage:",l,`width:${i.w},height:${i.h}`),this.player.video.updateVideoInfo({width:i.w,height:i.h}),this.player.video.initCanvasViewSize();break;case p:e.log("decoderWorker","onmessage:",p,`channels:${i.channels},sampleRate:${i.sampleRate}`),this.player.audio&&(this.player.audio.updateAudioInfo(i),this.player.audio.initScriptNode(i));break;case u:this.player.handleRender(),this.player.video.render(i),this.player.emit(T.timeUpdate,i.ts),this.player.updateStats({fps:!0,ts:i.ts,buf:i.delay}),this.player._times.videoStart||(this.player._times.videoStart=he(),this.player.handlePlayToRenderTimes());break;case h:this.player.playing&&this.player.audio&&this.player.audio.play(i.buffer,i.ts);break;case f:i.message&&-1!==i.message.indexOf(b)&&(this.player.emit(T.error,x.wasmDecodeError),this.player.emit(x.wasmDecodeError));break;default:this.player[i.cmd]&&this.player[i.cmd](i)}}}_initWork(){const e={debug:this.player._opt.debug,forceNoOffscreen:this.player._opt.forceNoOffscreen,useWCS:this.player._opt.useWCS,videoBuffer:this.player._opt.videoBuffer,openWebglAlignment:this.player._opt.openWebglAlignment};this.decoderWorker.postMessage({cmd:E,opt:JSON.stringify(e),sampleRate:this.player.audio&&this.player.audio.audioContext.sampleRate||0})}decodeVideo(e,t,i){const o={type:v,ts:Math.max(t,0),isIFrame:i};this.decoderWorker.postMessage({cmd:B,buffer:e,options:o},[e.buffer])}decodeAudio(e,t){this.player._opt.useWCS&&!this.player._opt.useOffscreen||this.player._opt.useMSE?this._decodeAudioNoDelay(e,t):this._decodeAudio(e,t)}_decodeAudio(e,t){const i={type:y,ts:Math.max(t,0)};this.decoderWorker.postMessage({cmd:B,buffer:e,options:i},[e.buffer])}_decodeAudioNoDelay(e,t){this.decoderWorker.postMessage({cmd:C,buffer:e,ts:Math.max(t,0)},[e.buffer])}updateWorkConfig(e){this.decoderWorker.postMessage({cmd:k,key:e.key,value:e.value})}}class Me extends Be{constructor(e){super(),this.player=e,this.stopId=null,this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.bufferList=[],this.dropping=!1,this.initInterval()}destroy(){this.stopId&&(clearInterval(this.stopId),this.stopId=null),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.bufferList=[],this.dropping=!1,this.off()}getDelay(e){return e?(this.firstTimestamp?e&&(this.delay=Date.now()-this.startTimestamp-(e-this.firstTimestamp)):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.delay):-1}resetDelay(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1}initInterval(){this.player.debug.log("common dumex","init Interval");let e=()=>{let e;const t=this.player._opt.videoBuffer;if(this.bufferList.length)if(this.dropping){for(e=this.bufferList.shift(),e.type===y&&0===e.payload[1]&&this._doDecoderDecode(e);!e.isIFrame&&this.bufferList.length;)e=this.bufferList.shift(),e.type===y&&0===e.payload[1]&&this._doDecoderDecode(e);e.isIFrame&&(this.dropping=!1,this._doDecoderDecode(e))}else if(e=this.bufferList[0],-1===this.getDelay(e.ts))this.bufferList.shift(),this._doDecoderDecode(e);else if(this.delay>t+1e3)this.resetDelay(),this.dropping=!0;else for(;this.bufferList.length&&(e=this.bufferList[0],this.getDelay(e.ts)>t);)this.bufferList.shift(),this._doDecoderDecode(e)};e(),this.stopId=setInterval(e,10)}_doDecode(e,t,i,o){const r=this.player;let A={ts:i,type:t,isIFrame:!1};r._opt.useWCS&&!r._opt.useOffscreen||r._opt.useMSE?(t===v&&(A.isIFrame=o),this.pushBuffer(e,A)):t===v?r.decoderWorker&&r.decoderWorker.decodeVideo(e,i,o):t===y&&r._opt.hasAudio&&r.decoderWorker&&r.decoderWorker.decodeAudio(e,i)}_doDecoderDecode(e){const t=this.player,{webcodecsDecoder:i,mseDecoder:o}=t;e.type===y?t._opt.hasAudio&&t.decoderWorker&&t.decoderWorker.decodeAudio(e.payload,e.ts):e.type===v&&(t._opt.useWCS&&!t._opt.useOffscreen?i.decodeVideo(e.payload,e.ts,e.isIFrame):t._opt.useMSE&&o.decodeVideo(e.payload,e.ts,e.isIFrame))}pushBuffer(e,t){t.type===y?this.bufferList.push({ts:t.ts,payload:e,type:y}):t.type===v&&this.bufferList.push({ts:t.ts,payload:e,type:v,isIFrame:t.isIFrame})}close(){}}class Qe extends Me{constructor(e){super(e),this.input=this._inputFlv(),this.flvDemux=this.dispatchFlvData(this.input),e.debug.log("FlvDemux","init")}destroy(){super.destroy(),this.input=null,this.flvDemux=null,this.player.debug.log("FlvDemux","destroy")}dispatch(e){this.flvDemux(e)}*_inputFlv(){yield 9;const e=new ArrayBuffer(4),t=new Uint8Array(e),i=new Uint32Array(e),o=this.player;for(;;){t[3]=0;const e=yield 15,r=e[4];t[0]=e[7],t[1]=e[6],t[2]=e[5];const A=i[0];t[0]=e[10],t[1]=e[9],t[2]=e[8];let s=i[0];16777215===s&&(t[3]=e[11],s=i[0]);const n=yield A;switch(r){case w:o._opt.hasAudio&&(o.updateStats({abps:n.byteLength}),n.byteLength>0&&this._doDecode(n,y,s));break;case S:if(o._times.demuxStart||(o._times.demuxStart=he()),o._opt.hasVideo){o.updateStats({vbps:n.byteLength});const e=n[0]>>4==1;n.byteLength>0&&this._doDecode(n,v,s,e)}}}}dispatchFlvData(e){let t=e.next(),i=null;return o=>{let r=new Uint8Array(o);if(i){let e=new Uint8Array(i.length+r.length);e.set(i),e.set(r,i.length),r=e,i=null}for(;r.length>=t.value;){let i=r.slice(t.value);t=e.next(r.slice(0,t.value)),r=i}r.length>0&&(i=r)}}close(){this.input&&this.input.return(null)}}class We extends Me{constructor(e){super(e),e.debug.log("M7sDemux","init")}destroy(){super.destroy(),this.player.debug.log("M7sDemux","destroy")}dispatch(e){const t=this.player,i=new DataView(e),o=i.getUint8(0),r=i.getUint32(1,!1);switch(o){case y:if(t._opt.hasAudio){const i=new Uint8Array(e,5);t.updateStats({abps:i.byteLength}),i.byteLength>0&&this._doDecode(i,o,r)}break;case v:if(t._opt.hasVideo&&(t._times.demuxStart||(t._times.demuxStart=he()),i.byteLength>5)){const A=new Uint8Array(e,5),s=i.getUint8(5)>>4==1;t.updateStats({vbps:A.byteLength}),A.byteLength>0&&this._doDecode(A,o,r,s)}}}}class Ge{constructor(e){return new(Ge.getLoaderFactory(e._opt.demuxType))(e)}static getLoaderFactory(e){return e===a?We:e===n?Qe:void 0}}class Je extends Be{constructor(e){super(),this.player=e,this.hasInit=!1,this.isInitInfo=!1,this.decoder=null,this.initDecoder(),e.debug.log("Webcodecs","init")}destroy(){this.decoder&&(this.decoder.close(),this.decoder=null),this.hasInit=!1,this.isInitInfo=!1,this.off(),this.player.debug.log("Webcodecs","destroy")}initDecoder(){const e=this;this.decoder=new VideoDecoder({output(t){e.handleDecode(t)},error(t){e.handleError(t)}})}handleDecode(e){this.isInitInfo||(this.player.video.updateVideoInfo({width:e.codedWidth,height:e.codedHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0),this.player._times.videoStart||(this.player._times.videoStart=he(),this.player.handlePlayToRenderTimes()),this.player.handleRender(),this.player.video.render({videoFrame:e}),this.player.updateStats({fps:!0,ts:0,buf:this.player.demux.delay}),setTimeout((function(){e.close?e.close():e.destroy()}),100)}handleError(e){this.player.debug.log("Webcodecs","VideoDecoder handleError",e)}decodeVideo(e,t,i){if(this.hasInit){const o=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:i?K:_});this.decoder.decode(o)}else if(i&&0===e[1]){const t=15&e[0];if(this.player.video.updateVideoInfo({encTypeCode:t}),t===M)return void this.emit(x.webcodecsH265NotSupport);this.player._times.decodeStart||(this.player._times.decodeStart=he());const i=function(e){let t=e.subarray(1,4),i="avc1.";for(let e=0;e<3;e++){let o=t[e].toString(16);o.length<2&&(o="0"+o),i+=o}return{codec:i,description:e}}(e.slice(5));this.decoder.configure(i),this.hasInit=!0}}}const Ne={play:"播放",pause:"暂停",audio:"",mute:"",screenshot:"截图",loading:"加载",fullscreen:"全屏",fullscreenExit:"退出全屏",record:"录制",recordStop:"停止录制"};var Pe=Object.keys(Ne).reduce(((e,t)=>(e[t]=`\n \n ${Ne[t]?`${Ne[t]}`:""}\n`,e)),{}),ze=(e,t)=>{const{events:{proxy:i}}=e,o=document.createElement("object");o.setAttribute("aria-hidden","true"),o.setAttribute("tabindex",-1),o.type="text/html",o.data="about:blank",me(o,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});let r=e.width,A=e.height;i(o,"load",(()=>{i(o.contentDocument.defaultView,"resize",(()=>{e.width===r&&e.height===A||(r=e.width,A=e.height,e.emit(T.resize))}))})),e.$container.appendChild(o),e.on(T.destroy,(()=>{e.$container.removeChild(o)})),e.on(T.volumechange,(()=>{!function(e){if(0===e)me(t.$volumeOn,"display","none"),me(t.$volumeOff,"display","flex"),me(t.$volumeHandle,"top","48px");else if(t.$volumeHandle&&t.$volumePanel){const i=ge(t.$volumePanel,"height")||60,o=ge(t.$volumeHandle,"height"),r=i-(i-o)*e-o;me(t.$volumeHandle,"top",`${r}px`),me(t.$volumeOn,"display","flex"),me(t.$volumeOff,"display","none")}t.$volumePanelText&&(t.$volumePanelText.innerHTML=parseInt(100*e))}(e.volume)})),e.on(T.loading,(e=>{me(t.$loading,"display",e?"flex":"none"),me(t.$poster,"display","none"),e&&me(t.$playBig,"display","none")}));const s=i=>{let o=!0===(r=i)||!1===r?i:e.fullscreen;var r;me(t.$fullscreenExit,"display",o?"flex":"none"),me(t.$fullscreen,"display",o?"none":"flex")};try{de.on("change",s),e.events.destroys.push((()=>{de.off("change",s)}))}catch(e){}e.on(T.webFullscreen,(e=>{s(e)})),e.on(T.recording,(()=>{me(t.$record,"display",e.recording?"none":"flex"),me(t.$recordStop,"display",e.recording?"flex":"none")})),e.on(T.recordingTimestamp,(e=>{})),e.on(T.playing,(e=>{me(t.$play,"display",e?"none":"flex"),me(t.$playBig,"display",e?"none":"block"),me(t.$pause,"display",e?"flex":"none"),me(t.$screenshot,"display",e?"flex":"none"),me(t.$record,"display",e?"flex":"none"),me(t.$fullscreen,"display",e?"flex":"none"),e||t.$speed&&(t.$speed.innerHTML=we(""))})),e.on(T.kBps,(e=>{const i=we(e);t.$speed&&(t.$speed.innerHTML=i)}))};function Ye(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===i&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}Ye('@keyframes rotation{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}.jessibuca-container .jessibuca-icon{cursor:pointer;width:16px;height:16px}.jessibuca-container .jessibuca-poster{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:contain;pointer-events:none}.jessibuca-container .jessibuca-play-big{position:absolute;display:none;height:100%;width:100%;background:rgba(0,0,0,.4)}.jessibuca-container .jessibuca-play-big:after{cursor:pointer;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:48px;height:48px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:50%}.jessibuca-container .jessibuca-play-big:hover:after{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC")}.jessibuca-container .jessibuca-loading{display:none;flex-direction:column;justify-content:center;align-items:center;position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.jessibuca-container .jessibuca-loading-text{line-height:20px;font-size:13px;color:#fff;margin-top:10px}.jessibuca-container .jessibuca-controls{background-color:#161616;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;position:absolute;z-index:40;left:0;right:0;bottom:0;height:38px;padding-left:13px;padding-right:13px;font-size:14px;color:#fff;opacity:0;visibility:hidden;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;transition:width .5s ease-in}.jessibuca-container .jessibuca-controls .jessibuca-controls-item{position:relative;display:flex;justify-content:center;padding:0 8px}.jessibuca-container .jessibuca-controls .jessibuca-controls-item:hover .icon-title-tips{visibility:visible;opacity:1}.jessibuca-container .jessibuca-controls .jessibuca-fullscreen,.jessibuca-container .jessibuca-controls .jessibuca-fullscreen-exit,.jessibuca-container .jessibuca-controls .jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-microphone-close,.jessibuca-container .jessibuca-controls .jessibuca-pause,.jessibuca-container .jessibuca-controls .jessibuca-play,.jessibuca-container .jessibuca-controls .jessibuca-record,.jessibuca-container .jessibuca-controls .jessibuca-record-stop,.jessibuca-container .jessibuca-controls .jessibuca-screenshot{display:none}.jessibuca-container .jessibuca-controls .jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-icon-mute{z-index:1}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom{display:flex;justify-content:space-between;height:100%}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-left,.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-right{display:flex;align-items:center}.jessibuca-container.jessibuca-controls-show .jessibuca-controls{opacity:1;visibility:visible}.jessibuca-container.jessibuca-controls-show-auto-hide .jessibuca-controls{opacity:.8;visibility:visible;display:none}.jessibuca-container.jessibuca-hide-cursor *{cursor:none!important}.jessibuca-container .jessibuca-icon-loading{width:50px;height:50px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%;animation:rotation 1s linear infinite}.jessibuca-container .jessibuca-icon-screenshot{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAE5UlEQVRoQ+1YW2sdVRT+1s7JxbsoVkEUrIIX0ouz15zYNA+N1RdtQfCltlUfvLbqL/BCwZ8grbHtizQqPojgBSr0JkiMmT2nxgapqBURtPVCq7HxJCeZJVPmxDlzZubMmXOSEsnAvOy917fXt9e39tp7E5b4R0vcfywTuNgRbBgBx3HuJqLVzPzmYjprjHkcwAlmLqXNm4XAISLaSESPaq2HF4OE67rbRGRYRA7btn1fbgLGmKsA/Azg0gBkGzO/vZAkHMd5hIiqc5wHcCMz/5k0Z2oExsfHV1QqldPAf8lORNu11m8tBAljzFYAYWxRSl1vWdZvuQj4RsYYF4AVBlgIOVVlE55HRIxt23ZuCfmGjuOsJ6LPoiAistW27XfaEYmIbOYhPc9bXywWR1oiEJDYQkR1zrYjEjGyqfqbKd8a7kJVtLgQ+30i8pht2wfyRKIdmJkJBPkQTbILfudJ7CTZNBvVpggEcgpvc/ML38zESbLJsxBNE/A9biX0rdjGyTQXgbxyapdsarb0PMlXtWnGoXbKpm0Essqp3bJpK4E0OXmed3+hUBDP8w5FI91M0rdcyLLILElOCbaZilSWeXMncRx4klTCY1spfG3dhZJWx3GcDUR0EEB3ZMw0ET2gtT6SZWWzjmlrBIJCl0hAKfWgZVmHszqXZVxbCSxpCS2JJA6umIhe8ZKKVLPbaBJ+S9toqVRa53nedgAbAKwIwH4FcAzAa0R0l4i8F7PPz189k6RFRA+LyNcAXojDV0oNW5b1eW4Cxpg9AHZkSaaa6hhzb065uDSCH2LmRB8Sk9gY4293g43Qo/1pV80m8yQMfZSZ781cB1zXHRKRZ2IMpgD8A+DamL4ZItqitX4/jbQx5iEA7wLoihn3V/ACckWMJN/QWj9b1x5tGBsbW6uUOh5pPy0iL3Z2dn6ilJqanp5ep5TaJSLhF4NppdRNaU8gPmapVLrO87yfIoXuWyJ6uVKp+HmFjo6OQSJ6FcBtYT+UUmstyxqvkWuUgDFmP4AnQu2/e563qlgs+u9DNZ8xZhRAX7VRRPbath0XuXk7Y8xeAE+FgL6fnJzsHRwcLIfBR0ZGLunq6poAsDLUvp+Zw7b1r9PGmJMAbg8Z7WDmoThZuK67WkS+DD18fcPMdzSQUBR/EzN/nIC/SUQ+DPXV4dclsTHmHAD/SfHCNzc3t7Kvr++HJKeMMacA3BL0nyuXyzcPDAxMxo0fHR29slAo/Ajg6qD/fE9Pzw29vb1/x42fmJi4vFwu+5G/LOg/y8zXNJLQ2dAES5JANMQ7mfn1jBI6ycx3NiMhItqstf4oAX+ziHwQ6qvDj5NQNIn/ALCKmX+JSeIvABRD7fuY+ekGBPYBeDI05tTMzExvf3+/vz2Hk91/ET8RSeI6/DoCpVJpjed5fmKGvzMAXpqdnT3oed5Ud3d3v4jsAqBr9Ei0Rmv9VRqBBPzvROQVETnq2xJRdRu9tRF+bCVOKWT+Kvl/TSIFk6SW/LAjKfjV5K8rZABi8dOOEv7FI7Z8x6zwEWbemLbyMfJr5qiSiJ96oclymBOR3bZtP9+M89WxxpjdAHY2sN3DzM8ljWl4I3Nd9x7/OE1ENcdpETnmH3e11n41zv0l4J8RkU+J6AAz+xtF4teQQG7PFslwmcAiLfSyhC72Qv9/I/Avns2OT7QJskoAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-screenshot:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAED0lEQVRoQ+2ZycsdRRTFf2ejqHFAMQqiYBTUoElUHLNx3GgCgpuYRF2o0UT9CxwQ/BMkMSbZSKLiQgQHUDCJgjiAxiEiESdEcJbEedgcKaj3UV+/6q7u/jovPPkK3qbr1ql76p5bt6qemPKmKfefeQKHOoLFCNg+H1gi6fFJOmv7VmCvpD1N87Yh8ApwNXCzpB2TIGF7DRDm2inpmt4EbB8LfAMcGUHWSHryYJKwfRMwmuMP4BRJv9TN2RgB2wuB72BWsq+V9MTBIGF7NZBiGzhJ0o+9CIRBtt8FLqgADC6nRDbpVO9Iuqi3hCKB5cDrGZDVkp4aIhIV2aSQyyW9MScCkcQqIOfsnCORkc3I31b5VtyFRmg1IQ7dt0ja3icSQ2C2JhAjUU2ykd+dE7tBNp2i2olAJJFuc+nCt564QTadF6IzgUhiVGiqyinKaQjZpJP2ItBXTkPJZhACXeU0pGwGI9BWTkPLZlACBTldG4o5EA6E1dY66edcyNrs8Q36zg1vVaTazNs7iXPgDVJJzYs7VRvHRzaDEohyugJ4CTi84sg/wHWSdnVxsGQ7aQLXS9pZcqpL/6AEplpCU5HE8YpJ9YrXUKQ6baN1+HPaRm1fBqwFQnKGK2ZoPwCvAo8Ai4FnMpPMHMwapHUj8DFwbw3+Dklv9iZgexOwvktSRduxU2VDlErwmyXV+lCbxLbDdndlCT3TX3vV7JgnKfRuSVflfMkSsL0ZuDMz4E/gL+CETN+/wCpJzzaRtn0D8DRwWMbu1/gCcnSm7zFJd1W/jxGwvQx4r2IYnlbuA14GAomQFw8B6YtBKFSnNj2BxEJ3IvB1pdB9CjwQ8yqYhcg/DJxZ8WOZpA/SbzkC24DbEqOfgPMkBRKzmu23gEuSj1sk5SI3Y2J7C3BHMuZz4FxJf6fgto8APgIWJd+3SUrHjr9O294HnJUMWi8pSGqs2V4CvJ88fH0i6eyChKr4KyS9WIO/Ang+6RvDz0XgABCeFEdtkaQv65yy/QVweuwPY0+T9FuNQ8cAXwHHxf7wdHiypN9r7BfEl8GjYv9+SceXJLQ/mSDYTh2Baog3SHq0pYT2STqno4RWSnqhBn8l8FzSN4bfJol/jkn8bXUS228DFyfft0paVyCwFbg9sQkSDEkctueZZju8iO+tJPEYfo7A0piYKd73wP3xnB+20cvjNnphxdmlkj4sEMjhfwY8COyOY0fb6Bkl/K6FLKxS+M1KpDhJY8mvrG5doRwlf66QZfGbjhLh4pEt35kV3iUp/IvTunU8qtTil/7gaHOY2yjpntaez9b5RmBDYewmSXfX2RRvZLYvbThOh+NuqMa9Ww1+yLnXgO2SwkZR24oEens2oYHzBCa00PMSOtQL/f+NwH+Hg8hAnbrYgQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABA0lEQVRoQ+1YwQqCUBAcfWXXsLr2AXWTPXno8yVB8AP6Aa3oHI+kCDqYaawJljSe133uzO44bx0M/HEG/v1gAd9mkAyQgY4I/F8LJUlyrQFtD2AtIkcNoFEU+Z7n7QD4DfFHEVlocrVmgAUAIAOl3mILPcDgEFcUhyrUKMGUUcroc3NQRimj9XJBGaWMvvPydKN0o6/9QTdKN6rZANxj6EbpRulGuZnjYqs8BbyR8Ub2Izeys+u6yyAIDpo/ehzHM2NMDsA0xFsRmWhyfTIDWSXxCEBmrd2EYXjSHJqm6bQoii2AOYBL5Z0xgFxEVppcrQvQJO0zhgX0iXbdWWSADHRE4AZQ731AhEUeNwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAA7klEQVRoQ+2YSwrCQBBEX6HiVvxsPYDewfN7By/gD9ciQkvERQwJdBSiYs0mEDo96aruombEjy/9+P/jAj7NoBkwA28i8H8tFBFRA9oeWEo6ZgCNiDGwAYpn3TpKmmVytWbABQBmoNRbbqEHGB7iiuJYhRol2DJqGX1uDsuoZdRmLuNZSzGWUcuoZdRHSp/IylNgK2ErYSthK3FHwLcSvpXIjoLt9Jfa6TMwl3TIMBkRE2AH9BriL5KGmVyvWIltJXEfKN6tJJ0ym0bECFgDU+Ba+WZQFCdpkcnVuoBM0i5jXECXaNftZQbMwJsI3AAPN3dAQflHegAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC+UlEQVRoQ+1ZS2sTURT+zlDJYE3XSq219QHVuEjnJDT+Bff9Abqw2voAEfGxqygUqWhVFHGl/yMLu9BwByxk5SNI66ML6U7axjhHbmhgWiftncxoOiV3FcI53z3f/e65594zhIQPSnj86BBot4IdBToKRFyBnbeFlFIScVEiuYvIWC6Xe2YK8pcC7SYA4CMzH4mDQBXAqilQBDsLQLfPf9FxnF4i8kwwmypARI+Wl5dvmIBEsUmlUkNE9NaHsVCpVAZGR0d/m+A2JSAid3K53E0TkCg2pVKpz7KseR/GfKVSGYxMAMA0M1+JEpyJb6lUOm5ZVnkrAsVisaunp+esiByr1Wp3R0ZGvmifzZK4XQQWHMc52MgBpdQuAOcAXABwuB400ZTjONdaIjA7O5u2bVsnWU1EujzP+5nP5xdMVjvIJkCBD8x8VCm1G8AYgAkAAxt8Z5j5YmgCSqlTAJ4D2OcD/AXgATNfbYVEAIFPIvKKiE4D6GuCea8xX6gtpJT6DmBvECgRFRzHeROWRAABE4iWCbwHEFhkPM/L5vP5dyaz+23+KwHXdR3P854S0YG1ILSCuthNMfNM2OC1/RYENLY+ygcBnPfht6ZAA6BYLNr6dyqVokKhsGpaNQ2TWJstreXaE2aed133sojcj41AKyvdzCdAgSXLsk4MDw9/a/i4rntbRPxFNZoC/5jAV2be759DKTUJ4FZSFFi0bbs/k8noy2R9dAjEuWU2YgXkQOK3kD6BMsysi2Z9JC2Jdcw/ALzwPO+xvmcl7Rj177JVEbkO4BARjSflFDJJuW1dBxJPoCIiL4noDIB1BS0pW6j+oJmbm+uuVqvjRKQfLr0bZHnIzJf0f6HeAybahrUJqAPruhLlcnnPysqKfpXp11n/Gv62zoHAroS+AafT6QkiGrIsazKbzX7eVIHEt1US39gCkOzWYthkjNE+tuZujDGZQ8XRXn8N4KT5lLFZ6uaYPt+nwyDuvC80YdhvB9uOAu1WoaNAR4GIK/AHvdr+QAexB7EAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACfUlEQVRoQ+2ZSYsUQRCFvycK4nJXXEbHBdwO4kn/gv9CD467ICIutxEFkREdFUU86T/xojcPntyQcT2INw+uISFVkD1Wd2dWlU7nUHlqisiX+fJFZGREi8yHMt8/HYG5VrBToFOg4QnMPxcyM2t4KE2nT0i6EwvylwIjQOCFpE1tEPgGfI0FamC3AFgazP8IrJL0KwZzkAI3gLMxIA1ttgCPA4w3wHpJP2NwBxG4KOlcDEgTGzNbA8wEGP57vA0CU5JONtlczFwz2wY8HUbAzBYCB4CtwCVJb33OIAXmioC70LoyBsxsEXAQOApsLIhelnS6FgEzW+5BBvwA/FS+SPJFa40KBZ5L2mxmS4AJ4IjHxCzwaUnHkgmY2V7gLrAyAPwOXJN0qg6DCgIvgQfAPsDjo2pcKddLciEz+wCs6AO6W9KjVBIVBGIgahN4BvRLMjslPYlZPbT53wR2AbeBtcUmXEFPdh5U06mbd/shBBzbr/Jx4FCAX0+BEsDMFocEYrNmFcE+BD4XsXZL0oyZnQCutkagzkn3m1NBwDe/Q9L74MAuFEqUn5op8I8JvJO0elacTALnc1HAH3Njkvwx+WeYWUegTa/pwaqIgexdyIN4uyRPmqULZRXEvulPwD3gpr+zcrtGQxfzRHYG2AAczuUWiom3kc4D2RN4BdwH9gM9CS0XFyoLGu9UuN974eIFVDiuSzruH5LqgRhtU20q8kBPV8LMlhVVmVdnYwX+SMdAZVeieAF7eeltmElJr4cpkH1bJfvGVvatxdR4bMu+teZuWxtKxWncXn8I7EldtQV7vz79fp9KwZp//9CksB8F206BuVahU6BToOEJ/Ab7+KdABdTt8AAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAHTElEQVRoQ+1Zb4xcVRX/nZl5u2/LrrO0EFKoBYpVaRu3u/e+3WlDZJdIRLQhNLIiEggxqURIjGmqTTAmWiRpjH4wghq+KIQYupYQEvEDmEVdyu7OfbPbzQaEYqtSwTb4Z3aV7s6b9445mzvm7XRm3oy7oanZ82ny5txzz++ec8+/S7jIiS5y/bEG4EJbcJkFpqenryqXy6cbKBUB+AeANIBuAG8AuAzAn06ePOkNDw+H9dZOTU11h2H4EwB7ALwL4FIA7wFw7O9aSxkAE9H9SqnHazGc50LGGFFQlGuW/pbNZq/aunXrYtICY8xmAD8C8HEAnUn8sf9/oLX+SiKAQqFweRRFvwewvgbzmwA+BOAkgEsAZAG85rpubseOHaVmlTHGfBTAYwA6gKU7WCaiOWaWPT9mv1eLO6S1/mYiAGPMddYtUtXMRPRVx3F+FkXRup07d/7FGDMEYExrHTSrfIVvfHx8Uy6XO22MWae1fu/IkSPpbdu2pRcWFmpakYgeVEo92gyAdQCKADI1HZL581rrp4lIfHPV6Pjx45cEQfCvBgL3a62/nwhgZmbm0lKp9OeYf56rMqmc9v4oikb6+/v/uhoIGigvAUGChdBBrfXhRAD5fL6XiCZsZDhHRAeY+VBVlIiYeTQMw725XG5uJSDqKc/M9xDR1wFsF/lEdKdS6ulEABMTExvS6fQMgCsBhPPz825nZ+dnieinANrjApj5mSAI7t61a9fC/+JSDZS/t62t7WgQBH+0IVoA7GsqjDIz+b4vCyXcnSuXy9fmcrkz+Xz+TgB3ENHeqlN43HXdB7dv3x60AqKR8p7nPXHixIn2YrEo7itRipn5057n/SrRAhbA320eEAGbtdbvyvfJycn16XR6BIBEnzg9PD8//63BwcGwGRBJylcEG2MkbEtUFAS3NgVAmI0xkl23Wt/bppR6rSK0UChcGUXRcwBUFYjDWuuDSffBHpBk82XEzPfKyVc+Wlf+HQDJGQLgDs/zjiZawJrudQBXAzirlNpIRMs2nJiY+HA6nRYQH4kJ7NZaS/htSBLlgiB4jJnFJZeoWnn7jYwxDxCRJK/LmXnI87yXEgHEzHs2m81urlce5PP5fiL6BYAPAmhrJZmNjo5murq6ngdwcy3lK0rKYc7Nze1n5gNE9Cml1HgiAGviguu6A0nlge/7N83Nzf12aGionHTy1f+Pjo5KdBuOu00tGZKpmfmHAJ5oygJjY2Nd3d3di0nKt6rwSvjFK6Iocnp7e/+ZaIGVbHSh1q51ZBfq5Cv7rllgzQIrPIGLwoUkqdVLqssASCKbnp6+ure3VyrSRGLmVHWpkbioRYbx8fErHMcZbKofsGMVKRHu01pLc1+XJMGUSqXPEdGTrZQSIlAycVdX1+FSqXRw9+7dUvXWJFE+k8lI53e71vrZphKZMeYPMvvJZDK3SfNea1GsZpoH8EWl1NFmLTE7O9u2sLDwNoANAA65rvtwrcw/NTV1TRiGp2w/8AXP836eCMAWWicAXENEvymXy/sGBgakvP4v1ajnzzDzl7TWzyX1A1KquK4r7hkf2xxQSn2vem2sHwijKLqlv7//xUQAtpyW6YBMJUJm3hNvJBo0I3XL3fim1kVfAHB9/Dsz3+95nkztlsgClYr1BgBRKpW6oa+v75VEAMJgjDkrNbj8jndCzXZSSXfU930l/bRtWyvsC+KKAEYq98kYIzy3W4abtNajiQCsBQTAByzzsNZ6ZLWUrygwOTl5YyqVEgXjriQjzVcdx9nb09Nz1vf9F5j5EzK5Y+ZBz/NeTgRw7Nixjra2NpkLycBW5jK3OY7zUq2hU6NmJMkK8r/v+3uYWXrsZdMOAM86jnN3EAS/BjAgjgDgy1rrHycCsBNkCZ9X2DtwIxGNVS9cqfLWPalQKNzFzN8GcK2dQCxtRUTSxPQx827L+13P876WCMA27W8BOG82Wlm8GsrHZNHIyEhqy5YtvwTwyXqWI6KHlFKPJAKwYVSiULVZl9aupvJxZexIU+J8TRBE9B2l1DcSAdjLKneg1nh9fzabfbRYLG4qlUpvd3R0bCqXy7tOnTr1VKOHjVqb2jC5j4gmwzAM0+l0OgzDVCqVkvGhuO8yYuZHPM97KBGA7/vXM/O0TBpqMMvo+x17waWGkhLgMrGK1vrJpCRWkRcrD+STvCvIXiJLhgNdddzoAa21vCmcR8uKOWPMRgBSPrRSpcpY8T6l1FNJ0UfeBTKZjNyxlqg60cUXL1PUupBsIO9XMkqX96v4mFvcS0Z+Mg86TUTtzCxvCh1E9BmllPxXk+zrzxQRzTBzJxG5zCzuIjJ32DG+WCOuk1hFqoKlfNSMBWSU5zDzFnEPInqLmSWpbZANARzRWr8jQHt6ev4tAuX34uLi+iiKiknjdskzlepzdna2s729PSgWi24YhuszmYxn99sYRdHSGx0RnUmlUqf7+vqO1zuYVlylJbO/X8xrAN6vk15zoQt90v+3FvgPXUePXrKTg9MAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADd0lEQVRoQ+2Zz2sdVRTHv+fJBDW6anDVXen6wZszYxYBiYgtFGst3VSDunKjpS0GpUlqfjVpsVVs6aaL0or4YxMVFCJZ2ZLdPUP+gq5bQnTxtNAkfTnlhnnlkmQy9yV9780rudt77tzv5/y4v4bQ4Y06XD/2ANodwec/AiJygJnvtdvTWfPnRkBEJAiCN8rl8kMfiPn5+Ve7u7v3rays0Orq6lJfX99/PuN2auMDoAD+BvA2M6/mTWSMOUtE48D6AjHGzN/kjdlNvy+AnWOOmQ/lTSYiEwDOWzsimgrDcCRvzG76GwGw8/zJzO9sN6GInAMwbW1UdSSKoqndCMwb6wNwGsB39Q+p6h/M/C4R2dTa1AoHYBWKyCkA1+pqiWi2Wq0e7e/vf7yRoJAAKcQggMtuJKIoOtoxACnE0/xOi/SXMAxPuhCFjUBdpIjYVWXSEf0TM3/g9BeriDMKdSPEz8z8vrU1xgwT0YXCrEJZy1iSJKOqOub0/8jMA0mSfKKqNwoPkHp7ioiGHIhRIvpHVa93BEBa2JcAfOlALAHo6RgAKzRJkk9V1S6xL7kpV4idOM31taxaIKJHqmpPnMMA9hcOQES2PDJkAT1XAAC+ZebPfWB3auNzmLObVsNRUNUXVHUujuM7OxXnMy4XwOcj29mIyOuq+lapVGrYCelKpkEQ3CyXy4tbzdN0AGPMxr2iYZ+sra3FcRybtgCIiK2BKw2rdgaUSqWoUqlIkQAepFDdAF7cBq5ERI9rtdr1OI7tmE2t6SmUEYFHAEaexYW/1QC2EF+ru5GIvg7D0D2GNJxprQY4o6qv1I/b6SpzOYqiLxpWng5oOQAzXxWRWwA+dkRfYOb1p5hGW6sBJpn5KytSRG4D+KguWFXHoyhy7xdeLC0F2ChSRL4H8OFuINoKYIUbY34gogHH3eeZef1K6tPaDpCm068A3nMEDzHzxY4BUNWSiPxORO6z5aDPPlGICNQ9bYyZIaLjjudzIQoFkKbTbwCO+UI0HcB9J/LdeY0xs0R02IGYYObRrWqiFQCfEZEtSHsfmGZm+4qxbbM/hQD8BeBNa0hEM2EYnmgLgP3lFARBT1dXly4vL//b29tbzQNIU+llAHeJaLFSqRzJes5vegR8xGbZLCwsHKzVav8z8/0sm0ID+MDvAfh4qZk2exFopnd9vv0ELrXBQO7fD10AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC/ElEQVRoQ+2Zy49NQRCHvx+ReK6IlZ34E7CUiCAR4xEbTLCyQRATYswwb2IQZDYWgojHZpCQECts+ResiQwLj0RClNSkb9Lu3HtPz7mZc8+V6eXt6tP1VVV3VdcVbT7U5vozC9BqD/7/HjCzlZLet9rS9fbP9ICZvQPWSfqRAmFmS4ClMHm+JiR9S1mXVyYFwIBXwEZJv7I2MrPjQH8A6JN0OWtNM/OpAL7HS0mbsjYzswGgN8gNS+rJWtPM/HQAfJ9nkrY22tDMTgMjQaZH0nAzCmatTQE4ClyNPvQU2CbJQ2vKKB2Aa2hmR4DrkbbPgQ5Jv6sJSgkQILqA0dgTkjraBiBAxPHtPz2UtDuGKK0HKkqamd8qg5HS9yXtjebLdYjrHNRqiAeS9gQvnQGGSnML1bvGzOwc0BfN35PUaWYHgRulBwjW9ju+O4JwqM/AWFsABIgLwKkIYgJY1jYAAeJQuGIXVIVcKTKxh8WfBin9J+AVpx/eFWUEqFkyNACKp0rhgWYArkg6kQibSyylmPOklQdibijBX+fSLHFRJkDid+qKmdlaYENOI0zeEcBNSZ9qbVIEQHWuyGOTNZLetgrAz8ClPFpHa1ZL8rf5lFGEB2oBfAxQi4D5DeDmAP7mGJPka0oD4LnDr9imH/xFe8AP4vLIjBclxWXItCOtaIBjwOKo3HaFRyWdnLbmYUHhAJKumdkt4ECk9JCkSitmWixFAwxKOjt5uZvdBvZH2vZLit8XSSBFA/yjpJndAfY1A9FSgOCJu0BnBNErqfIkzfRCywECxCNgR6Rtt6TzmdqHBmyKXG4ZM4sTWc04NzNPWE+AuG3ZlZInSuGBinXMbBzYGVkrE6JUACGcHgPbUyGKAIj7REmZ18y897o5ghiQ5E/bltRChwE/kF7Xj0jyLkbDYWbzgBfA+iA4LmlXqwD8LydvszjAF0lfswBCKC0E3gBeP22p186f8RBKUbaejJmtAr5L+lBPptQAKfCzAClWmkmZWQ/MpHVTvv0X9iFAQGQyevIAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACrUlEQVRoQ+2ZPYgTURCAZzbBXJnCeL2Cnb87b9MEtPBUrrMQFAtrtT5/ClGs9LBWWz0RtbBUFCF4oJDsbO68wsLA2YqQSmLlvpEHu7IuMdlLcus+yUKKhJfZ+ebnvZl5CJY/aLn+MAP41x7M1QPMfFtr/crzvHfTAs8FoNPp1LTWzwHgqIg0lFLvrQHwfX8BER8DwC6jNCIecF13wwoA3/dvIuKNpLJa60Oe560XGoCZd4rICiKeTCtaeABmPg4AJmRqg6xcaABmvg4At4aFRyEBhoVM4UMoCplHADCfJTEL5YEsIVNID5iQAYCHALCYxeq5b6PMfF5EBAAEESthGK7W6/XPRpFWq7W3VCqtZg2ZcT3g+/6i4zjzIlLSWn/yPO/DIGMNLCWY2Sj/+xGRK0qpZfNDEASnROTFVi0fr8+aA8z8Ld6KEfGt67oLYwMAwEUium8EREn7OgeAjwCwPyo/nrque3YSgAtE9GDaAM1mc65arc4Zuf1+P2w0Gt9jJZl5DQAORt+fENG5wgEw8zUAMB/zbBBRwyqAIAjuiMjlSOlNItpjFUCqWl0josMzgChR/9hGAWBbknjmAdPhDdqa0gfZzAMJKyVP4v8hhJYRcSni+0JEu63ahZj5anyQici6UuqIVQDdbrfS6/UqRulyufyTiH5sF8AlIro37VpoWEHIzGZ2tM+sEZFnSqkzk9RCS0R01wjIsZz+mug53hDRia0AnI4bGgDYISItz/M2jYC8Gpp2u30MEWuO4zha665Sqp0ZYFStX/iWchRAItFGzoHSsrJ2ZFl1mHg6bfVYJeGJv85CC++BpIJZ5kSFC6G0ha0e7mYJqcJ7IOkRay84UhD2XjHFIFZf8iW9YcYoYRi+tO6aNeupOs66iU/icV46zf/MAKZpzXFk/QL+JG1PUPhRiQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACSElEQVRoQ+2Zu4sUQRCHf5+C+gf4yBXMfMYHGvjCzEBQDIzV+HwEohipGKupD0QNDE8UEwUFTe68wEDhTMVUMFJ+0tArzbjs9u3Ojt0wBR0M9MzUV1XdXVWNKhcq1189wP/2YKcesH1d0nPgdVvgnQDY3iTpqaT9kuaAt9UA2D4o6aGkzVHpXcByFQC2r0q60lB2D7BUNIDtjZIeSDoyRNGyAWwfiiET4n6YlAtg+7Kka2PCozyAMSHT5CkLIIbMfUlbMhdmOQCZIVOeB2LI3JN0NNPq6bTZe8D2aUmOY72kN8DnoIXt7eF5FSEzkQdsB+OEsFwr6RPwbpixhqYStoPyqVwAbkaAY5KeTWD5wStZHrD9XdJgK34FhBP9H8kFOAvciQBhn3/RAcBHSTvjfx4DJ6cBOAPcbRvA9gZJYQT5DfwYKGl7UdLu+PwIOFUiwCVJYQRZBuZqA7gh6XxUegXYVhtAmq0uAnt7gLhQm9vorBZx74Hcc6D3QLKH/z2JGyVnlYs4pCfzEe4rsLW2XehicpAtAftqAwiZbhhBfgE/ZwVwDrjddi40KiG0HXpHO+KcJ8CJaXKheeBWBOgqnf6W1BwvgcOrATieFDTrJL0HViJAVwXNgVgPrJH0BfiQDTDKtREiNK7KLSnHASQLLacP1PxcVkWWq8PU3emq2yqJJ0b1Qsv2QKpdZp+orBBqmrfq5m5mSJXtgUZI1XnB0YCo94opCal6L/ka3ghtlIXqrllzT9VJ5k19Ek/y0zbf6QHatOYk3/oDujC8QMWgjf4AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-text{font-size:14px;width:30px}.jessibuca-container .jessibuca-speed{font-size:14px;color:#fff}.jessibuca-container .jessibuca-quality-menu-list{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px}.jessibuca-container .jessibuca-quality-menu-list.jessibuca-quality-menu-shown{visibility:visible;opacity:1}.jessibuca-container .icon-title-tips{pointer-events:none;position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s ease 0s,opacity .3s ease 0s;background-color:rgba(0,0,0,.5);border-radius:4px}.jessibuca-container .icon-title{display:inline-block;padding:5px 10px;font-size:12px;white-space:nowrap;color:#fff}.jessibuca-container .jessibuca-quality-menu{padding:8px 0}.jessibuca-container .jessibuca-quality-menu-item{display:block;height:25px;margin:0;padding:0 10px;cursor:pointer;font-size:14px;text-align:center;width:50px;color:hsla(0,0%,100%,.5);transition:color .3s,background-color .3s}.jessibuca-container .jessibuca-quality-menu-item:hover{background-color:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-quality-menu-item:focus{outline:none}.jessibuca-container .jessibuca-quality-menu-item.jessibuca-quality-menu-item-active{color:#2298fc}.jessibuca-container .jessibuca-volume-panel-wrap{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%) translateY(22%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px;height:120px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-wrap.jessibuca-volume-panel-wrap-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-volume-panel{cursor:pointer;position:absolute;top:21px;height:60px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-text{position:absolute;left:0;top:0;width:50px;height:20px;line-height:20px;text-align:center;color:#fff;font-size:12px}.jessibuca-container .jessibuca-volume-panel-handle{position:absolute;top:48px;left:50%;width:12px;height:12px;border-radius:12px;margin-left:-6px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:before{bottom:-54px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:after{bottom:6px;background:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-volume-panel-handle:after,.jessibuca-container .jessibuca-volume-panel-handle:before{content:"";position:absolute;display:block;left:50%;width:3px;margin-left:-1px;height:60px}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-controls{width:100vh;transform:translateX(-13vw) translateY(-47.8vh) rotate(270deg);transition:width .5s ease-in}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-play-big:after{transform:rotate(270deg)}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-loading{flex-direction:row}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-loading-text{transform:rotate(270deg)}');class He{constructor(e){var t;this.player=e,((e,t)=>{e._opt.hasControl&&e._opt.controlAutoHide?e.$container.classList.add("jessibuca-controls-show-auto-hide"):e.$container.classList.add("jessibuca-controls-show");const i=e._opt,o=i.operateBtns;e.$container.insertAdjacentHTML("beforeend",`\n ${i.background?`
`:""}\n
\n ${Pe.loading}\n ${i.loadingText?`
${i.loadingText}
`:""}\n
\n ${i.hasControl&&o.play?'
':""}\n ${i.hasControl?`\n
\n
\n
\n ${i.showBandwidth?'
':""}\n
\n
\n ${o.audio?`\n
\n ${Pe.audio}\n ${Pe.mute}\n
\n
\n
\n
\n
\n
\n
\n `:""}\n ${o.play?`
${Pe.play}
${Pe.pause}
`:""}\n ${o.screenshot?`
${Pe.screenshot}
`:""}\n ${o.record?`
${Pe.record}
${Pe.recordStop}
`:""}\n ${o.fullscreen?`
${Pe.fullscreen}
${Pe.fullscreenExit}
`:""}\n
\n
\n
\n `:""}\n\n `),Object.defineProperty(t,"$poster",{value:e.$container.querySelector(".jessibuca-poster")}),Object.defineProperty(t,"$loading",{value:e.$container.querySelector(".jessibuca-loading")}),Object.defineProperty(t,"$play",{value:e.$container.querySelector(".jessibuca-play")}),Object.defineProperty(t,"$playBig",{value:e.$container.querySelector(".jessibuca-play-big")}),Object.defineProperty(t,"$pause",{value:e.$container.querySelector(".jessibuca-pause")}),Object.defineProperty(t,"$controls",{value:e.$container.querySelector(".jessibuca-controls")}),Object.defineProperty(t,"$fullscreen",{value:e.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(t,"$fullscreen",{value:e.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(t,"$volume",{value:e.$container.querySelector(".jessibuca-volume")}),Object.defineProperty(t,"$volumePanelWrap",{value:e.$container.querySelector(".jessibuca-volume-panel-wrap")}),Object.defineProperty(t,"$volumePanelText",{value:e.$container.querySelector(".jessibuca-volume-panel-text")}),Object.defineProperty(t,"$volumePanel",{value:e.$container.querySelector(".jessibuca-volume-panel")}),Object.defineProperty(t,"$volumeHandle",{value:e.$container.querySelector(".jessibuca-volume-panel-handle")}),Object.defineProperty(t,"$volumeOn",{value:e.$container.querySelector(".jessibuca-icon-audio")}),Object.defineProperty(t,"$volumeOff",{value:e.$container.querySelector(".jessibuca-icon-mute")}),Object.defineProperty(t,"$fullscreen",{value:e.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(t,"$fullscreenExit",{value:e.$container.querySelector(".jessibuca-fullscreen-exit")}),Object.defineProperty(t,"$record",{value:e.$container.querySelector(".jessibuca-record")}),Object.defineProperty(t,"$recordStop",{value:e.$container.querySelector(".jessibuca-record-stop")}),Object.defineProperty(t,"$screenshot",{value:e.$container.querySelector(".jessibuca-screenshot")}),Object.defineProperty(t,"$speed",{value:e.$container.querySelector(".jessibuca-speed")})})(e,this),ze(e,this),t=this,Object.defineProperty(t,"controlsRect",{get:()=>t.$controls.getBoundingClientRect()}),((e,t)=>{const{events:{proxy:i},debug:o}=e;function r(e){const{bottom:i,height:o}=t.$volumePanel.getBoundingClientRect(),{height:r}=t.$volumeHandle.getBoundingClientRect();return pe(i-e.y-r/2,0,o-r/2)/(o-r)}i(window,["click","contextmenu"],(i=>{i.composedPath().indexOf(e.$container)>-1?t.isFocus=!0:t.isFocus=!1})),i(window,"orientationchange",(()=>{setTimeout((()=>{e.resize()}),300)})),i(t.$controls,"click",(e=>{e.stopPropagation()})),i(t.$pause,"click",(t=>{e.pause()})),i(t.$play,"click",(t=>{e.play()})),i(t.$playBig,"click",(t=>{e.play()})),i(t.$volume,"mouseover",(()=>{t.$volumePanelWrap.classList.add("jessibuca-volume-panel-wrap-show")})),i(t.$volume,"mouseout",(()=>{t.$volumePanelWrap.classList.remove("jessibuca-volume-panel-wrap-show")})),i(t.$volumeOn,"click",(i=>{i.stopPropagation(),me(t.$volumeOn,"display","none"),me(t.$volumeOff,"display","block"),e.lastVolume=e.volume,e.volume=0})),i(t.$volumeOff,"click",(i=>{i.stopPropagation(),me(t.$volumeOn,"display","block"),me(t.$volumeOff,"display","none"),e.volume=e.lastVolume||.5})),i(t.$screenshot,"click",(t=>{t.stopPropagation(),e.video.screenshot()})),i(t.$volumePanel,"click",(t=>{t.stopPropagation(),e.volume=r(t)})),i(t.$volumeHandle,"mousedown",(()=>{t.isVolumeDroging=!0})),i(t.$volumeHandle,"mousemove",(i=>{t.isVolumeDroging&&(e.volume=r(i))})),i(document,"mouseup",(()=>{t.isVolumeDroging&&(t.isVolumeDroging=!1)})),i(t.$record,"click",(t=>{t.stopPropagation(),e.recording=!0})),i(t.$recordStop,"click",(t=>{t.stopPropagation(),e.recording=!1})),i(t.$fullscreen,"click",(t=>{t.stopPropagation(),e.fullscreen=!0})),i(t.$fullscreenExit,"click",(t=>{t.stopPropagation(),e.fullscreen=!1})),e._opt.hasControl&&e._opt.controlAutoHide&&(i(e.$container,"mouseover",(()=>{e.fullscreen||me(t.$controls,"display","block")})),i(e.$container,"mouseout",(()=>{me(t.$controls,"display","none")})))})(e,this),e._opt.hotKey&&((e,t)=>{const{events:{proxy:i}}=e,o={};function r(e,t){o[e]?o[e].push(t):o[e]=[t]}r(re,(()=>{e.fullscreen&&(e.fullscreen=!1)})),r(Ae,(()=>{e.volume+=.05})),r(se,(()=>{e.volume-=.05})),i(window,"keydown",(e=>{if(t.isFocus){const t=document.activeElement.tagName.toUpperCase(),i=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==i&&"true"!==i){const t=o[e.keyCode];t&&(e.preventDefault(),t.forEach((e=>e())))}}}))})(e,this),this.player.debug.log("Control","init")}destroy(){this.$poster&&this.player.$container.removeChild(this.$poster),this.$loading&&this.player.$container.removeChild(this.$loading),this.$controls&&this.player.$container.removeChild(this.$controls),this.$playBig&&this.player.$container.removeChild(this.$playBig),this.player.debug.log("control","destroy")}autoSize(){const e=this.player;e.$container.style.padding="0 0";const t=e.width,i=e.height,o=t/i,r=e.video.$videoElement.width/e.video.$videoElement.height;if(o>r){const o=(t-i*r)/2;e.$container.style.padding=`0 ${o}px`}else{const o=(i-t/r)/2;e.$container.style.padding=`${o}px 0`}}}Ye(".jessibuca-container{position:relative;width:100%;height:100%;overflow:hidden}.jessibuca-container.jessibuca-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100vw!important;height:100vh!important;background:#000}");class Xe{static init(){Xe.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};for(let e in Xe.types)Xe.types.hasOwnProperty(e)&&(Xe.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let e=Xe.constants={};e.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),e.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),e.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSC=e.STCO=e.STTS,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),e.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),e.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,o=Array.prototype.slice.call(arguments,1),r=o.length;for(let e=0;e>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let A=8;for(let e=0;e>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return Xe.box(Xe.types.trak,Xe.tkhd(e),Xe.mdia(e))}static tkhd(e){let t=e.id,i=e.duration,o=e.presentWidth,r=e.presentHeight;return Xe.box(Xe.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,o>>>8&255,255&o,0,0,r>>>8&255,255&r,0,0]))}static mdia(e){return Xe.box(Xe.types.mdia,Xe.mdhd(e),Xe.hdlr(e),Xe.minf(e))}static mdhd(e){let t=e.timescale,i=e.duration;return Xe.box(Xe.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))}static hdlr(e){let t=null;return t="audio"===e.type?Xe.constants.HDLR_AUDIO:Xe.constants.HDLR_VIDEO,Xe.box(Xe.types.hdlr,t)}static minf(e){let t=null;return t="audio"===e.type?Xe.box(Xe.types.smhd,Xe.constants.SMHD):Xe.box(Xe.types.vmhd,Xe.constants.VMHD),Xe.box(Xe.types.minf,t,Xe.dinf(),Xe.stbl(e))}static dinf(){return Xe.box(Xe.types.dinf,Xe.box(Xe.types.dref,Xe.constants.DREF))}static stbl(e){return Xe.box(Xe.types.stbl,Xe.stsd(e),Xe.box(Xe.types.stts,Xe.constants.STTS),Xe.box(Xe.types.stsc,Xe.constants.STSC),Xe.box(Xe.types.stsz,Xe.constants.STSZ),Xe.box(Xe.types.stco,Xe.constants.STCO))}static stsd(e){return"audio"===e.type?Xe.box(Xe.types.stsd,Xe.constants.STSD_PREFIX,Xe.mp4a(e)):"avc"===e.videoType?Xe.box(Xe.types.stsd,Xe.constants.STSD_PREFIX,Xe.avc1(e)):Xe.box(Xe.types.stsd,Xe.constants.STSD_PREFIX,Xe.hvc1(e))}static mp4a(e){let t=e.channelCount,i=e.audioSampleRate,o=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return Xe.box(Xe.types.mp4a,o,Xe.esds(e))}static esds(e){let t=e.config||[],i=t.length,o=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(t).concat([6,1,2]));return Xe.box(Xe.types.esds,o)}static avc1(e){let t=e.avcc;const i=e.codecWidth,o=e.codecHeight;let r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,o>>>8&255,255&o,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return Xe.box(Xe.types.avc1,r,Xe.box(Xe.types.avcC,t))}static hvc1(e){let t=e.avcc;const i=e.codecWidth,o=e.codecHeight;let r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,o>>>8&255,255&o,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return Xe.box(Xe.types.hvc1,r,Xe.box(Xe.types.hvcC,t))}static mvex(e){return Xe.box(Xe.types.mvex,Xe.trex(e))}static trex(e){let t=e.id,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return Xe.box(Xe.types.trex,i)}static moof(e,t){return Xe.box(Xe.types.moof,Xe.mfhd(e.sequenceNumber),Xe.traf(e,t))}static mfhd(e){let t=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return Xe.box(Xe.types.mfhd,t)}static traf(e,t){let i=e.id,o=Xe.box(Xe.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),r=Xe.box(Xe.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),A=Xe.sdtp(e),s=Xe.trun(e,A.byteLength+16+16+8+16+8+8);return Xe.box(Xe.types.traf,o,r,s,A)}static sdtp(e){let t=new Uint8Array(5),i=e.flags;return t[4]=i.isLeading<<6|i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy,Xe.box(Xe.types.sdtp,t)}static trun(e,t){let i=new Uint8Array(28);t+=36,i.set([0,0,15,1,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);let o=e.duration,r=e.size,A=e.flags,s=e.cts;return i.set([o>>>24&255,o>>>16&255,o>>>8&255,255&o,r>>>24&255,r>>>16&255,r>>>8&255,255&r,A.isLeading<<2|A.dependsOn,A.isDependedOn<<6|A.hasRedundancy<<4|A.isNonSync,0,0,s>>>24&255,s>>>16&255,s>>>8&255,255&s],12),Xe.box(Xe.types.trun,i)}static mdat(e){return Xe.box(Xe.types.mdat,e)}}Xe.init();class Ze{constructor(e){this.TAG="ExpGolomb",this._buffer=e,this._buffer_index=0,this._total_bytes=e.byteLength,this._total_bits=8*e.byteLength,this._current_word=0,this._current_word_bits_left=0}destroy(){this._buffer=null}_fillCurrentWord(){let e=this._total_bytes-this._buffer_index,t=Math.min(4,e),i=new Uint8Array(4);i.set(this._buffer.subarray(this._buffer_index,this._buffer_index+t)),this._current_word=new DataView(i.buffer).getUint32(0,!1),this._buffer_index+=t,this._current_word_bits_left=8*t}readBits(e){if(e<=this._current_word_bits_left){let t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}let t=this._current_word_bits_left?this._current_word:0;t>>>=32-this._current_word_bits_left;let i=e-this._current_word_bits_left;this._fillCurrentWord();let o=Math.min(i,this._current_word_bits_left),r=this._current_word>>>32-o;return this._current_word<<=o,this._current_word_bits_left-=o,t=t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){let e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){let e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class qe{static _ebsp2rbsp(e){let t=e,i=t.byteLength,o=new Uint8Array(i),r=0;for(let e=0;e=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(o[r]=t[e],r++);return new Uint8Array(o.buffer,0,r)}static parseSPS(e){let t=qe._ebsp2rbsp(e),i=new Ze(t);i.readByte();let o=i.readByte();i.readByte();let r=i.readByte();i.readUEG();let A=qe.getProfileString(o),s=qe.getLevelString(r),n=1,a=420,d=[0,420,422,444],c=8;if((100===o||110===o||122===o||244===o||44===o||83===o||86===o||118===o||128===o||138===o||144===o)&&(n=i.readUEG(),3===n&&i.readBits(1),n<=3&&(a=d[n]),c=i.readUEG()+8,i.readUEG(),i.readBits(1),i.readBool())){let e=3!==n?8:12;for(let t=0;t0&&e<16?(v=t[e-1],w=o[e-1]):255===e&&(v=i.readByte()<<8|i.readByte(),w=i.readByte()<<8|i.readByte())}if(i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(4),i.readBool()&&i.readBits(24)),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool()){let e=i.readBits(32),t=i.readBits(32);E=i.readBool(),B=t,C=2*e,S=B/C}}let R=1;1===v&&1===w||(R=v/w);let k=0,T=0;if(0===n)k=1,T=2-m;else{k=3===n?1:2,T=(1===n?2:1)*(2-m)}let I=16*(h+1),x=16*(p+1)*(2-m);I-=(g+f)*k,x-=(b+y)*T;let D=Math.ceil(I*R);return i.destroy(),i=null,{profile_string:A,level_string:s,bit_depth:c,ref_frames:u,chroma_format:a,chroma_format_string:qe.getChromaFormatString(a),frame_rate:{fixed:E,fps:S,fps_den:C,fps_num:B},sar_ratio:{width:v,height:w},codec_size:{width:I,height:x},present_size:{width:D,height:x}}}static _skipScalingList(e,t){let i=8,o=8,r=0;for(let A=0;A{this.mediaSourceOpen=!0,this.player.emit(T.mseSourceOpen)})),i(this.mediaSource,"sourceclose",(()=>{this.player.emit(T.mseSourceClose)})),e.debug.log("MediaSource","init")}destroy(){this.stop(),this.bufferList=[],this.mediaSource=null,this.mediaSourceOpen=!1,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.sequenceNumber=0,this.cacheTrack=null,this.timeInit=!1,this.off(),this.player.debug.log("MediaSource","destroy")}get state(){return this.mediaSource.readyState}get isStateOpen(){return this.state===te}get isStateClosed(){return this.state===ie}get isStateEnded(){return this.state===ee}get duration(){return this.mediaSource.duration}set duration(e){this.mediaSource.duration=e}decodeVideo(e,t,i){const o=this.player;if(this.hasInit)this._decodeVideo(e,t,i);else if(i&&0===e[1]){const r=15&e[0];if(o.video.updateVideoInfo({encTypeCode:r}),r===M)return void this.emit(x.mediaSourceH265NotSupport);o._times.decodeStart||(o._times.decodeStart=he()),this._decodeConfigurationRecord(e,t,i,r),this.hasInit=!0}}_doDecode(){const e=this.bufferList.shift();e&&this._decodeVideo(e.payload,e.ts,e.isIframe)}_decodeConfigurationRecord(e,t,i,o){let r=e.slice(5),A={};o===O?A=function(e){const t={},i=new DataView(e.buffer);let o=i.getUint8(0),r=i.getUint8(1);if(i.getUint8(2),i.getUint8(3),1!==o||0===r)return;const A=1+(3&i.getUint8(4));if(3!==A&&4!==A)return;let s=31&i.getUint8(5);if(0===s)return;let n=6;for(let o=0;o1&&(this.removeBuffer(n.buffered.start(0),n.buffered.end(0)),this.timeInit=!1),this.dropping&&s-this.cacheTrack.dts>1e3)this.dropping=!1,this.cacheTrack={};else if(this.cacheTrack&&s>this.cacheTrack.dts){let e=8+this.cacheTrack.size,i=new Uint8Array(e);i[0]=e>>>24&255,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i.set(Xe.types.mdat,4),i.set(this.cacheTrack.data,8),this.cacheTrack.duration=s-this.cacheTrack.dts;let r=Xe.moof(this.cacheTrack,this.cacheTrack.dts),A=new Uint8Array(r.byteLength+i.byteLength);A.set(r,0),A.set(i,r.byteLength),this.appendBuffer(A.buffer),o.handleRender(),o.updateStats({fps:!0,ts:t,buf:o.demux.delay}),o._times.videoStart||(o._times.videoStart=he(),o.handlePlayToRenderTimes())}else o.debug.log("MediaSource","timeInit set false , cacheTrack = {}"),this.timeInit=!1,this.cacheTrack={};this.cacheTrack.id=1,this.cacheTrack.sequenceNumber=++this.sequenceNumber,this.cacheTrack.size=A,this.cacheTrack.dts=s,this.cacheTrack.cts=0,this.cacheTrack.isKeyframe=i,this.cacheTrack.data=r,this.cacheTrack.flags={isLeading:0,dependsOn:i?2:1,isDependedOn:i?1:0,hasRedundancy:0,isNonSync:i?0:1},this.timeInit||1!==n.buffered.length||(o.debug.log("MediaSource","timeInit set true"),this.timeInit=!0,n.currentTime=n.buffered.end(0)),!this.isInitInfo&&n.videoWidth>0&&n.videoHeight>0&&(o.debug.log("MediaSource",`updateVideoInfo: ${n.videoWidth},${n.videoHeight}`),o.video.updateVideoInfo({width:n.videoWidth,height:n.videoHeight}),o.video.initCanvasViewSize(),this.isInitInfo=!0)}appendBuffer(e){const{debug:t,events:{proxy:i}}=this.player;null===this.sourceBuffer&&(this.sourceBuffer=this.mediaSource.addSourceBuffer($),i(this.sourceBuffer,"error",(e=>{this.player.emit(T.mseSourceBufferError,e)}))),!1===this.sourceBuffer.updating&&this.isStateOpen?this.sourceBuffer.appendBuffer(e):this.isStateClosed?this.player.emit(T.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed"):this.isStateEnded?this.player.emit(T.mseSourceBufferError,"mediaSource is closed"):!0===this.sourceBuffer.updating&&this.player.emit(T.mseSourceBufferBusy)}stop(){this.isStateOpen&&this.sourceBuffer&&this.sourceBuffer.abort(),this.endOfStream()}dropSourceBuffer(e){const t=this.player.video.$videoElement;this.dropping=e,t.buffered.length>0&&t.buffered.end(0)-t.currentTime>1&&(t.currentTime=t.buffered.end(0))}removeBuffer(e,t){if(this.isStateOpen&&!1===this.sourceBuffer.updating)try{this.sourceBuffer.remove(e,t)}catch(e){console.error(e)}}endOfStream(){this.isStateOpen&&this.mediaSource.endOfStream()}}const _e=()=>"undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,$e=()=>"wakeLock"in navigator;class et{constructor(e){if(this.player=e,this.enabled=!1,$e()){this._wakeLock=null;const e=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()};document.addEventListener("visibilitychange",e),document.addEventListener("fullscreenchange",e)}else _e()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm","data:video/webm;base64,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"),this._addSourceToVideo(this.noSleepVideo,"mp4","data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"),this.noSleepVideo.addEventListener("loadedmetadata",(()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",(()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}))})))}_addSourceToVideo(e,t,i){var o=document.createElement("source");o.src=i,o.type=`video/${t}`,e.appendChild(o)}get isEnabled(){return this.enabled}enable(){const e=this.player.debug;if($e())return navigator.wakeLock.request("screen").then((t=>{this._wakeLock=t,this.enabled=!0,e.log("wakeLock","Wake Lock active."),this._wakeLock.addEventListener("release",(()=>{e.log("wakeLock","Wake Lock released.")}))})).catch((t=>{throw this.enabled=!1,e.error("wakeLock",`${t.name}, ${t.message}`),t}));if(_e())return this.disable(),this.noSleepTimer=window.setInterval((()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))}),15e3),this.enabled=!0,Promise.resolve();return this.noSleepVideo.play().then((e=>(this.enabled=!0,e))).catch((e=>{throw this.enabled=!1,e}))}disable(){const e=this.player.debug;$e()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):_e()?this.noSleepTimer&&(e.warn("wakeLock","NoSleep now disabled for older iOS devices."),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}class tt extends Be{constructor(e,t){var i;super(),this.$container=e,this._opt=Object.assign({},d,t),this.debug=new ne(this),this._opt.useWCS&&(this._opt.useWCS="VideoEncoder"in window),this._opt.useMSE&&(this._opt.useMSE=window.MediaSource&&window.MediaSource.isTypeSupported($)),this._opt.useMSE?(this._opt.useWCS&&this.debug.log("Player","useWCS set true->false"),this._opt.forceNoOffscreen||this.debug.log("Player","forceNoOffscreen set false->true"),this._opt.useWCS=!1,this._opt.forceNoOffscreen=!0):this._opt.useWCS,this._opt.forceNoOffscreen||("undefined"==typeof OffscreenCanvas?(this._opt.forceNoOffscreen=!0,this._opt.useOffscreen=!1):this._opt.useOffscreen=!0),this._opt.hasAudio||(this._opt.operateBtns.audio=!1),this._opt.hasControl=this._hasControl(),this._loading=!1,this._playing=!1,this._hasLoaded=!1,this._checkHeartTimeout=null,this._checkLoadingTimeout=null,this._startBpsTime=null,this._isPlayingBeforePageHidden=!1,this._stats={buf:0,fps:0,abps:0,vbps:0,ts:0},this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._videoTimestamp=0,this._audioTimestamp=0,i=this,Object.defineProperty(i,"rect",{get:()=>{const e=i.$container.getBoundingClientRect();return e.width=Math.max(e.width,i.$container.clientWidth),e.height=Math.max(e.height,i.$container.clientHeight),e}}),["bottom","height","left","right","top","width"].forEach((e=>{Object.defineProperty(i,e,{get:()=>i.rect[e]})})),this.events=new ae(this),this.video=new Te(this),this._opt.hasAudio&&(this.audio=new xe(this)),this.recorder=new Ve(this),this._onlyMseOrWcsVideo()?this.loaded=!0:this.decoderWorker=new Oe(this),this.stream=null,this.demux=null,this._opt.useWCS&&(this.webcodecsDecoder=new Je(this)),this._opt.useMSE&&(this.mseDecoder=new Ke(this)),this.control=new He(this),this.keepScreenOn=new et(this),(e=>{try{const t=()=>{e.emit(I.fullscreen,e.fullscreen),e.fullscreen?e._opt.useMSE&&e.resize():e.resize()};de.on("change",t),e.events.destroys.push((()=>{de.off("change",t)}))}catch(e){}if(e.on(T.decoderWorkerInit,(()=>{e.debug.log("player","has loaded"),e.loaded=!0})),e.on(T.play,(()=>{e.loading=!1})),e.on(T.fullscreen,(t=>{if(t)try{de.request(e.$container).then((()=>{})).catch((t=>{e.webFullscreen=!0}))}catch(t){e.webFullscreen=!0}else try{de.exit().then((()=>{})).catch((()=>{e.webFullscreen=!1}))}catch(t){e.webFullscreen=!1}})),e.on(T.webFullscreen,(t=>{t?e.$container.classList.add("jessibuca-fullscreen-web"):e.$container.classList.remove("jessibuca-fullscreen-web")})),e.on(T.resize,(()=>{e.video.resize()})),e._opt.debug){const t=[T.timeUpdate];Object.keys(T).forEach((i=>{e.on(T[i],(o=>{t.includes(i)||e.debug.log("player events",T[i],o)}))})),Object.keys(x).forEach((t=>{e.on(x[t],(i=>{e.debug.log("player event error",x[t],i)}))}))}})(this),(e=>{const{_opt:t,debug:i,events:{proxy:o}}=e;t.supportDblclickFullscreen&&o(e.$container,"dblclick",(()=>{e.fullscreen=!e.fullscreen})),o(document,"visibilitychange",(()=>{t.hiddenAutoPause&&(i.log("visibilitychange",document.visibilityState,e._isPlayingBeforePageHidden),"visible"===document.visibilityState?e._isPlayingBeforePageHidden&&e.play():(e._isPlayingBeforePageHidden=e.playing,e.playing&&e.pause()))})),o(window,"fullscreenchange",(()=>{null!==e.keepScreenOn&&"visible"===document.visibilityState&&e.enableWakeLock()}))})(this),this._opt.useWCS&&this.debug.log("Player","use WCS"),this._opt.useMSE&&this.debug.log("Player","use MSE"),this._opt.useOffscreen&&this.debug.log("Player","use offscreen"),this.debug.log("Player options",this._opt)}destroy(){this._loading=!1,this._playing=!1,this._hasLoaded=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.video&&(this.video.destroy(),this.video=null),this.audio&&(this.audio.destroy(),this.audio=null),this.stream&&(this.stream.destroy(),this.stream=null),this.recorder&&(this.recorder.destroy(),this.recorder=null),this.control&&(this.control.destroy(),this.control=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.demux&&(this.demux.destroy(),this.demux=null),this.events&&(this.events.destroy(),this.events=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.releaseWakeLock(),this.keepScreenOn=null,this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this.emit("destroy"),this.off(),this.debug.log("play","destroy end")}set fullscreen(e){ye()?(this.emit(T.webFullscreen,e),setTimeout((()=>{this.updateOption({rotate:e?270:0}),this.resize()}),10)):this.emit(T.fullscreen,e)}get fullscreen(){return document.isFullScreen||document.mozIsFullScreen||document.webkitIsFullScreen||this.webFullscreen}set webFullscreen(e){this.emit(T.webFullscreen,e)}get webFullscreen(){return this.$container.classList.contains("jessibuca-fullscreen-web")}set loaded(e){this._hasLoaded=e}get loaded(){return this._hasLoaded}set playing(e){e&&(this.loading=!1),this.playing!==e&&(this._playing=e,this.emit(T.playing,e),this.emit(T.volumechange,this.volume),e?this.emit(T.play):this.emit(T.pause))}get playing(){return this._playing}get volume(){return this.audio&&this.audio.volume||0}set volume(e){this.audio&&this.audio.setVolume(e)}set loading(e){this.loading!==e&&(this._loading=e,this.emit(T.loading,this._loading))}get loading(){return this._loading}set recording(e){this.playing&&(e?this.recorder.startRecord():this.recorder.stopRecordAndSave())}get recording(){return this.recorder&&this.recorder.recording}set audioTimestamp(e){null!==e&&(this._audioTimestamp=e)}get audioTimestamp(){return this._audioTimestamp}set videoTimestamp(e){null!==e&&(this._videoTimestamp=e,this._opt.useWCS||this._opt.useMSE||this.audioTimestamp&&this.videoTimestamp&&this.audio&&this.audio.emit(T.videoSyncAudio,{audioTimestamp:this.audioTimestamp,videoTimestamp:this.videoTimestamp,diff:this.audioTimestamp-this.videoTimestamp}))}get videoTimestamp(){return this._videoTimestamp}updateOption(e){this._opt=Object.assign({},this._opt,e)}init(){return new Promise(((e,t)=>{this.stream||(this.stream=new Le(this)),this.demux||(this.demux=new Ge(this)),this._opt.useWCS&&(this.webcodecsDecoder||(this.webcodecsDecoder=new Je(this))),this._opt.useMSE&&(this.mseDecoder||(this.mseDecoder=new Ke(this))),this.decoderWorker||this._onlyMseOrWcsVideo()?e():(this.decoderWorker=new Oe(this),this.once(T.decoderWorkerInit,(()=>{e()})))}))}play(e){return new Promise(((t,i)=>{if(!e&&!this._opt.url)return i();this.loading=!0,this.playing=!1,this._times.playInitStart=he(),e||(e=this._opt.url),this._opt.url=e,this.clearCheckHeartTimeout(),this.init().then((()=>{this._times.playStart=he(),this._opt.isNotMute&&this.mute(!1),this.webcodecsDecoder&&this.webcodecsDecoder.once(x.webcodecsH265NotSupport,(()=>{this.emit(x.webcodecsH265NotSupport),this._opt.autoWasm||this.emit(T.error,x.webcodecsH265NotSupport)})),this.mseDecoder&&this.mseDecoder.once(x.mediaSourceH265NotSupport,(()=>{this.emit(x.mediaSourceH265NotSupport),this._opt.autoWasm||this.emit(T.error,x.mediaSourceH265NotSupport)})),this.enableWakeLock(),this.stream.fetchStream(e),this.checkLoadingTimeout(),this.stream.once(x.fetchError,(e=>{i(e)})),this.stream.once(x.websocketError,(e=>{i(e)})),this.stream.once(T.streamSuccess,(()=>{t(),this._times.streamResponse=he(),this._opt.useMSE&&this.video.play()}))})).catch((e=>{i(e)}))}))}close(){return new Promise(((e,t)=>{this._close().then((()=>{this.video.clearView(),e()}))}))}_close(){return new Promise(((e,t)=>{this.stream&&(this.stream.destroy(),this.stream=null),this.demux&&(this.demux.destroy(),this.demux=null),this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.playing=!1,this.loading=!1,this.recording=!1,this.audio&&this.audio.pause(),this.releaseWakeLock(),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},setTimeout((()=>{e()}),0)}))}pause(e){return e?this.close():this._close()}mute(e){this.audio&&this.audio.mute(e)}resize(){this.video.resize()}startRecord(e,t){this.recording||(this.recorder.setFileName(e,t),this.recording=!0)}stopRecordAndSave(){this.recording&&(this.recording=!1)}_hasControl(){let e=!1,t=!1;return Object.keys(this._opt.operateBtns).forEach((e=>{this._opt.operateBtns[e]&&(t=!0)})),(this._opt.showBandwidth||this._opt.text||t)&&(e=!0),e}_onlyMseOrWcsVideo(){return!1===this._opt.hasAudio&&(this._opt.useMSE||this._opt.useWCS&&!this._opt.useOffscreen)}checkHeart(){this.clearCheckHeartTimeout(),this.checkHeartTimeout()}checkHeartTimeout(){this._checkHeartTimeout=setTimeout((()=>{this.pause(!1).then((()=>{this.emit(T.timeout,T.delayTimeout),this.emit(T.delayTimeout)}))}),1e3*this._opt.heartTimeout)}clearCheckHeartTimeout(){this._checkHeartTimeout&&(clearTimeout(this._checkHeartTimeout),this._checkHeartTimeout=null)}checkLoadingTimeout(){this._checkLoadingTimeout=setTimeout((()=>{this.pause(!1).then((()=>{this.emit(T.timeout,T.loadingTimeout),this.emit(T.loadingTimeout)}))}),1e3*this._opt.loadingTimeout)}clearCheckLoadingTimeout(){this._checkLoadingTimeout&&(clearTimeout(this._checkLoadingTimeout),this._checkLoadingTimeout=null)}handleRender(){this.loading&&(this.emit(T.start),this.loading=!1,this.clearCheckLoadingTimeout()),this.playing||(this.playing=!0),this.checkHeart()}updateStats(e){e=e||{},this._startBpsTime||(this._startBpsTime=he()),Ee(e.ts)&&(this._stats.ts=e.ts),Ee(e.buf)&&(this._stats.buf=e.buf),e.fps&&(this._stats.fps+=1),e.abps&&(this._stats.abps+=e.abps),e.vbps&&(this._stats.vbps+=e.vbps);const t=he();t-this._startBpsTime<1e3||(this.emit(T.stats,this._stats),this.emit(T.performance,function(e){let t=0;return e>=24?t=2:e>=15&&(t=1),t}(this._stats.fps)),this._stats.fps=0,this._stats.abps=0,this._stats.vbps=0,this._startBpsTime=t)}resetStats(){this._startBpsTime=null,this._stats={buf:0,fps:0,abps:0,vbps:0,ts:0}}enableWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn.enable()}releaseWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn.disable()}handlePlayToRenderTimes(){const e=this._times;e.playTimestamp=e.playStart-e.playInitStart,e.streamTimestamp=e.streamStart-e.playStart,e.streamResponseTimestamp=e.streamResponse-e.streamStart,e.demuxTimestamp=e.demuxStart-e.streamResponse,e.decodeTimestamp=e.decodeStart-e.demuxStart,e.videoTimestamp=e.videoStart-e.decodeStart,e.allTimestamp=e.videoStart-e.playInitStart,this.emit(T.playToRenderTimes,e)}}class it extends Be{constructor(e){super();let t=e,i=e.container;if("string"==typeof e.container&&(i=document.querySelector(e.container)),!i)throw new Error("Jessibuca need container option");i.classList.add("jessibuca-container"),delete t.container,Ee(t.videoBuffer)&&(t.videoBuffer=1e3*Number(t.videoBuffer)),Ee(t.timeout)&&(Se(t.loadingTimeout)&&(t.loadingTimeout=t.timeout),Se(t.heartTimeout)&&(t.heartTimeout=t.timeout)),this._opt=t,this.$container=i,this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.events=new ae(this),this._initPlayer(i,t)}destroy(){this.events&&(this.events.destroy(),this.events=null),this.player&&(this.player.destroy(),this.player=null),this.$container=null,this._opt=null,this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.off()}_initPlayer(e,t){this.player=new tt(e,t),this._bindEvents()}_resetPlayer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.player.destroy(),this.player=null;const t=Object.assign(this._opt,e);this._initPlayer(this.$container,t)}_bindEvents(){Object.keys(I).forEach((e=>{this.player.on(I[e],(t=>{this.emit(e,t)}))}))}setDebug(e){this.player.updateOption({isDebug:!!e})}mute(){this.player.mute(!0)}cancelMute(){this.player.mute(!1)}setVolume(e){this.player.volume=e}audioResume(){this.player.audio&&this.player.audio.audioEnabled(!0)}setTimeout(e){e=Number(e),this.player.updateOption({timeout:e,loadingTimeout:e,heartTimeout:e})}setScaleMode(e){let t={isFullResize:!1,isResize:!1};switch(e=Number(e)){case N:t.isFullResize=!1,t.isResize=!1;break;case P:t.isFullResize=!1,t.isResize=!0;break;case z:t.isFullResize=!0,t.isResize=!0}this.player.updateOption(t),this.resize()}pause(){return this.player.pause()}close(){return this._opt.url="",this.player.close()}clearView(){this.player.video.clearView()}play(e){return new Promise(((t,i)=>{if(!e&&!this._opt.url)return this.emit(T.error,x.playError),void i();if(e){if(!this._opt.url)return this._play(e);e===this._opt.url?this.player.playing?t():(this.clearView(),this.player.play(this._opt.url).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))}))):this.player.pause().then((()=>(this.clearView(),this._play(e)))).catch((()=>{i()}))}else this.player.play(this._opt.url).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))}))}))}_play(e){return new Promise(((t,i)=>{this._opt.url=e;const o=0===e.indexOf("http"),r=o?s:A,d=o||-1!==e.indexOf(".flv")||this._opt.isFlv?n:a;this.player.updateOption({protocol:r,demuxType:d}),this.player.once(x.mediaSourceH265NotSupport,(()=>{this.close().then((()=>{this.player._opt.autoWasm&&(this.player.debug.log("Jessibuca","auto wasm [mse-> wasm] reset player and play"),this._resetPlayer({useMSE:!1}),this.play(e).then((()=>{this.player.debug.log("Jessibuca","auto wasm [mse-> wasm] reset player and play success")})).catch((()=>{this.player.debug.log("Jessibuca","auto wasm [mse-> wasm] reset player and play error")})))}))})),this.player.once(x.webcodecsH265NotSupport,(()=>{this.close().then((()=>{this.player._opt.autoWasm&&(this.player.debug.log("Jessibuca","auto wasm [wcs-> wasm] reset player and play"),this._resetPlayer({useWCS:!1}),this.play(e).then((()=>{this.player.debug.log("Jessibuca","auto wasm [wcs-> wasm] reset player and play success")})).catch((()=>{this.player.debug.log("Jessibuca","auto wasm [wcs-> wasm] reset player and play error")})))}))})),this.player.once(x.wasmDecodeError,(()=>{this.player._opt.wasmDecodeErrorReplay&&this.close().then((()=>{this.player.debug.log("Jessibuca","wasm decode error and reset player and play"),this._resetPlayer({useWCS:!1}),this.play(e).then((()=>{this.player.debug.log("Jessibuca","wasm decode error and reset player and play success")})).catch((()=>{this.player.debug.log("Jessibuca","wasm decode error and reset player and play error")}))}))})),this.player.once(T.delayTimeout,(()=>{this.player._opt.heartTimeoutReplay&&this._heartTimeoutReplayTimes{this._heartTimeoutReplayTimes=0})).catch((()=>{})))})),this.player.once(T.loadingTimeout,(()=>{this.player._opt.loadingTimeoutReplay&&this._loadingTimeoutReplayTimes{this._loadingTimeoutReplayTimes=0})).catch((()=>{})))})),this.hasLoaded()?this.player.play(e).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))})):this.player.once(T.decoderWorkerInit,(()=>{this.player.play(e).then((()=>{t()})).catch((()=>{this.player.pause().then((()=>{i()}))}))}))}))}resize(){this.player.resize()}setBufferTime(e){e=Number(e),this.player.updateOption({videoBuffer:1e3*e}),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"videoBuffer",value:1e3*e})}setRotate(e){e=parseInt(e,10);this._opt.rotate!==e&&-1!==[0,90,270].indexOf(e)&&(this.player.updateOption({rotate:e}),this.resize())}hasLoaded(){return this.player.loaded}setKeepScreenOn(){this.player.updateOption({keepScreenOn:!0})}setFullscreen(e){const t=!!e;this.player.fullscreen!==t&&(this.player.fullscreen=t)}screenshot(e,t,i,o){return this.player.video.screenshot(e,t,i,o)}startRecord(e,t){return new Promise(((i,o)=>{this.player.playing?(this.player.startRecord(e,t),i()):o()}))}stopRecordAndSave(){this.player.recording&&this.player.stopRecordAndSave()}isPlaying(){return this.player.playing}isMute(){return!this.player.audio||this.player.audio.isMute}isRecording(){return this.player.recorder.recording}}return r(it,"ERROR",x),r(it,"TIMEOUT",{loadingTimeout:T.loadingTimeout,delayTimeout:T.delayTimeout}),window.Jessibuca=it,it})); From 1986a059f8d257c007ad764fc77cd980d1360728 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Wed, 18 May 2022 15:47:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=B5=B7=E5=BA=B7ssrc?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java index eb3831a9..17658e76 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java @@ -274,9 +274,12 @@ public class PlayServiceImpl implements IPlayService { if (ssrcIndex >= 0) { //ssrc规定长度为10字节,不取余下长度以避免后续还有“f=”字段 TODO 后续对不规范的非10位ssrc兼容 String ssrcInResponse = contentString.substring(ssrcIndex + 2, ssrcIndex + 12); - if (!ssrc.equals(ssrcInResponse) && device.isSsrcCheck()) { // 查询到ssrc不一致且开启了ssrc校验则需要针对处理 - // 查询 ssrcInResponse 是否可用 - if (mediaServerItem.isRtpEnable() && !mediaServerItem.getSsrcConfig().checkSsrc(ssrcInResponse)) { + // 查询到ssrc不一致且开启了ssrc校验则需要针对处理 + if (ssrc.equals(ssrcInResponse)) { + return; + } + if (!mediaServerItem.isRtpEnable() || device.isSsrcCheck()) { + if (!mediaServerItem.getSsrcConfig().checkSsrc(ssrcInResponse)) { // ssrc 不可用 // 释放ssrc mediaServerService.releaseSsrc(mediaServerItem.getId(), finalSsrcInfo.getSsrc()); From 05485f57cdc9601bd01d60aa3a786e6d8bbe723c Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Wed, 18 May 2022 16:08:52 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=94=B6=E5=88=B0?= =?UTF-8?q?=E5=BF=83=E8=B7=B3=E7=9A=84=E4=BF=A1=E6=81=AF=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmd/KeepaliveNotifyMessageHandler.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java index d5d4c1d0..cf07250d 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java @@ -49,28 +49,28 @@ public class KeepaliveNotifyMessageHandler extends SIPRequestProcessorParent imp return; } try { + // 判断RPort是否改变,改变则说明路由nat信息变化,修改设备信息 + // 获取到通信地址等信息 + ViaHeader viaHeader = (ViaHeader) evt.getRequest().getHeader(ViaHeader.NAME); + String received = viaHeader.getReceived(); + int rPort = viaHeader.getRPort(); + // 解析本地地址替代 + if (StringUtils.isEmpty(received) || rPort == -1) { + received = viaHeader.getHost(); + rPort = viaHeader.getPort(); + } + if (device.getPort() != rPort) { + device.setPort(rPort); + device.setHostAddress(received.concat(":").concat(String.valueOf(rPort))); + } + device.setKeepaliveTime(DateUtil.getNow()); if (device.getOnline() == 1) { // 回复200 OK responseAck(evt, Response.OK); + deviceService.updateDevice(device); }else { // 对于已经离线的设备判断他的注册是否已经过期 if (!deviceService.expire(device)){ - device.setKeepaliveTime(DateUtil.getNow()); - // 判断RPort是否改变,改变则说明路由nat信息变化,修改设备信息 - // 获取到通信地址等信息 - ViaHeader viaHeader = (ViaHeader) evt.getRequest().getHeader(ViaHeader.NAME); - String received = viaHeader.getReceived(); - int rPort = viaHeader.getRPort(); - // 解析本地地址替代 - if (StringUtils.isEmpty(received) || rPort == -1) { - received = viaHeader.getHost(); - rPort = viaHeader.getPort(); - } - if (device.getPort() != rPort) { - device.setPort(rPort); - device.setHostAddress(received.concat(":").concat(String.valueOf(rPort))); - } - device.setKeepaliveTime(DateUtil.getNow()); deviceService.online(device); // 回复200 OK responseAck(evt, Response.OK); From d1c15ad52077e51b705da3e373c366350fb142d9 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Wed, 18 May 2022 16:46:09 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8D=95=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=E4=B8=8B=E7=9A=84ssrc=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/service/impl/PlayServiceImpl.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java index 17658e76..be66b0ed 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java @@ -90,6 +90,9 @@ public class PlayServiceImpl implements IPlayService { @Autowired private DynamicTask dynamicTask; + @Autowired + private ZLMHttpHookSubscribe subscribe; + @@ -259,6 +262,7 @@ public class PlayServiceImpl implements IPlayService { } }, userSetting.getPlayTimeout()*1000); final String ssrc = ssrcInfo.getSsrc(); + final String stream = ssrcInfo.getStream(); cmder.playStreamCmd(mediaServerItem, ssrcInfo, device, channelId, (MediaServerItem mediaServerItemInuse, JSONObject response) -> { logger.info("收到订阅消息: " + response.toJSONString()); dynamicTask.stop(timeOutTaskKey); @@ -278,6 +282,7 @@ public class PlayServiceImpl implements IPlayService { if (ssrc.equals(ssrcInResponse)) { return; } + logger.info("[SIP 消息] 收到invite 200, 发现下级自定义了ssrc 开启修正"); if (!mediaServerItem.isRtpEnable() || device.isSsrcCheck()) { if (!mediaServerItem.getSsrcConfig().checkSsrc(ssrcInResponse)) { // ssrc 不可用 @@ -289,10 +294,32 @@ public class PlayServiceImpl implements IPlayService { errorEvent.response(event); return; } + + // 单端口模式streamId也有变化,需要重新设置监听 + if (!mediaServerItem.isRtpEnable()) { + // 添加订阅 + JSONObject subscribeKey = new JSONObject(); + subscribeKey.put("app", "rtp"); + subscribeKey.put("stream", stream); + subscribeKey.put("regist", true); + subscribeKey.put("schema", "rtmp"); + subscribeKey.put("mediaServerId", mediaServerItem.getId()); + subscribe.removeSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed,subscribeKey); + subscribeKey.put("stream", String.format("%08x", Integer.parseInt(ssrcInResponse)).toUpperCase()); + subscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, subscribeKey, + (MediaServerItem mediaServerItemInUse, JSONObject response)->{ + logger.info("[ZLM HOOK] ssrc修正后收到订阅消息: " + response.toJSONString()); + dynamicTask.stop(timeOutTaskKey); + // hook响应 + onPublishHandlerForPlay(mediaServerItemInUse, response, device.getDeviceId(), channelId, uuid); + hookEvent.response(mediaServerItemInUse, response); + }); + } // 关闭rtp server mediaServerService.closeRTPServer(device.getDeviceId(), channelId, finalSsrcInfo.getStream()); // 重新开启ssrc server mediaServerService.openRTPServer(mediaServerItem, finalSsrcInfo.getStream(), ssrcInResponse, device.isSsrcCheck(), false); + } } }, (event) -> {