From f06de02ebcfe301f7b9a37757d7fc7cdd76847ab Mon Sep 17 00:00:00 2001 From: Oooocean <41802399@qq.com> Date: Fri, 4 Nov 2022 22:52:22 +0800 Subject: [PATCH] Delete Demo/Benchmark/webgl directory remove benchmark export --- Demo/Benchmark/webgl/TemplateData/Stats.js | 48 - Demo/Benchmark/webgl/TemplateData/Timer.js | 44 - Demo/Benchmark/webgl/TemplateData/UI.js | 40 - .../webgl/TemplateData/UnityLoader.js | 1428 ----------------- .../webgl/TemplateData/UnityProgress.js | 24 - Demo/Benchmark/webgl/TemplateData/favicon.ico | Bin 13275 -> 0 bytes .../webgl/TemplateData/progressEmpty.Dark.png | Bin 155 -> 0 bytes .../webgl/TemplateData/progressFull.Dark.png | Bin 137 -> 0 bytes .../webgl/TemplateData/progressLogo.Dark.png | Bin 2343 -> 0 bytes Demo/Benchmark/webgl/TemplateData/style.css | 48 - Demo/Benchmark/webgl/index.html | 99 -- 11 files changed, 1731 deletions(-) delete mode 100644 Demo/Benchmark/webgl/TemplateData/Stats.js delete mode 100644 Demo/Benchmark/webgl/TemplateData/Timer.js delete mode 100644 Demo/Benchmark/webgl/TemplateData/UI.js delete mode 100644 Demo/Benchmark/webgl/TemplateData/UnityLoader.js delete mode 100644 Demo/Benchmark/webgl/TemplateData/UnityProgress.js delete mode 100644 Demo/Benchmark/webgl/TemplateData/favicon.ico delete mode 100644 Demo/Benchmark/webgl/TemplateData/progressEmpty.Dark.png delete mode 100644 Demo/Benchmark/webgl/TemplateData/progressFull.Dark.png delete mode 100644 Demo/Benchmark/webgl/TemplateData/progressLogo.Dark.png delete mode 100644 Demo/Benchmark/webgl/TemplateData/style.css delete mode 100644 Demo/Benchmark/webgl/index.html diff --git a/Demo/Benchmark/webgl/TemplateData/Stats.js b/Demo/Benchmark/webgl/TemplateData/Stats.js deleted file mode 100644 index 51b0408..0000000 --- a/Demo/Benchmark/webgl/TemplateData/Stats.js +++ /dev/null @@ -1,48 +0,0 @@ -var Stats= { - Memory: { - init: function(initialHeapSize){ - this.element = UI.createSection("Memory (mb)"); - this.initialHeapSize = this.heapSize = initialHeapSize; - this.updateInterval = setInterval(() => { - Stats.Memory.updateText(); - }, 1000); - - this.updateText(); - }, - updateText: function(){ - Stats.Memory.element.innerText = "Initial Heap Size: " + (Stats.Memory.initialHeapSize / 1024 / 1024); - Stats.Memory.element.innerText += "\nHeap Size: " + (gameInstance.Module.asmLibraryArg.getTotalMemory() / 1024 / 1024); - Stats.Memory.element.innerText += "\nHigh Watermark: " + (gameInstance.Module.HEAP32[gameInstance.Module.asmLibraryArg.DYNAMICTOP_PTR>> 2] / 1024 / 1024).toFixed(0); - } - }, - Loading: { - timers: [], - init: function(Module){ - this.element = UI.createSection("Load Times (ms)"); - this.updateInterval = setInterval(function(){ - Stats.Loading.updateText(); - }, 500); - - // UnityLoader.Job.schedule(Module, "wasmFrameworkDownloadFinished", ["downloadWasmFramework"], downloadFinishedJob.bind(null, "WebAssembly Framwork")); - UnityLoader.Job.schedule(Module, "downloadFinished", ["downloadWasmCode", "downloadData", "downloadWasmFramework"], this.downloadFinishedJob); - }, - term: function(){ - Stats.Loading.updateText(); - clearInterval(Stats.Loading.updateInterval); - }, - updateText: function(){ - Stats.Loading.element.innerText = ""; - Stats.Loading.timers.forEach(function(timer) { - Stats.Loading.element.innerText += timer.toString(); - Stats.Loading.element.innerText += "\n"; - }); - }, - downloadFinishedJob: function (Module, job) { - Stats.Loading.timers.unshift( - new Timer("Data", Module.Jobs["downloadData"]), - new Timer("Code", Module.Jobs["downloadWasmCode"]), - new Timer("Framework", Module.Jobs["downloadWasmFramework"]) - ); - } - } -}; diff --git a/Demo/Benchmark/webgl/TemplateData/Timer.js b/Demo/Benchmark/webgl/TemplateData/Timer.js deleted file mode 100644 index f725fd1..0000000 --- a/Demo/Benchmark/webgl/TemplateData/Timer.js +++ /dev/null @@ -1,44 +0,0 @@ -var Timer = /** @class */ (function () { - function Timer(label, job) { - this.label = label; - if (job == null) { - this.startTime = performance.now(); - } - else { - this.job = job; - this.set(job.starttime, job.endtime); - } - } - Timer.prototype.start = function () { - this.startTime = performance.now(); - }; - Timer.prototype.stop = function () { - this.endTime = performance.now(); - }; - Timer.prototype.set = function (startTime, endTime) { - this.startTime = startTime; - this.endTime = endTime; - }; - Timer.prototype.isDone = function () { - return typeof this.endTime != "undefined"; - }; - Timer.prototype.toString = function () { - var text = this.label + ": "; - if (this.isDone()) { - // text += (this.endTime - this.startTime).toFixed(2); - text += (this.endTime - this.startTime).toFixed(0); - if ((typeof this.job !== "undefined") && this.job.result.value.cached) { - text += " (from cache)"; - } - } - else { - var progress = ((performance.now() - this.startTime).toFixed(2) / 1000) % 3; - text += "in progress "; - for (i = 0; i < progress; i++) { - text += "."; - } - } - return text; - }; - return Timer; -}()); diff --git a/Demo/Benchmark/webgl/TemplateData/UI.js b/Demo/Benchmark/webgl/TemplateData/UI.js deleted file mode 100644 index 62b9c0e..0000000 --- a/Demo/Benchmark/webgl/TemplateData/UI.js +++ /dev/null @@ -1,40 +0,0 @@ -var UI= { - init: function(container, onQuit){ - this.container = container; - this.main = document.createElement("div"); - this.main.id = "overlay"; - - this.main.style.bottom = "0px"; - this.container.appendChild(this.main); - // this.createButton("Reload with #no-cache"); - this.createButton("X", function() { - onQuit(); - UI.container.removeChild(UI.main); - }); - if (!UnityLoader.SystemInfo.mobile) - this.createButton("Enable Fullscreen", function(){ - gameInstance.SetFullscreen(1); - }); - }, - createButton: function (text, callback) { - var button = document.createElement("button"); - button.className = "button"; - var t = document.createTextNode(text); - button.appendChild(t); - button.addEventListener("click", callback); - this.main.appendChild(button); - }, - createSection: function(title) { - var section = document.createElement("p"); - section.id = "section"; - section.innerText = title; - - var content = document.createElement("p"); - content.id = "section-content"; - - section.appendChild(content); - this.main.appendChild(section); - - return content; - } -} \ No newline at end of file diff --git a/Demo/Benchmark/webgl/TemplateData/UnityLoader.js b/Demo/Benchmark/webgl/TemplateData/UnityLoader.js deleted file mode 100644 index 2559abd..0000000 --- a/Demo/Benchmark/webgl/TemplateData/UnityLoader.js +++ /dev/null @@ -1,1428 +0,0 @@ -var UnityLoader = UnityLoader || { - Compression: { - identity: { - require: function () { - return {}; - }, - decompress: function (data) { - return data; - }, - }, - gzip: { - require: function require(e){var t={"inflate.js":function(e,t,i){"use strict";function n(e){if(!(this instanceof n))return new n(e);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0===(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new h,this.strm.avail_out=0;var i=s.inflateInit2(this.strm,t.windowBits);if(i!==f.Z_OK)throw new Error(d[i]);this.header=new u,s.inflateGetHeader(this.strm,this.header)}function a(e,t){var i=new n(t);if(i.push(e,!0),i.err)throw i.msg||d[i.err];return i.result}function r(e,t){return t=t||{},t.raw=!0,a(e,t)}var s=e("./zlib/inflate"),o=e("./utils/common"),l=e("./utils/strings"),f=e("./zlib/constants"),d=e("./zlib/messages"),h=e("./zlib/zstream"),u=e("./zlib/gzheader"),c=Object.prototype.toString;n.prototype.push=function(e,t){var i,n,a,r,d,h,u=this.strm,b=this.options.chunkSize,w=this.options.dictionary,m=!1;if(this.ended)return!1;n=t===~~t?t:t===!0?f.Z_FINISH:f.Z_NO_FLUSH,"string"==typeof e?u.input=l.binstring2buf(e):"[object ArrayBuffer]"===c.call(e)?u.input=new Uint8Array(e):u.input=e,u.next_in=0,u.avail_in=u.input.length;do{if(0===u.avail_out&&(u.output=new o.Buf8(b),u.next_out=0,u.avail_out=b),i=s.inflate(u,f.Z_NO_FLUSH),i===f.Z_NEED_DICT&&w&&(h="string"==typeof w?l.string2buf(w):"[object ArrayBuffer]"===c.call(w)?new Uint8Array(w):w,i=s.inflateSetDictionary(this.strm,h)),i===f.Z_BUF_ERROR&&m===!0&&(i=f.Z_OK,m=!1),i!==f.Z_STREAM_END&&i!==f.Z_OK)return this.onEnd(i),this.ended=!0,!1;u.next_out&&(0!==u.avail_out&&i!==f.Z_STREAM_END&&(0!==u.avail_in||n!==f.Z_FINISH&&n!==f.Z_SYNC_FLUSH)||("string"===this.options.to?(a=l.utf8border(u.output,u.next_out),r=u.next_out-a,d=l.buf2string(u.output,a),u.next_out=r,u.avail_out=b-r,r&&o.arraySet(u.output,u.output,a,r,0),this.onData(d)):this.onData(o.shrinkBuf(u.output,u.next_out)))),0===u.avail_in&&0===u.avail_out&&(m=!0)}while((u.avail_in>0||0===u.avail_out)&&i!==f.Z_STREAM_END);return i===f.Z_STREAM_END&&(n=f.Z_FINISH),n===f.Z_FINISH?(i=s.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===f.Z_OK):n!==f.Z_SYNC_FLUSH||(this.onEnd(f.Z_OK),u.avail_out=0,!0)},n.prototype.onData=function(e){this.chunks.push(e)},n.prototype.onEnd=function(e){e===f.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},i.Inflate=n,i.inflate=a,i.inflateRaw=r,i.ungzip=a},"utils/common.js":function(e,t,i){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;i.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(var n in i)i.hasOwnProperty(n)&&(e[n]=i[n])}}return e},i.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var a={arraySet:function(e,t,i,n,a){if(t.subarray&&e.subarray)return void e.set(t.subarray(i,i+n),a);for(var r=0;r=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;o[254]=o[254]=1,i.string2buf=function(e){var t,i,n,r,s,o=e.length,l=0;for(r=0;r>>6,t[s++]=128|63&i):i<65536?(t[s++]=224|i>>>12,t[s++]=128|i>>>6&63,t[s++]=128|63&i):(t[s++]=240|i>>>18,t[s++]=128|i>>>12&63,t[s++]=128|i>>>6&63,t[s++]=128|63&i);return t},i.buf2binstring=function(e){return n(e,e.length)},i.binstring2buf=function(e){for(var t=new a.Buf8(e.length),i=0,n=t.length;i4)f[a++]=65533,i+=s-1;else{for(r&=2===s?31:3===s?15:7;s>1&&i1?f[a++]=65533:r<65536?f[a++]=r:(r-=65536,f[a++]=55296|r>>10&1023,f[a++]=56320|1023&r)}return n(f,a)},i.utf8border=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&128===(192&e[i]);)i--;return i<0?t:0===i?t:i+o[e[i]]>t?i:t}},"zlib/inflate.js":function(e,t,i){"use strict";function n(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function a(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new _.Buf16(320),this.work=new _.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function r(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=U,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new _.Buf32(we),t.distcode=t.distdyn=new _.Buf32(me),t.sane=1,t.back=-1,z):C}function s(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,r(e)):C}function o(e,t){var i,n;return e&&e.state?(n=e.state,t<0?(i=0,t=-t):(i=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15)?C:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,s(e))):C}function l(e,t){var i,n;return e?(n=new a,e.state=n,n.window=null,i=o(e,t),i!==z&&(e.state=null),i):C}function f(e){return l(e,_e)}function d(e){if(ge){var t;for(m=new _.Buf32(512),k=new _.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(x(S,e.lens,0,288,m,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;x(B,e.lens,0,32,k,0,e.work,{bits:5}),ge=!1}e.lencode=m,e.lenbits=9,e.distcode=k,e.distbits=5}function h(e,t,i,n){var a,r=e.state;return null===r.window&&(r.wsize=1<=r.wsize?(_.arraySet(r.window,t,i-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(a=r.wsize-r.wnext,a>n&&(a=n),_.arraySet(r.window,t,i-n,a,r.wnext),n-=a,n?(_.arraySet(r.window,t,i-n,n,0),r.wnext=n,r.whave=r.wsize):(r.wnext+=a,r.wnext===r.wsize&&(r.wnext=0),r.whave>>8&255,i.check=v(i.check,Ze,2,0),u=0,c=0,i.mode=j;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",i.mode=ue;break}if((15&u)!==F){e.msg="unknown compression method",i.mode=ue;break}if(u>>>=4,c-=4,xe=(15&u)+8,0===i.wbits)i.wbits=xe;else if(xe>i.wbits){e.msg="invalid window size",i.mode=ue;break}i.dmax=1<>8&1),512&i.flags&&(Ze[0]=255&u,Ze[1]=u>>>8&255,i.check=v(i.check,Ze,2,0)),u=0,c=0,i.mode=D;case D:for(;c<32;){if(0===l)break e;l--,u+=a[s++]<>>8&255,Ze[2]=u>>>16&255,Ze[3]=u>>>24&255,i.check=v(i.check,Ze,4,0)),u=0,c=0,i.mode=L;case L:for(;c<16;){if(0===l)break e;l--,u+=a[s++]<>8),512&i.flags&&(Ze[0]=255&u,Ze[1]=u>>>8&255,i.check=v(i.check,Ze,2,0)),u=0,c=0,i.mode=H;case H:if(1024&i.flags){for(;c<16;){if(0===l)break e;l--,u+=a[s++]<>>8&255,i.check=v(i.check,Ze,2,0)),u=0,c=0}else i.head&&(i.head.extra=null);i.mode=K;case K:if(1024&i.flags&&(m=i.length,m>l&&(m=l),m&&(i.head&&(xe=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),_.arraySet(i.head.extra,a,s,m,xe)),512&i.flags&&(i.check=v(i.check,a,m,s)),l-=m,s+=m,i.length-=m),i.length))break e;i.length=0,i.mode=M;case M:if(2048&i.flags){if(0===l)break e;m=0;do xe=a[s+m++],i.head&&xe&&i.length<65536&&(i.head.name+=String.fromCharCode(xe));while(xe&&m>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=q;break;case G:for(;c<32;){if(0===l)break e;l--,u+=a[s++]<>>=7&c,c-=7&c,i.mode=fe;break}for(;c<3;){if(0===l)break e;l--,u+=a[s++]<>>=1,c-=1,3&u){case 0:i.mode=J;break;case 1:if(d(i),i.mode=ie,t===A){u>>>=2,c-=2;break e}break;case 2:i.mode=$;break;case 3:e.msg="invalid block type",i.mode=ue}u>>>=2,c-=2;break;case J:for(u>>>=7&c,c-=7&c;c<32;){if(0===l)break e;l--,u+=a[s++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=ue;break}if(i.length=65535&u,u=0,c=0,i.mode=Q,t===A)break e;case Q:i.mode=V;case V:if(m=i.length){if(m>l&&(m=l),m>f&&(m=f),0===m)break e;_.arraySet(r,a,s,m,o),l-=m,s+=m,f-=m,o+=m,i.length-=m;break}i.mode=q;break;case $:for(;c<14;){if(0===l)break e;l--,u+=a[s++]<>>=5,c-=5,i.ndist=(31&u)+1,u>>>=5,c-=5,i.ncode=(15&u)+4,u>>>=4,c-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=ue;break}i.have=0,i.mode=ee;case ee:for(;i.have>>=3,c-=3}for(;i.have<19;)i.lens[Ae[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,Se={bits:i.lenbits},ye=x(y,i.lens,0,19,i.lencode,0,i.work,Se),i.lenbits=Se.bits,ye){e.msg="invalid code lengths set",i.mode=ue;break}i.have=0,i.mode=te;case te:for(;i.have>>24,ke=Ee>>>16&255,_e=65535&Ee,!(me<=c);){if(0===l)break e;l--,u+=a[s++]<>>=me,c-=me,i.lens[i.have++]=_e;else{if(16===_e){for(Be=me+2;c>>=me,c-=me,0===i.have){e.msg="invalid bit length repeat",i.mode=ue;break}xe=i.lens[i.have-1],m=3+(3&u),u>>>=2,c-=2}else if(17===_e){for(Be=me+3;c>>=me,c-=me,xe=0,m=3+(7&u),u>>>=3,c-=3}else{for(Be=me+7;c>>=me,c-=me,xe=0,m=11+(127&u),u>>>=7,c-=7}if(i.have+m>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=ue;break}for(;m--;)i.lens[i.have++]=xe}}if(i.mode===ue)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=ue;break}if(i.lenbits=9,Se={bits:i.lenbits},ye=x(S,i.lens,0,i.nlen,i.lencode,0,i.work,Se),i.lenbits=Se.bits,ye){e.msg="invalid literal/lengths set",i.mode=ue;break}if(i.distbits=6,i.distcode=i.distdyn,Se={bits:i.distbits},ye=x(B,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,Se),i.distbits=Se.bits,ye){e.msg="invalid distances set",i.mode=ue;break}if(i.mode=ie,t===A)break e;case ie:i.mode=ne;case ne:if(l>=6&&f>=258){e.next_out=o,e.avail_out=f,e.next_in=s,e.avail_in=l,i.hold=u,i.bits=c,p(e,w),o=e.next_out,r=e.output,f=e.avail_out,s=e.next_in,a=e.input,l=e.avail_in,u=i.hold,c=i.bits,i.mode===q&&(i.back=-1);break}for(i.back=0;Ee=i.lencode[u&(1<>>24,ke=Ee>>>16&255,_e=65535&Ee,!(me<=c);){if(0===l)break e;l--,u+=a[s++]<>ge)],me=Ee>>>24,ke=Ee>>>16&255,_e=65535&Ee,!(ge+me<=c);){if(0===l)break e;l--,u+=a[s++]<>>=ge,c-=ge,i.back+=ge}if(u>>>=me,c-=me,i.back+=me,i.length=_e,0===ke){i.mode=le;break}if(32&ke){i.back=-1,i.mode=q;break}if(64&ke){e.msg="invalid literal/length code",i.mode=ue;break}i.extra=15&ke,i.mode=ae;case ae:if(i.extra){for(Be=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=re;case re:for(;Ee=i.distcode[u&(1<>>24,ke=Ee>>>16&255,_e=65535&Ee,!(me<=c);){if(0===l)break e;l--,u+=a[s++]<>ge)],me=Ee>>>24,ke=Ee>>>16&255,_e=65535&Ee,!(ge+me<=c);){if(0===l)break e;l--,u+=a[s++]<>>=ge,c-=ge,i.back+=ge}if(u>>>=me,c-=me,i.back+=me,64&ke){e.msg="invalid distance code",i.mode=ue;break}i.offset=_e,i.extra=15&ke,i.mode=se;case se:if(i.extra){for(Be=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=ue;break}i.mode=oe;case oe:if(0===f)break e;if(m=w-f,i.offset>m){if(m=i.offset-m,m>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=ue;break}m>i.wnext?(m-=i.wnext,k=i.wsize-m):k=i.wnext-m,m>i.length&&(m=i.length),we=i.window}else we=r,k=o-i.offset,m=i.length;m>f&&(m=f),f-=m,i.length-=m;do r[o++]=we[k++];while(--m);0===i.length&&(i.mode=ne);break;case le:if(0===f)break e;r[o++]=i.length,f--,i.mode=ne;break;case fe:if(i.wrap){for(;c<32;){if(0===l)break e;l--,u|=a[s++]<>>16&65535|0,s=0;0!==i;){s=i>2e3?2e3:i,i-=s;do a=a+t[n++]|0,r=r+a|0;while(--s);a%=65521,r%=65521}return a|r<<16|0}t.exports=n},"zlib/crc32.js":function(e,t,i){"use strict";function n(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t}function a(e,t,i,n){var a=r,s=n+i;e^=-1;for(var o=n;o>>8^a[255&(e^t[o])];return e^-1}var r=n();t.exports=a},"zlib/inffast.js":function(e,t,i){"use strict";var n=30,a=12;t.exports=function(e,t){var i,r,s,o,l,f,d,h,u,c,b,w,m,k,_,g,v,p,x,y,S,B,E,Z,A;i=e.state,r=e.next_in,Z=e.input,s=r+(e.avail_in-5),o=e.next_out,A=e.output,l=o-(t-e.avail_out),f=o+(e.avail_out-257),d=i.dmax,h=i.wsize,u=i.whave,c=i.wnext,b=i.window,w=i.hold,m=i.bits,k=i.lencode,_=i.distcode,g=(1<>>24,w>>>=x,m-=x,x=p>>>16&255,0===x)A[o++]=65535&p;else{if(!(16&x)){if(0===(64&x)){p=k[(65535&p)+(w&(1<>>=x,m-=x),m<15&&(w+=Z[r++]<>>24,w>>>=x,m-=x,x=p>>>16&255,!(16&x)){if(0===(64&x)){p=_[(65535&p)+(w&(1<d){e.msg="invalid distance too far back",i.mode=n;break e}if(w>>>=x,m-=x,x=o-l,S>x){if(x=S-x,x>u&&i.sane){e.msg="invalid distance too far back",i.mode=n;break e}if(B=0,E=b,0===c){if(B+=h-x,x2;)A[o++]=E[B++],A[o++]=E[B++],A[o++]=E[B++],y-=3;y&&(A[o++]=E[B++],y>1&&(A[o++]=E[B++]))}else{B=o-S;do A[o++]=A[B++],A[o++]=A[B++],A[o++]=A[B++],y-=3;while(y>2);y&&(A[o++]=A[B++],y>1&&(A[o++]=A[B++]))}break}}break}}while(r>3,r-=y,m-=y<<3,w&=(1<=1&&0===H[C];C--);if(O>C&&(O=C),0===C)return w[m++]=20971520,w[m++]=20971520,_.bits=1,0;for(N=1;N0&&(e===o||1!==C))return-1;for(K[1]=0,z=1;zr||e===f&&U>s)return 1;for(;;){B=z-T,k[R]S?(E=M[P+k[R]],Z=D[L+k[R]]):(E=96,Z=0),g=1<>T)+v]=B<<24|E<<16|Z|0;while(0!==v);for(g=1<>=1;if(0!==g?(j&=g-1,j+=g):j=0,R++,0===--H[z]){if(z===C)break;z=t[i+k[R]]}if(z>O&&(j&x)!==p){for(0===T&&(T=O),y+=N,I=z-T,F=1<r||e===f&&U>s)return 1;p=j&x,w[p]=O<<24|I<<16|y-m|0}}return 0!==j&&(w[y+j]=z-T<<24|64<<16|0),_.bits=O,0}}};for(var i in t)t[i].folder=i.substring(0,i.lastIndexOf("/")+1);var n=function(e){var i=[];return e=e.split("/").every(function(e){return".."==e?i.pop():"."==e||""==e||i.push(e)})?i.join("/"):null,e?t[e]||t[e+".js"]||t[e+"/index.js"]:null},a=function(e,t){return e?n(e.folder+"node_modules/"+t)||a(e.parent,t):null},r=function(e,t){var i=t.match(/^\//)?null:e?t.match(/^\.\.?\//)?n(e.folder+t):a(e,t):n(t);if(!i)throw"module not found: "+t;return i.exports||(i.parent=e,i(r.bind(null,i),i,i.exports={})),i.exports};return r(null,e)}, - decompress: function (data) { - if (!this.exports) - this.exports = this.require("inflate.js"); - try { return this.exports.inflate(data) } catch (e) {}; - - }, - hasUnityMarker: function (data) { - var commentOffset = 10, expectedComment = "UnityWeb Compressed Content (gzip)"; - if (commentOffset > data.length || data[0] != 0x1F || data[1] != 0x8B) - return false; - var flags = data[3]; - if (flags & 0x04) { - if (commentOffset + 2 > data.length) - return false; - commentOffset += 2 + data[commentOffset] + (data[commentOffset + 1] << 8); - if (commentOffset > data.length) - return false; - } - if (flags & 0x08) { - while (commentOffset < data.length && data[commentOffset]) - commentOffset++; - if (commentOffset + 1 > data.length) - return false; - commentOffset++; - } - return (flags & 0x10) && String.fromCharCode.apply(null, data.subarray(commentOffset, commentOffset + expectedComment.length + 1)) == expectedComment + "\0"; - - }, - }, - brotli: { - require: function require(e){var n={"decompress.js":function(e,n,t){n.exports=e("./dec/decode").BrotliDecompressBuffer},"dec/bit_reader.js":function(e,n,t){function r(e){this.buf_=new Uint8Array(o),this.input_=e,this.reset()}const i=4096,o=8224,s=8191,a=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);r.READ_SIZE=i,r.IBUF_MASK=s,r.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var e=0;e<4;e++)this.val_|=this.buf_[this.pos_]<<8*e,++this.pos_;return this.bit_end_pos_>0},r.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var e=this.buf_ptr_,n=this.input_.read(this.buf_,e,i);if(n<0)throw new Error("Unexpected end of input");if(n=8;)this.val_>>>=8,this.val_|=this.buf_[this.pos_&s]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},r.prototype.readBits=function(e){32-this.bit_pos_>>this.bit_pos_&a[e];return this.bit_pos_+=e,n},n.exports=r},"dec/context.js":function(e,n,t){t.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,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,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,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,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,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,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,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,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,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,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,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]),t.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512])},"dec/decode.js":function(e,n,t){function r(e){var n;return 0===e.readBits(1)?16:(n=e.readBits(3),n>0?17+n:(n=e.readBits(3),n>0?8+n:17))}function i(e){if(e.readBits(1)){var n=e.readBits(3);return 0===n?1:e.readBits(n)+(1<1&&0===s)throw new Error("Invalid size byte");i.meta_block_length|=s<<8*r}}else for(r=0;r4&&0===a)throw new Error("Invalid size nibble");i.meta_block_length|=a<<4*r}return++i.meta_block_length,i.input_end||i.is_metadata||(i.is_uncompressed=e.readBits(1)),i}function a(e,n,t){var r;return t.fillBitWindow(),n+=t.val_>>>t.bit_pos_&K,r=e[n].bits-k,r>0&&(t.bit_pos_+=k,n+=e[n].value,n+=t.val_>>>t.bit_pos_&(1<0;){var u,p=0;if(r.readMoreInput(),r.fillBitWindow(),p+=r.val_>>>r.bit_pos_&31,r.bit_pos_+=w[p].bits,u=255&w[p].value,u>u);else{var c,h,l=u-14,b=0;if(u===M&&(b=o),a!==b&&(s=0,a=b),c=s,s>0&&(s-=2,s<<=l),s+=r.readBits(l)+3,h=s-c,i+h>n)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var v=0;v0;++a){var v,m=L[a],y=0;r.fillBitWindow(),y+=r.val_>>>r.bit_pos_&15,r.bit_pos_+=b[y].bits,v=b[y].value,c[m]=v,0!==v&&(h-=32>>v,++l)}if(1!==l&&0!==h)throw new Error("[ReadHuffmanCode] invalid num_codes or space");f(c,e,s,r)}if(o=q(n,t,k,s,e),0===o)throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");return o}function d(e,n,t){var r,i;return r=a(e,n,t),i=B.kBlockLengthPrefixCode[r].nbits,B.kBlockLengthPrefixCode[r].offset+t.readBits(i)}function u(e,n,t){var r;return e>>5]),this.htrees=new Uint32Array(n)}function l(e,n){var t,r,o,s={num_htrees:null,context_map:null},f=0;n.readMoreInput();var d=s.num_htrees=i(n)+1,u=s.context_map=new Uint8Array(e);if(d<=1)return s;for(t=n.readBits(1),t&&(f=n.readBits(4)+1),r=[],o=0;o=e)throw new Error("[DecodeContextMap] i >= context_map_size");u[o]=0,++o}else u[o]=p-f,++o}return n.readBits(1)&&c(u,e),s}function b(e,n,t,r,i,o,s){var f,w=2*t,d=t,u=a(n,t*X,s);f=0===u?i[w+(1&o[d])]:1===u?i[w+(o[d]-1&1)]+1:u-2,f>=e&&(f-=e),r[t]=f,i[w+(1&o[d])]=f,++o[d]}function v(e,n,t,r,i,o){var s,a=i+1,f=t&i,w=o.pos_&V.IBUF_MASK;if(n<8||o.bit_pos_+(n<<3)0;)o.readMoreInput(),r[f++]=o.readBits(8),f===a&&(e.write(r,a),f=0);else{if(o.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;o.bit_pos_<32;)r[f]=o.val_>>>o.bit_pos_,o.bit_pos_+=8,++f,--n;if(s=o.bit_end_pos_-o.bit_pos_>>3,w+s>V.IBUF_MASK){for(var d=V.IBUF_MASK+1-w,u=0;u=a){e.write(r,a),f-=a;for(var u=0;u=a;){if(s=a-f,o.input_.read(r,f,s)n.buffer.length){var We=new Uint8Array(E+te);We.set(n.buffer),n.buffer=We}if(q=ye.input_end,D=ye.is_uncompressed,ye.is_metadata)for(m(U);te>0;--te)U.readMoreInput(),U.readBits(8);else if(0!==te)if(D)U.bit_pos_=U.bit_pos_+7&-8,v(n,te,E,c,p,U),E+=te;else{for(t=0;t<3;++t)oe[t]=i(U)+1,oe[t]>=2&&(w(oe[t]+2,W,t*X,U),w(F,x,t*X,U),re[t]=d(x,t*X,U),ae[t]=1);for(U.readMoreInput(),j=U.readBits(2),Q=J+(U.readBits(4)<0;){var Ee,Ve,Oe,Ne,qe,Ye,Be,Re,He,Me,Ae;for(U.readMoreInput(),0===re[1]&&(b(oe[1],W,1,ie,se,ae,U),re[1]=d(x,X,U),ne=T[1].htrees[ie[1]]),--re[1],Ee=a(T[1].codes,ne,U),Ve=Ee>>6,Ve>=2?(Ve-=2,Be=-1):Be=0,Oe=B.kInsertRangeLut[Ve]+(Ee>>3&7),Ne=B.kCopyRangeLut[Ve]+(7&Ee),qe=B.kInsertLengthPrefixCode[Oe].offset+U.readBits(B.kInsertLengthPrefixCode[Oe].nbits),Ye=B.kCopyLengthPrefixCode[Ne].offset+U.readBits(B.kCopyLengthPrefixCode[Ne].nbits),G=c[E-1&p],L=c[E-2&p],Me=0;Me4?3:Ye-2),be=de[le+He],Be=a(T[2].codes,T[2].htrees[be],U),Be>=Q){var ge,Fe,Ze;Be-=Q,Fe=Be&C,Be>>=j,ge=(Be>>1)+1,Ze=(2+(1&Be)<M){if(!(Ye>=O.minDictionaryWordLength&&Ye<=O.maxDictionaryWordLength))throw new Error("Invalid backward reference. pos: "+E+" distance: "+Re+" len: "+Ye+" bytes left: "+te);var Ze=O.offsetsByLength[Ye],Pe=Re-M-1,ke=O.sizeBitsByLength[Ye],Ke=(1<>ke;if(Ze+=Xe*Ye,!(Ge=y){n.write(c,f);for(var Je=0;Je0&&(k[3&K]=Re,++K),Ye>te)throw new Error("Invalid backward reference. pos: "+E+" distance: "+Re+" len: "+Ye+" bytes left: "+te);for(Me=0;Me>=1;return(e&t-1)+t}function o(e,n,t,i,o){do i-=t,e[n+i]=new r(o.bits,o.value);while(i>0)}function s(e,n,t){for(var r=1<0;--U[u])d=new r(255&u,65535&W[p++]),o(e,n+c,h,m,d),c=i(c,u);for(b=y-1,l=-1,u=t+1,h=2;u<=a;++u,h<<=1)for(;U[u]>0;--U[u])(c&b)!==l&&(n+=m,v=s(U,u,t),m=1<>t),h,m,d),c=i(c,u);return y}},"dec/prefix.js":function(e,n,t){function r(e,n){this.offset=e,this.nbits=n}t.kBlockLengthPrefixCode=[new r(1,2),new r(5,2),new r(9,2),new r(13,2),new r(17,3),new r(25,3),new r(33,3),new r(41,3),new r(49,4),new r(65,4),new r(81,4),new r(97,4),new r(113,5),new r(145,5),new r(177,5),new r(209,5),new r(241,6),new r(305,6),new r(369,7),new r(497,8),new r(753,9),new r(1265,10),new r(2289,11),new r(4337,12),new r(8433,13),new r(16625,24)],t.kInsertLengthPrefixCode=[new r(0,0),new r(1,0),new r(2,0),new r(3,0),new r(4,0),new r(5,0),new r(6,1),new r(8,1),new r(10,2),new r(14,2),new r(18,3),new r(26,3),new r(34,4),new r(50,4),new r(66,5),new r(98,5),new r(130,6),new r(194,7),new r(322,8),new r(578,9),new r(1090,10),new r(2114,12),new r(6210,14),new r(22594,24)],t.kCopyLengthPrefixCode=[new r(2,0),new r(3,0),new r(4,0),new r(5,0),new r(6,0),new r(7,0),new r(8,0),new r(9,0),new r(10,1),new r(12,1),new r(14,2),new r(18,2),new r(22,3),new r(30,3),new r(38,4),new r(54,4),new r(70,5),new r(102,5),new r(134,6),new r(198,7),new r(326,8),new r(582,9),new r(1094,10),new r(2118,24)],t.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],t.kCopyRangeLut=[0,8,0,8,16,0,16,8,16]},"dec/streams.js":function(e,n,t){function r(e){this.buffer=e,this.pos=0}function i(e){this.buffer=e,this.pos=0}r.prototype.read=function(e,n,t){this.pos+t>this.buffer.length&&(t=this.buffer.length-this.pos);for(var r=0;rthis.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(e.subarray(0,n),this.pos),this.pos+=n,n},t.BrotliOutput=i},"dec/transform.js":function(e,n,t){function r(e,n,t){this.prefix=new Uint8Array(e.length),this.transform=n,this.suffix=new Uint8Array(t.length);for(var r=0;r=97&&e[n]<=122&&(e[n]^=32),1):e[n]<224?(e[n+1]^=32,2):(e[n+2]^=5,3)}var o=e("./dictionary");const s=0,a=1,f=2,w=3,d=4,u=5,p=6,c=7,h=8,l=9,b=10,v=11,m=12,y=13,W=14,x=15,U=16,E=17,V=18,O=20;var N=[new r("",s,""),new r("",s," "),new r(" ",s," "),new r("",m,""),new r("",b," "),new r("",s," the "),new r(" ",s,""),new r("s ",s," "),new r("",s," of "),new r("",b,""),new r("",s," and "),new r("",y,""),new r("",a,""),new r(", ",s," "),new r("",s,", "),new r(" ",b," "),new r("",s," in "),new r("",s," to "),new r("e ",s," "),new r("",s,'"'),new r("",s,"."),new r("",s,'">'),new r("",s,"\n"),new r("",w,""),new r("",s,"]"),new r("",s," for "),new r("",W,""),new r("",f,""),new r("",s," a "),new r("",s," that "),new r(" ",b,""),new r("",s,". "),new r(".",s,""),new r(" ",s,", "),new r("",x,""),new r("",s," with "),new r("",s,"'"),new r("",s," from "),new r("",s," by "),new r("",U,""),new r("",E,""),new r(" the ",s,""),new r("",d,""),new r("",s,". The "),new r("",v,""),new r("",s," on "),new r("",s," as "),new r("",s," is "),new r("",c,""),new r("",a,"ing "),new r("",s,"\n\t"),new r("",s,":"),new r(" ",s,". "),new r("",s,"ed "),new r("",O,""),new r("",V,""),new r("",p,""),new r("",s,"("),new r("",b,", "),new r("",h,""),new r("",s," at "),new r("",s,"ly "),new r(" the ",s," of "),new r("",u,""),new r("",l,""),new r(" ",b,", "),new r("",b,'"'),new r(".",s,"("),new r("",v," "),new r("",b,'">'),new r("",s,'="'),new r(" ",s,"."),new r(".com/",s,""),new r(" the ",s," of the "),new r("",b,"'"),new r("",s,". This "),new r("",s,","),new r(".",s," "),new r("",b,"("),new r("",b,"."),new r("",s," not "),new r(" ",s,'="'),new r("",s,"er "),new r(" ",v," "),new r("",s,"al "),new r(" ",v,""),new r("",s,"='"),new r("",v,'"'),new r("",b,". "),new r(" ",s,"("),new r("",s,"ful "),new r(" ",b,". "),new r("",s,"ive "),new r("",s,"less "),new r("",v,"'"),new r("",s,"est "),new r(" ",b,"."),new r("",v,'">'),new r(" ",s,"='"),new r("",b,","),new r("",s,"ize "),new r("",v,"."),new r("\xc2\xa0",s,""),new r(" ",s,","),new r("",b,'="'),new r("",v,'="'),new r("",s,"ous "),new r("",v,", "),new r("",b,"='"),new r(" ",b,","),new r(" ",v,'="'),new r(" ",v,", "),new r("",v,","),new r("",v,"("),new r("",v,". "),new r(" ",v,"."),new r("",v,"='"),new r(" ",v,". "),new r(" ",b,'="'),new r(" ",v,"='"),new r(" ",b,"='")];t.kTransforms=N,t.kNumTransforms=N.length,t.transformDictionaryWord=function(e,n,t,r,s){var a,f=N[s].prefix,w=N[s].suffix,d=N[s].transform,u=dr&&(u=r);for(var h=0;h0;){var y=i(e,a);a+=y,r-=y}for(var W=0;W0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[n-2]?2:"="===e[n-1]?1:0}function i(e){return 3*e.length/4-r(e)}function o(e){var n,t,i,o,s,a,f=e.length;s=r(e),a=new u(3*f/4-s),i=s>0?f-4:f;var w=0;for(n=0,t=0;n>16&255,a[w++]=o>>8&255,a[w++]=255&o;return 2===s?(o=d[e.charCodeAt(n)]<<2|d[e.charCodeAt(n+1)]>>4,a[w++]=255&o):1===s&&(o=d[e.charCodeAt(n)]<<10|d[e.charCodeAt(n+1)]<<4|d[e.charCodeAt(n+2)]>>2,a[w++]=o>>8&255,a[w++]=255&o),a}function s(e){return w[e>>18&63]+w[e>>12&63]+w[e>>6&63]+w[63&e]}function a(e,n,t){for(var r,i=[],o=n;od?d:f+s));return 1===r?(n=e[t-1],i+=w[n>>2],i+=w[n<<4&63],i+="=="):2===r&&(n=(e[t-2]<<8)+e[t-1],i+=w[n>>10],i+=w[n>>4&63],i+=w[n<<2&63],i+="="),o.push(i),o.join("")}t.byteLength=i,t.toByteArray=o,t.fromByteArray=f;for(var w=[],d=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,h=p.length;c> 3); - commentOffset = (WBITS_length + 1 + 2 + 1 + 2 + (MSKIPBYTES << 3) + 7) >> 3; - if (WBITS == 0x11 || commentOffset > data.length) - return false; - var expectedCommentPrefix = WBITS + (((3 << 1) + (MSKIPBYTES << 4) + ((expectedComment.length - 1) << 6)) << WBITS_length); - for (var i = 0; i < commentOffset; i++, expectedCommentPrefix >>>= 8) { - if (data[i] != (expectedCommentPrefix & 0xFF)) - return false; - } - return String.fromCharCode.apply(null, data.subarray(commentOffset, commentOffset + expectedComment.length)) == expectedComment; - - }, - }, - decompress: function (compressed, callback) { - var decompressor = this.gzip.hasUnityMarker(compressed) ? this.gzip : this.brotli.hasUnityMarker(compressed) ? this.brotli : this.identity; - if (this.serverSetupWarningEnabled && decompressor != this.identity) { - console.log("You can reduce your startup time if you configure your web server to host .unityweb files using " + (decompressor == this.gzip ? "gzip" : "brotli") + " compression."); - this.serverSetupWarningEnabled = false; - } - if (typeof callback != "function") - return decompressor.decompress(compressed); - if (!decompressor.worker) { - var workerUrl = URL.createObjectURL(new Blob(["this.require = ", decompressor.require.toString(), "; this.decompress = ", decompressor.decompress.toString(), "; this.onmessage = ", function (e) { - var data = { id: e.data.id, decompressed: this.decompress(e.data.compressed) }; - postMessage(data, data.decompressed ? [data.decompressed.buffer] : []); - }.toString(), "; postMessage({ ready: true });"], { type: "text/javascript" })); - decompressor.worker = new Worker(workerUrl); - decompressor.worker.onmessage = function (e) { - if (e.data.ready) { - URL.revokeObjectURL(workerUrl); - return; - } - this.callbacks[e.data.id](e.data.decompressed); - delete this.callbacks[e.data.id]; - }; - decompressor.worker.callbacks = {}; - decompressor.worker.nextCallbackId = 0; - } - var id = decompressor.worker.nextCallbackId++; - decompressor.worker.callbacks[id] = callback; - decompressor.worker.postMessage({id: id, compressed: compressed}, [compressed.buffer]); - }, - serverSetupWarningEnabled: true, - }, - Cryptography: { - crc32: function (code) { - var module = UnityLoader.Cryptography.crc32.module; - if (!module) { - var buffer = new ArrayBuffer(0x1000000); - var asm = (function (global, env, buffer) { - "use asm" - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - function process(data, length) { - data = data | 0; - length = length | 0; - var crc = 0; - for (crc = HEAPU32[0x400 >> 2] | 0; length; data = (data + 1) | 0, length = (length - 1) | 0) - crc = HEAPU32[(((crc & 0xFF) ^ HEAPU8[data]) << 2) >> 2] ^ (crc >>> 8) ^ 0xFF000000; - HEAPU32[0x400 >> 2] = crc; - } - return {process: process}; - })({Uint8Array: Uint8Array, Uint32Array: Uint32Array}, null, buffer); - - module = UnityLoader.Cryptography.crc32.module = { - buffer: buffer, - HEAPU8: new Uint8Array(buffer), - HEAPU32: new Uint32Array(buffer), - process: asm.process, - crc32: 0x400, - data: 0x404, - }; - for (var i = 0; i < 0x100; i++) { - var a = i ^ 0xFF; - for (var j = 0; j < 8; j++) - a = (a >>> 1) ^ ((a & 1) ? 0xEDB88320 : 0); - module.HEAPU32[i] = a; - } - } - - module.HEAPU32[module.crc32 >> 2] = 0; - for (var offset = 0; offset < code.length;) { - var length = Math.min(module.HEAPU8.length - module.data, code.length - offset); - module.HEAPU8.set(code.subarray(offset, offset + length), module.data); - crc = module.process(module.data, length); - offset += length; - } - var crc32 = module.HEAPU32[module.crc32 >> 2]; - return new Uint8Array([crc32 >> 24, crc32 >> 16, crc32 >> 8, crc32]); - - }, - md5: function (code) { - var module = UnityLoader.Cryptography.md5.module; - if (!module) { - var buffer = new ArrayBuffer(0x1000000); - var asm = (function (global, env, buffer) { - "use asm" - var HEAPU32 = new global.Uint32Array(buffer); - function process(data, blockCount) { - data = data | 0; - blockCount = blockCount | 0; - var h0 = 0, h1 = 0, h2 = 0, h3 = 0, d0 = 0, d1 = 0, d2 = 0, d3 = 0, d4 = 0, i = 0, t = 0, s = 0; - h0 = HEAPU32[0x80] | 0, h1 = HEAPU32[0x81] | 0, h2 = HEAPU32[0x82] | 0, h3 = HEAPU32[0x83] | 0; - for (; blockCount; data = (data + 64) | 0, blockCount = (blockCount - 1) | 0) { - d0 = h0; d1 = h1; d2 = h2; d3 = h3; - for (i = 0; (i | 0) < 512; i = (i + 8) | 0) { - s = (HEAPU32[i >> 2] | 0); - h0 = (h0 + (HEAPU32[(i + 4) >> 2] | 0) + (HEAPU32[(data + (s >>> 14)) >> 2] | 0) + ( - (i | 0) < 128 ? h3 ^ (h1 & (h2 ^ h3)) : - (i | 0) < 256 ? h2 ^ (h3 & (h1 ^ h2)) : - (i | 0) < 384 ? h1 ^ h2 ^ h3: - (h2 ^ (h1 | ~h3)) - )) | 0; - t = (((h0 << (s & 31)) | (h0 >>> (32 - (s & 31)))) + h1) | 0; h0 = h3; h3 = h2; h2 = h1; h1 = t; - } - h0 = (h0 + d0) | 0; h1 = (h1 + d1) | 0; h2 = (h2 + d2) | 0; h3 = (h3 + d3) | 0; - } - HEAPU32[0x80] = h0; HEAPU32[0x81] = h1; HEAPU32[0x82] = h2; HEAPU32[0x83] = h3; - } - return {process: process}; - })({Uint32Array:Uint32Array}, null, buffer); - - module = UnityLoader.Cryptography.md5.module = { - buffer: buffer, - HEAPU8: new Uint8Array(buffer), - HEAPU32: new Uint32Array(buffer), - process: asm.process, - md5: 0x200, - data: 0x240, - }; - - module.HEAPU32.set(new Uint32Array([ - 0x00000007, 0xD76AA478, 0x0001000C, 0xE8C7B756, 0x00020011, 0x242070DB, 0x00030016, 0xC1BDCEEE, - 0x00040007, 0xF57C0FAF, 0x0005000C, 0x4787C62A, 0x00060011, 0xA8304613, 0x00070016, 0xFD469501, - 0x00080007, 0x698098D8, 0x0009000C, 0x8B44F7AF, 0x000A0011, 0xFFFF5BB1, 0x000B0016, 0x895CD7BE, - 0x000C0007, 0x6B901122, 0x000D000C, 0xFD987193, 0x000E0011, 0xA679438E, 0x000F0016, 0x49B40821, - 0x00010005, 0xF61E2562, 0x00060009, 0xC040B340, 0x000B000E, 0x265E5A51, 0x00000014, 0xE9B6C7AA, - 0x00050005, 0xD62F105D, 0x000A0009, 0x02441453, 0x000F000E, 0xD8A1E681, 0x00040014, 0xE7D3FBC8, - 0x00090005, 0x21E1CDE6, 0x000E0009, 0xC33707D6, 0x0003000E, 0xF4D50D87, 0x00080014, 0x455A14ED, - 0x000D0005, 0xA9E3E905, 0x00020009, 0xFCEFA3F8, 0x0007000E, 0x676F02D9, 0x000C0014, 0x8D2A4C8A, - 0x00050004, 0xFFFA3942, 0x0008000B, 0x8771F681, 0x000B0010, 0x6D9D6122, 0x000E0017, 0xFDE5380C, - 0x00010004, 0xA4BEEA44, 0x0004000B, 0x4BDECFA9, 0x00070010, 0xF6BB4B60, 0x000A0017, 0xBEBFBC70, - 0x000D0004, 0x289B7EC6, 0x0000000B, 0xEAA127FA, 0x00030010, 0xD4EF3085, 0x00060017, 0x04881D05, - 0x00090004, 0xD9D4D039, 0x000C000B, 0xE6DB99E5, 0x000F0010, 0x1FA27CF8, 0x00020017, 0xC4AC5665, - 0x00000006, 0xF4292244, 0x0007000A, 0x432AFF97, 0x000E000F, 0xAB9423A7, 0x00050015, 0xFC93A039, - 0x000C0006, 0x655B59C3, 0x0003000A, 0x8F0CCC92, 0x000A000F, 0xFFEFF47D, 0x00010015, 0x85845DD1, - 0x00080006, 0x6FA87E4F, 0x000F000A, 0xFE2CE6E0, 0x0006000F, 0xA3014314, 0x000D0015, 0x4E0811A1, - 0x00040006, 0xF7537E82, 0x000B000A, 0xBD3AF235, 0x0002000F, 0x2AD7D2BB, 0x00090015, 0xEB86D391, - ])); - } - - module.HEAPU32.set(new Uint32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476]), module.md5 >> 2); - for (var offset = 0; offset < code.length;) { - var length = Math.min(module.HEAPU8.length - module.data, code.length - offset) & ~63; - module.HEAPU8.set(code.subarray(offset, offset + length), module.data); - offset += length; - module.process(module.data, length >> 6); - if (code.length - offset < 64) { - length = code.length - offset; - module.HEAPU8.set(code.subarray(code.length - length, code.length), module.data); - offset += length; - module.HEAPU8[module.data + length++] = 0x80; - if (length > 56) { - for (var i = length; i < 64; i++) - module.HEAPU8[module.data + i] = 0; - module.process(module.data, 1); - length = 0; - } - for (var i = length; i < 64; i++) - module.HEAPU8[module.data + i] = 0; - for (var value = code.length, add = 0, i = 56; i < 64; i++, add = (value & 0xE0) >> 5, value /= 0x100) - module.HEAPU8[module.data + i] = ((value & 0x1F) << 3) + add; - module.process(module.data, 1); - } - } - return new Uint8Array(module.HEAPU8.subarray(module.md5, module.md5 + 16)); - - }, - sha1: function (code) { - var module = UnityLoader.Cryptography.sha1.module; - if (!module) { - var buffer = new ArrayBuffer(0x1000000); - var asm = (function (global, env, buffer) { - "use asm" - var HEAPU32 = new global.Uint32Array(buffer); - function process(data, blockCount) { - data = data | 0; - blockCount = blockCount | 0; - var h0 = 0, h1 = 0, h2 = 0, h3 = 0, h4 = 0, d0 = 0, d1 = 0, d2 = 0, d3 = 0, d4 = 0, t = 0, i = 0; - h0 = HEAPU32[80] | 0, h1 = HEAPU32[81] | 0, h2 = HEAPU32[82] | 0, h3 = HEAPU32[83] | 0, h4 = HEAPU32[84] | 0; - for (; blockCount; data = (data + 64) | 0, blockCount = (blockCount - 1) | 0) { - d0 = h0; d1 = h1; d2 = h2; d3 = h3; d4 = h4; - for (i = 0; (i | 0) < 320; i = (i + 4) | 0, h4 = h3, h3 = h2, h2 = (h1 << 30) | (h1 >>> 2), h1 = h0, h0 = t) { - if ((i | 0) < 64) { - t = (HEAPU32[(data + i) >> 2] | 0); - t = ((t << 24) & 0xFF000000) | ((t << 8) & 0xFF0000) | ((t >>> 8) & 0xFF00) | ((t >>> 24) & 0xFF); - } else { - t = HEAPU32[(i - 12) >> 2] ^ HEAPU32[(i - 32) >> 2] ^ HEAPU32[(i - 56) >> 2] ^ HEAPU32[(i - 64) >> 2]; - t = (t << 1) | (t >>> 31); - } - HEAPU32[i >> 2] = t; - t = (t + (((h0 << 5) | (h0 >>> 27)) + h4) + ( - (i | 0) < 80 ? ((((h1 & h2) | (~h1 & h3)) | 0) + 0x5A827999) | 0 : - (i | 0) < 160 ? ((h1 ^ h2 ^ h3) + 0x6ED9EBA1) | 0 : - (i | 0) < 240 ? (((h1 & h2) | (h1 & h3) | (h2 & h3)) + 0x8F1BBCDC) | 0 : - ((h1 ^ h2 ^ h3) + 0xCA62C1D6) | 0 - )) | 0; - } - h0 = (h0 + d0) | 0; h1 = (h1 + d1) | 0; h2 = (h2 + d2) | 0; h3 = (h3 + d3) | 0; h4 = (h4 + d4) | 0; - } - HEAPU32[80] = h0; HEAPU32[81] = h1; HEAPU32[82] = h2; HEAPU32[83] = h3; HEAPU32[84] = h4; - } - return {process: process}; - })({Uint32Array:Uint32Array}, null, buffer); - - module = UnityLoader.Cryptography.sha1.module = { - buffer: buffer, - HEAPU8: new Uint8Array(buffer), - HEAPU32: new Uint32Array(buffer), - process: asm.process, - sha1: 0x140, - data: 0x180, - }; - } - - module.HEAPU32.set(new Uint32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]), module.sha1 >> 2); - for (var offset = 0; offset < code.length;) { - var length = Math.min(module.HEAPU8.length - module.data, code.length - offset) & ~63; - module.HEAPU8.set(code.subarray(offset, offset + length), module.data); - offset += length; - module.process(module.data, length >> 6); - if (code.length - offset < 64) { - length = code.length - offset; - module.HEAPU8.set(code.subarray(code.length - length, code.length), module.data); - offset += length; - module.HEAPU8[module.data + length++] = 0x80; - if (length > 56) { - for (var i = length; i < 64; i++) - module.HEAPU8[module.data + i] = 0; - module.process(module.data, 1); - length = 0; - } - for (var i = length; i < 64; i++) - module.HEAPU8[module.data + i] = 0; - for (var value = code.length, add = 0, i = 63; i >=56; i--, add = (value & 0xE0) >> 5, value /= 0x100) - module.HEAPU8[module.data + i] = ((value & 0x1F) << 3) + add; - module.process(module.data, 1); - } - } - var sha1 = new Uint8Array(20); - for (var i = 0; i < sha1.length; i++) - sha1[i] = module.HEAPU8[module.sha1 + (i & ~3) + 3 - (i & 3)]; - return sha1; - - }, - - }, - Error: { - // stacktrace example: - // - // [Chrome] - // Error - // at Array.eWg (blob:http%3A//localhost%3A8080/7dd54af3-48c5-47e1-893f-5f1ef09ab62b:10:238896) - // at Object.P7h [as dynCall_iiii] (blob:http%3A//localhost%3A8080/7dd54af3-48c5-47e1-893f-5f1ef09ab62b:28:33689) - // at invoke_iiii (blob:http%3A//localhost%3A8080/972f149f-a28e-4ee9-a1c7-45e8c4b0998b:1:334638) - // at DJd (blob:http%3A//localhost%3A8080/7dd54af3-48c5-47e1-893f-5f1ef09ab62b:15:260807) - // at Object.dynCall (blob:http%3A//localhost%3A8080/972f149f-a28e-4ee9-a1c7-45e8c4b0998b:1:7492) - // at browserIterationFunc (blob:http%3A//localhost%3A8080/972f149f-a28e-4ee9-a1c7-45e8c4b0998b:1:207518) - // at Object.runIter (blob:http%3A//localhost%3A8080/972f149f-a28e-4ee9-a1c7-45e8c4b0998b:1:189915) - // - // [Chrome WebAssembly] - // at ([24622]+70) - // at ([24000]+73) - // - // [Firefox] - // eWg@blob:http://localhost:8080/0e677969-e11c-e24b-bb23-4f3afdbd5a3a:10:1 - // P7h@blob:http://localhost:8080/0e677969-e11c-e24b-bb23-4f3afdbd5a3a:28:1 - // invoke_iiii@blob:http://localhost:8080/67513e21-4cf2-de4e-a571-c6ee67cc2a72:1:334616 - // DJd@blob:http://localhost:8080/0e677969-e11c-e24b-bb23-4f3afdbd5a3a:15:1 - // Runtime.dynCall@blob:http://localhost:8080/67513e21-4cf2-de4e-a571-c6ee67cc2a72:1:7469 - // _emscripten_set_main_loop/browserIterationFunc@blob:http://localhost:8080/67513e21-4cf2-de4e-a571-c6ee67cc2a72:1:207510 - // Browser.mainLoop.runIter@blob:http://localhost:8080/67513e21-4cf2-de4e-a571-c6ee67cc2a72:1:189915 - // - // [Firefox WebAssembly] - // wasm-function[24622]@blob:null/2e0a79af-37a7-ac43-9534-4ac66e23fea4:8059611:1 - // wasm-function[24000]@blob:null/2e0a79af-37a7-ac43-9534-4ac66e23fea4:7932153:1 - // - // [Safari] - // eWg@blob:http://localhost:8080/6efe7f5a-b930-45c3-9175-296366f9d9f4:10:238896 - // P7h@blob:http://localhost:8080/6efe7f5a-b930-45c3-9175-296366f9d9f4:28:33689 - // invoke_iiii@blob:http://localhost:8080/597cffca-fc52-4586-9da7-f9c8e591738b:1:334638 - // DJd@blob:http://localhost:8080/6efe7f5a-b930-45c3-9175-296366f9d9f4:15:260809 - // dynCall@blob:http://localhost:8080/597cffca-fc52-4586-9da7-f9c8e591738b:1:7496 - // browserIterationFunc@blob:http://localhost:8080/597cffca-fc52-4586-9da7-f9c8e591738b:1:207525 - // runIter@blob:http://localhost:8080/597cffca-fc52-4586-9da7-f9c8e591738b:1:189919 - - init: (function () { - Error.stackTraceLimit = 50; - window.addEventListener("error", function (e) { - var Module = UnityLoader.Error.getModule(e); - if (!Module) - return UnityLoader.Error.handler(e); - var debugSymbolsUrl = Module.useWasm ? Module.wasmSymbolsUrl : Module.asmSymbolsUrl; - if (!debugSymbolsUrl) - return UnityLoader.Error.handler(e, Module); - var xhr = new XMLHttpRequest(); - xhr.open("GET", Module.resolveBuildUrl(debugSymbolsUrl)); - xhr.responseType = "arraybuffer"; - xhr.onload = function () { - UnityLoader.loadCode(UnityLoader.Compression.decompress(new Uint8Array(xhr.response)), function (id) { - Module.demangleSymbol = UnityLoader[id](); - UnityLoader.Error.handler(e, Module); - }); - }; - xhr.send(); - }); - return true; - })(), - stackTraceFormat: navigator.userAgent.indexOf("Chrome") != -1 ? "(\\s+at\\s+)(([\\w\\d_\\.]*?)([\\w\\d_$]+)(/[\\w\\d_\\./]+|))(\\s+\\[.*\\]|)\\s*\\((blob:.*)\\)" : - "(\\s*)(([\\w\\d_\\.]*?)([\\w\\d_$]+)(/[\\w\\d_\\./]+|))(\\s+\\[.*\\]|)\\s*@(blob:.*)", - stackTraceFormatWasm: navigator.userAgent.indexOf("Chrome") != -1 ? "((\\s+at\\s*)\\s\\(\\[(\\d+)\\]\\+\\d+\\))()" : - "((\\s*)wasm-function\\[(\\d+)\\])@(blob:.*)", - blobParseRegExp: new RegExp("^(blob:.*)(:\\d+:\\d+)$"), - getModule: function (e) { - var traceMatch = e.message.match(new RegExp(this.stackTraceFormat, "g")); - for (var trace in traceMatch) { - var traceParse = traceMatch[trace].match(new RegExp("^" + this.stackTraceFormat + "$")); - var blobParse = traceParse[7].match(this.blobParseRegExp); - if (blobParse && UnityLoader.Blobs[blobParse[1]] && UnityLoader.Blobs[blobParse[1]].Module) - return UnityLoader.Blobs[blobParse[1]].Module; - } - }, - demangle: function (e, Module) { - var message = e.message; - if (!Module) - return message; - message = message.replace(new RegExp(this.stackTraceFormat, "g"), function (trace) { - var errParse = trace.match(new RegExp("^" + this.stackTraceFormat + "$")); - var blobParse = errParse[7].match(this.blobParseRegExp); - var functionName = Module.demangleSymbol ? Module.demangleSymbol(errParse[4]) : errParse[4]; - var url = blobParse && UnityLoader.Blobs[blobParse[1]] && UnityLoader.Blobs[blobParse[1]].url ? UnityLoader.Blobs[blobParse[1]].url : "blob"; - return errParse[1] + functionName + (errParse[2] != functionName ? " ["+ errParse[2] + "]" : "") + - " (" + (blobParse ? url.substr(url.lastIndexOf("/") + 1) + blobParse[2] : errParse[7]) + ")"; - }.bind(this)); - if (Module.useWasm) { - message = message.replace(new RegExp(this.stackTraceFormatWasm, "g"), function (trace) { - var errParse = trace.match(new RegExp("^" + this.stackTraceFormatWasm + "$")); - var functionName = Module.demangleSymbol ? Module.demangleSymbol(errParse[3]) : errParse[3]; - var blobParse = errParse[4].match(this.blobParseRegExp); - var url = blobParse && UnityLoader.Blobs[blobParse[1]] && UnityLoader.Blobs[blobParse[1]].url ? UnityLoader.Blobs[blobParse[1]].url : "blob"; - return (functionName == errParse[3] ? errParse[1] : errParse[2] + functionName + " [wasm:"+ errParse[3] + "]") + - (errParse[4] ? " (" + (blobParse ? url.substr(url.lastIndexOf("/") + 1) + blobParse[2] : errParse[4]) + ")" : ""); - }.bind(this)); - } - return message; - }, - handler: function (e, Module) { - var message = Module ? this.demangle(e, Module) : e.message; - if (Module && Module.errorhandler && Module.errorhandler(message, e.filename, e.lineno)) - return; - console.log("Invoking error handler due to\n" + message); - if (typeof dump == "function") - dump("Invoking error handler due to\n" + message); - // Firefox has a bug where it's IndexedDB implementation will throw UnknownErrors, which are harmless, and should not be shown. - if (message.indexOf("UnknownError") != -1) - return; - // Ignore error when application terminated with return code 0 - if (message.indexOf("Program terminated with exit(0)") != -1) - return; - if (this.didShowErrorMessage) - return; - var message = "An error occurred running the Unity content on this page. See your browser JavaScript console for more info. The error was:\n" + message; - if (message.indexOf("DISABLE_EXCEPTION_CATCHING") != -1) { - message = "An exception has occurred, but exception handling has been disabled in this build. If you are the developer of this content, enable exceptions in your project WebGL player settings to be able to catch the exception or see the stack trace."; - } else if (message.indexOf("Cannot enlarge memory arrays") != -1) { - message = "Out of memory. If you are the developer of this content, try allocating more memory to your WebGL build in the WebGL player settings."; - } else if (message.indexOf("Invalid array buffer length") != -1 || message.indexOf("Invalid typed array length") != -1 || message.indexOf("out of memory") != -1 || message.indexOf("could not allocate memory") != -1) { - message = "The browser could not allocate enough memory for the WebGL content. If you are the developer of this content, try allocating less memory to your WebGL build in the WebGL player settings."; - } - alert(message); - this.didShowErrorMessage = true; - - }, - popup: function (gameInstance, message, callbacks) { - callbacks = callbacks || [{text: "OK"}]; - var popup = document.createElement("div"); - popup.style.cssText = "position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); text-align: center; border: 1px solid black; padding: 5px; background: #E8E8E8"; - var messageElement = document.createElement("span"); - messageElement.textContent = message; - popup.appendChild(messageElement); - popup.appendChild(document.createElement("br")); - for (var i = 0; i < callbacks.length; i++) { - var button = document.createElement("button"); - if (callbacks[i].text) - button.textContent = callbacks[i].text; - if (callbacks[i].callback) - button.onclick = callbacks[i].callback; - button.style.margin = "5px"; - button.addEventListener("click", function () { gameInstance.container.removeChild(popup); }) - popup.appendChild(button); - } - gameInstance.container.appendChild(popup); - - }, - - }, - Job: { - schedule: function (Module, id, dependencies, callback, parameters) { - parameters = parameters || {}; - var job = Module.Jobs[id]; - if (!job) - job = Module.Jobs[id] = {dependencies: {}, dependants: {}}; - if (job.callback) - throw "[UnityLoader.Job.schedule] job '" + id + "' has been already scheduled"; - if (typeof callback != "function") - throw "[UnityLoader.Job.schedule] job '" + id + "' has invalid callback"; - if (typeof parameters != "object") - throw "[UnityLoader.Job.schedule] job '" + id + "' has invalid parameters"; - job.callback = function (x,y) { job.starttime = performance.now(); callback(x,y) }; - job.parameters = parameters; - job.complete = function (result) { - job.endtime = performance.now(); - job.result = {value: result}; - for (var dependant in job.dependants) { - var dependantJob = Module.Jobs[dependant]; - dependantJob.dependencies[id] = job.dependants[dependant] = false; - var pending = typeof dependantJob.callback != "function"; - for (var dependency in dependantJob.dependencies) - pending = pending || dependantJob.dependencies[dependency]; - if (!pending) { - if (dependantJob.executed) - throw "[UnityLoader.Job.schedule] job '" + id + "' has already been executed"; - dependantJob.executed = true; - setTimeout(dependantJob.callback.bind(null, Module, dependantJob), 0); - } - } - } - var pending = false; - dependencies.forEach(function (dependency) { - var dependencyJob = Module.Jobs[dependency]; - if (!dependencyJob) - dependencyJob = Module.Jobs[dependency] = {dependencies: {}, dependants: {}}; - if (job.dependencies[dependency] = dependencyJob.dependants[id] = !dependencyJob.result) - pending = true; - }); - if (!pending) { - job.executed = true; - setTimeout(job.callback.bind(null, Module, job), 0); - } - - }, - result: function (Module, id) { - var job = Module.Jobs[id]; - if (!job) - throw "[UnityLoader.Job.result] job '" + id + "' does not exist"; - if (typeof job.result != "object") - throw "[UnityLoader.Job.result] job '" + id + "' has invalid result"; - return job.result.value; - - }, - - }, - Progress: { - Styles: { - Dark: { - progressLogoUrl: "data:image/png;base64,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", - progressEmptyUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAATUlEQVRo3u3aIQ4AIAwEQUr4/5cPiyMVBDOj0M2mCKgkGdAwjYCudZzLOLiITYPrCdEgGkSDaEA0iAbRIBpEA6JBNHx1vnL7V4NNwxsbCNMGI3YImu0AAAAASUVORK5CYII=", - progressFullUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAO0lEQVRo3u3SQREAAAjDMMC/56EB3omEXjtJCg5GAkyDaTANpsE0YBpMg2kwDaYB02AaTINpMA2Yhr8FO18EIBpZMeQAAAAASUVORK5CYII=", - }, - Light: { - progressLogoUrl: "data:image/png;base64,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", - progressEmptyUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAUUlEQVRo3u3aMQ4AEAxAUcRJzGb3v1mt3cQglvcmc/NTA3XMFQUuNCPgVk/nahwchE2D6wnRIBpEg2hANIgG0SAaRAOiQTR8lV+5/avBpuGNDcz6A6oq1CgNAAAAAElFTkSuQmCC", - progressFullUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAQElEQVRo3u3SMREAMAgAsVIpnTvj3xlogDmR8PfxftaBgSsBpsE0mAbTYBowDabBNJgG04BpMA2mwTSYBkzDXgP/hgGnr4PpeAAAAABJRU5ErkJggg==", - }, - }, - handler: function (gameInstance, progress) { - if (!gameInstance.Module) - return; - var style = UnityLoader.Progress.Styles[gameInstance.Module.splashScreenStyle]; - var progressLogoUrl = gameInstance.Module.progressLogoUrl ? gameInstance.Module.resolveBuildUrl(gameInstance.Module.progressLogoUrl) : style.progressLogoUrl; - var progressEmptyUrl = gameInstance.Module.progressEmptyUrl ? gameInstance.Module.resolveBuildUrl(gameInstance.Module.progressEmptyUrl) : style.progressEmptyUrl; - var progressFullUrl = gameInstance.Module.progressFullUrl ? gameInstance.Module.resolveBuildUrl(gameInstance.Module.progressFullUrl) : style.progressFullUrl; - var commonStyle = "position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);"; - if (!gameInstance.logo) { - gameInstance.logo = document.createElement("div"); - gameInstance.logo.style.cssText = commonStyle + "background: url('" + progressLogoUrl + "') no-repeat center / contain; width: 154px; height: 130px;"; - gameInstance.container.appendChild(gameInstance.logo); - } - if (!gameInstance.progress) { - gameInstance.progress = document.createElement("div"); - gameInstance.progress.style.cssText = commonStyle + " height: 18px; width: 141px; margin-top: 90px;"; - gameInstance.progress.empty = document.createElement("div"); - gameInstance.progress.empty.style.cssText = "background: url('" + progressEmptyUrl + "') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;"; - gameInstance.progress.appendChild(gameInstance.progress.empty); - gameInstance.progress.full = document.createElement("div"); - gameInstance.progress.full.style.cssText = "background: url('" + progressFullUrl + "') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;"; - gameInstance.progress.appendChild(gameInstance.progress.full); - gameInstance.container.appendChild(gameInstance.progress); - } - gameInstance.progress.full.style.width = (100 * progress) + "%"; - gameInstance.progress.empty.style.width = (100 * (1 - progress)) + "%"; - if (progress == 1) - gameInstance.logo.style.display = gameInstance.progress.style.display = "none"; - - }, - update: function (Module, id, e) { - var progress = Module.buildDownloadProgress[id]; - if (!progress) - progress = Module.buildDownloadProgress[id] = { - started: false, - finished: false, - lengthComputable: false, - total: 0, - loaded: 0, - }; - if (typeof e == "object" && (e.type == "progress" || e.type == "load")) { - if (!progress.started) { - progress.started = true; - progress.lengthComputable = e.lengthComputable; - progress.total = e.total; - } - progress.loaded = e.loaded; - if (e.type == "load") - progress.finished = true; - } - var loaded = 0, total = 0, started = 0, computable = 0, unfinishedNonComputable = 0; - for (var id in Module.buildDownloadProgress) { - var progress = Module.buildDownloadProgress[id]; - if (!progress.started) - return 0; - started++; - if (progress.lengthComputable) { - loaded += progress.loaded; - total += progress.total; - computable++; - } else if (!progress.finished) { - unfinishedNonComputable++; - } - } - var totalProgress = started ? (started - unfinishedNonComputable - (total ? computable * (total - loaded) / total : 0)) / started : 0; - Module.gameInstance.onProgress(Module.gameInstance, 0.9 * totalProgress); - - }, - - }, - // The Unity WebGL generated content depends on SystemInfo, therefore it should not be changed. If any modification is necessary, do it at your own risk. - SystemInfo: (function() { - var unknown = "-"; - var nVer = navigator.appVersion; - var nAgt = navigator.userAgent; - var browser = navigator.appName; - var version = navigator.appVersion; - var majorVersion = parseInt(navigator.appVersion, 10); - var nameOffset, verOffset, ix; - if ((verOffset = nAgt.indexOf("Opera")) != -1) { - browser = "Opera"; - version = nAgt.substring(verOffset + 6); - if ((verOffset = nAgt.indexOf("Version")) != -1) { - version = nAgt.substring(verOffset + 8); - } - } else if ((verOffset = nAgt.indexOf("MSIE")) != -1) { - browser = "Microsoft Internet Explorer"; - version = nAgt.substring(verOffset + 5); - } else if ((verOffset = nAgt.indexOf("Edge")) != -1) { - browser = "Edge"; - version = nAgt.substring(verOffset + 5); - } else if ((verOffset = nAgt.indexOf("Chrome")) != -1) { - browser = "Chrome"; - version = nAgt.substring(verOffset + 7); - } else if ((verOffset = nAgt.indexOf("Safari")) != -1) { - browser = "Safari"; - version = nAgt.substring(verOffset + 7); - if ((verOffset = nAgt.indexOf("Version")) != -1) { - version = nAgt.substring(verOffset + 8); - } - } else if ((verOffset = nAgt.indexOf("Firefox")) != -1) { - browser = "Firefox"; - version = nAgt.substring(verOffset + 8); - } else if (nAgt.indexOf("Trident/") != -1) { - browser = "Microsoft Internet Explorer"; - version = nAgt.substring(nAgt.indexOf("rv:") + 3); - } else if ((nameOffset = nAgt.lastIndexOf(" ") + 1) < (verOffset = nAgt.lastIndexOf("/"))) { - browser = nAgt.substring(nameOffset, verOffset); - version = nAgt.substring(verOffset + 1); - if (browser.toLowerCase() == browser.toUpperCase()) { - browser = navigator.appName; - } - } - if ((ix = version.indexOf(";")) != -1) - version = version.substring(0, ix); - if ((ix = version.indexOf(" ")) != -1) - version = version.substring(0, ix); - if ((ix = version.indexOf(")")) != -1) - version = version.substring(0, ix); - majorVersion = parseInt("" + version, 10); - if (isNaN(majorVersion)) { - version = "" + parseFloat(navigator.appVersion); - majorVersion = parseInt(navigator.appVersion, 10); - } - else version = "" + parseFloat(version); - var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer); - var os = unknown; - var clientStrings = [ - {s: "Windows 3.11", r: /Win16/}, - {s: "Windows 95", r: /(Windows 95|Win95|Windows_95)/}, - {s: "Windows ME", r: /(Win 9x 4.90|Windows ME)/}, - {s: "Windows 98", r: /(Windows 98|Win98)/}, - {s: "Windows CE", r: /Windows CE/}, - {s: "Windows 2000", r: /(Windows NT 5.0|Windows 2000)/}, - {s: "Windows XP", r: /(Windows NT 5.1|Windows XP)/}, - {s: "Windows Server 2003", r: /Windows NT 5.2/}, - {s: "Windows Vista", r: /Windows NT 6.0/}, - {s: "Windows 7", r: /(Windows 7|Windows NT 6.1)/}, - {s: "Windows 8.1", r: /(Windows 8.1|Windows NT 6.3)/}, - {s: "Windows 8", r: /(Windows 8|Windows NT 6.2)/}, - {s: "Windows 10", r: /(Windows 10|Windows NT 10.0)/}, - {s: "Windows NT 4.0", r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/}, - {s: "Windows ME", r: /Windows ME/}, - {s: "Android", r: /Android/}, - {s: "Open BSD", r: /OpenBSD/}, - {s: "Sun OS", r: /SunOS/}, - {s: "Linux", r: /(Linux|X11)/}, - {s: "iOS", r: /(iPhone|iPad|iPod)/}, - {s: "Mac OS X", r: /Mac OS X/}, - {s: "Mac OS", r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/}, - {s: "QNX", r: /QNX/}, - {s: "UNIX", r: /UNIX/}, - {s: "BeOS", r: /BeOS/}, - {s: "OS/2", r: /OS\/2/}, - {s: "Search Bot", r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/} - ]; - for (var id in clientStrings) { - var cs = clientStrings[id]; - if (cs.r.test(nAgt)) { - os = cs.s; - break; - } - } - - var osVersion = unknown; - if (/Windows/.test(os)) { - osVersion = /Windows (.*)/.exec(os)[1]; - os = "Windows"; - } - switch (os) { - case "Mac OS X": - osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1]; - break; - case "Android": - osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1]; - break; - case "iOS": - osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer); - osVersion = osVersion[1] + "." + osVersion[2] + "." + (osVersion[3] | 0); - break; - } - return { - width: screen.width ? screen.width : 0, - height: screen.height ? screen.height : 0, - browser: browser, - browserVersion: version, - mobile: mobile, - os: os, - osVersion: osVersion, - gpu: (function() { - var canvas = document.createElement("canvas"); - var gl = canvas.getContext("experimental-webgl"); - if(gl) { - var renderedInfo = gl.getExtension("WEBGL_debug_renderer_info"); - if(renderedInfo) { - return gl.getParameter(renderedInfo.UNMASKED_RENDERER_WEBGL); - } - } - return unknown; - })(), - language: window.navigator.userLanguage || window.navigator.language, - hasWebGL: (function() { - if (!window.WebGLRenderingContext) { - return 0; - } - var canvas = document.createElement("canvas"); - var gl = canvas.getContext("webgl2"); - if (!gl) { - gl = canvas.getContext("experimental-webgl2"); - if (!gl) { - gl = canvas.getContext("webgl"); - if (!gl) { - gl = canvas.getContext("experimental-webgl"); - if (!gl) { - return 0; - } - } - return 1; - } - return 2; - } - return 2; - })(), - hasCursorLock: (function() { - var e = document.createElement("canvas"); - if (e["requestPointerLock"] || e["mozRequestPointerLock"] || e["webkitRequestPointerLock"] || e["msRequestPointerLock"]) return 1; else return 0; - })(), - hasFullscreen: (function() { - var e = document.createElement("canvas"); - if (e["requestFullScreen"] || e["mozRequestFullScreen"] || e["msRequestFullscreen"] || e["webkitRequestFullScreen"]) { - if (browser.indexOf("Safari") == -1 || version >= 10.1) return 1; - } - return 0; - })(), - hasThreads: typeof SharedArrayBuffer !== 'undefined', - hasWasm: typeof WebAssembly == "object" && typeof WebAssembly.validate == "function" && typeof WebAssembly.compile == "function", - }; - - })(), - compatibilityCheck: function (gameInstance, onsuccess, onerror) { - if (!UnityLoader.SystemInfo.hasWebGL) { - gameInstance.popup("Your browser does not support WebGL", - [{text: "OK", callback: onerror}]); - } else if (UnityLoader.SystemInfo.mobile) { - gameInstance.popup("Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway.", - [{text: "OK", callback: onsuccess}]); - } else if (["Edge", "Firefox", "Chrome", "Safari"].indexOf(UnityLoader.SystemInfo.browser) == -1) { - gameInstance.popup("Please note that your browser is not currently supported for this Unity WebGL content. Press OK if you wish to continue anyway.", - [{text: "OK", callback: onsuccess}]); - } else { - onsuccess(); - } - - }, - Blobs: {}, - loadCode: function (code, onload, info) { - var functionId = [].slice.call(UnityLoader.Cryptography.md5(code)).map(function(x) { return ("0" + x.toString(16)).substr(-2); }).join(""); - var script = document.createElement("script"); - var blobUrl = URL.createObjectURL(new Blob(["UnityLoader[\"" + functionId + "\"]=", code], { type: "text/javascript" })); - UnityLoader.Blobs[blobUrl] = info; - script.src = blobUrl; - script.onload = function () { - URL.revokeObjectURL(blobUrl); - onload(functionId); - } - document.body.appendChild(script); - - }, - setupIndexedDBJob: function (Module, job) { - function setupIndexedDB(idb) { - if (setupIndexedDB.called) - return; - setupIndexedDB.called = true; - Module.indexedDB = idb; - job.complete(); - } - try { - var idb = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - var testRequest = idb.open("/idbfs-test"); - testRequest.onerror = function(e) { e.preventDefault(); setupIndexedDB(); } - testRequest.onsuccess = function() { testRequest.result.close(); setupIndexedDB(idb); } - setTimeout(setupIndexedDB, 1000); - } catch (e) { - setupIndexedDB(); - } - - }, - initWasmCache: function (Module, urlId) { - if (!Module.cacheControl || ["must-revalidate", "immutable"].indexOf(Module.cacheControl[urlId] || Module.cacheControl["default"]) == -1) - return; - Module.wasmCache = { - update: function () { - var wasm = this; - if (wasm.cache && wasm.download && wasm.request) { - if (wasm.cache.module && wasm.cache.md5 == wasm.download.md5) { - wasm.request.wasmInstantiate(wasm.cache.module).then(function (result) { - console.log("[Unity Cache] WebAssembly module '" + wasm.cache.url + "' successfully loaded from the indexedDB cache"); - wasm.request.callback(result); - }); - } else { - wasm.request.wasmInstantiate(wasm.download.binary).then(function (result) { - wasm.cache.module = result.module; - wasm.cache.md5 = wasm.download.md5; - UnityLoader.UnityCache.WebAssembly.put(wasm.cache, function () { - console.log("[Unity Cache] WebAssembly module '" + wasm.cache.url + "' successfully stored in the indexedDB cache"); - }, function (error) { - console.log("[Unity Cache] WebAssembly module '" + wasm.cache.url + "' not stored in the indexedDB cache due to the error: " + error); - }); - wasm.request.callback(result.instance); - }); - } - } - }, - }; - UnityLoader.UnityCache.WebAssembly.get(Module.resolveBuildUrl(Module[urlId]), function (result) { Module.wasmCache.cache = result; Module.wasmCache.update(); }); - - }, - processWasmCodeJob: function (Module, job) { - Module.wasmBinary = UnityLoader.Job.result(Module, "downloadWasmCode").data; - if (Module.wasmCache) { - Module.wasmCache.download = { - binary: Module.wasmBinary, - md5: [].slice.call(UnityLoader.Cryptography.md5(Module.wasmBinary)).map(function(x) { return ("0" + x.toString(16)).substr(-2); }).join(""), - }; - Module.wasmCache.update(); - } - job.complete(); - - }, - processWasmFrameworkJob: function (Module, job) { - var code = UnityLoader.Job.result(Module, "downloadWasmFramework").data; - UnityLoader.loadCode(code, function (id) { - var blob = new Blob([code], { type: "application/javascript" }); - Module["mainScriptUrlOrBlob"] = blob; - UnityLoader[id](Module); - job.complete(); - }, {Module: Module, url: Module["wasmFrameworkUrl"]}); - - }, - processAsmCodeJob: function (Module, job) { - var asm = UnityLoader.Job.result(Module, "downloadAsmCode").data; - UnityLoader.loadCode(!Math.fround ? UnityLoader.Utils.optimizeMathFround(asm) : asm, function (id) { - Module.asm = UnityLoader[id]; - job.complete(); - }, {Module: Module, url: Module["asmCodeUrl"]}); - - }, - processAsmFrameworkJob: function (Module, job) { - var code = UnityLoader.Job.result(Module, "downloadAsmFramework").data; - UnityLoader.loadCode(code, function (id) { - var blob = new Blob([code], { type: "application/javascript" }); - Module["mainScriptUrlOrBlob"] = blob; - UnityLoader[id](Module); - job.complete(); - }, {Module: Module, url: Module["asmFrameworkUrl"]}); - - }, - processMemoryInitializerJob: function (Module, job) { - Module["memoryInitializerRequest"].status = 200; - Module["memoryInitializerRequest"].response = UnityLoader.Job.result(Module, "downloadMemoryInitializer").data; - if (Module["memoryInitializerRequest"].callback) - Module["memoryInitializerRequest"].callback(); - job.complete(); - - }, - processDataJob: function (Module, job) { - var data = UnityLoader.Job.result(Module, "downloadData").data; - var view = new DataView(data.buffer, data.byteOffset, data.byteLength); - var pos = 0; - var prefix = "UnityWebData1.0\0"; - if (!String.fromCharCode.apply(null, data.subarray(pos, pos + prefix.length)) == prefix) - throw "unknown data format"; - pos += prefix.length; - var headerSize = view.getUint32(pos, true); pos += 4; - while (pos < headerSize) { - var offset = view.getUint32(pos, true); pos += 4; - var size = view.getUint32(pos, true); pos += 4; - var pathLength = view.getUint32(pos, true); pos += 4; - var path = String.fromCharCode.apply(null, data.subarray(pos, pos + pathLength)); pos += pathLength; - for (var folder = 0, folderNext = path.indexOf("/", folder) + 1 ; folderNext > 0; folder = folderNext, folderNext = path.indexOf("/", folder) + 1) - Module["FS_createPath"](path.substring(0, folder), path.substring(folder, folderNext - 1), true, true); - Module["FS_createDataFile"](path, null, data.subarray(offset, offset + size), true, true, true); - } - Module["removeRunDependency"]("processDataJob"); - job.complete(); - - }, - downloadJob: function (Module, job) { - var xhr = job.parameters.objParameters ? new UnityLoader.UnityCache.XMLHttpRequest(job.parameters.objParameters) : new XMLHttpRequest(); - xhr.open("GET", job.parameters.url); - xhr.responseType = "arraybuffer"; - //xhr.onload = function () { UnityLoader.Compression.decompress(new Uint8Array(xhr.response), function (decompressed) { job.complete(decompressed) }) }; - xhr.onload = function () { UnityLoader.Compression.decompress(new Uint8Array(xhr.response), function (decompressed) { var result = {data: decompressed, cached: xhr.xhr.cached}; job.complete(result); }) }; - if (job.parameters.onprogress) - xhr.addEventListener("progress", job.parameters.onprogress); - if (job.parameters.onload) - xhr.addEventListener("load", job.parameters.onload); - xhr.send(); - - }, - scheduleBuildDownloadJob: function (Module, jobId, urlId) { - UnityLoader.Progress.update(Module, jobId); - UnityLoader.Job.schedule(Module, jobId, [], UnityLoader.downloadJob, { - url: Module.resolveBuildUrl(Module[urlId]), - onprogress: function(e) { UnityLoader.Progress.update(Module, jobId, e); }, - onload: function(e) { UnityLoader.Progress.update(Module, jobId, e); }, - objParameters: Module.companyName && Module.productName && Module.cacheControl && (Module.cacheControl[urlId] || Module.cacheControl["default"]) ? { - companyName: Module.companyName, - productName: Module.productName, - cacheControl: Module.cacheControl[urlId] || Module.cacheControl["default"], - } : null, - }); - - }, - loadModule: function (Module) { - Module.useWasm = Module["wasmCodeUrl"] && UnityLoader.SystemInfo.hasWasm; - - if (Module.useWasm) { - UnityLoader.initWasmCache(Module, "wasmCodeUrl"); - UnityLoader.scheduleBuildDownloadJob(Module, "downloadWasmCode", "wasmCodeUrl"); - UnityLoader.Job.schedule(Module, "processWasmCode", ["downloadWasmCode"], UnityLoader.processWasmCodeJob); - if (Module["wasmMemoryUrl"]) - { - UnityLoader.scheduleBuildDownloadJob(Module, "downloadMemoryInitializer", "wasmMemoryUrl"); - UnityLoader.Job.schedule(Module, "processMemoryInitializer", ["downloadMemoryInitializer"], UnityLoader.processMemoryInitializerJob); - Module["memoryInitializerRequest"] = { addEventListener: function (type, callback) { Module["memoryInitializerRequest"].callback = callback; } } - } - UnityLoader.scheduleBuildDownloadJob(Module, "downloadWasmFramework", "wasmFrameworkUrl"); - UnityLoader.Job.schedule(Module, "processWasmFramework", ["downloadWasmFramework", "processWasmCode", "setupIndexedDB"], UnityLoader.processWasmFrameworkJob); - - } else if (Module["asmCodeUrl"]) { - UnityLoader.scheduleBuildDownloadJob(Module, "downloadAsmCode", "asmCodeUrl"); - UnityLoader.Job.schedule(Module, "processAsmCode", ["downloadAsmCode"], UnityLoader.processAsmCodeJob); - UnityLoader.scheduleBuildDownloadJob(Module, "downloadMemoryInitializer", "asmMemoryUrl"); - UnityLoader.Job.schedule(Module, "processMemoryInitializer", ["downloadMemoryInitializer"], UnityLoader.processMemoryInitializerJob); - Module["memoryInitializerRequest"] = { addEventListener: function (type, callback) { Module["memoryInitializerRequest"].callback = callback; } } - if (Module.asmLibraryUrl) - Module.dynamicLibraries = [Module.asmLibraryUrl].map(Module.resolveBuildUrl); - UnityLoader.scheduleBuildDownloadJob(Module, "downloadAsmFramework", "asmFrameworkUrl"); - UnityLoader.Job.schedule(Module, "processAsmFramework", ["downloadAsmFramework", "processAsmCode", "setupIndexedDB"], UnityLoader.processAsmFrameworkJob); - - } else { - throw "WebAssembly support is not detected in this browser."; - } - - UnityLoader.scheduleBuildDownloadJob(Module, "downloadData", "dataUrl"); - UnityLoader.Job.schedule(Module, "setupIndexedDB", [], UnityLoader.setupIndexedDBJob); - - Module["preRun"].push(function () { - Module["addRunDependency"]("processDataJob"); - UnityLoader.Job.schedule(Module, "processData", ["downloadData"], UnityLoader.processDataJob); - }); - - }, - instantiate: function (container, url, parameters) { - function instantiate(container, gameInstance) { - if (typeof container == "string" && !(container = document.getElementById(container))) - return false; - - container.innerHTML = ""; - container.style.border = container.style.margin = container.style.padding = 0; - if (getComputedStyle(container).getPropertyValue("position") == "static") - container.style.position = "relative"; - container.style.width = gameInstance.width || container.style.width; - container.style.height = gameInstance.height || container.style.height; - gameInstance.container = container; - - var Module = gameInstance.Module; - Module.canvas = document.createElement("canvas"); - Module.canvas.style.width = "100%"; - Module.canvas.style.height = "100%"; - Module.canvas.addEventListener("contextmenu", function (e) { e.preventDefault() }), - Module.canvas.id = "#canvas"; - container.appendChild(Module.canvas); - - gameInstance.compatibilityCheck(gameInstance, function () { - var xhr = new XMLHttpRequest(); - xhr.open("GET", gameInstance.url, true); - xhr.responseType = "text"; - xhr.onerror = function() { - Module.print("Could not download " + gameInstance.url); - if (document.URL.indexOf("file:") == 0) { - alert ("It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a different browser."); - } - } - xhr.onload = function () { - var parameters = JSON.parse(xhr.responseText); - for (var parameter in parameters) { - if (typeof Module[parameter] == "undefined") - Module[parameter] = parameters[parameter]; - } - - var graphicsApiMatch = false; - for(var i = 0; i < Module.graphicsAPI.length; i++) { - var api = Module.graphicsAPI[i]; - if (api == "WebGL 2.0" && UnityLoader.SystemInfo.hasWebGL == 2) { - graphicsApiMatch = true; - } - else if (api == "WebGL 1.0" && UnityLoader.SystemInfo.hasWebGL >= 1) { - graphicsApiMatch = true; - } - else - Module.print("Warning: Unsupported graphics API " + api); - } - if (!graphicsApiMatch) { - gameInstance.popup("Your browser does not support any of the required graphics API for this content: " + Module.graphicsAPI, [{text: "OK"}]); - return; - } - - container.style.background = Module.backgroundUrl ? "center/cover url('" + Module.resolveBuildUrl(Module.backgroundUrl) + "')" : - Module.backgroundColor ? " " + Module.backgroundColor : ""; - - // show loading screen as soon as possible - gameInstance.onProgress(gameInstance, 0.0); - - UnityLoader.loadModule(Module); - } - xhr.send(); - }, function () { - Module.printErr("Instantiation of the '" + url + "' terminated due to the failed compatibility check."); - }); - - return true; - } - - function resolveURL(url) { - resolveURL.link = resolveURL.link || document.createElement("a"); - resolveURL.link.href = url; - return resolveURL.link.href; - } - - var gameInstance = { - url: url, - onProgress: UnityLoader.Progress.handler, - compatibilityCheck: UnityLoader.compatibilityCheck, - Module: { - graphicsAPI: ["WebGL 2.0", "WebGL 1.0"], - onAbort: function(what){ - if (what !== undefined) { - this.print(what); - this.printErr(what); - what = JSON.stringify(what); - } else { - what = ''; - } - throw 'abort(' + what + ') at ' + this.stackTrace(); - }, - preRun: [], - postRun: [], - print: function (message) { console.log(message); }, - printErr: function (message) { console.error(message); }, - Jobs: {}, - buildDownloadProgress: {}, - resolveBuildUrl: function (buildUrl) { return buildUrl.match(/(http|https|ftp|file):\/\//) ? buildUrl : url.substring(0, url.lastIndexOf("/") + 1) + buildUrl; }, - streamingAssetsUrl: function () { return resolveURL(this.resolveBuildUrl("../StreamingAssets")) }, - pthreadMainPrefixURL: "Build/", - wasmRequest: function (wasmInstantiate, callback) { - if (this.wasmCache && !UnityLoader.SystemInfo.hasThreads) { - this.wasmCache.request = { - wasmInstantiate: wasmInstantiate, - callback: callback, - }; - this.wasmCache.update(); - } else { - wasmInstantiate(this.wasmBinary).then(function (result) { callback(result.instance); }); - } - }, - }, - SetFullscreen: function() { - if (gameInstance.Module.SetFullscreen) - return gameInstance.Module.SetFullscreen.apply(gameInstance.Module, arguments); - }, - SendMessage: function() { - if (gameInstance.Module.SendMessage) - return gameInstance.Module.SendMessage.apply(gameInstance.Module, arguments); - }, - }; - - gameInstance.Module.gameInstance = gameInstance; - gameInstance.popup = function (message, callbacks) { return UnityLoader.Error.popup(gameInstance, message, callbacks); }; - gameInstance.Module.postRun.push(function() { - gameInstance.onProgress(gameInstance, 1); - }); - - for (var parameter in parameters) { - if (parameter == "Module") { - for (var moduleParameter in parameters[parameter]) - gameInstance.Module[moduleParameter] = parameters[parameter][moduleParameter]; - } else { - gameInstance[parameter] = parameters[parameter]; - } - } - - if (!instantiate(container, gameInstance)) - document.addEventListener("DOMContentLoaded", function () { instantiate(container, gameInstance) }); - - return gameInstance; - - }, - Utils: { - assert: function (condition, text) { - if (!condition) - abort("Assertion failed: " + text); - - }, - optimizeMathFround: function (code, embeddedAsm) { - console.log("optimizing out Math.fround calls"); - - var State = { - LOOKING_FOR_MODULE: 0, - SCANNING_MODULE_VARIABLES: 1, - SCANNING_MODULE_FUNCTIONS: 2, - }; - var stateSwitchMarker = [ - "EMSCRIPTEN_START_ASM", - "EMSCRIPTEN_START_FUNCS", - "EMSCRIPTEN_END_FUNCS", - ]; - var froundPrefix = "var"; - var froundMarker = "global.Math.fround;"; - - var position = 0; - var state = embeddedAsm ? State.LOOKING_FOR_MODULE : State.SCANNING_MODULE_VARIABLES; - var froundLast = 0; - var froundLength = 0; - - for(; state <= State.SCANNING_MODULE_FUNCTIONS && position < code.length; position++) { - if (code[position] == 0x2F && code[position + 1] == 0x2F && code[position + 2] == 0x20 && - String.fromCharCode.apply(null, code.subarray(position + 3, position + 3 + stateSwitchMarker[state].length)) === stateSwitchMarker[state]) { - // if code at position starts with "// " + stateSwitchMarker[state] - state++; - } else if (state == State.SCANNING_MODULE_VARIABLES && !froundLength && code[position] == 0x3D && - String.fromCharCode.apply(null, code.subarray(position + 1, position + 1 + froundMarker.length)) === froundMarker) { - // if we are at the module variable section and Math_fround name has not yet been found and code at position starts with "=" + froundMarker - froundLast = position - 1; - while(code[froundLast - froundLength] != 0x20) - froundLength++; // scan back until the first space character (it is always present as at least it is a part of the previously found "// ") - if (!froundLength || String.fromCharCode.apply(null, code.subarray(froundLast - froundLength - froundPrefix.length, froundLast - froundLength)) !== froundPrefix) - froundLast = froundLength = 0; - } else if (froundLength && code[position] == 0x28) { - // if Math_fround name has been found and code at position starts with "(" - var nameLength = 0; - while (nameLength < froundLength && code[position - 1 - nameLength] == code[froundLast - nameLength]) - nameLength++; - if (nameLength == froundLength) { - var c = code[position - 1 - nameLength]; - if (c < 0x24 || (0x24 < c && c < 0x30) || (0x39 < c && c < 0x41) || (0x5A < c && c < 0x5F) || (0x5F < c && c < 0x61) || 0x7A < c) { - // if the matched Math_fround name is not a suffix of another identifier, i.e. it's preceding character does not match [$0-9A-Z_a-z] - for(;nameLength; nameLength--) - code[position - nameLength] = 0x20; // fill the Math_fround name with spaces (replacement works faster than shifting back the rest of the code) - } - } - } - } - return code; - - }, - - }, - UnityCache: function () { - var UnityCacheDatabase = { name: "UnityCache", version: 2 }; - var XMLHttpRequestStore = { name: "XMLHttpRequest", version: 1 }; - var WebAssemblyStore = { name: "WebAssembly", version: 1 }; - - function log(message) { - console.log("[UnityCache] " + message); - } - - function resolveURL(url) { - resolveURL.link = resolveURL.link || document.createElement("a"); - resolveURL.link.href = url; - return resolveURL.link.href; - } - - function isCrossOriginURL(url) { - var originMatch = window.location.href.match(/^[a-z]+:\/\/[^\/]+/); - return !originMatch || url.lastIndexOf(originMatch[0], 0); - } - - function UnityCache() { - var cache = this; - cache.queue = []; - - function initDatabase(database) { - if (typeof cache.database != "undefined") - return; - cache.database = database; - if (!cache.database) - log("indexedDB database could not be opened"); - while (cache.queue.length) { - var queued = cache.queue.shift(); - if (cache.database) { - cache.execute.apply(cache, queued); - } else if (typeof queued.onerror == "function") { - queued.onerror(new Error("operation cancelled")); - } - } - } - - try { - var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - function upgradeDatabase() { - var openRequest = indexedDB.open(UnityCacheDatabase.name, UnityCacheDatabase.version); - openRequest.onupgradeneeded = function (e) { - var database = e.target.result; - if (!database.objectStoreNames.contains(WebAssemblyStore.name)) - database.createObjectStore(WebAssemblyStore.name); - }; - openRequest.onsuccess = function (e) { initDatabase(e.target.result); }; - openRequest.onerror = function () { initDatabase(null); }; - } - var openRequest = indexedDB.open(UnityCacheDatabase.name); - openRequest.onupgradeneeded = function (e) { - var objectStore = e.target.result.createObjectStore(XMLHttpRequestStore.name, { keyPath: "url" }); - ["version", "company", "product", "updated", "revalidated", "accessed"].forEach(function (index) { objectStore.createIndex(index, index); }); - }; - openRequest.onsuccess = function (e) { - var database = e.target.result; - if (database.version < UnityCacheDatabase.version) { - database.close(); - upgradeDatabase(); - } else { - initDatabase(database); - } - }; - openRequest.onerror = function () { initDatabase(null); }; - setTimeout(openRequest.onerror, 1000); - } catch (e) { - initDatabase(null); - } - }; - - UnityCache.prototype.execute = function (store, operation, parameters, onsuccess, onerror) { - if (this.database) { - try { - var target = this.database.transaction([store], ["put", "delete", "clear"].indexOf(operation) != -1 ? "readwrite" : "readonly").objectStore(store); - if (operation == "openKeyCursor") { - target = target.index(parameters[0]); - parameters = parameters.slice(1); - } - var request = target[operation].apply(target, parameters); - if (typeof onsuccess == "function") - request.onsuccess = function (e) { onsuccess(e.target.result); }; - request.onerror = onerror; - } catch (e) { - if (typeof onerror == "function") - onerror(e); - } - } else if (typeof this.database == "undefined") { - this.queue.push(arguments); - } else if (typeof onerror == "function") { - onerror(new Error("indexedDB access denied")); - } - }; - - var unityCache = new UnityCache(); - - function createXMLHttpRequestResult(url, company, product, timestamp, xhr) { - var result = { url: url, version: XMLHttpRequestStore.version, company: company, product: product, updated: timestamp, revalidated: timestamp, accessed: timestamp, responseHeaders: {}, xhr: {} }; - if (xhr) { - ["Last-Modified", "ETag"].forEach(function (header) { result.responseHeaders[header] = xhr.getResponseHeader(header); }); - ["responseURL", "status", "statusText", "response"].forEach(function (property) { result.xhr[property] = xhr[property]; }); - } - return result; - } - - function CachedXMLHttpRequest(objParameters) { - this.cache = { enabled: false }; - if (objParameters) { - this.cache.control = objParameters.cacheControl; - this.cache.company = objParameters.companyName; - this.cache.product = objParameters.productName; - } - this.xhr = new XMLHttpRequest(objParameters); - this.xhr.cached = false; - this.xhr.addEventListener("load", function () { - var xhr = this.xhr, cache = this.cache; - if (!cache.enabled || cache.revalidated) - return; - if (xhr.status == 304) { - cache.result.revalidated = cache.result.accessed; - cache.revalidated = true; - unityCache.execute(XMLHttpRequestStore.name, "put", [cache.result]); - this.xhr.cached = true; - log("'" + cache.result.url + "' successfully revalidated and served from the indexedDB cache"); - } else if (xhr.status == 200) { - cache.result = createXMLHttpRequestResult(cache.result.url, cache.company, cache.product, cache.result.accessed, xhr); - cache.revalidated = true; - unityCache.execute(XMLHttpRequestStore.name, "put", [cache.result], function (result) { - log("'" + cache.result.url + "' successfully downloaded and stored in the indexedDB cache"); - }, function (error) { - log("'" + cache.result.url + "' successfully downloaded but not stored in the indexedDB cache due to the error: " + error); - }); - } else { - log("'" + cache.result.url + "' request failed with status: " + xhr.status + " " + xhr.statusText); - } - }.bind(this)); - }; - - CachedXMLHttpRequest.prototype.send = function (data) { - var xhr = this.xhr, cache = this.cache; - var sendArguments = arguments; - cache.enabled = cache.enabled && xhr.responseType == "arraybuffer" && !data; - if (!cache.enabled) - return xhr.send.apply(xhr, sendArguments); - unityCache.execute(XMLHttpRequestStore.name, "get", [cache.result.url], function (result) { - if (!result || result.version != XMLHttpRequestStore.version) { - xhr.send.apply(xhr, sendArguments); - return; - } - cache.result = result; - cache.result.accessed = Date.now(); - if (cache.control == "immutable") { - cache.revalidated = true; - unityCache.execute(XMLHttpRequestStore.name, "put", [cache.result]); - xhr.dispatchEvent(new Event('load')); - xhr.cached = true; - log("'" + cache.result.url + "' served from the indexedDB cache without revalidation"); - } else if (isCrossOriginURL(cache.result.url) && (cache.result.responseHeaders["Last-Modified"] || cache.result.responseHeaders["ETag"])) { - var headXHR = new XMLHttpRequest(); - headXHR.open("HEAD", cache.result.url); - headXHR.onload = function () { - cache.revalidated = ["Last-Modified", "ETag"].every(function (header) { - return !cache.result.responseHeaders[header] || cache.result.responseHeaders[header] == headXHR.getResponseHeader(header); - }); - if (cache.revalidated) { - cache.result.revalidated = cache.result.accessed; - unityCache.execute(XMLHttpRequestStore.name, "put", [cache.result]); - xhr.dispatchEvent(new Event('load')); - xhr.cached = true; - log("'" + cache.result.url + "' successfully revalidated and served from the indexedDB cache"); - } else { - xhr.send.apply(xhr, sendArguments); - } - } - headXHR.send(); - } else { - if (cache.result.responseHeaders["Last-Modified"]) { - xhr.setRequestHeader("If-Modified-Since", cache.result.responseHeaders["Last-Modified"]); - xhr.setRequestHeader("Cache-Control", "no-cache"); - } else if (cache.result.responseHeaders["ETag"]) { - xhr.setRequestHeader("If-None-Match", cache.result.responseHeaders["ETag"]); - xhr.setRequestHeader("Cache-Control", "no-cache"); - } - xhr.send.apply(xhr, sendArguments); - } - }, function (error) { - xhr.send.apply(xhr, sendArguments); - }); - }; - - CachedXMLHttpRequest.prototype.open = function (method, url, async, user, password) { - this.cache.result = createXMLHttpRequestResult(resolveURL(url), this.cache.company, this.cache.product, Date.now()); - this.cache.enabled = ["must-revalidate", "immutable"].indexOf(this.cache.control) != -1 && method == "GET" && this.cache.result.url.match("^https?:\/\/") - && (typeof async == "undefined" || async) && typeof user == "undefined" && typeof password == "undefined"; - this.cache.revalidated = false; - return this.xhr.open.apply(this.xhr, arguments); - }; - - CachedXMLHttpRequest.prototype.setRequestHeader = function (header, value) { - this.cache.enabled = false; - return this.xhr.setRequestHeader.apply(this.xhr, arguments); - }; - - var xhr = new XMLHttpRequest(); - for (var property in xhr) { - if (!CachedXMLHttpRequest.prototype.hasOwnProperty(property)) { - (function (property) { - Object.defineProperty(CachedXMLHttpRequest.prototype, property, typeof xhr[property] == "function" ? { - value: function () { return this.xhr[property].apply(this.xhr, arguments); }, - } : { - get: function () { return this.cache.revalidated && this.cache.result.xhr.hasOwnProperty(property) ? this.cache.result.xhr[property] : this.xhr[property]; }, - set: function (value) { this.xhr[property] = value; }, - }); - })(property); - } - } - - return { - XMLHttpRequest: CachedXMLHttpRequest, - WebAssembly: { - get: function (url, callback) { - var base = { url: resolveURL(url), version: WebAssemblyStore.version, module: null, md5: null }; - unityCache.execute(WebAssemblyStore.name, "get", [base.url], function (result) { - callback(result && result.version == WebAssemblyStore.version ? result : base); - }, function () { - callback(base); - }); - }, - put: function (result, onsuccess, onerror) { - unityCache.execute(WebAssemblyStore.name, "put", [result, result.url], onsuccess, onerror); - }, - }, - }; - } (), - -}; diff --git a/Demo/Benchmark/webgl/TemplateData/UnityProgress.js b/Demo/Benchmark/webgl/TemplateData/UnityProgress.js deleted file mode 100644 index a82adc6..0000000 --- a/Demo/Benchmark/webgl/TemplateData/UnityProgress.js +++ /dev/null @@ -1,24 +0,0 @@ -function UnityProgress(gameObject, progress) { - if (!gameObject.Module) - return; - if (!gameObject.logo) { - gameObject.logo = document.createElement("div"); - gameObject.logo.className = "logo " + gameObject.Module.splashScreenStyle; - gameObject.container.appendChild(gameObject.logo); - } - if (!gameObject.progress) { - gameObject.progress = document.createElement("div"); - gameObject.progress.className = "progress " + gameObject.Module.splashScreenStyle; - gameObject.progress.empty = document.createElement("div"); - gameObject.progress.empty.className = "empty"; - gameObject.progress.appendChild(gameObject.progress.empty); - gameObject.progress.full = document.createElement("div"); - gameObject.progress.full.className = "full"; - gameObject.progress.appendChild(gameObject.progress.full); - gameObject.container.appendChild(gameObject.progress); - } - gameObject.progress.full.style.width = (100 * progress) + "%"; - gameObject.progress.empty.style.width = (100 * (1 - progress)) + "%"; - if (progress == 1) - gameObject.logo.style.display = gameObject.progress.style.display = "none"; -} \ No newline at end of file diff --git a/Demo/Benchmark/webgl/TemplateData/favicon.ico b/Demo/Benchmark/webgl/TemplateData/favicon.ico deleted file mode 100644 index dd6bf7e9cec4d87389fad00e34cd385321d748e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13275 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 b05ANO@4xyR$aLsufT!Qj{e3+6SMUEH(9pSK diff --git a/Demo/Benchmark/webgl/TemplateData/progressEmpty.Dark.png b/Demo/Benchmark/webgl/TemplateData/progressEmpty.Dark.png deleted file mode 100644 index eff47305a245c043af40c2dc4354b9a29691acd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^y+AC)!3HGL@?wpF6lZ})WHAE+w-5+3UbEalYaqsOdMLq@v9u`NhAOENGcPops7%#qXb{WSC70C+*y$$P1=bX0K(c#3~y#*S~;OXk;vd$@?2>?p0FJAxv diff --git a/Demo/Benchmark/webgl/TemplateData/progressFull.Dark.png b/Demo/Benchmark/webgl/TemplateData/progressFull.Dark.png deleted file mode 100644 index 3e5c8a0bd68cfcfb93e2530e71a40610fddcda8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^y+AC)!3HGL@?wpF6lZ})WHAE+w-5+3UbEalYaqsOVM?nS#j>85A_CH_9c(1c1&f1fU&yC5aIn#i5*+G*8DF}=4GL$u=Z9l7Z WJd1)>2xsqhZXRZ6LuQfj4+HnV;2A%5^2FhrC$$q%d&0BQiZ*T2iozqE+>KmjeJ326MlDmq|Q zS6?FG#f1j#hrC)I;Sd0tGq_AYUn646xsL)`yl{99R$+O`M*tAe1T0l_z$zWzqUQb# zBuDcHSFJtGpghZg-5}yYaJ-r1Lb% z(XQuNC$CkFpvkw0_$fKsc=D{1*BYBO0Prdvjc=aiOLhotYeanF=+UwTO)0e+sn_bW z10vpV1TD*HLQ1J7LC63A3LXC0*(5{A3IJFn+{H#f<6*M|a(>%G<9V|h0HzVaS_8l{0Nm-{S%uG>1lvD>!D<2E1CCRzcb&n= zCO40k1!zjCX@G}+0&9H^)`h`{@9ad6fvnI2fYK9K?a*n|dN8sN)b(G8 z_{L>0kb_5aC1)6e^^Jwp?^sP6O4_4Y${9Ni*Sm{_A9^sd3E2JKa+G*9x3(~VY}fHx z2M=wb*cy&gluW&Hp_Hnwh^KP*9W2-%muRvED`3yUvCaRw{N z1hg=otcu*1(xUCt&b7A0>(m@Tn{W%40I+nZBgM{7sC{X_(ZJq`*QzB)^XJK?44!Lk z(f-=u^|lf^6NOCoX-{nbvgexAK}C^0Xo*5LvlzS-J=a|kuiIpuqj|{5-WWhu0DY#& z-z$0^HBWoYHb+a*liA7{9!IhJEJJ6)klDx?&A@w5bH6gH(3xVmbR=i22mbGxc#k^v zw=kGTOVyJ(kTXhy`#32_B^x?ZhRiagEeQ7_jcAhx%`s$4hLCxYGkWf~u`S6Zm!mn( z$=(q07c~>9RC5@SYX%o}1)CXC{zU7JaHM?@h`H zlM0=whs!e~PtSI+4xuH!n<(LPB9M{$*$}m<1GrhK{z3fQeXIxOEOh1&E*;1jb60~9 zo7`};Ia+3r&26V=J8B1Y)@?D$94(`q>?CLW4lHLl&C_DY920?zGytG@rPf1Tma35*oB0L&K%R#Q$U~#cX4l9w~q-XS9LZ_yNZa2QS%c>{a_$H{$aISq^p^ zYILWg!`FpBA9Py|U5~~_uocM2_8L+`&=9pfa>gO{1DOb9&g}pIFA?th-E58>BC8%?_&C&GwLV=8Ke&b=TvcN{SMWm`n z&8RKIKoi)ktbl%%-j_XIXv-fC4@D{i{_HlSXxkZacI~cPf(kwA9CQ|x2iSJt{}f)A z33f>t0V3io_RI6Ey3%|GJE5Ck{xR`xJ#nwyTkVW^dNqi$2OU6o3$Ag zXgR`WxlgUHb)A$&GtH>BL~tzXPPxOTr)E=k#a?)Tj4HiUF}|hNo4jPU!Hf5^1Pt0j z-8;9I-Gma~O~`ROC}%@`jV?#a6*evliftsN(eGiK5o}TA4vT@wED6vugKZP5PZrgR zG8xcvfi0%oLDcm2qpA!jJ>r3#x*xx*q4oMjDK z!mxQc`r5Yalr?Ax!{%J>AYOBSEjP~wG!L-V3_!D~gO)zZPT9yC0i}|gU3E;Ts)cw&-N7?Hsx@YJ8?Fxx|H)}8#+D0)+3!U@O z`I`&5!y@0Ca{+D8ZbC6(1Aw2zj~CFttgMCOmg(M4I8pT7m<|ANt4martrZ?F^-Xcy zwrZ@V)%Kwt%qw_0j8SsNSKSBG&mIu*rq81ZXbvR?0HDrfbqbzkTPU_h#3wGGvCYvO z_HW50$8*>gQrSszG|v(P0QlIa%-G}UwrqiRTAr!(Zfzm z2pYXN%N8_5JQbYpG<2!tZ69o(c~0`iHPe$M?}0X3f`bh{QBQOk(VYUvK z-|Z0b&ajOFT7uwJ9q?S|cQ1%I7tq9f=XVdL6#)TF@;j%iodh&7SNUD@X320);*gvNJ>>lGK+yDRo N002ovPDHLkV1gE*YrFse diff --git a/Demo/Benchmark/webgl/TemplateData/style.css b/Demo/Benchmark/webgl/TemplateData/style.css deleted file mode 100644 index ab40751..0000000 --- a/Demo/Benchmark/webgl/TemplateData/style.css +++ /dev/null @@ -1,48 +0,0 @@ -.webgl-content * {border: 0; margin: 0; padding: 0} -.webgl-content {position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);} - -.webgl-content .logo, .progress {position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);} -.webgl-content .logo {background: url('progressLogo.Light.png') no-repeat center / contain; width: 154px; height: 130px;} -.webgl-content .progress {height: 18px; width: 141px; margin-top: 90px;} -.webgl-content .progress .empty {background: url('progressEmpty.Light.png') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;} -.webgl-content .progress .full {background: url('progressFull.Light.png') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;} - -.webgl-content .logo.Dark {background-image: url('progressLogo.Dark.png');} -.webgl-content .progress.Dark .empty {background-image: url('progressEmpty.Dark.png');} -.webgl-content .progress.Dark .full {background-image: url('progressFull.Dark.png');} - -.webgl-content .footer {margin-top: 5px; height: 38px; line-height: 38px; font-family: Helvetica, Verdana, Arial, sans-serif; font-size: 18px;} -.webgl-content .footer .webgl-logo, .title, .fullscreen {height: 100%; display: inline-block; background: transparent center no-repeat;} -.webgl-content .footer .webgl-logo {background-image: url('webgl-logo.png'); width: 204px; float: left;} -.webgl-content .footer .title {margin-right: 10px; float: right;} -.webgl-content .footer .fullscreen {background-image: url('fullscreen.png'); width: 38px; float: right;} - -#overlay { - position: absolute; - left: 0px; - bottom: 0px; - background-color: #ababab80; - font-family: Helvetica, Verdana, Arial; -} - -#section { - color: #202050; - background-color: #7d7d7d80; - font-weight: bold; - margin: 6px; - padding: 4px; -} - -#section-content { - font-weight: normal; -} - -.webgl-content .button { - /*border: 10px; margin: 10px; padding: 10px*/ - position: absolute; - top: 0px; - left: 0px; - padding: 5px; - color: #202050; - background-color: #7d7d7d; -} diff --git a/Demo/Benchmark/webgl/index.html b/Demo/Benchmark/webgl/index.html deleted file mode 100644 index 5ef34b4..0000000 --- a/Demo/Benchmark/webgl/index.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - Unity WebGL Player | Benchmark - - - - - - - - - - - -
-
-
- - - \ No newline at end of file -- GitLab