humanchat-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +188 -0
- package/demo.html +1 -0
- package/img/keyboardbtn1.77a3341c.svg +9 -0
- package/img/sendbtn1.4e0d0ce0.svg +9 -0
- package/img/stopbtn1.cbc7385c.svg +9 -0
- package/img/viocebtn1.34343bdc.svg +6 -0
- package/index.common.js +47685 -0
- package/index.common.js.map +1 -0
- package/index.css +1 -0
- package/index.umd.js +47698 -0
- package/index.umd.js.map +1 -0
- package/index.umd.min.js +28 -0
- package/index.umd.min.js.map +1 -0
- package/package.json +20 -0
package/index.umd.min.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e(function(){try{return require("vue")}catch(t){}}()):"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports["index"]=e(function(){try{return require("vue")}catch(t){}}()):t["index"]=e(t["Vue"])})("undefined"!==typeof self?self:this,(function(t){return function(){var e={34:function(t,e,n){"use strict";var i=n(4901);t.exports=function(t){return"object"==typeof t?null!==t:i(t)}},81:function(t,e,n){"use strict";var i=n(9565),r=n(9306),s=n(8551),a=n(6823),o=n(851),l=TypeError;t.exports=function(t,e){var n=arguments.length<2?o(t):e;if(r(n))return s(i(n,t));throw new l(a(t)+" is not iterable")}},116:function(t,e,n){"use strict";var i=n(6518),r=n(2652),s=n(9306),a=n(8551),o=n(1767);i({target:"Iterator",proto:!0,real:!0},{find:function(t){a(this),s(t);var e=o(this),n=0;return r(e,(function(e,i){if(t(e,n++))return i(e)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},283:function(t,e,n){"use strict";var i=n(9504),r=n(9039),s=n(4901),a=n(9297),o=n(3724),l=n(350).CONFIGURABLE,h=n(3706),c=n(1181),u=c.enforce,d=c.get,f=String,p=Object.defineProperty,g=i("".slice),m=i("".replace),_=i([].join),v=o&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),y=String(String).split("String"),b=t.exports=function(t,e,n){"Symbol("===g(f(e),0,7)&&(e="["+m(f(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!a(t,"name")||l&&t.name!==e)&&(o?p(t,"name",{value:e,configurable:!0}):t.name=e),v&&n&&a(n,"arity")&&t.length!==n.arity&&p(t,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?o&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(r){}var i=u(t);return a(i,"source")||(i.source=_(y,"string"==typeof e?e:"")),t};Function.prototype.toString=b((function(){return s(this)&&d(this).source||h(this)}),"toString")},350:function(t,e,n){"use strict";var i=n(3724),r=n(9297),s=Function.prototype,a=i&&Object.getOwnPropertyDescriptor,o=r(s,"name"),l=o&&"something"===function(){}.name,h=o&&(!i||i&&a(s,"name").configurable);t.exports={EXISTS:o,PROPER:l,CONFIGURABLE:h}},397:function(t,e,n){"use strict";var i=n(7751);t.exports=i("document","documentElement")},421:function(t){"use strict";t.exports={}},477:function(){},507:function(t,e,n){"use strict";var i=n(9565);t.exports=function(t,e,n){var r,s,a=n?t:t.iterator,o=t.next;while(!(r=i(o,a)).done)if(s=e(r.value),void 0!==s)return s}},616:function(t,e,n){"use strict";var i=n(9039);t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},655:function(t,e,n){"use strict";var i=n(6955),r=String;t.exports=function(t){if("Symbol"===i(t))throw new TypeError("Cannot convert a Symbol value to a string");return r(t)}},679:function(t,e,n){"use strict";var i=n(1625),r=TypeError;t.exports=function(t,e){if(i(e,t))return t;throw new r("Incorrect invocation")}},713:function(t,e,n){"use strict";var i=n(9565),r=n(9306),s=n(8551),a=n(1767),o=n(9462),l=n(6319),h=o((function(){var t=this.iterator,e=s(i(this.next,t)),n=this.done=!!e.done;if(!n)return l(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return s(this),r(t),new h(a(this),{mapper:t})}},728:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(5360),n(3490),n(2568),n(796))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.StreamCipher,r=e.algo,s=[],a=[],o=[],l=r.Rabbit=i.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,n=0;n<4;n++)t[n]=16711935&(t[n]<<8|t[n]>>>24)|4278255360&(t[n]<<24|t[n]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],r=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(n=0;n<4;n++)h.call(this);for(n=0;n<8;n++)r[n]^=i[n+4&7];if(e){var s=e.words,a=s[0],o=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),u=l>>>16|4294901760&c,d=c<<16|65535&l;r[0]^=l,r[1]^=u,r[2]^=c,r[3]^=d,r[4]^=l,r[5]^=u,r[6]^=c,r[7]^=d;for(n=0;n<4;n++)h.call(this)}},_doProcessBlock:function(t,e){var n=this._X;h.call(this),s[0]=n[0]^n[5]>>>16^n[3]<<16,s[1]=n[2]^n[7]>>>16^n[5]<<16,s[2]=n[4]^n[1]>>>16^n[7]<<16,s[3]=n[6]^n[3]>>>16^n[1]<<16;for(var i=0;i<4;i++)s[i]=16711935&(s[i]<<8|s[i]>>>24)|4278255360&(s[i]<<24|s[i]>>>8),t[e+i]^=s[i]},blockSize:4,ivSize:2});function h(){for(var t=this._X,e=this._C,n=0;n<8;n++)a[n]=e[n];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<a[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<a[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<a[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<a[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<a[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<a[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<a[6]>>>0?1:0)|0,this._b=e[7]>>>0<a[7]>>>0?1:0;for(n=0;n<8;n++){var i=t[n]+e[n],r=65535&i,s=i>>>16,l=((r*r>>>17)+r*s>>>15)+s*s,h=((4294901760&i)*i|0)+((65535&i)*i|0);o[n]=l^h}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=i._createHelper(l)}(),t.Rabbit}))},741:function(t){"use strict";var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var i=+t;return(i>0?n:e)(i)}},757:function(t,e,n){"use strict";var i=n(7751),r=n(4901),s=n(1625),a=n(7040),o=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return r(e)&&s(e.prototype,o(t))}},796:function(t,e,n){n(4114),function(e,i){t.exports=i(n(6763),n(2568))}(0,(function(t){t.lib.Cipher||function(e){var n=t,i=n.lib,r=i.Base,s=i.WordArray,a=i.BufferedBlockAlgorithm,o=n.enc,l=(o.Utf8,o.Base64),h=n.algo,c=h.EvpKDF,u=i.Cipher=a.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,n){this.cfg=this.cfg.extend(n),this._xformMode=t,this._key=e,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var e=this._doFinalize();return e},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?S:b}return function(e){return{encrypt:function(n,i,r){return t(i).encrypt(e,n,i,r)},decrypt:function(n,i,r){return t(i).decrypt(e,n,i,r)}}}}()}),d=(i.StreamCipher=u.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),n.mode={}),f=i.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),p=d.CBC=function(){var t=f.extend();function n(t,n,i){var r,s=this._iv;s?(r=s,this._iv=e):r=this._prevBlock;for(var a=0;a<i;a++)t[n+a]^=r[a]}return t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,r=i.blockSize;n.call(this,t,e,r),i.encryptBlock(t,e),this._prevBlock=t.slice(e,e+r)}}),t.Decryptor=t.extend({processBlock:function(t,e){var i=this._cipher,r=i.blockSize,s=t.slice(e,e+r);i.decryptBlock(t,e),n.call(this,t,e,r),this._prevBlock=s}}),t}(),g=n.pad={},m=g.Pkcs7={pad:function(t,e){for(var n=4*e,i=n-t.sigBytes%n,r=i<<24|i<<16|i<<8|i,a=[],o=0;o<i;o+=4)a.push(r);var l=s.create(a,i);t.concat(l)},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},_=(i.BlockCipher=u.extend({cfg:u.cfg.extend({mode:p,padding:m}),reset:function(){var t;u.reset.call(this);var e=this.cfg,n=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,n&&n.words):(this._mode=t.call(i,this,n&&n.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),i.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),v=n.format={},y=v.OpenSSL={stringify:function(t){var e,n=t.ciphertext,i=t.salt;return e=i?s.create([1398893684,1701076831]).concat(i).concat(n):n,e.toString(l)},parse:function(t){var e,n=l.parse(t),i=n.words;return 1398893684==i[0]&&1701076831==i[1]&&(e=s.create(i.slice(2,4)),i.splice(0,4),n.sigBytes-=16),_.create({ciphertext:n,salt:e})}},b=i.SerializableCipher=r.extend({cfg:r.extend({format:y}),encrypt:function(t,e,n,i){i=this.cfg.extend(i);var r=t.createEncryptor(n,i),s=r.finalize(e),a=r.cfg;return _.create({ciphertext:s,key:n,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,n,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var r=t.createDecryptor(n,i).finalize(e.ciphertext);return r},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),x=n.kdf={},w=x.OpenSSL={execute:function(t,e,n,i,r){if(i||(i=s.random(8)),r)a=c.create({keySize:e+n,hasher:r}).compute(t,i);else var a=c.create({keySize:e+n}).compute(t,i);var o=s.create(a.words.slice(e),4*n);return a.sigBytes=4*e,_.create({key:a,iv:o,salt:i})}},S=i.PasswordBasedCipher=b.extend({cfg:b.cfg.extend({kdf:w}),encrypt:function(t,e,n,i){i=this.cfg.extend(i);var r=i.kdf.execute(n,t.keySize,t.ivSize,i.salt,i.hasher);i.iv=r.iv;var s=b.encrypt.call(this,t,e,r.key,i);return s.mixIn(r),s},decrypt:function(t,e,n,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var r=i.kdf.execute(n,t.keySize,t.ivSize,e.salt,i.hasher);i.iv=r.iv;var s=b.decrypt.call(this,t,e,r.key,i);return s}})}()}))},851:function(t,e,n){"use strict";var i=n(6955),r=n(5966),s=n(4117),a=n(6269),o=n(8227),l=o("iterator");t.exports=function(t){if(!s(t))return r(t,l)||r(t,"@@iterator")||a[i(t)]}},1014:function(t,e,n){n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),function(e,i){t.exports=i(n(6763))}(0,(function(t){return function(){if("function"==typeof ArrayBuffer){var e=t,n=e.lib,i=n.WordArray,r=i.init,s=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!==typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var e=t.byteLength,n=[],i=0;i<e;i++)n[i>>>2]|=t[i]<<24-i%4*8;r.call(this,n,e)}else r.apply(this,arguments)};s.prototype=i}}(),t.lib.WordArray}))},1072:function(t,e,n){"use strict";var i=n(1828),r=n(8727);t.exports=Object.keys||function(t){return i(t,r)}},1108:function(t,e,n){"use strict";var i=n(6955);t.exports=function(t){var e=i(t);return"BigInt64Array"===e||"BigUint64Array"===e}},1181:function(t,e,n){"use strict";var i,r,s,a=n(8622),o=n(4576),l=n(34),h=n(6699),c=n(9297),u=n(7629),d=n(6119),f=n(421),p="Object already initialized",g=o.TypeError,m=o.WeakMap,_=function(t){return s(t)?r(t):i(t,{})},v=function(t){return function(e){var n;if(!l(e)||(n=r(e)).type!==t)throw new g("Incompatible receiver, "+t+" required");return n}};if(a||u.state){var y=u.state||(u.state=new m);y.get=y.get,y.has=y.has,y.set=y.set,i=function(t,e){if(y.has(t))throw new g(p);return e.facade=t,y.set(t,e),e},r=function(t){return y.get(t)||{}},s=function(t){return y.has(t)}}else{var b=d("state");f[b]=!0,i=function(t,e){if(c(t,b))throw new g(p);return e.facade=t,h(t,b,e),e},r=function(t){return c(t,b)?t[b]:{}},s=function(t){return c(t,b)}}t.exports={set:i,get:r,has:s,enforce:_,getterFor:v}},1291:function(t,e,n){"use strict";var i=n(741);t.exports=function(t){var e=+t;return e!==e||0===e?0:i(e)}},1364:function(t,e,n){n(4114),function(e,n){t.exports=n()}(0,(function(){"use strict";function t(t,e,n,i){return new(n||(n=Promise))((function(r,s){function a(t){try{l(i.next(t))}catch(t){s(t)}}function o(t){try{l(i.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,o)}l((i=i.apply(t,e||[])).next())}))}function e(t,e){var n,i,r,s,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,o[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(r=a.trys,!((r=r.length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}function n(){var t,e=navigator,n=e.getUserMedia||e.webkitGetUserMedia||e.mozGetUserMedia;return(null===(t=e.mediaDevices)||void 0===t?void 0:t.getUserMedia)?e.mediaDevices.getUserMedia({audio:!0,video:!1}):n?new Promise((function(t,e){n.call(navigator,{audio:!0,video:!1},(function(e){t(e)}),(function(t){e(t)}))})):Promise.reject(new Error("不支持录音"))}var i;function r(n,r){return t(this,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return[3,2];case 1:return e.sent(),[2,new AudioWorkletNode(n,"processor-worklet")];case 2:return(t=i)?[3,4]:[4,new Worker("".concat(r,"/processor.worker.js"))];case 3:t=e.sent(),e.label=4;case 4:return[2,{port:i=t}]}}))}))}return function(){function i(t){this.processorPath=t,this.audioBuffers=[]}return i.prototype.start=function(i){var s,a=i.sampleRate,o=i.frameSize,l=i.arrayBufferType;return t(this,void 0,void 0,(function(){var t,i,h,c,u,d,f;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,3,,4]),(t=this).audioBuffers=[],[4,n()];case 1:return i=e.sent(),this.audioTracks=i.getAudioTracks(),h=function(t,e){var n;try{(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:e})).createMediaStreamSource(t)}catch(e){null==n||n.close(),(n=new(window.AudioContext||window.webkitAudioContext)).createMediaStreamSource(t)}return n}(i,a),this.audioContext=h,c=h.createMediaStreamSource(i),[4,r(h,this.processorPath)];case 2:return u=e.sent(),this.audioWorklet=u,u.port.postMessage({type:"init",data:{frameSize:o,toSampleRate:a||h.sampleRate,fromSampleRate:h.sampleRate,arrayBufferType:l||"short16"}}),u.port.onmessage=function(e){var n=e.data,i=n.frameBuffer,r=n.isLastFrame;if(o&&t.onFrameRecorded)if(null==i?void 0:i.byteLength)for(var s=0;s<i.byteLength;)t.onFrameRecorded({isLastFrame:r&&s+o>=i.byteLength,frameBuffer:e.data.frameBuffer.slice(s,s+o)}),s+=o;else t.onFrameRecorded(e.data);t.onStop&&(i&&t.audioBuffers.push(i),r&&t.onStop(t.audioBuffers))},(d=h.createScriptProcessor(0,1,1)).onaudioprocess=function(t){u.port.postMessage({type:"message",data:t.inputBuffer.getChannelData(0)})},c.connect(d),d.connect(h.destination),h.resume(),null===(s=this.onStart)||void 0===s||s.call(this),[3,4];case 3:return f=e.sent(),console.error(f),[3,4];case 4:return[2]}}))}))},i.prototype.stop=function(){var t,e,n,i;null===(t=this.audioWorklet)||void 0===t||t.port.postMessage({type:"stop"}),null===(e=this.audioTracks)||void 0===e||e[0].stop(),"running"===(null===(n=this.audioContext)||void 0===n?void 0:n.state)&&(null===(i=this.audioContext)||void 0===i||i.close())},i}()}))},1548:function(t,e,n){"use strict";var i=n(4576),r=n(9039),s=n(9519),a=n(4215),o=i.structuredClone;t.exports=!!o&&!r((function(){if("DENO"===a&&s>92||"NODE"===a&&s>94||"BROWSER"===a&&s>97)return!1;var t=new ArrayBuffer(8),e=o(t,{transfer:[t]});return 0!==t.byteLength||8!==e.byteLength}))},1625:function(t,e,n){"use strict";var i=n(9504);t.exports=i({}.isPrototypeOf)},1698:function(t,e,n){"use strict";var i=n(6518),r=n(4204),s=n(4916);i({target:"Set",proto:!0,real:!0,forced:!s("union")},{union:r})},1701:function(t,e,n){"use strict";var i=n(6518),r=n(713),s=n(6395);i({target:"Iterator",proto:!0,real:!0,forced:s},{map:r})},1767:function(t){"use strict";t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},1806:function(t,e,n){"use strict";var i=n(6518),r=n(8551),s=n(2652),a=n(1767),o=[].push;i({target:"Iterator",proto:!0,real:!0},{toArray:function(){var t=[];return s(a(r(this)),o,{that:t,IS_RECORD:!0}),t}})},1828:function(t,e,n){"use strict";var i=n(9504),r=n(9297),s=n(5397),a=n(9617).indexOf,o=n(421),l=i([].push);t.exports=function(t,e){var n,i=s(t),h=0,c=[];for(n in i)!r(o,n)&&r(i,n)&&l(c,n);while(e.length>h)r(i,n=e[h++])&&(~a(c,n)||l(c,n));return c}},2106:function(t,e,n){"use strict";var i=n(283),r=n(4913);t.exports=function(t,e,n){return n.get&&i(n.get,e,{getter:!0}),n.set&&i(n.set,e,{setter:!0}),r.f(t,e,n)}},2140:function(t,e,n){"use strict";var i=n(8227),r=i("toStringTag"),s={};s[r]="z",t.exports="[object z]"===String(s)},2195:function(t,e,n){"use strict";var i=n(9504),r=i({}.toString),s=i("".slice);t.exports=function(t){return s(r(t),8,-1)}},2211:function(t,e,n){"use strict";var i=n(9039);t.exports=!i((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},2360:function(t,e,n){"use strict";var i,r=n(8551),s=n(6801),a=n(8727),o=n(421),l=n(397),h=n(4055),c=n(6119),u=">",d="<",f="prototype",p="script",g=c("IE_PROTO"),m=function(){},_=function(t){return d+p+u+t+d+"/"+p+u},v=function(t){t.write(_("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){var t,e=h("iframe"),n="java"+p+":";return e.style.display="none",l.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(_("document.F=Object")),t.close(),t.F},b=function(){try{i=new ActiveXObject("htmlfile")}catch(e){}b="undefined"!=typeof document?document.domain&&i?v(i):y():v(i);var t=a.length;while(t--)delete b[f][a[t]];return b()};o[g]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(m[f]=r(t),n=new m,m[f]=null,n[g]=t):n=b(),void 0===e?n:s.f(n,e)}},2475:function(t,e,n){"use strict";var i=n(6518),r=n(8527),s=n(4916),a=!s("isSupersetOf",(function(t){return!t}));i({target:"Set",proto:!0,real:!0,forced:a},{isSupersetOf:r})},2482:function(t,e,n){n(4114),function(e,i){t.exports=i(n(6763))}(0,(function(t){return function(e){var n=t,i=n.lib,r=i.Base,s=i.WordArray,a=n.x64={};a.Word=r.extend({init:function(t,e){this.high=t,this.low=e}}),a.WordArray=r.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:8*t.length},toX32:function(){for(var t=this.words,e=t.length,n=[],i=0;i<e;i++){var r=t[i];n.push(r.high),n.push(r.low)}return s.create(n,this.sigBytes)},clone:function(){for(var t=r.clone.call(this),e=t.words=this.words.slice(0),n=e.length,i=0;i<n;i++)e[i]=e[i].clone();return t}})}(),t}))},2489:function(t,e,n){"use strict";var i=n(6518),r=n(9565),s=n(9306),a=n(8551),o=n(1767),l=n(9462),h=n(6319),c=n(6395),u=l((function(){var t,e,n,i=this.iterator,s=this.predicate,o=this.next;while(1){if(t=a(r(o,i)),e=this.done=!!t.done,e)return;if(n=t.value,h(i,s,[n,this.counter++],!0))return n}}));i({target:"Iterator",proto:!0,real:!0,forced:c},{filter:function(t){return a(this),s(t),new u(o(this),{predicate:t})}})},2529:function(t){"use strict";t.exports=function(t,e){return{value:t,done:e}}},2545:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.mode.CTR=function(){var e=t.lib.BlockCipherMode.extend(),n=e.Encryptor=e.extend({processBlock:function(t,e){var n=this._cipher,i=n.blockSize,r=this._iv,s=this._counter;r&&(s=this._counter=r.slice(0),this._iv=void 0);var a=s.slice(0);n.encryptBlock(a,0),s[i-1]=s[i-1]+1|0;for(var o=0;o<i;o++)t[e+o]^=a[o]}});return e.Decryptor=n,e}(),t.mode.CTR}))},2554:function(t,e,n){n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),function(e,n){t.exports=n()}(0,(function(){"use strict";class t{constructor(t){this.init(t)}init(t){const e={inputCodec:"Int16",channels:1,sampleRate:8e3,flushTime:1e3,fftSize:2048};this.option=Object.assign({},e,t),this.samples=new Float32Array,this.interval=setInterval(this.flush.bind(this),this.option.flushTime),this.convertValue=this.getConvertValue(),this.typedArray=this.getTypedArray(),this.initAudioContext(),this.bindAudioContextEvent()}getConvertValue(){const t={Int8:128,Int16:32768,Int32:2147483648,Float32:1};if(!t[this.option.inputCodec])throw new Error("wrong codec.please input one of these codecs:Int8,Int16,Int32,Float32");return t[this.option.inputCodec]}getTypedArray(){const t={Int8:Int8Array,Int16:Int16Array,Int32:Int32Array,Float32:Float32Array};if(!t[this.option.inputCodec])throw new Error("wrong codec.please input one of these codecs:Int8,Int16,Int32,Float32");return t[this.option.inputCodec]}initAudioContext(){this.audioCtx=new(window.AudioContext||window.webkitAudioContext),this.gainNode=this.audioCtx.createGain(),this.gainNode.gain.value=.1,this.gainNode.connect(this.audioCtx.destination),this.startTime=this.audioCtx.currentTime,this.analyserNode=this.audioCtx.createAnalyser(),this.analyserNode.fftSize=this.option.fftSize}static isTypedArray(t){return t.byteLength&&t.buffer&&t.buffer.constructor==ArrayBuffer||t.constructor==ArrayBuffer}isSupported(e){if(!t.isTypedArray(e))throw new Error("请传入ArrayBuffer或者任意TypedArray");return!0}feed(t){this.isSupported(t),t=this.getFormattedValue(t);const e=new Float32Array(this.samples.length+t.length);e.set(this.samples,0),e.set(t,this.samples.length),this.samples=e}getFormattedValue(t){t=t.constructor==ArrayBuffer?new this.typedArray(t):new this.typedArray(t.buffer);let e=new Float32Array(t.length);for(let n=0;n<t.length;n++)e[n]=t[n]/this.convertValue;return e}volume(t){this.gainNode.gain.value=t}destroy(){this.interval&&clearInterval(this.interval),this.samples=null,this.audioCtx.close(),this.audioCtx=null}flush(){if(!this.samples.length)return;const t=this;var e=this.audioCtx.createBufferSource();"function"===typeof this.option.onended&&(e.onended=function(e){t.option.onended(this,e)});const n=this.samples.length/this.option.channels,i=this.audioCtx.createBuffer(this.option.channels,n,this.option.sampleRate);for(let r=0;r<this.option.channels;r++){const t=i.getChannelData(r);let e=r,s=50;for(let i=0;i<n;i++)t[i]=this.samples[e],i<50&&(t[i]=t[i]*i/50),i>=n-51&&(t[i]=t[i]*s--/50),e+=this.option.channels}this.startTime<this.audioCtx.currentTime&&(this.startTime=this.audioCtx.currentTime),e.buffer=i,e.connect(this.gainNode),e.connect(this.analyserNode),e.start(this.startTime),this.startTime+=i.duration,this.samples=new Float32Array}async pause(){await this.audioCtx.suspend()}async continue(){await this.audioCtx.resume()}bindAudioContextEvent(){const t=this;"function"===typeof t.option.onstatechange&&(this.audioCtx.onstatechange=function(e){t.audioCtx&&t.option.onstatechange(this,e,t.audioCtx.state)})}}return t}))},2568:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(3005),n(4767))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.Base,r=n.WordArray,s=e.algo,a=s.MD5,o=s.EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:a,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){var n,i=this.cfg,s=i.hasher.create(),a=r.create(),o=a.words,l=i.keySize,h=i.iterations;while(o.length<l){n&&s.update(n),n=s.update(t).finalize(e),s.reset();for(var c=1;c<h;c++)n=s.finalize(n),s.reset();a.concat(n)}return a.sigBytes=4*l,a}});e.EvpKDF=function(t,e,n){return o.create(n).compute(t,e)}}(),t.EvpKDF}))},2603:function(t,e,n){"use strict";var i=n(655);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:i(t)}},2652:function(t,e,n){"use strict";var i=n(6080),r=n(9565),s=n(8551),a=n(6823),o=n(4209),l=n(6198),h=n(1625),c=n(81),u=n(851),d=n(9539),f=TypeError,p=function(t,e){this.stopped=t,this.result=e},g=p.prototype;t.exports=function(t,e,n){var m,_,v,y,b,x,w,S=n&&n.that,T=!(!n||!n.AS_ENTRIES),M=!(!n||!n.IS_RECORD),E=!(!n||!n.IS_ITERATOR),A=!(!n||!n.INTERRUPTED),R=i(e,S),z=function(t){return m&&d(m,"normal",t),new p(!0,t)},C=function(t){return T?(s(t),A?R(t[0],t[1],z):R(t[0],t[1])):A?R(t,z):R(t)};if(M)m=t.iterator;else if(E)m=t;else{if(_=u(t),!_)throw new f(a(t)+" is not iterable");if(o(_)){for(v=0,y=l(t);y>v;v++)if(b=C(t[v]),b&&h(g,b))return b;return new p(!1)}m=c(t,_)}x=M?t.next:m.next;while(!(w=r(x,m)).done){try{b=C(w.value)}catch(P){d(m,"throw",P)}if("object"==typeof b&&b&&h(g,b))return b}return new p(!1)}},2730:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){
|
|
2
|
+
/** @preserve
|
|
3
|
+
* Counter block mode compatible with Dr Brian Gladman fileenc.c
|
|
4
|
+
* derived from CryptoJS.mode.CTR
|
|
5
|
+
* Jan Hruby jhruby.web@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
return t.mode.CTRGladman=function(){var e=t.lib.BlockCipherMode.extend();function n(t){if(255===(t>>24&255)){var e=t>>16&255,n=t>>8&255,i=255&t;255===e?(e=0,255===n?(n=0,255===i?i=0:++i):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=i}else t+=1<<24;return t}function i(t){return 0===(t[0]=n(t[0]))&&(t[1]=n(t[1])),t}var r=e.Encryptor=e.extend({processBlock:function(t,e){var n=this._cipher,r=n.blockSize,s=this._iv,a=this._counter;s&&(a=this._counter=s.slice(0),this._iv=void 0),i(a);var o=a.slice(0);n.encryptBlock(o,0);for(var l=0;l<r;l++)t[e+l]^=o[l]}});return e.Decryptor=r,e}(),t.mode.CTRGladman}))},2775:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.CipherParams,r=e.enc,s=r.Hex,a=e.format;a.Hex={stringify:function(t){return t.ciphertext.toString(s)},parse:function(t){var e=s.parse(t);return i.create({ciphertext:e})}}}(),t.format.Hex}))},2777:function(t,e,n){"use strict";var i=n(9565),r=n(34),s=n(757),a=n(5966),o=n(4270),l=n(8227),h=TypeError,c=l("toPrimitive");t.exports=function(t,e){if(!r(t)||s(t))return t;var n,l=a(t,c);if(l){if(void 0===e&&(e="default"),n=i(l,t,e),!r(n)||s(n))return n;throw new h("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(t,e)}},2787:function(t,e,n){"use strict";var i=n(9297),r=n(4901),s=n(8981),a=n(6119),o=n(2211),l=a("IE_PROTO"),h=Object,c=h.prototype;t.exports=o?h.getPrototypeOf:function(t){var e=s(t);if(i(e,l))return e[l];var n=e.constructor;return r(n)&&e instanceof n?n.prototype:e instanceof h?c:null}},2796:function(t,e,n){"use strict";var i=n(9039),r=n(4901),s=/#|\.prototype\./,a=function(t,e){var n=l[o(t)];return n===c||n!==h&&(r(e)?i(e):!!e)},o=a.normalize=function(t){return String(t).replace(s,".").toLowerCase()},l=a.data={},h=a.NATIVE="N",c=a.POLYFILL="P";t.exports=a},2812:function(t){"use strict";var e=TypeError;t.exports=function(t,n){if(t<n)throw new e("Not enough arguments");return t}},2839:function(t,e,n){"use strict";var i=n(4576),r=i.navigator,s=r&&r.userAgent;t.exports=s?String(s):""},2898:function(t,e,n){n(4114),n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),function(t){var e="object"==typeof window&&!!window.document,n=e?window:Object,i=n.Recorder;t(i)}((function(t){"use strict";function e(){var t=function(t){return Math.log(t)/Math.log(10)},n=function(t){throw new Error("abort("+t+")")};function i(t){return new Int8Array(t)}function r(t){return new Int16Array(t)}function s(t){return new Int32Array(t)}function a(t){return new Float32Array(t)}function o(t){return new Float64Array(t)}function l(t){if(1==t.length)return a(t[0]);var e=t[0];t=t.slice(1);for(var n=[],i=0;i<e;i++)n.push(l(t));return n}function h(t){if(1==t.length)return s(t[0]);var e=t[0];t=t.slice(1);for(var n=[],i=0;i<e;i++)n.push(h(t));return n}function c(t){if(1==t.length)return r(t[0]);var e=t[0];t=t.slice(1);for(var n=[],i=0;i<e;i++)n.push(c(t));return n}function u(t){if(1==t.length)return new Array(t[0]);var e=t[0];t=t.slice(1);for(var n=[],i=0;i<e;i++)n.push(u(t));return n}var d={fill:function(t,e,n,i){if(2==arguments.length)for(var r=0;r<t.length;r++)t[r]=arguments[1];else for(r=e;r<n;r++)t[r]=i}},f={arraycopy:function(t,e,n,i,r){var s=e+r;while(e<s)n[i++]=t[e++]}},p={};function g(t){this.ordinal=t}p.SQRT2=1.4142135623730951,p.FAST_LOG10=function(e){return t(e)},p.FAST_LOG10_X=function(e,n){return t(e)*n},g.short_block_allowed=new g(0),g.short_block_coupled=new g(1),g.short_block_dispensed=new g(2),g.short_block_forced=new g(3);var m={};function _(t){this.ordinal=t}m.MAX_VALUE=34028235e31,_.vbr_off=new _(0),_.vbr_mt=new _(1),_.vbr_rh=new _(2),_.vbr_abr=new _(3),_.vbr_mtrh=new _(4),_.vbr_default=_.vbr_mtrh;function v(t){var e=t;this.ordinal=function(){return e}}function y(){var t=3,e=98,n=4;this.getLameShortVersion=function(){return t+"."+e+"."+n}}function b(){var t=null;function e(t){this.bits=0|t}this.qupvt=null,this.setModules=function(e){this.qupvt=e,t=e};var i=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]];function r(t,e,n,i,r,s){var a=.5946/e;t>>=1;while(0!=t--)r[s++]=a>n[i++]?0:1,r[s++]=a>n[i++]?0:1}function a(e,n,i,r,s,a){e>>=1;var o=e%2;e>>=1;while(0!=e--){var l,h,c,u,d,f,p,g;l=i[r++]*n,h=i[r++]*n,d=0|l,c=i[r++]*n,f=0|h,u=i[r++]*n,p=0|c,l+=t.adj43[d],g=0|u,h+=t.adj43[f],s[a++]=0|l,c+=t.adj43[p],s[a++]=0|h,u+=t.adj43[g],s[a++]=0|c,s[a++]=0|u}0!=o&&(l=i[r++]*n,h=i[r++]*n,d=0|l,f=0|h,l+=t.adj43[d],h+=t.adj43[f],s[a++]=0|l,s[a++]=0|h)}function o(e,i,s,o,l){var h,c,u,f=0,p=0,g=0,m=0,_=i,v=0,y=_,b=0,x=e,w=0;for(u=null!=l&&o.global_gain==l.global_gain,c=o.block_type==q.SHORT_TYPE?38:21,h=0;h<=c;h++){var S=-1;if((u||o.block_type==q.NORM_TYPE)&&(S=o.global_gain-(o.scalefac[h]+(0!=o.preflag?t.pretab[h]:0)<<o.scalefac_scale+1)-8*o.subblock_gain[o.window[h]]),u&&l.step[h]==S)0!=p&&(a(p,s,x,w,y,b),p=0),0!=g&&n();else{var T,M=o.width[h];if(f+o.width[h]>o.max_nonzero_coeff)T=o.max_nonzero_coeff-f+1,d.fill(i,o.max_nonzero_coeff,576,0),M=T,M<0&&(M=0),h=c+1;if(0==p&&0==g&&(y=_,b=v,x=e,w=m),null!=l&&l.sfb_count1>0&&h>=l.sfb_count1&&l.step[h]>0&&S>=l.step[h]?(0!=p&&(a(p,s,x,w,y,b),p=0,y=_,b=v,x=e,w=m),g+=M):(0!=g&&(r(g,s,x,w,y,b),g=0,y=_,b=v,x=e,w=m),p+=M),M<=0){0!=g&&n(),0!=p&&n();break}}h<=c&&(v+=o.width[h],m+=o.width[h],f+=o.width[h])}0!=p&&(a(p,s,x,w,y,b),p=0),0!=g&&n()}function l(t,e,n){var i=0,r=0;do{var s=t[e++],a=t[e++];i<s&&(i=s),r<a&&(r=a)}while(e<n);return i<r&&(i=r),i}function h(t,e,n,i,r,s){var a,o=65536*A.ht[i].xlen+A.ht[r].xlen,l=0;do{var h=t[e++],c=t[e++];0!=h&&(h>14&&(h=15,l+=o),h*=16),0!=c&&(c>14&&(c=15,l+=o),h+=c),l+=A.largetbl[h]}while(e<n);return a=65535&l,l>>=16,l>a&&(l=a,i=r),s.bits+=l,i}function c(t,e,n,i){var r=0,s=A.ht[1].hlen;do{var a=2*t[e+0]+t[e+1];e+=2,r+=s[a]}while(e<n);return i.bits+=r,1}function u(t,e,n,i,r){var s,a,o=0,l=A.ht[i].xlen;a=2==i?A.table23:A.table56;do{var h=t[e+0]*l+t[e+1];e+=2,o+=a[h]}while(e<n);return s=65535&o,o>>=16,o>s&&(o=s,i++),r.bits+=o,i}function f(t,e,n,i,r){var s=0,a=0,o=0,l=A.ht[i].xlen,h=A.ht[i].hlen,c=A.ht[i+1].hlen,u=A.ht[i+2].hlen;do{var d=t[e+0]*l+t[e+1];e+=2,s+=h[d],a+=c[d],o+=u[d]}while(e<n);var f=i;return s>a&&(s=a,f++),s>o&&(s=o,f=i+2),r.bits+=s,f}var p=[1,2,5,7,7,10,10,13,13,13,13,13,13,13,13];function g(t,e,i,r){var s=l(t,e,i);switch(s){case 0:return s;case 1:return c(t,e,i,r);case 2:case 3:return u(t,e,i,p[s-1],r);case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:return f(t,e,i,p[s-1],r);default:var a,o;for(s>j.IXMAX_VAL&&n(),s-=15,a=24;a<32;a++)if(A.ht[a].linmax>=s)break;for(o=a-8;o<24;o++)if(A.ht[o].linmax>=s)break;return h(t,e,i,o,a,r)}}function m(t,n,i,r,s,a,o){for(var l=n.big_values,h=0;h<=22;h++)r[h]=j.LARGE_BITS;for(h=0;h<16;h++){var c=t.scalefac_band.l[h+1];if(c>=l)break;var u=0,d=new e(u),f=g(i,0,c,d);u=d.bits;for(var p=0;p<8;p++){var m=t.scalefac_band.l[h+p+2];if(m>=l)break;var _=u;d=new e(_);var v=g(i,c,m,d);_=d.bits,r[h+p]>_&&(r[h+p]=_,s[h+p]=h,a[h+p]=f,o[h+p]=v)}}}function _(t,n,i,r,s,a,o,l){for(var h=n.big_values,c=2;c<q.SBMAX_l+1;c++){var u=t.scalefac_band.l[c];if(u>=h)break;var d=s[c-2]+n.count1bits;if(i.part2_3_length<=d)break;var f=new e(d),p=g(r,u,h,f);d=f.bits,i.part2_3_length<=d||(i.assign(n),i.part2_3_length=d,i.region0_count=a[c-2],i.region1_count=c-2-a[c-2],i.table_select[0]=o[c-2],i.table_select[1]=l[c-2],i.table_select[2]=p)}}this.noquant_count_bits=function(t,i,r){var s=i.l3_enc,a=Math.min(576,i.max_nonzero_coeff+2>>1<<1);for(null!=r&&(r.sfb_count1=0);a>1;a-=2)if(0!=(s[a-1]|s[a-2]))break;i.count1=a;for(var o=0,l=0;a>3;a-=4){var h;if((2147483647&(s[a-1]|s[a-2]|s[a-3]|s[a-4]))>1)break;h=2*(2*(2*s[a-4]+s[a-3])+s[a-2])+s[a-1],o+=A.t32l[h],l+=A.t33l[h]}var c=o;if(i.count1table_select=0,o>l&&(c=l,i.count1table_select=1),i.count1bits=c,i.big_values=a,0==a)return c;if(i.block_type==q.SHORT_TYPE)o=3*t.scalefac_band.s[3],o>i.big_values&&(o=i.big_values),l=i.big_values;else if(i.block_type==q.NORM_TYPE){if(o=i.region0_count=t.bv_scf[a-2],l=i.region1_count=t.bv_scf[a-1],l=t.scalefac_band.l[o+l+2],o=t.scalefac_band.l[o+1],l<a){var u=new e(c);i.table_select[2]=g(s,l,a,u),c=u.bits}}else i.region0_count=7,i.region1_count=q.SBMAX_l-1-7-1,o=t.scalefac_band.l[8],l=a,o>l&&(o=l);if(o=Math.min(o,a),l=Math.min(l,a),0<o){u=new e(c);i.table_select[0]=g(s,0,o,u),c=u.bits}if(o<l){u=new e(c);i.table_select[1]=g(s,o,l,u),c=u.bits}if(2==t.use_best_huffman&&n(),null!=r&&i.block_type==q.NORM_TYPE){var d=0;while(t.scalefac_band.l[d]<i.big_values)d++;r.sfb_count1=d}return c},this.count_bits=function(e,i,r,s){var a=r.l3_enc,l=j.IXMAX_VAL/t.IPOW20(r.global_gain);return r.xrpow_max>l?j.LARGE_BITS:(o(i,a,t.IPOW20(r.global_gain),r,s),0!=(2&e.substep_shaping)&&n(),this.noquant_count_bits(e,r,s))},this.best_huffman_divide=function(t,n){var i=new O,r=n.l3_enc,a=s(23),o=s(23),l=s(23),h=s(23);if(n.block_type!=q.SHORT_TYPE||1!=t.mode_gr){i.assign(n),n.block_type==q.NORM_TYPE&&(m(t,n,r,a,o,l,h),_(t,i,n,r,a,o,l,h));var c=i.big_values;if(!(0==c||(r[c-2]|r[c-1])>1)&&(c=n.count1+2,!(c>576))){i.assign(n),i.count1=c;for(var u=0,d=0;c>i.big_values;c-=4){var f=2*(2*(2*r[c-4]+r[c-3])+r[c-2])+r[c-1];u+=A.t32l[f],d+=A.t33l[f]}if(i.big_values=c,i.count1table_select=0,u>d&&(u=d,i.count1table_select=1),i.count1bits=u,i.block_type==q.NORM_TYPE)_(t,i,n,r,a,o,l,h);else{if(i.part2_3_length=u,u=t.scalefac_band.l[8],u>c&&(u=c),u>0){var p=new e(i.part2_3_length);i.table_select[0]=g(r,0,u,p),i.part2_3_length=p.bits}if(c>u){p=new e(i.part2_3_length);i.table_select[1]=g(r,u,c,p),i.part2_3_length=p.bits}n.part2_3_length>i.part2_3_length&&n.assign(i)}}}};var v=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],y=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],x=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],w=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];function S(t,e){for(var n,i=e.tt[1][t],r=e.tt[0][t],s=0;s<A.scfsi_band.length-1;s++){for(n=A.scfsi_band[s];n<A.scfsi_band[s+1];n++)if(r.scalefac[n]!=i.scalefac[n]&&i.scalefac[n]>=0)break;if(n==A.scfsi_band[s+1]){for(n=A.scfsi_band[s];n<A.scfsi_band[s+1];n++)i.scalefac[n]=-1;e.scfsi[t][s]=1}}var a=0,o=0;for(n=0;n<11;n++)-1!=i.scalefac[n]&&(o++,a<i.scalefac[n]&&(a=i.scalefac[n]));for(var l=0,h=0;n<q.SBPSY_l;n++)-1!=i.scalefac[n]&&(h++,l<i.scalefac[n]&&(l=i.scalefac[n]));for(s=0;s<16;s++)if(a<v[s]&&l<y[s]){var c=x[s]*o+w[s]*h;i.part2_length>c&&(i.part2_length=c,i.scalefac_compress=s)}}b.slen1_tab=x,b.slen2_tab=w,this.best_scalefac_store=function(e,n,i,r){var s,a,o,l,h=r.tt[n][i],c=0;for(o=0,s=0;s<h.sfbmax;s++){var u=h.width[s];for(o+=u,l=-u;l<0;l++)if(0!=h.l3_enc[l+o])break;0==l&&(h.scalefac[s]=c=-2)}if(0==h.scalefac_scale&&0==h.preflag){var d=0;for(s=0;s<h.sfbmax;s++)h.scalefac[s]>0&&(d|=h.scalefac[s]);if(0==(1&d)&&0!=d){for(s=0;s<h.sfbmax;s++)h.scalefac[s]>0&&(h.scalefac[s]>>=1);h.scalefac_scale=c=1}}if(0==h.preflag&&h.block_type!=q.SHORT_TYPE&&2==e.mode_gr){for(s=11;s<q.SBPSY_l;s++)if(h.scalefac[s]<t.pretab[s]&&-2!=h.scalefac[s])break;if(s==q.SBPSY_l){for(s=11;s<q.SBPSY_l;s++)h.scalefac[s]>0&&(h.scalefac[s]-=t.pretab[s]);h.preflag=c=1}}for(a=0;a<4;a++)r.scfsi[i][a]=0;for(2==e.mode_gr&&1==n&&r.tt[0][i].block_type!=q.SHORT_TYPE&&r.tt[1][i].block_type!=q.SHORT_TYPE&&(S(i,r),c=0),s=0;s<h.sfbmax;s++)-2==h.scalefac[s]&&(h.scalefac[s]=0);0!=c&&(2==e.mode_gr?this.scale_bitcount(h):this.scale_bitcount_lsf(e,h))};var T=[0,18,36,54,54,36,54,72,54,72,90,72,90,108,108,126],M=[0,18,36,54,51,35,53,71,52,70,88,69,87,105,104,122],E=[0,10,20,30,33,21,31,41,32,42,52,43,53,63,64,74];this.scale_bitcount=function(e){var n,i,r,s=0,a=0,o=e.scalefac;if(e.block_type==q.SHORT_TYPE)r=T,0!=e.mixed_block_flag&&(r=M);else if(r=E,0==e.preflag){for(i=11;i<q.SBPSY_l;i++)if(o[i]<t.pretab[i])break;if(i==q.SBPSY_l)for(e.preflag=1,i=11;i<q.SBPSY_l;i++)o[i]-=t.pretab[i]}for(i=0;i<e.sfbdivide;i++)s<o[i]&&(s=o[i]);for(;i<e.sfbmax;i++)a<o[i]&&(a=o[i]);for(e.part2_length=j.LARGE_BITS,n=0;n<16;n++)s<v[n]&&a<y[n]&&e.part2_length>r[n]&&(e.part2_length=r[n],e.scalefac_compress=n);return e.part2_length==j.LARGE_BITS};var R=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(e,n){var i,r,a,o,l,h,c,u,d=s(4),f=n.scalefac;for(i=0!=n.preflag?2:0,c=0;c<4;c++)d[c]=0;if(n.block_type==q.SHORT_TYPE){r=1;var p=t.nr_of_sfb_block[i][r];for(u=0,a=0;a<4;a++)for(o=p[a]/3,c=0;c<o;c++,u++)for(l=0;l<3;l++)f[3*u+l]>d[a]&&(d[a]=f[3*u+l])}else{r=0;p=t.nr_of_sfb_block[i][r];for(u=0,a=0;a<4;a++)for(o=p[a],c=0;c<o;c++,u++)f[u]>d[a]&&(d[a]=f[u])}for(h=!1,a=0;a<4;a++)d[a]>R[i][a]&&(h=!0);if(!h){var g,m,_,v;for(n.sfb_partition_table=t.nr_of_sfb_block[i][r],a=0;a<4;a++)n.slen[a]=z[d[a]];switch(g=n.slen[0],m=n.slen[1],_=n.slen[2],v=n.slen[3],i){case 0:n.scalefac_compress=(5*g+m<<4)+(_<<2)+v;break;case 1:n.scalefac_compress=400+(5*g+m<<2)+_;break;case 2:n.scalefac_compress=500+3*g+m;break;default:break}}if(!h)for(n.part2_length=0,a=0;a<4;a++)n.part2_length+=n.slen[a]*n.sfb_partition_table[a];return h};var z=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(t){for(var e=2;e<=576;e+=2){var n,r=0;while(t.scalefac_band.l[++r]<e);n=i[r][0];while(t.scalefac_band.l[n+1]>e)n--;n<0&&(n=i[r][0]),t.bv_scf[e-2]=n,n=i[r][1];while(t.scalefac_band.l[n+t.bv_scf[e-2]+2]>e)n--;n<0&&(n=i[r][1]),t.bv_scf[e-1]=n}}}function x(){}function w(){function t(t,e,n,i,r,s,a,o,l,h,c,u,d,f){this.quant_comp=e,this.quant_comp_s=n,this.safejoint=i,this.nsmsfix=r,this.st_lrm=s,this.st_s=a,this.nsbass=o,this.scale=l,this.masking_adj=h,this.ath_lower=c,this.ath_curve=u,this.interch=d,this.sfscale=f}var e;function i(t,e,i){n()}this.setModules=function(t){e=t};var r=[new t(8,9,9,0,0,6.6,145,0,.95,0,-30,11,.0012,1),new t(16,9,9,0,0,6.6,145,0,.95,0,-25,11,.001,1),new t(24,9,9,0,0,6.6,145,0,.95,0,-20,11,.001,1),new t(32,9,9,0,0,6.6,145,0,.95,0,-15,11,.001,1),new t(40,9,9,0,0,6.6,145,0,.95,0,-10,11,9e-4,1),new t(48,9,9,0,0,6.6,145,0,.95,0,-10,11,9e-4,1),new t(56,9,9,0,0,6.6,145,0,.95,0,-6,11,8e-4,1),new t(64,9,9,0,0,6.6,145,0,.95,0,-2,11,8e-4,1),new t(80,9,9,0,0,6.6,145,0,.95,0,0,8,7e-4,1),new t(96,9,9,0,2.5,6.6,145,0,.95,0,1,5.5,6e-4,1),new t(112,9,9,0,2.25,6.6,145,0,.95,0,2,4.5,5e-4,1),new t(128,9,9,0,1.95,6.4,140,0,.95,0,3,4,2e-4,1),new t(160,9,9,1,1.79,6,135,0,.95,-2,5,3.5,0,1),new t(192,9,9,1,1.49,5.6,125,0,.97,-4,7,3,0,0),new t(224,9,9,1,1.25,5.2,125,0,.98,-6,9,2,0,0),new t(256,9,9,1,.97,5.2,125,0,1,-8,10,1,0,0),new t(320,9,9,1,.9,5.2,125,0,1,-10,12,0,0,0)];function s(t,n,i){var s=n,a=e.nearestBitrateFullIndex(n);if(t.VBR=_.vbr_abr,t.VBR_mean_bitrate_kbps=s,t.VBR_mean_bitrate_kbps=Math.min(t.VBR_mean_bitrate_kbps,320),t.VBR_mean_bitrate_kbps=Math.max(t.VBR_mean_bitrate_kbps,8),t.brate=t.VBR_mean_bitrate_kbps,t.VBR_mean_bitrate_kbps>320&&(t.disable_reservoir=!0),r[a].safejoint>0&&(t.exp_nspsytune=2|t.exp_nspsytune),r[a].sfscale>0&&(t.internal_flags.noise_shaping=2),Math.abs(r[a].nsbass)>0){var o=int(4*r[a].nsbass);o<0&&(o+=64),t.exp_nspsytune=t.exp_nspsytune|o<<2}return 0!=i?t.quant_comp=r[a].quant_comp:Math.abs(t.quant_comp- -1)>0||(t.quant_comp=r[a].quant_comp),0!=i?t.quant_comp_short=r[a].quant_comp_s:Math.abs(t.quant_comp_short- -1)>0||(t.quant_comp_short=r[a].quant_comp_s),0!=i?t.msfix=r[a].nsmsfix:Math.abs(t.msfix- -1)>0||(t.msfix=r[a].nsmsfix),0!=i?t.internal_flags.nsPsy.attackthre=r[a].st_lrm:Math.abs(t.internal_flags.nsPsy.attackthre- -1)>0||(t.internal_flags.nsPsy.attackthre=r[a].st_lrm),0!=i?t.internal_flags.nsPsy.attackthre_s=r[a].st_s:Math.abs(t.internal_flags.nsPsy.attackthre_s- -1)>0||(t.internal_flags.nsPsy.attackthre_s=r[a].st_s),0!=i?t.scale=r[a].scale:Math.abs(t.scale- -1)>0||(t.scale=r[a].scale),0!=i?t.maskingadjust=r[a].masking_adj:Math.abs(t.maskingadjust-0)>0||(t.maskingadjust=r[a].masking_adj),r[a].masking_adj>0?0!=i?t.maskingadjust_short=.9*r[a].masking_adj:Math.abs(t.maskingadjust_short-0)>0||(t.maskingadjust_short=.9*r[a].masking_adj):0!=i?t.maskingadjust_short=1.1*r[a].masking_adj:Math.abs(t.maskingadjust_short-0)>0||(t.maskingadjust_short=1.1*r[a].masking_adj),0!=i?t.ATHlower=-r[a].ath_lower/10:Math.abs(10*-t.ATHlower-0)>0||(t.ATHlower=-r[a].ath_lower/10),0!=i?t.ATHcurve=r[a].ath_curve:Math.abs(t.ATHcurve- -1)>0||(t.ATHcurve=r[a].ath_curve),0!=i?t.interChRatio=r[a].interch:Math.abs(t.interChRatio- -1)>0||(t.interChRatio=r[a].interch),n}this.apply_preset=function(t,e,n){switch(e){case $.R3MIX:e=$.V3,t.VBR=_.vbr_mtrh;break;case $.MEDIUM:e=$.V4,t.VBR=_.vbr_rh;break;case $.MEDIUM_FAST:e=$.V4,t.VBR=_.vbr_mtrh;break;case $.STANDARD:e=$.V2,t.VBR=_.vbr_rh;break;case $.STANDARD_FAST:e=$.V2,t.VBR=_.vbr_mtrh;break;case $.EXTREME:e=$.V0,t.VBR=_.vbr_rh;break;case $.EXTREME_FAST:e=$.V0,t.VBR=_.vbr_mtrh;break;case $.INSANE:return e=320,t.preset=e,s(t,e,n),t.VBR=_.vbr_off,e}switch(t.preset=e,e){case $.V9:return i(t,9,n),e;case $.V8:return i(t,8,n),e;case $.V7:return i(t,7,n),e;case $.V6:return i(t,6,n),e;case $.V5:return i(t,5,n),e;case $.V4:return i(t,4,n),e;case $.V3:return i(t,3,n),e;case $.V2:return i(t,2,n),e;case $.V1:return i(t,1,n),e;case $.V0:return i(t,0,n),e;default:break}return 8<=e&&e<=320?s(t,e,n):(t.preset=0,e)}}function S(){var t;this.setModules=function(e){t=e},this.ResvFrameBegin=function(e,i){var r,s=e.internal_flags,a=s.l3_side,o=t.getframebits(e);i.bits=(o-8*s.sideinfo_len)/s.mode_gr;var l=2048*s.mode_gr-8;e.brate>320?n():(r=11520,e.strict_ISO&&n()),s.ResvMax=r-o,s.ResvMax>l&&(s.ResvMax=l),(s.ResvMax<0||e.disable_reservoir)&&(s.ResvMax=0);var h=i.bits*s.mode_gr+Math.min(s.ResvSize,s.ResvMax);return h>r&&(h=r),a.resvDrain_pre=0,null!=s.pinfo&&n(),h},this.ResvMaxBits=function(t,e,n,i){var r,s=t.internal_flags,a=s.ResvSize,o=s.ResvMax;0!=i&&(a+=e),0!=(1&s.substep_shaping)&&(o*=.9),n.bits=e,10*a>9*o?(r=a-9*o/10,n.bits+=r,s.substep_shaping|=128):(r=0,s.substep_shaping&=127,t.disable_reservoir||0!=(1&s.substep_shaping)||(n.bits-=.1*e));var l=a<6*s.ResvMax/10?a:6*s.ResvMax/10;return l-=r,l<0&&(l=0),l},this.ResvAdjust=function(t,e){t.ResvSize-=e.part2_3_length+e.part2_length},this.ResvFrameEnd=function(t,e){var n,i=t.l3_side;t.ResvSize+=e*t.mode_gr;var r=0;i.resvDrain_post=0,i.resvDrain_pre=0,0!=(n=t.ResvSize%8)&&(r+=n),n=t.ResvSize-r-t.ResvMax,n>0&&(r+=n);var s=Math.min(8*i.main_data_begin,r)/8;i.resvDrain_pre+=8*s,r-=8*s,t.ResvSize-=8*s,i.main_data_begin-=s,i.resvDrain_post+=r,t.ResvSize-=r}}function T(){this.setModules=function(t,e,n){0};var t=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8e3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16e3,65089,64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32e3,48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];function e(e,n){var i=n^e;return n=n>>8^t[255&i],n}this.updateMusicCRC=function(t,n,i,r){for(var s=0;s<r;++s)t[0]=e(n[i+s],t[0])}}function M(){var t=this,e=null,r=null;this.setModules=function(t,n,i,s){e=i,r=s};var a=null,o=0,l=0,h=0;function c(t){f.arraycopy(t.header[t.w_ptr].buf,0,a,l,t.sideinfo_len),l+=t.sideinfo_len,o+=8*t.sideinfo_len,t.w_ptr=t.w_ptr+1&J.MAX_HEADER_BUF-1}function u(t,e,n){while(n>0){var i;0==h&&(h=8,l++,t.header[t.w_ptr].write_timing==o&&c(t),a[l]=0),i=Math.min(n,h),n-=i,h-=i,a[l]|=e>>n<<h,o+=i}}function p(t,n){var i,r=t.internal_flags;if(n>=8&&(u(r,76,8),n-=8),n>=8&&(u(r,65,8),n-=8),n>=8&&(u(r,77,8),n-=8),n>=8&&(u(r,69,8),n-=8),n>=32){var s=e.getLameShortVersion();if(n>=32)for(i=0;i<s.length&&n>=8;++i)n-=8,u(r,s.charCodeAt(i),8)}for(;n>=1;n-=1)u(r,r.ancillary_flag,1),r.ancillary_flag^=t.disable_reservoir?0:1}function g(t,e,n){var i=t.header[t.h_ptr].ptr;while(n>0){var r=Math.min(n,8-(7&i));n-=r,t.header[t.h_ptr].buf[i>>3]|=e>>n<<8-(7&i)-r,i+=r}t.header[t.h_ptr].ptr=i}function m(t,e){var i,r,s,a=t.internal_flags;if(i=a.l3_side,a.header[a.h_ptr].ptr=0,d.fill(a.header[a.h_ptr].buf,0,a.sideinfo_len,0),t.out_samplerate<16e3?g(a,4094,12):g(a,4095,12),g(a,t.version,1),g(a,1,2),g(a,t.error_protection?0:1,1),g(a,a.bitrate_index,4),g(a,a.samplerate_index,2),g(a,a.padding,1),g(a,t.extension,1),g(a,t.mode.ordinal(),2),g(a,a.mode_ext,2),g(a,t.copyright,1),g(a,t.original,1),g(a,t.emphasis,2),t.error_protection&&g(a,0,16),1==t.version){for(g(a,i.main_data_begin,9),2==a.channels_out?g(a,i.private_bits,3):g(a,i.private_bits,5),s=0;s<a.channels_out;s++){var o;for(o=0;o<4;o++)g(a,i.scfsi[s][o],1)}for(r=0;r<2;r++)for(s=0;s<a.channels_out;s++){var l=i.tt[r][s];g(a,l.part2_3_length+l.part2_length,12),g(a,l.big_values/2,9),g(a,l.global_gain,8),g(a,l.scalefac_compress,4),l.block_type!=q.NORM_TYPE?(g(a,1,1),g(a,l.block_type,2),g(a,l.mixed_block_flag,1),14==l.table_select[0]&&(l.table_select[0]=16),g(a,l.table_select[0],5),14==l.table_select[1]&&(l.table_select[1]=16),g(a,l.table_select[1],5),g(a,l.subblock_gain[0],3),g(a,l.subblock_gain[1],3),g(a,l.subblock_gain[2],3)):(g(a,0,1),14==l.table_select[0]&&(l.table_select[0]=16),g(a,l.table_select[0],5),14==l.table_select[1]&&(l.table_select[1]=16),g(a,l.table_select[1],5),14==l.table_select[2]&&(l.table_select[2]=16),g(a,l.table_select[2],5),g(a,l.region0_count,4),g(a,l.region1_count,3)),g(a,l.preflag,1),g(a,l.scalefac_scale,1),g(a,l.count1table_select,1)}}else for(g(a,i.main_data_begin,8),g(a,i.private_bits,a.channels_out),r=0,s=0;s<a.channels_out;s++){l=i.tt[r][s];g(a,l.part2_3_length+l.part2_length,12),g(a,l.big_values/2,9),g(a,l.global_gain,8),g(a,l.scalefac_compress,9),l.block_type!=q.NORM_TYPE?(g(a,1,1),g(a,l.block_type,2),g(a,l.mixed_block_flag,1),14==l.table_select[0]&&(l.table_select[0]=16),g(a,l.table_select[0],5),14==l.table_select[1]&&(l.table_select[1]=16),g(a,l.table_select[1],5),g(a,l.subblock_gain[0],3),g(a,l.subblock_gain[1],3),g(a,l.subblock_gain[2],3)):(g(a,0,1),14==l.table_select[0]&&(l.table_select[0]=16),g(a,l.table_select[0],5),14==l.table_select[1]&&(l.table_select[1]=16),g(a,l.table_select[1],5),14==l.table_select[2]&&(l.table_select[2]=16),g(a,l.table_select[2],5),g(a,l.region0_count,4),g(a,l.region1_count,3)),g(a,l.scalefac_scale,1),g(a,l.count1table_select,1)}t.error_protection&&n();var h=a.h_ptr;a.h_ptr=h+1&J.MAX_HEADER_BUF-1,a.header[a.h_ptr].write_timing=a.header[h].write_timing+e,a.h_ptr,a.w_ptr}function _(t,e){var n,i=A.ht[e.count1table_select+32],r=0,s=e.big_values,a=e.big_values;for(n=(e.count1-e.big_values)/4;n>0;--n){var o,l=0,h=0;o=e.l3_enc[s+0],0!=o&&(h+=8,e.xr[a+0]<0&&l++),o=e.l3_enc[s+1],0!=o&&(h+=4,l*=2,e.xr[a+1]<0&&l++),o=e.l3_enc[s+2],0!=o&&(h+=2,l*=2,e.xr[a+2]<0&&l++),o=e.l3_enc[s+3],0!=o&&(h++,l*=2,e.xr[a+3]<0&&l++),s+=4,a+=4,u(t,l+i.table[h],i.hlen[h]),r+=i.hlen[h]}return r}function v(t,e,n,i,r){var s=A.ht[e],a=0;if(0==e)return a;for(var o=n;o<i;o+=2){var l=0,h=0,c=s.xlen,d=s.xlen,f=0,p=r.l3_enc[o],g=r.l3_enc[o+1];if(0!=p&&(r.xr[o]<0&&f++,l--),e>15){if(p>14){var m=p-15;f|=m<<1,h=c,p=15}if(g>14){var _=g-15;f<<=c,f|=_,h+=c,g=15}d=16}0!=g&&(f<<=1,r.xr[o+1]<0&&f++,l--),p=p*d+g,h-=l,l+=s.hlen[p],u(t,s.table[p],l),u(t,f,h),a+=l+h}return a}function y(t,e){var n=3*t.scalefac_band.s[3];n>e.big_values&&(n=e.big_values);var i=v(t,e.table_select[0],0,n,e);return i+=v(t,e.table_select[1],n,e.big_values,e),i}function x(t,e){var n,i,r,s;n=e.big_values;var a=e.region0_count+1;return r=t.scalefac_band.l[a],a+=e.region1_count+1,s=t.scalefac_band.l[a],r>n&&(r=n),s>n&&(s=n),i=v(t,e.table_select[0],0,r,e),i+=v(t,e.table_select[1],r,s,e),i+=v(t,e.table_select[2],s,n,e),i}function w(t){var e,n,i,r,s=0,a=t.internal_flags,o=a.l3_side;if(1==t.version)for(e=0;e<2;e++)for(n=0;n<a.channels_out;n++){var l=o.tt[e][n],h=b.slen1_tab[l.scalefac_compress],c=b.slen2_tab[l.scalefac_compress];for(r=0,i=0;i<l.sfbdivide;i++)-1!=l.scalefac[i]&&(u(a,l.scalefac[i],h),r+=h);for(;i<l.sfbmax;i++)-1!=l.scalefac[i]&&(u(a,l.scalefac[i],c),r+=c);l.block_type==q.SHORT_TYPE?r+=y(a,l):r+=x(a,l),r+=_(a,l),s+=r}else for(e=0,n=0;n<a.channels_out;n++){l=o.tt[e][n];var d,f,p=0;if(r=0,i=0,f=0,l.block_type==q.SHORT_TYPE){for(;f<4;f++){var g=l.sfb_partition_table[f]/3,m=l.slen[f];for(d=0;d<g;d++,i++)u(a,Math.max(l.scalefac[3*i+0],0),m),u(a,Math.max(l.scalefac[3*i+1],0),m),u(a,Math.max(l.scalefac[3*i+2],0),m),p+=3*m}r+=y(a,l)}else{for(;f<4;f++){g=l.sfb_partition_table[f],m=l.slen[f];for(d=0;d<g;d++,i++)u(a,Math.max(l.scalefac[i],0),m),p+=m}r+=x(a,l)}r+=_(a,l),s+=p+r}return s}function S(){this.total=0}function T(e,i){var r,s,a,h=e.internal_flags;return h.w_ptr,a=h.h_ptr-1,-1==a&&(a=J.MAX_HEADER_BUF-1),r=h.header[a].write_timing-o,i.total=r,r>=0&&n(),s=t.getframebits(e),r+=s,i.total+=s,i.total%8!=0?i.total=1+i.total/8:i.total=i.total/8,i.total+=l+1,r}this.getframebits=function(t){var e,n=t.internal_flags;e=0!=n.bitrate_index?A.bitrate_table[t.version][n.bitrate_index]:t.brate;var i=0|72e3*(t.version+1)*e/t.out_samplerate+n.padding;return 8*i},this.flush_bitstream=function(t){var e,i,r=t.internal_flags,s=r.h_ptr-1;-1==s&&(s=J.MAX_HEADER_BUF-1),e=r.l3_side,(i=T(t,new S))<0||(p(t,i),r.ResvSize=0,e.main_data_begin=0,r.findReplayGain&&n(),r.findPeakSample&&n())},this.format_bitstream=function(t){var e,n=t.internal_flags;e=n.l3_side;var i=this.getframebits(t);p(t,e.resvDrain_pre),m(t,i);var r=8*n.sideinfo_len;if(r+=w(t),p(t,e.resvDrain_post),r+=e.resvDrain_post,e.main_data_begin+=(i-r)/8,T(t,new S),n.ResvSize,8*e.main_data_begin!=n.ResvSize&&(n.ResvSize=8*e.main_data_begin),o>1e9){var s;for(s=0;s<J.MAX_HEADER_BUF;++s)n.header[s].write_timing-=o;o=0}return 0},this.copy_buffer=function(t,e,i,o,c){var u=l+1;if(u<=0)return 0;if(0!=o&&u>o)return-1;if(f.arraycopy(a,0,e,i,u),l=-1,h=0,0!=c){var d=s(1);d[0]=t.nMusicCRC,r.updateMusicCRC(d,e,i,u),t.nMusicCRC=d[0],u>0&&(t.VBR_seek_table.nBytesWritten+=u),t.decode_on_the_fly&&n()}return u},this.init_bit_stream_w=function(t){a=i($.LAME_MAXMP3BUFFER),t.h_ptr=t.w_ptr=0,t.header[t.h_ptr].write_timing=0,l=-1,h=0,o=0}}function E(t,e,n,i){this.xlen=t,this.linmax=e,this.table=n,this.hlen=i}v.STEREO=new v(0),v.JOINT_STEREO=new v(1),v.DUAL_CHANNEL=new v(2),v.MONO=new v(3),v.NOT_SET=new v(4),x.STEPS_per_dB=100,x.MAX_dB=120,x.GAIN_NOT_ENOUGH_SAMPLES=-24601,x.GAIN_ANALYSIS_ERROR=0,x.GAIN_ANALYSIS_OK=1,x.INIT_GAIN_ANALYSIS_ERROR=0,x.INIT_GAIN_ANALYSIS_OK=1,x.YULE_ORDER=10,x.MAX_ORDER=x.YULE_ORDER,x.MAX_SAMP_FREQ=48e3,x.RMS_WINDOW_TIME_NUMERATOR=1,x.RMS_WINDOW_TIME_DENOMINATOR=20,x.MAX_SAMPLES_PER_WINDOW=x.MAX_SAMP_FREQ*x.RMS_WINDOW_TIME_NUMERATOR/x.RMS_WINDOW_TIME_DENOMINATOR+1,T.NUMTOCENTRIES=100,T.MAXFRAMESIZE=2880,M.EQ=function(t,e){return Math.abs(t)>Math.abs(e)?Math.abs(t-e)<=1e-6*Math.abs(t):Math.abs(t-e)<=1e-6*Math.abs(e)},M.NEQ=function(t,e){return!M.EQ(t,e)};var A={};function R(t){this.bits=t}function z(){this.over_noise=0,this.tot_noise=0,this.max_noise=0,this.over_count=0,this.over_SSD=0,this.bits=0}function C(){this.setModules=function(t,e){0}}function P(){this.useAdjust=0,this.aaSensitivityP=0,this.adjust=0,this.adjustLimit=0,this.decay=0,this.floor=0,this.l=a(q.SBMAX_l),this.s=a(q.SBMAX_s),this.psfb21=a(q.PSFB21),this.psfb12=a(q.PSFB12),this.cb_l=a(q.CBANDS),this.cb_s=a(q.CBANDS),this.eql_w=a(q.BLKSIZE/2)}function k(){this.class_id=0,this.num_samples=0,this.num_channels=0,this.in_samplerate=0,this.out_samplerate=0,this.scale=0,this.scale_left=0,this.scale_right=0,this.analysis=!1,this.bWriteVbrTag=!1,this.decode_only=!1,this.quality=0,this.mode=v.STEREO,this.force_ms=!1,this.free_format=!1,this.findReplayGain=!1,this.decode_on_the_fly=!1,this.write_id3tag_automatic=!1,this.brate=0,this.compression_ratio=0,this.copyright=0,this.original=0,this.extension=0,this.emphasis=0,this.error_protection=0,this.strict_ISO=!1,this.disable_reservoir=!1,this.quant_comp=0,this.quant_comp_short=0,this.experimentalY=!1,this.experimentalZ=0,this.exp_nspsytune=0,this.preset=0,this.VBR=null,this.VBR_q_frac=0,this.VBR_q=0,this.VBR_mean_bitrate_kbps=0,this.VBR_min_bitrate_kbps=0,this.VBR_max_bitrate_kbps=0,this.VBR_hard_min=0,this.lowpassfreq=0,this.highpassfreq=0,this.lowpasswidth=0,this.highpasswidth=0,this.maskingadjust=0,this.maskingadjust_short=0,this.ATHonly=!1,this.ATHshort=!1,this.noATH=!1,this.ATHtype=0,this.ATHcurve=0,this.ATHlower=0,this.athaa_type=0,this.athaa_loudapprox=0,this.athaa_sensitivity=0,this.short_blocks=null,this.useTemporal=!1,this.interChRatio=0,this.msfix=0,this.tune=!1,this.tune_value_a=0,this.version=0,this.encoder_delay=0,this.encoder_padding=0,this.framesize=0,this.frameNum=0,this.lame_allocated_gfp=0,this.internal_flags=null}function D(t){var e=t;this.quantize=e,this.iteration_loop=function(t,e,i,r){var o=t.internal_flags,l=a(U.SFBMAX),h=a(576),c=s(2),u=0,d=o.l3_side,f=new R(u);this.quantize.rv.ResvFrameBegin(t,f),u=f.bits;for(var p=0;p<o.mode_gr;p++){this.quantize.qupvt.on_pe(t,e,c,u,p,p),o.mode_ext==q.MPG_MD_MS_LR&&n();for(var g=0;g<o.channels_out;g++){var m,_,v=d.tt[p][g];v.block_type!=q.SHORT_TYPE?(m=0,_=o.PSY.mask_adjust-m):(m=0,_=o.PSY.mask_adjust_short-m),o.masking_lower=Math.pow(10,.1*_),this.quantize.init_outer_loop(o,v),this.quantize.init_xrpow(o,v,h)&&(this.quantize.qupvt.calc_xmin(t,r[p][g],v,l),this.quantize.outer_loop(t,v,l,h,g,c[g])),this.quantize.iteration_finish_one(o,p,g)}}this.quantize.rv.ResvFrameEnd(o,u)}}function I(){}function L(t,e,n,i){this.l=s(1+q.SBMAX_l),this.s=s(1+q.SBMAX_s),this.psfb21=s(1+q.PSFB21),this.psfb12=s(1+q.PSFB12);var r=this.l,a=this.s;4==arguments.length&&(this.arrL=arguments[0],this.arrS=arguments[1],this.arr21=arguments[2],this.arr12=arguments[3],f.arraycopy(this.arrL,0,r,0,Math.min(this.arrL.length,this.l.length)),f.arraycopy(this.arrS,0,a,0,Math.min(this.arrS.length,this.s.length)),f.arraycopy(this.arr21,0,this.psfb21,0,Math.min(this.arr21.length,this.psfb21.length)),f.arraycopy(this.arr12,0,this.psfb12,0,Math.min(this.arr12.length,this.psfb12.length)))}function j(){var e=null,i=null,r=null;function o(t){return v[t+j.Q_MAX2]}this.setModules=function(t,n,s){e=t,i=n,r=s},this.IPOW20=function(t){return y[t]};var l=2220446049250313e-31,h=j.IXMAX_VAL,c=h+2,u=j.Q_MAX,d=j.Q_MAX2,f=(j.LARGE_BITS,100);this.nr_of_sfb_block=[[[6,5,5,5],[9,9,9,9],[6,9,9,9]],[[6,5,7,3],[9,9,12,6],[6,9,12,6]],[[11,10,0,0],[18,18,0,0],[15,18,0,0]],[[7,7,7,0],[12,12,12,0],[6,15,12,0]],[[6,6,6,3],[12,9,9,6],[6,12,9,6]],[[8,8,5,0],[15,12,9,0],[6,18,9,0]]];var g=[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0];this.pretab=g,this.sfBandIndex=[new L([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,24,32,42,56,74,100,132,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,332,394,464,540,576],[0,4,8,12,18,26,36,48,62,80,104,136,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576],[0,4,8,12,16,22,30,40,52,66,84,106,136,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576],[0,4,8,12,16,22,28,38,50,64,80,100,126,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576],[0,4,8,12,16,22,30,42,58,78,104,138,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new L([0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576],[0,8,16,24,36,52,72,96,124,160,162,164,166,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0])];var v=a(u+d+1),y=a(u),b=a(c),x=a(c);function w(t,e){var n=r.ATHformula(e,t);return n-=f,n=Math.pow(10,n/10+t.ATHlower),n}function S(e){for(var i=e.internal_flags.ATH.l,r=e.internal_flags.ATH.psfb21,s=e.internal_flags.ATH.s,a=e.internal_flags.ATH.psfb12,o=e.internal_flags,l=e.out_samplerate,h=0;h<q.SBMAX_l;h++){var c=o.scalefac_band.l[h],u=o.scalefac_band.l[h+1];i[h]=m.MAX_VALUE;for(var d=c;d<u;d++){var f=d*l/1152,p=w(e,f);i[h]=Math.min(i[h],p)}}for(h=0;h<q.PSFB21;h++){c=o.scalefac_band.psfb21[h],u=o.scalefac_band.psfb21[h+1];r[h]=m.MAX_VALUE;for(d=c;d<u;d++){f=d*l/1152,p=w(e,f);r[h]=Math.min(r[h],p)}}for(h=0;h<q.SBMAX_s;h++){c=o.scalefac_band.s[h],u=o.scalefac_band.s[h+1];s[h]=m.MAX_VALUE;for(d=c;d<u;d++){f=d*l/384,p=w(e,f);s[h]=Math.min(s[h],p)}s[h]*=o.scalefac_band.s[h+1]-o.scalefac_band.s[h]}for(h=0;h<q.PSFB12;h++){c=o.scalefac_band.psfb12[h],u=o.scalefac_band.psfb12[h+1];a[h]=m.MAX_VALUE;for(d=c;d<u;d++){f=d*l/384,p=w(e,f);a[h]=Math.min(a[h],p)}a[h]*=o.scalefac_band.s[13]-o.scalefac_band.s[12]}e.noATH&&n(),o.ATH.floor=10*t(w(e,-1))}function T(t){this.s=t}this.adj43=x,this.iteration_init=function(t){var n,i=t.internal_flags,r=i.l3_side;if(0==i.iteration_init_init){for(i.iteration_init_init=1,r.main_data_begin=0,S(t),b[0]=0,n=1;n<c;n++)b[n]=Math.pow(n,4/3);for(n=0;n<c-1;n++)x[n]=n+1-Math.pow(.5*(b[n]+b[n+1]),.75);for(x[n]=.5,n=0;n<u;n++)y[n]=Math.pow(2,-.1875*(n-210));for(n=0;n<=u+d;n++)v[n]=Math.pow(2,.25*(n-210-d));var s,a,o,l;for(e.huffman_init(i),n=t.exp_nspsytune>>2&63,n>=32&&(n-=64),s=Math.pow(10,n/4/10),n=t.exp_nspsytune>>8&63,n>=32&&(n-=64),a=Math.pow(10,n/4/10),n=t.exp_nspsytune>>14&63,n>=32&&(n-=64),o=Math.pow(10,n/4/10),n=t.exp_nspsytune>>20&63,n>=32&&(n-=64),l=o*Math.pow(10,n/4/10),n=0;n<q.SBMAX_l;n++){h=n<=6?s:n<=13?a:n<=20?o:l,i.nsPsy.longfact[n]=h}for(n=0;n<q.SBMAX_s;n++){var h;h=n<=5?s:n<=10?a:n<=11?o:l,i.nsPsy.shortfact[n]=h}}},this.on_pe=function(t,e,r,a,o,l){var h,c,u=t.internal_flags,d=0,f=s(2),p=new R(d),g=i.ResvMaxBits(t,a,p,l);d=p.bits;var m=d+g;for(m>J.MAX_BITS_PER_GRANULE&&(m=J.MAX_BITS_PER_GRANULE),h=0,c=0;c<u.channels_out;++c)r[c]=Math.min(J.MAX_BITS_PER_CHANNEL,d/u.channels_out),f[c]=0|r[c]*e[o][c]/700-r[c],f[c]>3*a/4&&(f[c]=3*a/4),f[c]<0&&(f[c]=0),f[c]+r[c]>J.MAX_BITS_PER_CHANNEL&&(f[c]=Math.max(0,J.MAX_BITS_PER_CHANNEL-r[c])),h+=f[c];if(h>g)for(c=0;c<u.channels_out;++c)f[c]=g*f[c]/h;for(c=0;c<u.channels_out;++c)r[c]+=f[c],g-=f[c];for(h=0,c=0;c<u.channels_out;++c)h+=r[c];return h>J.MAX_BITS_PER_GRANULE&&n(),m},this.athAdjust=function(t,e,n){var i=90.30873362,r=94.82444863,s=p.FAST_LOG10_X(e,10),a=t*t,o=0;return s-=n,a>1e-20&&(o=1+p.FAST_LOG10_X(a,10/i)),o<0&&(o=0),s*=o,s+=n+i-r,Math.pow(10,.1*s)},this.calc_xmin=function(t,e,i,r){var s,a=0,o=t.internal_flags,h=0,c=0,u=o.ATH,d=i.xr,f=t.VBR==_.vbr_mtrh?1:0,p=o.masking_lower;for(t.VBR!=_.vbr_mtrh&&t.VBR!=_.vbr_mt||(p=1),s=0;s<i.psy_lmax;s++){S=t.VBR==_.vbr_rh||t.VBR==_.vbr_mtrh?athAdjust(u.adjust,u.l[s],u.floor):u.adjust*u.l[s],b=i.width[s],T=S/b,E=l,R=b>>1,A=0;do{z=d[h]*d[h],A+=z,E+=z<T?z:T,h++,C=d[h]*d[h],A+=C,E+=C<T?C:T,h++}while(--R>0);if(A>S&&c++,s==q.SBPSY_l&&n(),0!=f&&(S=E),!t.ATHonly){var g=e.en.l[s];if(g>0)P=A*e.thm.l[s]*p/g,0!=f&&(P*=o.nsPsy.longfact[s]),S<P&&(S=P)}r[a++]=0!=f?S:S*o.nsPsy.longfact[s]}var m=575;if(i.block_type!=q.SHORT_TYPE){var v=576;while(0!=v--&&M.EQ(d[v],0))m=v}i.max_nonzero_coeff=m;for(var y=i.sfb_smin;s<i.psymax;y++,s+=3){var b,x,w;for(w=t.VBR==_.vbr_rh||t.VBR==_.vbr_mtrh?athAdjust(u.adjust,u.s[y],u.floor):u.adjust*u.s[y],b=i.width[s],x=0;x<3;x++){var S,T,E,A=0,R=b>>1;T=w/b,E=l;do{var z,C;z=d[h]*d[h],A+=z,E+=z<T?z:T,h++,C=d[h]*d[h],A+=C,E+=C<T?C:T,h++}while(--R>0);if(A>w&&c++,y==q.SBPSY_s&&n(),S=0!=f?E:w,!t.ATHonly&&!t.ATHshort){var P;g=e.en.s[y][x];if(g>0)P=A*e.thm.s[y][x]*p/g,0!=f&&(P*=o.nsPsy.shortfact[y]),S<P&&(S=P)}r[a++]=0!=f?S:S*o.nsPsy.shortfact[y]}t.useTemporal&&(r[a-3]>r[a-3+1]&&(r[a-3+1]+=(r[a-3]-r[a-3+1])*o.decay),r[a-3+1]>r[a-3+2]&&(r[a-3+2]+=(r[a-3+1]-r[a-3+2])*o.decay))}return c},this.calc_noise_core=function(t,e,n,i){var r=0,s=e.s,o=t.l3_enc;if(s>t.count1)while(0!=n--){h=t.xr[s],s++,r+=h*h,h=t.xr[s],s++,r+=h*h}else if(s>t.big_values){var l=a(2);l[0]=0,l[1]=i;while(0!=n--){h=Math.abs(t.xr[s])-l[o[s]],s++,r+=h*h,h=Math.abs(t.xr[s])-l[o[s]],s++,r+=h*h}}else while(0!=n--){var h;h=Math.abs(t.xr[s])-b[o[s]]*i,s++,r+=h*h,h=Math.abs(t.xr[s])-b[o[s]]*i,s++,r+=h*h}return e.s=s,r},this.calc_noise=function(t,e,n,i,r){var s,a,l=0,h=0,c=0,u=0,d=0,f=-20,m=0,_=t.scalefac,v=0;for(i.over_SSD=0,s=0;s<t.psymax;s++){var y,b=t.global_gain-(_[v++]+(0!=t.preflag?g[s]:0)<<t.scalefac_scale+1)-8*t.subblock_gain[t.window[s]],x=0;if(null!=r&&r.step[s]==b)x=r.noise[s],m+=t.width[s],n[l++]=x/e[h++],x=r.noise_log[s];else{var w,S=o(b);if(a=t.width[s]>>1,m+t.width[s]>t.max_nonzero_coeff)w=t.max_nonzero_coeff-m+1,a=w>0?w>>1:0;var M=new T(m);x=this.calc_noise_core(t,M,a,S),m=M.s,null!=r&&(r.step[s]=b,r.noise[s]=x),x=n[l++]=x/e[h++],x=p.FAST_LOG10(Math.max(x,1e-20)),null!=r&&(r.noise_log[s]=x)}if(null!=r&&(r.global_gain=t.global_gain),d+=x,x>0)y=Math.max(0|10*x+.5,1),i.over_SSD+=y*y,c++,u+=x;f=Math.max(f,x)}return i.over_count=c,i.tot_noise=d,i.over_noise=u,i.max_noise=f,c}}function N(){this.global_gain=0,this.sfb_count1=0,this.step=s(39),this.noise=a(39),this.noise_log=a(39)}function O(){this.xr=a(576),this.l3_enc=s(576),this.scalefac=s(U.SFBMAX),this.xrpow_max=0,this.part2_3_length=0,this.big_values=0,this.count1=0,this.global_gain=0,this.scalefac_compress=0,this.block_type=0,this.mixed_block_flag=0,this.table_select=s(3),this.subblock_gain=s(4),this.region0_count=0,this.region1_count=0,this.preflag=0,this.scalefac_scale=0,this.count1table_select=0,this.part2_length=0,this.sfb_lmax=0,this.sfb_smin=0,this.psy_lmax=0,this.sfbmax=0,this.psymax=0,this.sfbdivide=0,this.width=s(U.SFBMAX),this.window=s(U.SFBMAX),this.count1bits=0,this.sfb_partition_table=null,this.slen=s(4),this.max_nonzero_coeff=0;var t=this;function e(t){return new Int32Array(t)}function n(t){return new Float32Array(t)}this.assign=function(i){t.xr=n(i.xr),t.l3_enc=e(i.l3_enc),t.scalefac=e(i.scalefac),t.xrpow_max=i.xrpow_max,t.part2_3_length=i.part2_3_length,t.big_values=i.big_values,t.count1=i.count1,t.global_gain=i.global_gain,t.scalefac_compress=i.scalefac_compress,t.block_type=i.block_type,t.mixed_block_flag=i.mixed_block_flag,t.table_select=e(i.table_select),t.subblock_gain=e(i.subblock_gain),t.region0_count=i.region0_count,t.region1_count=i.region1_count,t.preflag=i.preflag,t.scalefac_scale=i.scalefac_scale,t.count1table_select=i.count1table_select,t.part2_length=i.part2_length,t.sfb_lmax=i.sfb_lmax,t.sfb_smin=i.sfb_smin,t.psy_lmax=i.psy_lmax,t.sfbmax=i.sfbmax,t.psymax=i.psymax,t.sfbdivide=i.sfbdivide,t.width=e(i.width),t.window=e(i.window),t.count1bits=i.count1bits,t.sfb_partition_table=i.sfb_partition_table.slice(0),t.slen=e(i.slen),t.max_nonzero_coeff=i.max_nonzero_coeff}}A.t1HB=[1,1,1,0],A.t2HB=[1,2,1,3,1,1,3,2,0],A.t3HB=[3,2,1,1,1,1,3,2,0],A.t5HB=[1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0],A.t6HB=[7,3,5,1,6,2,3,2,5,4,4,1,3,3,2,0],A.t7HB=[1,2,10,19,16,10,3,3,7,10,5,3,11,4,13,17,8,4,12,11,18,15,11,2,7,6,9,14,3,1,6,4,5,3,2,0],A.t8HB=[3,4,6,18,12,5,5,1,2,16,9,3,7,3,5,14,7,3,19,17,15,13,10,4,13,5,8,11,5,1,12,4,4,1,1,0],A.t9HB=[7,5,9,14,15,7,6,4,5,5,6,7,7,6,8,8,8,5,15,6,9,10,5,1,11,7,9,6,4,1,14,4,6,2,6,0],A.t10HB=[1,2,10,23,35,30,12,17,3,3,8,12,18,21,12,7,11,9,15,21,32,40,19,6,14,13,22,34,46,23,18,7,20,19,33,47,27,22,9,3,31,22,41,26,21,20,5,3,14,13,10,11,16,6,5,1,9,8,7,8,4,4,2,0],A.t11HB=[3,4,10,24,34,33,21,15,5,3,4,10,32,17,11,10,11,7,13,18,30,31,20,5,25,11,19,59,27,18,12,5,35,33,31,58,30,16,7,5,28,26,32,19,17,15,8,14,14,12,9,13,14,9,4,1,11,4,6,6,6,3,2,0],A.t12HB=[9,6,16,33,41,39,38,26,7,5,6,9,23,16,26,11,17,7,11,14,21,30,10,7,17,10,15,12,18,28,14,5,32,13,22,19,18,16,9,5,40,17,31,29,17,13,4,2,27,12,11,15,10,7,4,1,27,12,8,12,6,3,1,0],A.t13HB=[1,5,14,21,34,51,46,71,42,52,68,52,67,44,43,19,3,4,12,19,31,26,44,33,31,24,32,24,31,35,22,14,15,13,23,36,59,49,77,65,29,40,30,40,27,33,42,16,22,20,37,61,56,79,73,64,43,76,56,37,26,31,25,14,35,16,60,57,97,75,114,91,54,73,55,41,48,53,23,24,58,27,50,96,76,70,93,84,77,58,79,29,74,49,41,17,47,45,78,74,115,94,90,79,69,83,71,50,59,38,36,15,72,34,56,95,92,85,91,90,86,73,77,65,51,44,43,42,43,20,30,44,55,78,72,87,78,61,46,54,37,30,20,16,53,25,41,37,44,59,54,81,66,76,57,54,37,18,39,11,35,33,31,57,42,82,72,80,47,58,55,21,22,26,38,22,53,25,23,38,70,60,51,36,55,26,34,23,27,14,9,7,34,32,28,39,49,75,30,52,48,40,52,28,18,17,9,5,45,21,34,64,56,50,49,45,31,19,12,15,10,7,6,3,48,23,20,39,36,35,53,21,16,23,13,10,6,1,4,2,16,15,17,27,25,20,29,11,17,12,16,8,1,1,0,1],A.t15HB=[7,12,18,53,47,76,124,108,89,123,108,119,107,81,122,63,13,5,16,27,46,36,61,51,42,70,52,83,65,41,59,36,19,17,15,24,41,34,59,48,40,64,50,78,62,80,56,33,29,28,25,43,39,63,55,93,76,59,93,72,54,75,50,29,52,22,42,40,67,57,95,79,72,57,89,69,49,66,46,27,77,37,35,66,58,52,91,74,62,48,79,63,90,62,40,38,125,32,60,56,50,92,78,65,55,87,71,51,73,51,70,30,109,53,49,94,88,75,66,122,91,73,56,42,64,44,21,25,90,43,41,77,73,63,56,92,77,66,47,67,48,53,36,20,71,34,67,60,58,49,88,76,67,106,71,54,38,39,23,15,109,53,51,47,90,82,58,57,48,72,57,41,23,27,62,9,86,42,40,37,70,64,52,43,70,55,42,25,29,18,11,11,118,68,30,55,50,46,74,65,49,39,24,16,22,13,14,7,91,44,39,38,34,63,52,45,31,52,28,19,14,8,9,3,123,60,58,53,47,43,32,22,37,24,17,12,15,10,2,1,71,37,34,30,28,20,17,26,21,16,10,6,8,6,2,0],A.t16HB=[1,5,14,44,74,63,110,93,172,149,138,242,225,195,376,17,3,4,12,20,35,62,53,47,83,75,68,119,201,107,207,9,15,13,23,38,67,58,103,90,161,72,127,117,110,209,206,16,45,21,39,69,64,114,99,87,158,140,252,212,199,387,365,26,75,36,68,65,115,101,179,164,155,264,246,226,395,382,362,9,66,30,59,56,102,185,173,265,142,253,232,400,388,378,445,16,111,54,52,100,184,178,160,133,257,244,228,217,385,366,715,10,98,48,91,88,165,157,148,261,248,407,397,372,380,889,884,8,85,84,81,159,156,143,260,249,427,401,392,383,727,713,708,7,154,76,73,141,131,256,245,426,406,394,384,735,359,710,352,11,139,129,67,125,247,233,229,219,393,743,737,720,885,882,439,4,243,120,118,115,227,223,396,746,742,736,721,712,706,223,436,6,202,224,222,218,216,389,386,381,364,888,443,707,440,437,1728,4,747,211,210,208,370,379,734,723,714,1735,883,877,876,3459,865,2,377,369,102,187,726,722,358,711,709,866,1734,871,3458,870,434,0,12,10,7,11,10,17,11,9,13,12,10,7,5,3,1,3],A.t24HB=[15,13,46,80,146,262,248,434,426,669,653,649,621,517,1032,88,14,12,21,38,71,130,122,216,209,198,327,345,319,297,279,42,47,22,41,74,68,128,120,221,207,194,182,340,315,295,541,18,81,39,75,70,134,125,116,220,204,190,178,325,311,293,271,16,147,72,69,135,127,118,112,210,200,188,352,323,306,285,540,14,263,66,129,126,119,114,214,202,192,180,341,317,301,281,262,12,249,123,121,117,113,215,206,195,185,347,330,308,291,272,520,10,435,115,111,109,211,203,196,187,353,332,313,298,283,531,381,17,427,212,208,205,201,193,186,177,169,320,303,286,268,514,377,16,335,199,197,191,189,181,174,333,321,305,289,275,521,379,371,11,668,184,183,179,175,344,331,314,304,290,277,530,383,373,366,10,652,346,171,168,164,318,309,299,287,276,263,513,375,368,362,6,648,322,316,312,307,302,292,284,269,261,512,376,370,364,359,4,620,300,296,294,288,282,273,266,515,380,374,369,365,361,357,2,1033,280,278,274,267,264,259,382,378,372,367,363,360,358,356,0,43,20,19,17,15,13,11,9,7,6,4,7,5,3,1,3],A.t32HB=[1,10,8,20,12,20,16,32,14,12,24,0,28,16,24,16],A.t33HB=[15,28,26,48,22,40,36,64,14,24,20,32,12,16,8,0],A.t1l=[1,4,3,5],A.t2l=[1,4,7,4,5,7,6,7,8],A.t3l=[2,3,7,4,4,7,6,7,8],A.t5l=[1,4,7,8,4,5,8,9,7,8,9,10,8,8,9,10],A.t6l=[3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9],A.t7l=[1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12],A.t8l=[2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13],A.t9l=[3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11],A.t10l=[1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,11,11,8,9,10,11,12,12,11,12,9,10,11,12,12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13],A.t11l=[2,4,6,8,9,10,9,10,4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12],A.t12l=[4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12],A.t13l=[1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11,12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17,11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14,14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18],A.t15l=[3,5,6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15],A.t16_5l=[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12],A.t16l=[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10],A.t24l=[4,5,7,8,9,10,10,11,11,12,12,12,12,12,13,10,5,6,7,8,9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6],A.t32l=[1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10],A.t33l=[4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8],A.ht=[new E(0,0,null,null),new E(2,0,A.t1HB,A.t1l),new E(3,0,A.t2HB,A.t2l),new E(3,0,A.t3HB,A.t3l),new E(0,0,null,null),new E(4,0,A.t5HB,A.t5l),new E(4,0,A.t6HB,A.t6l),new E(6,0,A.t7HB,A.t7l),new E(6,0,A.t8HB,A.t8l),new E(6,0,A.t9HB,A.t9l),new E(8,0,A.t10HB,A.t10l),new E(8,0,A.t11HB,A.t11l),new E(8,0,A.t12HB,A.t12l),new E(16,0,A.t13HB,A.t13l),new E(0,0,null,A.t16_5l),new E(16,0,A.t15HB,A.t15l),new E(1,1,A.t16HB,A.t16l),new E(2,3,A.t16HB,A.t16l),new E(3,7,A.t16HB,A.t16l),new E(4,15,A.t16HB,A.t16l),new E(6,63,A.t16HB,A.t16l),new E(8,255,A.t16HB,A.t16l),new E(10,1023,A.t16HB,A.t16l),new E(13,8191,A.t16HB,A.t16l),new E(4,15,A.t24HB,A.t24l),new E(5,31,A.t24HB,A.t24l),new E(6,63,A.t24HB,A.t24l),new E(7,127,A.t24HB,A.t24l),new E(8,255,A.t24HB,A.t24l),new E(9,511,A.t24HB,A.t24l),new E(11,2047,A.t24HB,A.t24l),new E(13,8191,A.t24HB,A.t24l),new E(0,0,A.t32HB,A.t32l),new E(0,0,A.t33HB,A.t33l)],A.largetbl=[65540,327685,458759,589832,655369,655370,720906,720907,786443,786444,786444,851980,851980,851980,917517,655370,262149,393222,524295,589832,655369,720906,720906,720907,786443,786443,786444,851980,917516,851980,917516,655370,458759,524295,589832,655369,720905,720906,786442,786443,851979,786443,851979,851980,851980,917516,917517,720905,589832,589832,655369,720905,720906,786442,786442,786443,851979,851979,917515,917516,917516,983052,983052,786441,655369,655369,720905,720906,786442,786442,851978,851979,851979,917515,917516,917516,983052,983052,983053,720905,655370,655369,720906,720906,786442,851978,851979,917515,851979,917515,917516,983052,983052,983052,1048588,786441,720906,720906,720906,786442,851978,851979,851979,851979,917515,917516,917516,917516,983052,983052,1048589,786441,720907,720906,786442,786442,851979,851979,851979,917515,917516,983052,983052,983052,983052,1114125,1114125,786442,720907,786443,786443,851979,851979,851979,917515,917515,983051,983052,983052,983052,1048588,1048589,1048589,786442,786443,786443,786443,851979,851979,917515,917515,983052,983052,983052,983052,1048588,983053,1048589,983053,851978,786444,851979,786443,851979,917515,917516,917516,917516,983052,1048588,1048588,1048589,1114125,1114125,1048589,786442,851980,851980,851979,851979,917515,917516,983052,1048588,1048588,1048588,1048588,1048589,1048589,983053,1048589,851978,851980,917516,917516,917516,917516,983052,983052,983052,983052,1114124,1048589,1048589,1048589,1048589,1179661,851978,983052,917516,917516,917516,983052,983052,1048588,1048588,1048589,1179661,1114125,1114125,1114125,1245197,1114125,851978,917517,983052,851980,917516,1048588,1048588,983052,1048589,1048589,1114125,1179661,1114125,1245197,1114125,1048589,851978,655369,655369,655369,720905,720905,786441,786441,786441,851977,851977,851977,851978,851978,851978,851978,655366],A.table23=[65538,262147,458759,262148,327684,458759,393222,458759,524296],A.table56=[65539,262148,458758,524296,262148,327684,524294,589831,458757,524294,589831,655368,524295,524295,589832,655369],A.bitrate_table=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],[0,8,16,24,32,40,48,56,64,-1,-1,-1,-1,-1,-1,-1]],A.samplerate_table=[[22050,24e3,16e3,-1],[44100,48e3,32e3,-1],[11025,12e3,8e3,-1]],A.scfsi_band=[0,6,11,16,21],j.Q_MAX=257,j.Q_MAX2=116,j.LARGE_BITS=1e5,j.IXMAX_VAL=8206;var U={};function B(){var t,e;this.rv=null,this.qupvt=null;var i,r=new C;function s(t,e,n,i){i=0;for(var r=0;r<=n;++r){var s=Math.abs(t.xr[r]);i+=s,e[r]=Math.sqrt(s*Math.sqrt(s)),e[r]>t.xrpow_max&&(t.xrpow_max=e[r])}return i}function o(t,n){var i=t.ATH,r=n.xr;if(n.block_type!=q.SHORT_TYPE)for(var s=!1,a=q.PSFB21-1;a>=0&&!s;a--){var o=t.scalefac_band.psfb21[a],l=t.scalefac_band.psfb21[a+1],h=e.athAdjust(i.adjust,i.psfb21[a],i.floor);t.nsPsy.longfact[21]>1e-12&&(h*=t.nsPsy.longfact[21]);for(var c=l-1;c>=o;c--){if(!(Math.abs(r[c])<h)){s=!0;break}r[c]=0}}else for(var u=0;u<3;u++)for(s=!1,a=q.PSFB12-1;a>=0&&!s;a--){o=3*t.scalefac_band.s[12]+(t.scalefac_band.s[13]-t.scalefac_band.s[12])*u+(t.scalefac_band.psfb12[a]-t.scalefac_band.psfb12[0]),l=o+(t.scalefac_band.psfb12[a+1]-t.scalefac_band.psfb12[a]);var d=e.athAdjust(i.adjust,i.psfb12[a],i.floor);t.nsPsy.shortfact[12]>1e-12&&(d*=t.nsPsy.shortfact[12]);for(c=l-1;c>=o;c--){if(!(Math.abs(r[c])<d)){s=!0;break}r[c]=0}}}function l(t){this.ordinal=t}function h(t,e,r,s,a){var o,h=t.CurrentStep[s],c=!1,u=t.OldValue[s],d=l.BINSEARCH_NONE;for(e.global_gain=u,r-=e.part2_length;;){var f;if(o=i.count_bits(t,a,e,null),1==h||o==r)break;o>r?(d==l.BINSEARCH_DOWN&&(c=!0),c&&(h/=2),d=l.BINSEARCH_UP,f=h):(d==l.BINSEARCH_UP&&(c=!0),c&&(h/=2),d=l.BINSEARCH_DOWN,f=-h),e.global_gain+=f,e.global_gain<0&&n(),e.global_gain>255&&n()}while(o>r&&e.global_gain<255)e.global_gain++,o=i.count_bits(t,a,e,null);return t.CurrentStep[s]=u-e.global_gain>=4?4:2,t.OldValue[s]=e.global_gain,e.part2_3_length=o,o}function c(t){for(var e=0;e<t.sfbmax;e++)if(t.scalefac[e]+t.subblock_gain[t.window[e]]==0)return!1;return!0}function u(t,e,i,r,s){var a;switch(t){default:case 9:e.over_count>0?(a=i.over_SSD<=e.over_SSD,i.over_SSD==e.over_SSD&&(a=i.bits<e.bits)):a=i.max_noise<0&&10*i.max_noise+i.bits<=10*e.max_noise+e.bits;break;case 0:a=i.over_count<e.over_count||i.over_count==e.over_count&&i.over_noise<e.over_noise||i.over_count==e.over_count&&M.EQ(i.over_noise,e.over_noise)&&i.tot_noise<e.tot_noise;break;case 8:n();case 1:a=i.max_noise<e.max_noise;break;case 2:a=i.tot_noise<e.tot_noise;break;case 3:a=i.tot_noise<e.tot_noise&&i.max_noise<e.max_noise;break;case 4:a=i.max_noise<=0&&e.max_noise>.2||i.max_noise<=0&&e.max_noise<0&&e.max_noise>i.max_noise-.2&&i.tot_noise<e.tot_noise||i.max_noise<=0&&e.max_noise>0&&e.max_noise>i.max_noise-.2&&i.tot_noise<e.tot_noise+e.over_noise||i.max_noise>0&&e.max_noise>-.05&&e.max_noise>i.max_noise-.1&&i.tot_noise+i.over_noise<e.tot_noise+e.over_noise||i.max_noise>0&&e.max_noise>-.1&&e.max_noise>i.max_noise-.15&&i.tot_noise+i.over_noise+i.over_noise<e.tot_noise+e.over_noise+e.over_noise;break;case 5:a=i.over_noise<e.over_noise||M.EQ(i.over_noise,e.over_noise)&&i.tot_noise<e.tot_noise;break;case 6:a=i.over_noise<e.over_noise||M.EQ(i.over_noise,e.over_noise)&&(i.max_noise<e.max_noise||M.EQ(i.max_noise,e.max_noise)&&i.tot_noise<=e.tot_noise);break;case 7:a=i.over_count<e.over_count||i.over_noise<e.over_noise;break}return 0==e.over_count&&(a=a&&i.bits<e.bits),a}function p(t,e,i,r,s){var a,o=t.internal_flags;a=0==e.scalefac_scale?1.2968395546510096:1.6817928305074292;for(var l=0,h=0;h<e.sfbmax;h++)l<i[h]&&(l=i[h]);var c=o.noise_shaping_amp;switch(3==c&&n(),c){case 2:break;case 1:l>1?l=Math.pow(l,.5):l*=.95;break;case 0:default:l>1?l=1:l*=.95;break}var u=0;for(h=0;h<e.sfbmax;h++){var d,f=e.width[h];if(u+=f,!(i[h]<l)){for(0!=(2&o.substep_shaping)&&n(),e.scalefac[h]++,d=-f;d<0;d++)r[u+d]*=a,r[u+d]>e.xrpow_max&&(e.xrpow_max=r[u+d]);if(2==o.noise_shaping_amp)return}}}function g(t,n){for(var i=1.2968395546510096,r=0,s=0;s<t.sfbmax;s++){var a=t.width[s],o=t.scalefac[s];if(0!=t.preflag&&(o+=e.pretab[s]),r+=a,0!=(1&o)){o++;for(var l=-a;l<0;l++)n[r+l]*=i,n[r+l]>t.xrpow_max&&(t.xrpow_max=n[r+l])}t.scalefac[s]=o>>1}t.preflag=0,t.scalefac_scale=1}function m(t,n,i){var r,s=n.scalefac;for(r=0;r<n.sfb_lmax;r++)if(s[r]>=16)return!0;for(var a=0;a<3;a++){var o=0,l=0;for(r=n.sfb_lmax+a;r<n.sfbdivide;r+=3)o<s[r]&&(o=s[r]);for(;r<n.sfbmax;r+=3)l<s[r]&&(l=s[r]);if(!(o<16&&l<8)){if(n.subblock_gain[a]>=7)return!0;n.subblock_gain[a]++;var h=t.scalefac_band.l[n.sfb_lmax];for(r=n.sfb_lmax+a;r<n.sfbmax;r+=3){var c=n.width[r],u=s[r];if(u-=4>>n.scalefac_scale,u>=0)s[r]=u,h+=3*c;else{s[r]=0;var d=210+(u<<n.scalefac_scale+1);p=e.IPOW20(d),h+=c*(a+1);for(var f=-c;f<0;f++)i[h+f]*=p,i[h+f]>n.xrpow_max&&(n.xrpow_max=i[h+f]);h+=c*(3-a-1)}}var p=e.IPOW20(202);h+=n.width[r]*(a+1);for(f=-n.width[r];f<0;f++)i[h+f]*=p,i[h+f]>n.xrpow_max&&(n.xrpow_max=i[h+f])}}return!1}function v(t,e,n,r,s){var a=t.internal_flags;p(t,e,n,r,s);var o=c(e);return!o&&(o=2==a.mode_gr?i.scale_bitcount(e):i.scale_bitcount_lsf(a,e),!o||(a.noise_shaping>1&&(d.fill(a.pseudohalf,0),0==e.scalefac_scale?(g(e,r),o=!1):e.block_type==q.SHORT_TYPE&&a.subblock_gain>0&&(o=m(a,e,r)||c(e))),o||(o=2==a.mode_gr?i.scale_bitcount(e):i.scale_bitcount_lsf(a,e)),!o))}this.setModules=function(n,s,a,o){t=s,this.rv=s,e=a,this.qupvt=a,i=o,r.setModules(e,i)},this.init_xrpow=function(t,e,n){var i=0,r=0|e.max_nonzero_coeff;if(e.xrpow_max=0,d.fill(n,r,576,0),i=s(e,n,r,i),i>1e-20){var a=0;0!=(2&t.substep_shaping)&&(a=1);for(var o=0;o<e.psymax;o++)t.pseudohalf[o]=a;return!0}return d.fill(e.l3_enc,0,576,0),!1},this.init_outer_loop=function(t,i){i.part2_3_length=0,i.big_values=0,i.count1=0,i.global_gain=210,i.scalefac_compress=0,i.table_select[0]=0,i.table_select[1]=0,i.table_select[2]=0,i.subblock_gain[0]=0,i.subblock_gain[1]=0,i.subblock_gain[2]=0,i.subblock_gain[3]=0,i.region0_count=0,i.region1_count=0,i.preflag=0,i.scalefac_scale=0,i.count1table_select=0,i.part2_length=0,i.sfb_lmax=q.SBPSY_l,i.sfb_smin=q.SBPSY_s,i.psy_lmax=t.sfb21_extra?q.SBMAX_l:q.SBPSY_l,i.psymax=i.psy_lmax,i.sfbmax=i.sfb_lmax,i.sfbdivide=11;for(var r=0;r<q.SBMAX_l;r++)i.width[r]=t.scalefac_band.l[r+1]-t.scalefac_band.l[r],i.window[r]=3;if(i.block_type==q.SHORT_TYPE){var s=a(576);i.sfb_smin=0,i.sfb_lmax=0,0!=i.mixed_block_flag&&n(),i.psymax=i.sfb_lmax+3*((t.sfb21_extra?q.SBMAX_s:q.SBPSY_s)-i.sfb_smin),i.sfbmax=i.sfb_lmax+3*(q.SBPSY_s-i.sfb_smin),i.sfbdivide=i.sfbmax-18,i.psy_lmax=i.sfb_lmax;var l=t.scalefac_band.l[i.sfb_lmax];f.arraycopy(i.xr,0,s,0,576);for(r=i.sfb_smin;r<q.SBMAX_s;r++)for(var h=t.scalefac_band.s[r],c=t.scalefac_band.s[r+1],u=0;u<3;u++)for(var p=h;p<c;p++)i.xr[l++]=s[3*p+u];var g=i.sfb_lmax;for(r=i.sfb_smin;r<q.SBMAX_s;r++)i.width[g]=i.width[g+1]=i.width[g+2]=t.scalefac_band.s[r+1]-t.scalefac_band.s[r],i.window[g]=0,i.window[g+1]=1,i.window[g+2]=2,g+=3}i.count1bits=0,i.sfb_partition_table=e.nr_of_sfb_block[0][0],i.slen[0]=0,i.slen[1]=0,i.slen[2]=0,i.slen[3]=0,i.max_nonzero_coeff=575,d.fill(i.scalefac,0),o(t,i)},l.BINSEARCH_NONE=new l(0),l.BINSEARCH_UP=new l(1),l.BINSEARCH_DOWN=new l(2),this.outer_loop=function(t,r,s,o,l,c){var d,p=t.internal_flags,g=new O,m=a(576),y=a(U.SFBMAX),b=new z,x=new N,w=9999999,S=!1,T=!1,M=0;if(h(p,r,c,l,o),0==p.noise_shaping)return 100;e.calc_noise(r,s,y,b,x),b.bits=r.part2_3_length,g.assign(r);var E=0;f.arraycopy(o,0,m,0,576);while(!S){do{var A,R=new z,C=255;if(A=0!=(2&p.substep_shaping)?20:3,p.sfb21_extra&&n(),!v(t,g,y,o,T))break;0!=g.scalefac_scale&&(C=254);var P=c-g.part2_length;if(P<=0)break;while((g.part2_3_length=i.count_bits(p,o,g,x))>P&&g.global_gain<=C)g.global_gain++;if(g.global_gain>C)break;if(0==b.over_count){while((g.part2_3_length=i.count_bits(p,o,g,x))>w&&g.global_gain<=C)g.global_gain++;if(g.global_gain>C)break}if(e.calc_noise(g,s,y,R,x),R.bits=g.part2_3_length,d=r.block_type!=q.SHORT_TYPE?t.quant_comp:t.quant_comp_short,d=u(d,b,R,g,y)?1:0,0!=d)w=r.part2_3_length,b=R,r.assign(g),E=0,f.arraycopy(o,0,m,0,576);else if(0==p.full_outer_loop){if(++E>A&&0==b.over_count)break;if(3==p.noise_shaping_amp&&T&&E>30)break;if(3==p.noise_shaping_amp&&T&&g.global_gain-M>15)break}}while(g.global_gain+g.scalefac_scale<255);3==p.noise_shaping_amp?n():S=!0}return t.VBR==_.vbr_rh||t.VBR==_.vbr_mtrh?f.arraycopy(m,0,o,0,576):0!=(1&p.substep_shaping)&&n(),b.over_count},this.iteration_finish_one=function(e,n,r){var s=e.l3_side,a=s.tt[n][r];i.best_scalefac_store(e,n,r,s),1==e.use_best_huffman&&i.best_huffman_divide(e,a),t.ResvAdjust(e,a)}}function F(){var t=[-.1482523854003001,32.308141959636465,296.40344946382766,883.1344870032432,11113.947376231741,1057.2713659324597,305.7402417275812,30.825928907280012,3.8533188138216365,59.42900443849514,709.5899960123345,5281.91112291017,-5829.66483675846,-817.6293103748613,-76.91656988279972,-4.594269939176596,.9063471690191471,.1960342806591213,-.15466694054279598,34.324387823855965,301.8067566458425,817.599602898885,11573.795901679885,1181.2520595540152,321.59731579894424,31.232021761053772,3.7107095756221318,53.650946155329365,684.167428119626,5224.56624370173,-6366.391851890084,-908.9766368219582,-89.83068876699639,-5.411397422890401,.8206787908286602,.3901806440322567,-.16070888947830023,36.147034243915876,304.11815768187864,732.7429163887613,11989.60988270091,1300.012278487897,335.28490093152146,31.48816102859945,3.373875931311736,47.232241542899175,652.7371796173471,5132.414255594984,-6909.087078780055,-1001.9990371107289,-103.62185754286375,-6.104916304710272,.7416505462720353,.5805693545089249,-.16636367662261495,37.751650073343995,303.01103387567713,627.9747488785183,12358.763425278165,1412.2779918482834,346.7496836825721,31.598286663170416,3.1598635433980946,40.57878626349686,616.1671130880391,5007.833007176154,-7454.040671756168,-1095.7960341867115,-118.24411666465777,-6.818469345853504,.6681786379192989,.7653668647301797,-.1716176790982088,39.11551877123304,298.3413246578966,503.5259106886539,12679.589408408976,1516.5821921214542,355.9850766329023,31.395241710249053,2.9164211881972335,33.79716964664243,574.8943997801362,4853.234992253242,-7997.57021486075,-1189.7624067269965,-133.6444792601766,-7.7202770609839915,.5993769336819237,.9427934736519954,-.17645823955292173,40.21879108166477,289.9982036694474,359.3226160751053,12950.259102786438,1612.1013903507662,362.85067106591504,31.045922092242872,2.822222032597987,26.988862316190684,529.8996541764288,4671.371946949588,-8535.899136645805,-1282.5898586244496,-149.58553632943463,-8.643494270763135,.5345111359507916,1.111140466039205,-.36174739330527045,41.04429910497807,277.5463268268618,195.6386023135583,13169.43812144731,1697.6433561479398,367.40983966190305,30.557037410382826,2.531473372857427,20.070154905927314,481.50208566532336,4464.970341588308,-9065.36882077239,-1373.62841526722,-166.1660487028118,-9.58289321133207,.4729647758913199,1.268786568327291,-.36970682634889585,41.393213350082036,261.2935935556502,12.935476055240873,13336.131683328815,1772.508612059496,369.76534388639965,29.751323653701338,2.4023193045459172,13.304795348228817,430.5615775526625,4237.0568611071185,-9581.931701634761,-1461.6913552409758,-183.12733958476446,-10.718010163869403,.41421356237309503,1.414213562373095,-.37677560326535325,41.619486213528496,241.05423794991074,-187.94665032361226,13450.063605744153,1836.153896465782,369.4908799925761,29.001847876923147,2.0714759319987186,6.779591200894186,377.7767837205709,3990.386575512536,-10081.709459700915,-1545.947424837898,-200.3762958015653,-11.864482073055006,.3578057213145241,1.546020906725474,-.3829366947518991,41.1516456456653,216.47684307105183,-406.1569483347166,13511.136535077321,1887.8076599260432,367.3025214564151,28.136213436723654,1.913880671464418,.3829366947518991,323.85365704338597,3728.1472257487526,-10561.233882199509,-1625.2025997821418,-217.62525175416,-13.015432208941645,.3033466836073424,1.66293922460509,-.5822628872992417,40.35639251440489,188.20071124269245,-640.2706748618148,13519.21490106562,1927.6022433578062,362.8197642637487,26.968821921868447,1.7463817695935329,-5.62650678237171,269.3016715297017,3453.386536448852,-11016.145278780888,-1698.6569643425091,-234.7658734267683,-14.16351421663124,.2504869601913055,1.76384252869671,-.5887180101749253,39.23429103868072,155.76096234403798,-889.2492977967378,13475.470561874661,1955.0535223723712,356.4450994756727,25.894952980042156,1.5695032905781554,-11.181939564328772,214.80884394039484,3169.1640829158237,-11443.321309975563,-1765.1588461316153,-251.68908574481912,-15.49755935939164,.198912367379658,1.847759065022573,-.7912582233652842,37.39369355329111,119.699486012458,-1151.0956593239027,13380.446257078214,1970.3952110853447,348.01959814116185,24.731487364283044,1.3850130831637748,-16.421408865300393,161.05030052864092,2878.3322807850063,-11838.991423510031,-1823.985884688674,-268.2854986386903,-16.81724543849939,.1483359875383474,1.913880671464418,-.7960642926861912,35.2322109610459,80.01928065061526,-1424.0212633405113,13235.794061869668,1973.804052543835,337.9908651258184,23.289159354463873,1.3934255946442087,-21.099669467133474,108.48348407242611,2583.700758091299,-12199.726194855148,-1874.2780658979746,-284.2467154529415,-18.11369784385905,.09849140335716425,1.961570560806461,-.998795456205172,32.56307803611191,36.958364584370486,-1706.075448829146,13043.287458812016,1965.3831106103316,326.43182772364605,22.175018750622293,1.198638339011324,-25.371248002043963,57.53505923036915,2288.41886619975,-12522.674544337233,-1914.8400385312243,-299.26241273417224,-19.37805630698734,.04912684976946725,1.990369453344394,.035780907*p.SQRT2*.5/2384e-9,.017876148*p.SQRT2*.5/2384e-9,.003134727*p.SQRT2*.5/2384e-9,.002457142*p.SQRT2*.5/2384e-9,971317e-9*p.SQRT2*.5/2384e-9,218868e-9*p.SQRT2*.5/2384e-9,101566e-9*p.SQRT2*.5/2384e-9,13828e-9*p.SQRT2*.5/2384e-9,12804.797818791945,1945.5515939597317,313.4244966442953,20.801593959731544,1995.1556208053692,9.000838926174497,-29.20218120805369],e=12,i=36,r=[[2382191739347913e-28,6423305872147834e-28,9400849094049688e-28,1122435026096556e-27,1183840321267481e-27,1122435026096556e-27,940084909404969e-27,6423305872147839e-28,2382191739347918e-28,5456116108943412e-27,4878985199565852e-27,4240448995017367e-27,3559909094758252e-27,2858043359288075e-27,2156177623817898e-27,1475637723558783e-27,8371015190102974e-28,2599706096327376e-28,-5456116108943412e-27,-4878985199565852e-27,-4240448995017367e-27,-3559909094758252e-27,-2858043359288076e-27,-2156177623817898e-27,-1475637723558783e-27,-8371015190102975e-28,-2599706096327376e-28,-2382191739347923e-28,-6423305872147843e-28,-9400849094049696e-28,-1122435026096556e-27,-1183840321267481e-27,-1122435026096556e-27,-9400849094049694e-28,-642330587214784e-27,-2382191739347918e-28],[2382191739347913e-28,6423305872147834e-28,9400849094049688e-28,1122435026096556e-27,1183840321267481e-27,1122435026096556e-27,9400849094049688e-28,6423305872147841e-28,2382191739347918e-28,5456116108943413e-27,4878985199565852e-27,4240448995017367e-27,3559909094758253e-27,2858043359288075e-27,2156177623817898e-27,1475637723558782e-27,8371015190102975e-28,2599706096327376e-28,-5461314069809755e-27,-4921085770524055e-27,-4343405037091838e-27,-3732668368707687e-27,-3093523840190885e-27,-2430835727329465e-27,-1734679010007751e-27,-974825365660928e-27,-2797435120168326e-28,0,0,0,0,0,0,-2283748241799531e-28,-4037858874020686e-28,-2146547464825323e-28],[.1316524975873958,.414213562373095,.7673269879789602,1.091308501069271,1.303225372841206,1.56968557711749,1.920982126971166,2.414213562373094,3.171594802363212,4.510708503662055,7.595754112725146,22.90376554843115,.984807753012208,.6427876096865394,.3420201433256688,.9396926207859084,-.1736481776669303,-.7660444431189779,.8660254037844387,.5,-.5144957554275265,-.4717319685649723,-.3133774542039019,-.1819131996109812,-.09457419252642064,-.04096558288530405,-.01419856857247115,-.003699974673760037,.8574929257125442,.8817419973177052,.9496286491027329,.9833145924917901,.9955178160675857,.9991605581781475,.999899195244447,.9999931550702802],[0,0,0,0,0,0,2283748241799531e-28,4037858874020686e-28,2146547464825323e-28,5461314069809755e-27,4921085770524055e-27,4343405037091838e-27,3732668368707687e-27,3093523840190885e-27,2430835727329466e-27,1734679010007751e-27,974825365660928e-27,2797435120168326e-28,-5456116108943413e-27,-4878985199565852e-27,-4240448995017367e-27,-3559909094758253e-27,-2858043359288075e-27,-2156177623817898e-27,-1475637723558782e-27,-8371015190102975e-28,-2599706096327376e-28,-2382191739347913e-28,-6423305872147834e-28,-9400849094049688e-28,-1122435026096556e-27,-1183840321267481e-27,-1122435026096556e-27,-9400849094049688e-28,-6423305872147841e-28,-2382191739347918e-28]],s=r[q.SHORT_TYPE],o=r[q.SHORT_TYPE],l=r[q.SHORT_TYPE],h=r[q.SHORT_TYPE],c=[0,1,16,17,8,9,24,25,4,5,20,21,12,13,28,29,2,3,18,19,10,11,26,27,6,7,22,23,14,15,30,31];function u(e,n,i){for(var r,s,a,o=10,l=n+238-14-286,h=-15;h<0;h++){var c,u,d;c=t[o+-10],u=e[l+-224]*c,d=e[n+224]*c,c=t[o+-9],u+=e[l+-160]*c,d+=e[n+160]*c,c=t[o+-8],u+=e[l+-96]*c,d+=e[n+96]*c,c=t[o+-7],u+=e[l+-32]*c,d+=e[n+32]*c,c=t[o+-6],u+=e[l+32]*c,d+=e[n+-32]*c,c=t[o+-5],u+=e[l+96]*c,d+=e[n+-96]*c,c=t[o+-4],u+=e[l+160]*c,d+=e[n+-160]*c,c=t[o+-3],u+=e[l+224]*c,d+=e[n+-224]*c,c=t[o+-2],u+=e[n+-256]*c,d-=e[l+256]*c,c=t[o+-1],u+=e[n+-192]*c,d-=e[l+192]*c,c=t[o+0],u+=e[n+-128]*c,d-=e[l+128]*c,c=t[o+1],u+=e[n+-64]*c,d-=e[l+64]*c,c=t[o+2],u+=e[n+0]*c,d-=e[l+0]*c,c=t[o+3],u+=e[n+64]*c,d-=e[l+-64]*c,c=t[o+4],u+=e[n+128]*c,d-=e[l+-128]*c,c=t[o+5],u+=e[n+192]*c,d-=e[l+-192]*c,u*=t[o+6],c=d-u,i[30+2*h]=d+u,i[31+2*h]=t[o+7]*c,o+=18,n--,l++}d=e[n+-16]*t[o+-10],u=e[n+-32]*t[o+-2],d+=(e[n+-48]-e[n+16])*t[o+-9],u+=e[n+-96]*t[o+-1],d+=(e[n+-80]+e[n+48])*t[o+-8],u+=e[n+-160]*t[o+0],d+=(e[n+-112]-e[n+80])*t[o+-7],u+=e[n+-224]*t[o+1],d+=(e[n+-144]+e[n+112])*t[o+-6],u-=e[n+32]*t[o+2],d+=(e[n+-176]-e[n+144])*t[o+-5],u-=e[n+96]*t[o+3],d+=(e[n+-208]+e[n+176])*t[o+-4],u-=e[n+160]*t[o+4],d+=(e[n+-240]-e[n+208])*t[o+-3],u-=e[n+224],r=u-d,s=u+d,d=i[14],u=i[15]-d,i[31]=s+d,i[30]=r+u,i[15]=r-u,i[14]=s-d,a=i[28]-i[0],i[0]+=i[28],i[28]=a*t[o+-36+7],a=i[29]-i[1],i[1]+=i[29],i[29]=a*t[o+-36+7],a=i[26]-i[2],i[2]+=i[26],i[26]=a*t[o+-72+7],a=i[27]-i[3],i[3]+=i[27],i[27]=a*t[o+-72+7],a=i[24]-i[4],i[4]+=i[24],i[24]=a*t[o+-108+7],a=i[25]-i[5],i[5]+=i[25],i[25]=a*t[o+-108+7],a=i[22]-i[6],i[6]+=i[22],i[22]=a*p.SQRT2,a=i[23]-i[7],i[7]+=i[23],i[23]=a*p.SQRT2-i[7],i[7]-=i[6],i[22]-=i[7],i[23]-=i[22],a=i[6],i[6]=i[31]-a,i[31]=i[31]+a,a=i[7],i[7]=i[30]-a,i[30]=i[30]+a,a=i[22],i[22]=i[15]-a,i[15]=i[15]+a,a=i[23],i[23]=i[14]-a,i[14]=i[14]+a,a=i[20]-i[8],i[8]+=i[20],i[20]=a*t[o+-180+7],a=i[21]-i[9],i[9]+=i[21],i[21]=a*t[o+-180+7],a=i[18]-i[10],i[10]+=i[18],i[18]=a*t[o+-216+7],a=i[19]-i[11],i[11]+=i[19],i[19]=a*t[o+-216+7],a=i[16]-i[12],i[12]+=i[16],i[16]=a*t[o+-252+7],a=i[17]-i[13],i[13]+=i[17],i[17]=a*t[o+-252+7],a=-i[20]+i[24],i[20]+=i[24],i[24]=a*t[o+-216+7],a=-i[21]+i[25],i[21]+=i[25],i[25]=a*t[o+-216+7],a=i[4]-i[8],i[4]+=i[8],i[8]=a*t[o+-216+7],a=i[5]-i[9],i[5]+=i[9],i[9]=a*t[o+-216+7],a=i[0]-i[12],i[0]+=i[12],i[12]=a*t[o+-72+7],a=i[1]-i[13],i[1]+=i[13],i[13]=a*t[o+-72+7],a=i[16]-i[28],i[16]+=i[28],i[28]=a*t[o+-72+7],a=-i[17]+i[29],i[17]+=i[29],i[29]=a*t[o+-72+7],a=p.SQRT2*(i[2]-i[10]),i[2]+=i[10],i[10]=a,a=p.SQRT2*(i[3]-i[11]),i[3]+=i[11],i[11]=a,a=p.SQRT2*(-i[18]+i[26]),i[18]+=i[26],i[26]=a-i[18],a=p.SQRT2*(-i[19]+i[27]),i[19]+=i[27],i[27]=a-i[19],a=i[2],i[19]-=i[3],i[3]-=a,i[2]=i[31]-a,i[31]+=a,a=i[3],i[11]-=i[19],i[18]-=a,i[3]=i[30]-a,i[30]+=a,a=i[18],i[27]-=i[11],i[19]-=a,i[18]=i[15]-a,i[15]+=a,a=i[19],i[10]-=a,i[19]=i[14]-a,i[14]+=a,a=i[10],i[11]-=a,i[10]=i[23]-a,i[23]+=a,a=i[11],i[26]-=a,i[11]=i[22]-a,i[22]+=a,a=i[26],i[27]-=a,i[26]=i[7]-a,i[7]+=a,a=i[27],i[27]=i[6]-a,i[6]+=a,a=p.SQRT2*(i[0]-i[4]),i[0]+=i[4],i[4]=a,a=p.SQRT2*(i[1]-i[5]),i[1]+=i[5],i[5]=a,a=p.SQRT2*(i[16]-i[20]),i[16]+=i[20],i[20]=a,a=p.SQRT2*(i[17]-i[21]),i[17]+=i[21],i[21]=a,a=-p.SQRT2*(i[8]-i[12]),i[8]+=i[12],i[12]=a-i[8],a=-p.SQRT2*(i[9]-i[13]),i[9]+=i[13],i[13]=a-i[9],a=-p.SQRT2*(i[25]-i[29]),i[25]+=i[29],i[29]=a-i[25],a=-p.SQRT2*(i[24]+i[28]),i[24]-=i[28],i[28]=a-i[24],a=i[24]-i[16],i[24]=a,a=i[20]-a,i[20]=a,a=i[28]-a,i[28]=a,a=i[25]-i[17],i[25]=a,a=i[21]-a,i[21]=a,a=i[29]-a,i[29]=a,a=i[17]-i[1],i[17]=a,a=i[9]-a,i[9]=a,a=i[25]-a,i[25]=a,a=i[5]-a,i[5]=a,a=i[21]-a,i[21]=a,a=i[13]-a,i[13]=a,a=i[29]-a,i[29]=a,a=i[1]-i[0],i[1]=a,a=i[16]-a,i[16]=a,a=i[17]-a,i[17]=a,a=i[8]-a,i[8]=a,a=i[9]-a,i[9]=a,a=i[24]-a,i[24]=a,a=i[25]-a,i[25]=a,a=i[4]-a,i[4]=a,a=i[5]-a,i[5]=a,a=i[20]-a,i[20]=a,a=i[21]-a,i[21]=a,a=i[12]-a,i[12]=a,a=i[13]-a,i[13]=a,a=i[28]-a,i[28]=a,a=i[29]-a,i[29]=a,a=i[0],i[0]+=i[31],i[31]-=a,a=i[1],i[1]+=i[30],i[30]-=a,a=i[16],i[16]+=i[15],i[15]-=a,a=i[17],i[17]+=i[14],i[14]-=a,a=i[8],i[8]+=i[23],i[23]-=a,a=i[9],i[9]+=i[22],i[22]-=a,a=i[24],i[24]+=i[7],i[7]-=a,a=i[25],i[25]+=i[6],i[6]-=a,a=i[4],i[4]+=i[27],i[27]-=a,a=i[5],i[5]+=i[26],i[26]-=a,a=i[20],i[20]+=i[11],i[11]-=a,a=i[21],i[21]+=i[10],i[10]-=a,a=i[12],i[12]+=i[19],i[19]-=a,a=i[13],i[13]+=i[18],i[18]-=a,a=i[28],i[28]+=i[3],i[3]-=a,a=i[29],i[29]+=i[2],i[2]-=a}function g(t,e){for(var n=0;n<3;n++){var i,s,a,o,l,h;o=t[e+6]*r[q.SHORT_TYPE][0]-t[e+15],i=t[e+0]*r[q.SHORT_TYPE][2]-t[e+9],s=o+i,a=o-i,o=t[e+15]*r[q.SHORT_TYPE][0]+t[e+6],i=t[e+9]*r[q.SHORT_TYPE][2]+t[e+0],l=o+i,h=-o+i,i=2069978111953089e-26*(t[e+3]*r[q.SHORT_TYPE][1]-t[e+12]),o=2069978111953089e-26*(t[e+12]*r[q.SHORT_TYPE][1]+t[e+3]),t[e+0]=190752519173728e-25*s+i,t[e+15]=190752519173728e-25*-l+o,a=.8660254037844387*a*1907525191737281e-26,l=.5*l*1907525191737281e-26+o,t[e+3]=a-l,t[e+6]=a+l,s=.5*s*1907525191737281e-26-i,h=.8660254037844387*h*1907525191737281e-26,t[e+9]=s+h,t[e+12]=s-h,e++}}function m(t,e,n){var i,r,s,a,l,h,c,u,d,f,p,g,m,_,v,y,b,x;s=n[17]-n[9],l=n[15]-n[11],h=n[14]-n[12],c=n[0]+n[8],u=n[1]+n[7],d=n[2]+n[6],f=n[3]+n[5],t[e+17]=c+d-f-(u-n[4]),r=(c+d-f)*o[19]+(u-n[4]),i=(s-l-h)*o[18],t[e+5]=i+r,t[e+6]=i-r,a=(n[16]-n[10])*o[18],u=u*o[19]+n[4],i=s*o[12]+a+l*o[13]+h*o[14],r=-c*o[16]+u-d*o[17]+f*o[15],t[e+1]=i+r,t[e+2]=i-r,i=s*o[13]-a-l*o[14]+h*o[12],r=-c*o[17]+u-d*o[15]+f*o[16],t[e+9]=i+r,t[e+10]=i-r,i=s*o[14]-a+l*o[12]-h*o[13],r=c*o[15]-u+d*o[16]-f*o[17],t[e+13]=i+r,t[e+14]=i-r,p=n[8]-n[0],m=n[6]-n[2],_=n[5]-n[3],v=n[17]+n[9],y=n[16]+n[10],b=n[15]+n[11],x=n[14]+n[12],t[e+0]=v+b+x+(y+n[13]),i=(v+b+x)*o[19]-(y+n[13]),r=(p-m+_)*o[18],t[e+11]=i+r,t[e+12]=i-r,g=(n[7]-n[1])*o[18],y=n[13]-y*o[19],i=v*o[15]-y+b*o[16]+x*o[17],r=p*o[14]+g+m*o[12]+_*o[13],t[e+3]=i+r,t[e+4]=i-r,i=-v*o[17]+y-b*o[15]-x*o[16],r=p*o[13]+g-m*o[14]-_*o[12],t[e+7]=i+r,t[e+8]=i-r,i=-v*o[16]+y-b*o[17]-x*o[15],r=p*o[12]-g+m*o[13]-_*o[14],t[e+15]=i+r,t[e+16]=i-r}this.mdct_sub48=function(t,o,p){for(var _=o,v=286,y=0;y<t.channels_out;y++){for(var b=0;b<t.mode_gr;b++){for(var x,w=t.l3_side.tt[b][y],S=w.xr,T=0,M=t.sb_sample[y][1-b],E=0,A=0;A<9;A++)for(u(_,v,M[E]),u(_,v+32,M[E+1]),E+=2,v+=64,x=1;x<32;x+=2)M[E-1][x]*=-1;for(x=0;x<32;x++,T+=18){var R=w.block_type,z=t.sb_sample[y][b],C=t.sb_sample[y][1-b];if(0!=w.mixed_block_flag&&x<2&&(R=0),t.amp_filter[x]<1e-12)d.fill(S,T+0,T+18,0);else if(t.amp_filter[x]<1&&n(),R==q.SHORT_TYPE){for(A=-e/4;A<0;A++){var P=r[q.SHORT_TYPE][A+3];S[T+3*A+9]=z[9+A][c[x]]*P-z[8-A][c[x]],S[T+3*A+18]=z[14-A][c[x]]*P+z[15+A][c[x]],S[T+3*A+10]=z[15+A][c[x]]*P-z[14-A][c[x]],S[T+3*A+19]=C[2-A][c[x]]*P+C[3+A][c[x]],S[T+3*A+11]=C[3+A][c[x]]*P-C[2-A][c[x]],S[T+3*A+20]=C[8-A][c[x]]*P+C[9+A][c[x]]}g(S,T)}else{var k=a(18);for(A=-i/4;A<0;A++){var D,I;D=r[R][A+27]*C[A+9][c[x]]+r[R][A+36]*C[8-A][c[x]],I=r[R][A+9]*z[A+9][c[x]]-r[R][A+18]*z[8-A][c[x]],k[A+9]=D-I*s[3+A+9],k[A+18]=D*s[3+A+9]+I}m(S,T,k)}if(R!=q.SHORT_TYPE&&0!=x)for(A=7;A>=0;--A){var L,j;L=S[T+A]*l[20+A]+S[T+-1-A]*h[28+A],j=S[T+A]*h[28+A]-S[T+-1-A]*l[20+A],S[T+-1-A]=L,S[T+A]=j}}}if(_=p,v=286,1==t.mode_gr)for(var N=0;N<18;N++)f.arraycopy(t.sb_sample[y][1][N],0,t.sb_sample[y][0][N],0,32)}}}function H(){this.thm=new W,this.en=new W}function q(){q.FFTOFFSET;var t=q.MPG_MD_MS_LR,e=null;this.psy=null;var i=null,r=null;this.setModules=function(t,n,s,a){e=t,this.psy=n,i=n,r=a};var o=new F;function h(t){var e,i;if(0!=t.ATH.useAdjust)if(i=t.loudness_sq[0][0],e=t.loudness_sq[1][0],2==t.channels_out?n():(i+=i,e+=e),2==t.mode_gr&&(i=Math.max(i,e)),i*=.5,i*=t.ATH.aaSensitivityP,i>.03125)t.ATH.adjust>=1?t.ATH.adjust=1:t.ATH.adjust<t.ATH.adjustLimit&&(t.ATH.adjust=t.ATH.adjustLimit),t.ATH.adjustLimit=1;else{var r=31.98*i+625e-6;t.ATH.adjust>=r?(t.ATH.adjust*=.075*r+.925,t.ATH.adjust<r&&(t.ATH.adjust=r)):t.ATH.adjustLimit>=r?t.ATH.adjust=r:t.ATH.adjust<t.ATH.adjustLimit&&(t.ATH.adjust=t.ATH.adjustLimit),t.ATH.adjustLimit=r}else t.ATH.adjust=1}function c(t){var e,i;for(t.bitrate_stereoMode_Hist[t.bitrate_index][4]++,t.bitrate_stereoMode_Hist[15][4]++,2==t.channels_out&&n(),e=0;e<t.mode_gr;++e)for(i=0;i<t.channels_out;++i){var r=0|t.l3_side.tt[e][i].block_type;0!=t.l3_side.tt[e][i].mixed_block_flag&&(r=4),t.bitrate_blockType_Hist[t.bitrate_index][r]++,t.bitrate_blockType_Hist[t.bitrate_index][5]++,t.bitrate_blockType_Hist[15][r]++,t.bitrate_blockType_Hist[15][5]++}}function d(t,e){var n,i,r=t.internal_flags;if(0==r.lame_encode_frame_init){var s,l,h=a(2014),c=a(2014);for(r.lame_encode_frame_init=1,s=0,l=0;s<286+576*(1+r.mode_gr);++s)s<576*r.mode_gr?(h[s]=0,2==r.channels_out&&(c[s]=0)):(h[s]=e[0][l],2==r.channels_out&&(c[s]=e[1][l]),++l);for(i=0;i<r.mode_gr;i++)for(n=0;n<r.channels_out;n++)r.l3_side.tt[i][n].block_type=q.SHORT_TYPE;o.mdct_sub48(r,h,c)}}this.lame_encode_mp3_frame=function(a,f,p,g,m,y){var b,x=u([2,2]);x[0][0]=new H,x[0][1]=new H,x[1][0]=new H,x[1][1]=new H;var w,S=u([2,2]);S[0][0]=new H,S[0][1]=new H,S[1][0]=new H,S[1][1]=new H;var T,M,E,A=[null,null],R=a.internal_flags,z=l([2,4]),C=[.5,.5],P=[[0,0],[0,0]],k=[[0,0],[0,0]];if(A[0]=f,A[1]=p,0==R.lame_encode_frame_init&&d(a,A),R.padding=0,(R.slot_lag-=R.frac_SpF)<0&&(R.slot_lag+=a.out_samplerate,R.padding=1),0!=R.psymodel){var D,I=[null,null],L=0,j=s(2);for(E=0;E<R.mode_gr;E++){for(M=0;M<R.channels_out;M++)I[M]=A[M],L=576+576*E-q.FFTOFFSET;if(a.VBR==_.vbr_mtrh||a.VBR==_.vbr_mt?n():D=i.L3psycho_anal_ns(a,I,L,E,x,S,P[E],k[E],z[E],j),0!=D)return-4;for(a.mode==v.JOINT_STEREO&&n(),M=0;M<R.channels_out;M++){var N=R.l3_side.tt[E][M];N.block_type=j[M],N.mixed_block_flag=0}}}else n();if(h(R),o.mdct_sub48(R,A[0],A[1]),R.mode_ext=q.MPG_MD_LR_LR,a.force_ms?R.mode_ext=q.MPG_MD_MS_LR:a.mode==v.JOINT_STEREO&&n(),R.mode_ext==t?(w=S,T=k):(w=x,T=P),a.analysis&&null!=R.pinfo&&n(),a.VBR==_.vbr_off||a.VBR==_.vbr_abr){var O,U;for(O=0;O<18;O++)R.nsPsy.pefirbuf[O]=R.nsPsy.pefirbuf[O+1];for(U=0,E=0;E<R.mode_gr;E++)for(M=0;M<R.channels_out;M++)U+=T[E][M];for(R.nsPsy.pefirbuf[18]=U,U=R.nsPsy.pefirbuf[9],O=0;O<9;O++)U+=(R.nsPsy.pefirbuf[O]+R.nsPsy.pefirbuf[18-O])*q.fircoef[O];for(U=3350*R.mode_gr*R.channels_out/U,E=0;E<R.mode_gr;E++)for(M=0;M<R.channels_out;M++)T[E][M]*=U}return R.iteration_loop.iteration_loop(a,T,C,w),e.format_bitstream(a),b=e.copy_buffer(R,g,m,y,1),a.bWriteVbrTag&&r.addVbrFrame(a),a.analysis&&null!=R.pinfo&&n(),c(R),b}}function V(){this.sum=0,this.seen=0,this.want=0,this.pos=0,this.size=0,this.bag=null,this.nVbrNumFrames=0,this.nBytesWritten=0,this.TotalFrameSize=0}function G(){this.tt=[[null,null],[null,null]],this.main_data_begin=0,this.private_bits=0,this.resvDrain_pre=0,this.resvDrain_post=0,this.scfsi=[s(4),s(4)];for(var t=0;t<2;t++)for(var e=0;e<2;e++)this.tt[t][e]=new O}function W(){this.l=a(q.SBMAX_l),this.s=l([q.SBMAX_s,3]);var t=this;this.assign=function(e){f.arraycopy(e.l,0,t.l,0,q.SBMAX_l);for(var n=0;n<q.SBMAX_s;n++)for(var i=0;i<3;i++)t.s[n][i]=e.s[n][i]}}function X(){this.last_en_subshort=l([4,9]),this.lastAttacks=s(4),this.pefirbuf=a(19),this.longfact=a(q.SBMAX_l),this.shortfact=a(q.SBMAX_s),this.attackthre=0,this.attackthre_s=0}function J(){var t=40;function e(){this.write_timing=0,this.ptr=0,this.buf=i(t)}this.Class_ID=0,this.lame_encode_frame_init=0,this.iteration_init_init=0,this.fill_buffer_resample_init=0,this.mfbuf=l([2,J.MFSIZE]),this.mode_gr=0,this.channels_in=0,this.channels_out=0,this.resample_ratio=0,this.mf_samples_to_encode=0,this.mf_size=0,this.VBR_min_bitrate=0,this.VBR_max_bitrate=0,this.bitrate_index=0,this.samplerate_index=0,this.mode_ext=0,this.lowpass1=0,this.lowpass2=0,this.highpass1=0,this.highpass2=0,this.noise_shaping=0,this.noise_shaping_amp=0,this.substep_shaping=0,this.psymodel=0,this.noise_shaping_stop=0,this.subblock_gain=0,this.use_best_huffman=0,this.full_outer_loop=0,this.l3_side=new G,this.ms_ratio=a(2),this.padding=0,this.frac_SpF=0,this.slot_lag=0,this.tag_spec=null,this.nMusicCRC=0,this.OldValue=s(2),this.CurrentStep=s(2),this.masking_lower=0,this.bv_scf=s(576),this.pseudohalf=s(U.SFBMAX),this.sfb21_extra=!1,this.inbuf_old=new Array(2),this.blackfilt=new Array(2*J.BPC+1),this.itime=o(2),this.sideinfo_len=0,this.sb_sample=l([2,2,18,q.SBLIMIT]),this.amp_filter=a(32),this.header=new Array(J.MAX_HEADER_BUF),this.h_ptr=0,this.w_ptr=0,this.ancillary_flag=0,this.ResvSize=0,this.ResvMax=0,this.scalefac_band=new L,this.minval_l=a(q.CBANDS),this.minval_s=a(q.CBANDS),this.nb_1=l([4,q.CBANDS]),this.nb_2=l([4,q.CBANDS]),this.nb_s1=l([4,q.CBANDS]),this.nb_s2=l([4,q.CBANDS]),this.s3_ss=null,this.s3_ll=null,this.decay=0,this.thm=new Array(4),this.en=new Array(4),this.tot_ener=a(4),this.loudness_sq=l([2,2]),this.loudness_sq_save=a(2),this.mld_l=a(q.SBMAX_l),this.mld_s=a(q.SBMAX_s),this.bm_l=s(q.SBMAX_l),this.bo_l=s(q.SBMAX_l),this.bm_s=s(q.SBMAX_s),this.bo_s=s(q.SBMAX_s),this.npart_l=0,this.npart_s=0,this.s3ind=h([q.CBANDS,2]),this.s3ind_s=h([q.CBANDS,2]),this.numlines_s=s(q.CBANDS),this.numlines_l=s(q.CBANDS),this.rnumlines_l=a(q.CBANDS),this.mld_cb_l=a(q.CBANDS),this.mld_cb_s=a(q.CBANDS),this.numlines_s_num1=0,this.numlines_l_num1=0,this.pe=a(4),this.ms_ratio_s_old=0,this.ms_ratio_l_old=0,this.ms_ener_ratio_old=0,this.blocktype_old=s(2),this.nsPsy=new X,this.VBR_seek_table=new V,this.ATH=null,this.PSY=null,this.nogap_total=0,this.nogap_current=0,this.decode_on_the_fly=!0,this.findReplayGain=!0,this.findPeakSample=!0,this.PeakSample=0,this.RadioGain=0,this.AudiophileGain=0,this.rgdata=null,this.noclipGainChange=0,this.noclipScale=0,this.bitrate_stereoMode_Hist=h([16,5]),this.bitrate_blockType_Hist=h([16,6]),this.pinfo=null,this.hip=null,this.in_buffer_nsamples=0,this.in_buffer_0=null,this.in_buffer_1=null,this.iteration_loop=null;for(var n=0;n<this.en.length;n++)this.en[n]=new W;for(n=0;n<this.thm.length;n++)this.thm[n]=new W;for(n=0;n<this.header.length;n++)this.header[n]=new e}function Y(){var t=a(q.BLKSIZE),e=a(q.BLKSIZE_s/2),n=[.9238795325112867,.3826834323650898,.9951847266721969,.0980171403295606,.9996988186962042,.02454122852291229,.9999811752826011,.006135884649154475];function i(t,e,i){var r,s,a,o=0;i<<=1;var l=e+i;r=4;do{var h,c,u,d,f,g,m;m=r>>1,d=r,f=r<<1,g=f+d,r=f<<1,s=e,a=s+m;do{S=t[s+0]-t[s+d],w=t[s+0]+t[s+d],A=t[s+f]-t[s+g],M=t[s+f]+t[s+g],t[s+f]=w-M,t[s+0]=w+M,t[s+g]=S-A,t[s+d]=S+A,S=t[a+0]-t[a+d],w=t[a+0]+t[a+d],A=p.SQRT2*t[a+g],M=p.SQRT2*t[a+f],t[a+f]=w-M,t[a+0]=w+M,t[a+g]=S-A,t[a+d]=S+A,a+=r,s+=r}while(s<l);for(c=n[o+0],h=n[o+1],u=1;u<m;u++){var _,v;_=1-2*h*h,v=2*h*c,s=e+u,a=e+d-u;do{var y,b,x,w,S,T,M,E,A,R;b=v*t[s+d]-_*t[a+d],y=_*t[s+d]+v*t[a+d],S=t[s+0]-y,w=t[s+0]+y,T=t[a+0]-b,x=t[a+0]+b,b=v*t[s+g]-_*t[a+g],y=_*t[s+g]+v*t[a+g],A=t[s+f]-y,M=t[s+f]+y,R=t[a+f]-b,E=t[a+f]+b,b=h*M-c*R,y=c*M+h*R,t[s+f]=w-y,t[s+0]=w+y,t[a+g]=T-b,t[a+d]=T+b,b=c*E-h*A,y=h*E+c*A,t[a+f]=x-y,t[a+0]=x+y,t[s+g]=S-b,t[s+d]=S+b,a+=r,s+=r}while(s<l);_=c,c=_*n[o+0]-h*n[o+1],h=_*n[o+1]+h*n[o+0]}o+=2}while(r<i)}var r=[0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254];this.fft_short=function(t,n,s,a,o){for(var l=0;l<3;l++){var h=q.BLKSIZE_s/2,c=65535&192*(l+1),u=q.BLKSIZE_s/8-1;do{var d,f,p,g,m,_=255&r[u<<2];d=e[_]*a[s][o+_+c],m=e[127-_]*a[s][o+_+c+128],f=d-m,d+=m,p=e[_+64]*a[s][o+_+c+64],m=e[63-_]*a[s][o+_+c+192],g=p-m,p+=m,h-=4,n[l][h+0]=d+p,n[l][h+2]=d-p,n[l][h+1]=f+g,n[l][h+3]=f-g,d=e[_+1]*a[s][o+_+c+1],m=e[126-_]*a[s][o+_+c+129],f=d-m,d+=m,p=e[_+65]*a[s][o+_+c+65],m=e[62-_]*a[s][o+_+c+193],g=p-m,p+=m,n[l][h+q.BLKSIZE_s/2+0]=d+p,n[l][h+q.BLKSIZE_s/2+2]=d-p,n[l][h+q.BLKSIZE_s/2+1]=f+g,n[l][h+q.BLKSIZE_s/2+3]=f-g}while(--u>=0);i(n[l],h,q.BLKSIZE_s/2)}},this.fft_long=function(e,n,s,a,o){var l=q.BLKSIZE/8-1,h=q.BLKSIZE/2;do{var c,u,d,f,p,g=255&r[l];c=t[g]*a[s][o+g],p=t[g+512]*a[s][o+g+512],u=c-p,c+=p,d=t[g+256]*a[s][o+g+256],p=t[g+768]*a[s][o+g+768],f=d-p,d+=p,h-=4,n[h+0]=c+d,n[h+2]=c-d,n[h+1]=u+f,n[h+3]=u-f,c=t[g+1]*a[s][o+g+1],p=t[g+513]*a[s][o+g+513],u=c-p,c+=p,d=t[g+257]*a[s][o+g+257],p=t[g+769]*a[s][o+g+769],f=d-p,d+=p,n[h+q.BLKSIZE/2+0]=c+d,n[h+q.BLKSIZE/2+2]=c-d,n[h+q.BLKSIZE/2+1]=u+f,n[h+q.BLKSIZE/2+3]=u-f}while(--l>=0);i(n,h,q.BLKSIZE/2)},this.init_fft=function(n){for(var i=0;i<q.BLKSIZE;i++)t[i]=.42-.5*Math.cos(2*Math.PI*(i+.5)/q.BLKSIZE)+.08*Math.cos(4*Math.PI*(i+.5)/q.BLKSIZE);for(i=0;i<q.BLKSIZE_s/2;i++)e[i]=.5*(1-Math.cos(2*Math.PI*(i+.5)/q.BLKSIZE_s))}}function K(){var t=new Y,e=2.302585092994046,i=2,r=16,o=2,h=16,c=.34,u=1/217621504/(q.BLKSIZE/2),f=.01,y=.8,b=.6,x=.3,w=3.5,S=21,T=.2302585093;function M(t,e){for(var n=0,i=0;i<q.BLKSIZE/2;++i)n+=t[i]*e.ATH.eql_w[i];return n*=u,n}function E(e,i,r,s,a,o,l,h,c,u,d){var f=e.internal_flags;c<2?(t.fft_long(f,s[a],c,u,d),t.fft_short(f,o[l],c,u,d)):2==c&&n(),i[0]=s[a+0][0],i[0]*=i[0];for(var p=q.BLKSIZE/2-1;p>=0;--p){var g=s[a+0][q.BLKSIZE/2-p],m=s[a+0][q.BLKSIZE/2+p];i[q.BLKSIZE/2-p]=.5*(g*g+m*m)}for(var _=2;_>=0;--_){r[_][0]=o[l+0][_][0],r[_][0]*=r[_][0];for(p=q.BLKSIZE_s/2-1;p>=0;--p){g=o[l+0][_][q.BLKSIZE_s/2-p],m=o[l+0][_][q.BLKSIZE_s/2+p];r[_][q.BLKSIZE_s/2-p]=.5*(g*g+m*m)}}var v=0;for(p=11;p<q.HBLKSIZE;p++)v+=i[p];f.tot_ener[c]=v,e.analysis&&n(),2==e.athaa_loudapprox&&c<2&&(f.loudness_sq[h][c]=f.loudness_sq_save[c],f.loudness_sq_save[c]=M(i,f))}var A,R,z,C=8,P=23,k=15,D=[1,.79433,.63096,.63096,.63096,.63096,.63096,.25119,.11749];function I(){A=Math.pow(10,(C+1)/16),R=Math.pow(10,(P+1)/16),z=Math.pow(10,k/10)}var L=[3.3246*3.3246,3.23837*3.23837,9.9500500969,9.0247369744,8.1854926609,7.0440875649,2.46209*2.46209,2.284*2.284,4.4892710641,1.96552*1.96552,1.82335*1.82335,1.69146*1.69146,2.4621061921,2.1508568964,1.37074*1.37074,1.31036*1.31036,1.5691069696,1.4555939904,1.16203*1.16203,1.2715945225,1.09428*1.09428,1.0659*1.0659,1.0779838276,1.0382591025,1],j=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1],N=[5.5396212496,2.29259*2.29259,4.9868695969,2.12675*2.12675,2.02545*2.02545,1.87894*1.87894,1.74303*1.74303,1.61695*1.61695,2.2499700001,1.39148*1.39148,1.29083*1.29083,1.19746*1.19746,1.2339655056,1.0779838276];function O(t,e,n,i,r,s){var a;if(e>t){if(!(e<t*R))return t+e;a=e/t}else{if(t>=e*R)return t+e;a=t/e}if(t+=e,i+3<=6){if(a>=A)return t;var o=0|p.FAST_LOG10_X(a,16);return t*j[o]}var l,h;o=0|p.FAST_LOG10_X(a,16);return e=0!=s?r.ATH.cb_s[n]*r.ATH.adjust:r.ATH.cb_l[n]*r.ATH.adjust,t<z*e?t>e?(l=1,o<=13&&(l=N[o]),h=p.FAST_LOG10_X(t/e,10/15),t*((L[o]-l)*h+l)):o>13?t:t*N[o]:t*L[o]}function U(t,e,n,i,r){var s,a,o=0,l=0;for(s=a=0;s<q.SBMAX_s;++a,++s){var h=t.bo_s[s],c=t.npart_s,u=h<c?h:c;while(a<u)o+=e[a],l+=n[a],a++;if(t.en[i].s[s][r]=o,t.thm[i].s[s][r]=l,a>=c){++s;break}var d=t.PSY.bo_s_weight[s],f=1-d;o=d*e[a],l=d*n[a],t.en[i].s[s][r]+=o,t.thm[i].s[s][r]+=l,o=f*e[a],l=f*n[a]}for(;s<q.SBMAX_s;++s)t.en[i].s[s][r]=0,t.thm[i].s[s][r]=0}function B(t,e,n,i){var r,s,a=0,o=0;for(r=s=0;r<q.SBMAX_l;++s,++r){var l=t.bo_l[r],h=t.npart_l,c=l<h?l:h;while(s<c)a+=e[s],o+=n[s],s++;if(t.en[i].l[r]=a,t.thm[i].l[r]=o,s>=h){++r;break}var u=t.PSY.bo_l_weight[r],d=1-u;a=u*e[s],o=u*n[s],t.en[i].l[r]+=a,t.thm[i].l[r]+=o,a=d*e[s],o=d*n[s]}for(;r<q.SBMAX_l;++r)t.en[i].l[r]=0,t.thm[i].l[r]=0}function F(t,e,n,i,r,s){var a,l,c=t.internal_flags;for(l=a=0;l<c.npart_s;++l){for(var u=0,d=0,f=c.numlines_s[l],p=0;p<f;++p,++a){var g=e[s][a];u+=g,d<g&&(d=g)}n[l]=u}for(a=l=0;l<c.npart_s;l++){var m=c.s3ind_s[l][0],_=c.s3_ss[a++]*n[m];++m;while(m<=c.s3ind_s[l][1])_+=c.s3_ss[a]*n[m],++a,++m;var v=o*c.nb_s1[r][l];if(i[l]=Math.min(_,v),c.blocktype_old[1&r]==q.SHORT_TYPE){v=h*c.nb_s2[r][l];var y=i[l];i[l]=Math.min(v,y)}c.nb_s2[r][l]=c.nb_s1[r][l],c.nb_s1[r][l]=_}for(;l<=q.CBANDS;++l)n[l]=0,i[l]=0}function H(t,e,n,i){var r=t.internal_flags;t.short_blocks!=g.short_block_coupled||0!=e[0]&&0!=e[1]||(e[0]=e[1]=0);for(var s=0;s<r.channels_out;s++)i[s]=q.NORM_TYPE,t.short_blocks==g.short_block_dispensed&&(e[s]=1),t.short_blocks==g.short_block_forced&&(e[s]=0),0!=e[s]?r.blocktype_old[s]==q.SHORT_TYPE&&(i[s]=q.STOP_TYPE):(i[s]=q.SHORT_TYPE,r.blocktype_old[s]==q.NORM_TYPE&&(r.blocktype_old[s]=q.START_TYPE),r.blocktype_old[s]==q.STOP_TYPE&&(r.blocktype_old[s]=q.SHORT_TYPE)),n[s]=r.blocktype_old[s],r.blocktype_old[s]=i[s]}function V(t,e,n){return n>=1?t:n<=0?e:e>0?Math.pow(t/e,n)*e:0}var G=[11.8,13.6,17.2,32,46.5,51.3,57.5,67.1,71.5,84.6,97.6,130];function W(t,n){for(var i=309.07,r=0;r<q.SBMAX_s-1;r++)for(var s=0;s<3;s++){var a=t.thm.s[r][s];if(a>0){var o=a*n,l=t.en.s[r][s];l>o&&(i+=l>1e10*o?G[r]*(10*e):G[r]*p.FAST_LOG10(l/o))}}return i}var X=[6.8,5.8,5.8,6.4,6.5,9.9,12.1,14.4,15,18.9,21.6,26.9,34.2,40.2,46.8,56.5,60.7,73.9,85.7,93.4,126.1];function J(t,n){for(var i=281.0575,r=0;r<q.SBMAX_l-1;r++){var s=t.thm.l[r];if(s>0){var a=s*n,o=t.en.l[r];o>a&&(i+=o>1e10*a?X[r]*(10*e):X[r]*p.FAST_LOG10(o/a))}}return i}function K(t,e,n,i,r){var s,a;for(s=a=0;s<t.npart_l;++s){var o,l=0,h=0;for(o=0;o<t.numlines_l[s];++o,++a){var c=e[a];l+=c,h<c&&(h=c)}n[s]=l,i[s]=h,r[s]=l*t.rnumlines_l[s]}}function $(t,e,n,i){var r=D.length-1,s=0,a=n[s]+n[s+1];if(a>0){var o=e[s];o<e[s+1]&&(o=e[s+1]),a=20*(2*o-a)/(a*(t.numlines_l[s]+t.numlines_l[s+1]-1));var l=0|a;l>r&&(l=r),i[s]=l}else i[s]=0;for(s=1;s<t.npart_l-1;s++)if(a=n[s-1]+n[s]+n[s+1],a>0){o=e[s-1];o<e[s]&&(o=e[s]),o<e[s+1]&&(o=e[s+1]),a=20*(3*o-a)/(a*(t.numlines_l[s-1]+t.numlines_l[s]+t.numlines_l[s+1]-1));l=0|a;l>r&&(l=r),i[s]=l}else i[s]=0;if(a=n[s-1]+n[s],a>0){o=e[s-1];o<e[s]&&(o=e[s]),a=20*(2*o-a)/(a*(t.numlines_l[s-1]+t.numlines_l[s]-1));l=0|a;l>r&&(l=r),i[s]=l}else i[s]=0}var Z=[-1730326e-23,-.01703172,-1349528e-23,.0418072,-673278e-22,-.0876324,-30835e-21,.1863476,-1104424e-22,-.627638];function Q(t){var e,n,i,r;return e=t,e*=e>=0?3:1.5,e>=.5&&e<=2.5?(r=e-.5,n=8*(r*r-2*r)):n=0,e+=.474,i=15.811389+7.5*e-17.5*Math.sqrt(1+e*e),i<=-60?0:(e=Math.exp((n+i)*T),e/=.6609193,e)}function tt(t){return t<0&&(t=0),t*=.001,13*Math.atan(.76*t)+3.5*Math.atan(t*t/56.25)}function et(t,e,n,i,r,o,l,h,u,d,f,p){var g,m=a(q.CBANDS+1),_=h/(p>15?1152:384),v=s(q.HBLKSIZE);h/=u;var y=0,b=0;for(g=0;g<q.CBANDS;g++){var x;for(C=tt(h*y),m[g]=h*y,x=y;tt(h*x)-C<c&&x<=u/2;x++);t[g]=x-y,b=g+1;while(y<x)v[y++]=g;if(y>u/2){y=u/2,++g;break}}m[g]=h*y;for(var w=0;w<p;w++){var S,T,M,E,A;M=d[w],E=d[w+1],S=0|Math.floor(.5+f*(M-.5)),S<0&&(S=0),T=0|Math.floor(.5+f*(E-.5)),T>u/2&&(T=u/2),n[w]=(v[S]+v[T])/2,e[w]=v[T];var R=_*E;l[w]=(R-m[e[w]])/(m[e[w]+1]-m[e[w]]),l[w]<0?l[w]=0:l[w]>1&&(l[w]=1),A=tt(h*d[w]*f),A=Math.min(A,15.5)/15.5,o[w]=Math.pow(10,1.25*(1-Math.cos(Math.PI*A))-2.5)}y=0;for(var z=0;z<b;z++){var C,P,k=t[z];C=tt(h*y),P=tt(h*(y+k-1)),i[z]=.5*(C+P),C=tt(h*(y-.5)),P=tt(h*(y+k-.5)),r[z]=P-C,y+=k}return b}function nt(t,e,i,r,s,o){var h,c=l([q.CBANDS,q.CBANDS]),u=0;if(o)for(var d=0;d<e;d++)for(h=0;h<e;h++){var f=Q(i[d]-i[h])*r[h];c[d][h]=f*s[d]}else n();for(d=0;d<e;d++){for(h=0;h<e;h++)if(c[d][h]>0)break;for(t[d][0]=h,h=e-1;h>0;h--)if(c[d][h]>0)break;t[d][1]=h,u+=t[d][1]-t[d][0]+1}var p=a(u),g=0;for(d=0;d<e;d++)for(h=t[d][0];h<=t[d][1];h++)p[g++]=c[d][h];return p}function it(t){var e=tt(t);return e=Math.min(e,15.5)/15.5,Math.pow(10,1.25*(1-Math.cos(Math.PI*e))-2.5)}function rt(t,e){t<-.3&&(t=3410),t/=1e3,t=Math.max(.1,t);var n=3.64*Math.pow(t,-.8)-6.8*Math.exp(-.6*Math.pow(t-3.4,2))+6*Math.exp(-.15*Math.pow(t-8.7,2))+.001*(.6+.04*e)*Math.pow(t,4);return n}this.L3psycho_anal_ns=function(t,e,o,h,c,u,f,p,g,m){var w,T,M,A,R,z,C,P,k,I=t.internal_flags,L=l([2,q.BLKSIZE]),j=l([2,3,q.BLKSIZE_s]),N=a(q.CBANDS+1),G=a(q.CBANDS+1),X=a(q.CBANDS+2),Y=s(2),Q=s(2),tt=l([2,576]),et=s(q.CBANDS+2),nt=s(q.CBANDS+2);for(d.fill(nt,0),w=I.channels_out,t.mode==v.JOINT_STEREO&&(w=4),k=t.VBR==_.vbr_off?0==I.ResvMax?0:I.ResvSize/I.ResvMax*.5:t.VBR==_.vbr_rh||t.VBR==_.vbr_mtrh||t.VBR==_.vbr_mt?.6:1,T=0;T<I.channels_out;T++){var it=e[T],rt=o+576-350-S+192;for(A=0;A<576;A++){var st,at;for(st=it[rt+A+10],at=0,R=0;R<(S-1)/2-1;R+=2)st+=Z[R]*(it[rt+A+R]+it[rt+A+S-R]),at+=Z[R+1]*(it[rt+A+R+1]+it[rt+A+S-R-1]);tt[T][A]=st+at}c[h][T].en.assign(I.en[T]),c[h][T].thm.assign(I.thm[T]),w>2&&n()}for(T=0;T<w;T++){var ot,lt,ht,ct=a(12),ut=[0,0,0,0],dt=a(12),ft=1,pt=a(q.CBANDS),gt=a(q.CBANDS),mt=[0,0,0,0],_t=a(q.HBLKSIZE),vt=l([3,q.HBLKSIZE_s]);for(A=0;A<3;A++)ct[A]=I.nsPsy.last_en_subshort[T][A+6],dt[A]=ct[A]/I.nsPsy.last_en_subshort[T][A+4],ut[0]+=ct[A];2==T&&n();var yt=tt[1&T],bt=0;for(A=0;A<9;A++){for(var xt=bt+64,wt=1;bt<xt;bt++)wt<Math.abs(yt[bt])&&(wt=Math.abs(yt[bt]));I.nsPsy.last_en_subshort[T][A]=ct[A+3]=wt,ut[1+A/3]+=wt,wt>ct[A+3-2]?wt/=ct[A+3-2]:wt=ct[A+3-2]>10*wt?ct[A+3-2]/(10*wt):0,dt[A+3]=wt}for(t.analysis&&n(),ht=3==T?I.nsPsy.attackthre_s:I.nsPsy.attackthre,A=0;A<12;A++)0==mt[A/3]&&dt[A]>ht&&(mt[A/3]=A%3+1);for(A=1;A<4;A++){var St;St=ut[A-1]>ut[A]?ut[A-1]/ut[A]:ut[A]/ut[A-1],St<1.7&&(mt[A]=0,1==A&&(mt[0]=0))}for(0!=mt[0]&&0!=I.nsPsy.lastAttacks[T]&&(mt[0]=0),3!=I.nsPsy.lastAttacks[T]&&mt[0]+mt[1]+mt[2]+mt[3]==0||(ft=0,0!=mt[1]&&0!=mt[0]&&(mt[1]=0),0!=mt[2]&&0!=mt[1]&&(mt[2]=0),0!=mt[3]&&0!=mt[2]&&(mt[3]=0)),T<2?Q[T]=ft:n(),g[T]=I.tot_ener[T],lt=j,ot=L,E(t,_t,vt,ot,1&T,lt,1&T,h,T,e,o),K(I,_t,N,pt,gt),$(I,pt,gt,et),P=0;P<3;P++){var Tt,Mt;for(F(t,vt,G,X,T,P),U(I,G,X,T,P),C=0;C<q.SBMAX_s;C++){if(Mt=I.thm[T].s[C][P],Mt*=y,mt[P]>=2||1==mt[P+1]){var Et=0!=P?P-1:2;wt=V(I.thm[T].s[C][Et],Mt,b*k);Mt=Math.min(Mt,wt)}if(1==mt[P]){Et=0!=P?P-1:2,wt=V(I.thm[T].s[C][Et],Mt,x*k);Mt=Math.min(Mt,wt)}else if(0!=P&&3==mt[P-1]||0==P&&3==I.nsPsy.lastAttacks[T]){Et=2!=P?P+1:0,wt=V(I.thm[T].s[C][Et],Mt,x*k);Mt=Math.min(Mt,wt)}Tt=ct[3*P+3]+ct[3*P+4]+ct[3*P+5],6*ct[3*P+5]<Tt&&(Mt*=.5,6*ct[3*P+4]<Tt&&(Mt*=.5)),I.thm[T].s[C][P]=Mt}}for(I.nsPsy.lastAttacks[T]=mt[2],z=0,M=0;M<I.npart_l;M++){var At=I.s3ind[M][0],Rt=N[At]*D[et[At]],zt=I.s3_ll[z++]*Rt;while(++At<=I.s3ind[M][1])Rt=N[At]*D[et[At]],zt=O(zt,I.s3_ll[z++]*Rt,At,At-M,I,0);zt*=.158489319246111,I.blocktype_old[1&T]==q.SHORT_TYPE?X[M]=zt:X[M]=V(Math.min(zt,Math.min(i*I.nb_1[T][M],r*I.nb_2[T][M])),zt,k),I.nb_2[T][M]=I.nb_1[T][M],I.nb_1[T][M]=zt}for(;M<=q.CBANDS;++M)N[M]=0,X[M]=0;B(I,N,X,T)}for(t.mode!=v.STEREO&&t.mode!=v.JOINT_STEREO||n(),t.mode==v.JOINT_STEREO&&n(),H(t,Q,m,Y),T=0;T<w;T++){var Ct,Pt,kt,Dt=0;T>1?n():(Ct=f,Dt=0,Pt=m[T],kt=c[h][T]),Pt==q.SHORT_TYPE?Ct[Dt+T]=W(kt,I.masking_lower):Ct[Dt+T]=J(kt,I.masking_lower),t.analysis&&(I.pinfo.pe[h][T]=Ct[Dt+T])}return 0},this.psymodel_init=function(n){var i,r=n.internal_flags,s=!0,o=13,l=24,h=0,c=0,u=-8.25,d=-4.5,p=a(q.CBANDS),g=a(q.CBANDS),v=a(q.CBANDS),y=n.out_samplerate;switch(n.experimentalZ){default:case 0:s=!0;break;case 1:s=n.VBR!=_.vbr_mtrh&&n.VBR!=_.vbr_mt;break;case 2:s=!1;break;case 3:o=8,h=-1.75,c=-.0125,u=-8.25,d=-2.25;break}for(r.ms_ener_ratio_old=.25,r.blocktype_old[0]=r.blocktype_old[1]=q.NORM_TYPE,i=0;i<4;++i){for(var b=0;b<q.CBANDS;++b)r.nb_1[i][b]=1e20,r.nb_2[i][b]=1e20,r.nb_s1[i][b]=r.nb_s2[i][b]=1;for(var x=0;x<q.SBMAX_l;x++)r.en[i].l[x]=1e20,r.thm[i].l[x]=1e20;for(b=0;b<3;++b){for(x=0;x<q.SBMAX_s;x++)r.en[i].s[x][b]=1e20,r.thm[i].s[x][b]=1e20;r.nsPsy.lastAttacks[i]=0}for(b=0;b<9;b++)r.nsPsy.last_en_subshort[i][b]=10}for(r.loudness_sq_save[0]=r.loudness_sq_save[1]=0,r.npart_l=et(r.numlines_l,r.bo_l,r.bm_l,p,g,r.mld_l,r.PSY.bo_l_weight,y,q.BLKSIZE,r.scalefac_band.l,q.BLKSIZE/1152,q.SBMAX_l),i=0;i<r.npart_l;i++){var S=h;p[i]>=o&&(S=c*(p[i]-o)/(l-o)+h*(l-p[i])/(l-o)),v[i]=Math.pow(10,S/10),r.numlines_l[i]>0?r.rnumlines_l[i]=1/r.numlines_l[i]:r.rnumlines_l[i]=0}r.s3_ll=nt(r.s3ind,r.npart_l,p,g,v,s);var T;b=0;for(i=0;i<r.npart_l;i++){A=m.MAX_VALUE;for(var M=0;M<r.numlines_l[i];M++,b++){var E=y*b/(1e3*q.BLKSIZE);R=this.ATHformula(1e3*E,n)-20,R=Math.pow(10,.1*R),R*=r.numlines_l[i],A>R&&(A=R)}r.ATH.cb_l[i]=A,A=20*p[i]/10-20,A>6&&(A=100),A<-15&&(A=-15),A-=8,r.minval_l[i]=Math.pow(10,A/10)*r.numlines_l[i]}for(r.npart_s=et(r.numlines_s,r.bo_s,r.bm_s,p,g,r.mld_s,r.PSY.bo_s_weight,y,q.BLKSIZE_s,r.scalefac_band.s,q.BLKSIZE_s/384,q.SBMAX_s),b=0,i=0;i<r.npart_s;i++){var A;S=u;p[i]>=o&&(S=d*(p[i]-o)/(l-o)+u*(l-p[i])/(l-o)),v[i]=Math.pow(10,S/10),A=m.MAX_VALUE;for(M=0;M<r.numlines_s[i];M++,b++){var R;E=y*b/(1e3*q.BLKSIZE_s);R=this.ATHformula(1e3*E,n)-20,R=Math.pow(10,.1*R),R*=r.numlines_s[i],A>R&&(A=R)}r.ATH.cb_s[i]=A,A=7*p[i]/12-7,p[i]>12&&(A*=1+3.1*Math.log(1+A)),p[i]<12&&(A*=1+2.3*Math.log(1-A)),A<-15&&(A=-15),A-=8,r.minval_s[i]=Math.pow(10,A/10)*r.numlines_s[i]}r.s3_ss=nt(r.s3ind_s,r.npart_s,p,g,v,s),I(),t.init_fft(r),r.decay=Math.exp(-1*e/(f*y/192)),T=w,0!=(2&n.exp_nspsytune)&&(T=1),Math.abs(n.msfix)>0&&(T=n.msfix),n.msfix=T;for(var z=0;z<r.npart_l;z++)r.s3ind[z][1]>r.npart_l-1&&(r.s3ind[z][1]=r.npart_l-1);var C=576*r.mode_gr/y;if(r.ATH.decay=Math.pow(10,-1.2*C),r.ATH.adjust=.01,r.ATH.adjustLimit=1,-1!=n.ATHtype){var P=n.out_samplerate/q.BLKSIZE,k=0;for(E=0,i=0;i<q.BLKSIZE/2;++i)E+=P,r.ATH.eql_w[i]=1/Math.pow(10,this.ATHformula(E,n)/10),k+=r.ATH.eql_w[i];for(k=1/k,i=q.BLKSIZE/2;--i>=0;)r.ATH.eql_w[i]*=k}for(z=b=0;z<r.npart_s;++z)for(i=0;i<r.numlines_s[z];++i)++b;for(z=b=0;z<r.npart_l;++z)for(i=0;i<r.numlines_l[z];++i)++b;for(b=0,i=0;i<r.npart_l;i++){E=y*(b+r.numlines_l[i]/2)/(1*q.BLKSIZE);r.mld_cb_l[i]=it(E),b+=r.numlines_l[i]}for(;i<q.CBANDS;++i)r.mld_cb_l[i]=1;for(b=0,i=0;i<r.npart_s;i++){E=y*(b+r.numlines_s[i]/2)/(1*q.BLKSIZE_s);r.mld_cb_s[i]=it(E),b+=r.numlines_s[i]}for(;i<q.CBANDS;++i)r.mld_cb_s[i]=1;return 0},this.ATHformula=function(t,e){var n;switch(e.ATHtype){case 0:n=rt(t,9);break;case 1:n=rt(t,-1);break;case 2:n=rt(t,0);break;case 3:n=rt(t,1)+6;break;case 4:n=rt(t,e.ATHcurve);break;default:n=rt(t,0);break}return n}}function $(){var t=this,e=131072;$.V9=410,$.V8=420,$.V7=430,$.V6=440,$.V5=450,$.V4=460,$.V3=470,$.V2=480,$.V1=490,$.V0=500,$.R3MIX=1e3,$.STANDARD=1001,$.EXTREME=1002,$.INSANE=1003,$.STANDARD_FAST=1004,$.EXTREME_FAST=1005,$.MEDIUM=1006,$.MEDIUM_FAST=1007;var i,r,s,o,l,u=16384+e;$.LAME_MAXMP3BUFFER=u;var d,f,p=new K;function m(){this.mask_adjust=0,this.mask_adjust_short=0,this.bo_l_weight=a(q.SBMAX_l),this.bo_s_weight=a(q.SBMAX_s)}function y(){this.lowerlimit=0}function b(t,e){this.lowpass=e}this.enc=new q,this.setModules=function(t,e,n,a,h,c,u,g,m){i=t,r=e,s=n,o=a,l=h,d=c,f=g,this.enc.setModules(r,p,o,d)};var w=4294479419;function S(t){var e;return t.class_id=w,e=t.internal_flags=new J,t.mode=v.NOT_SET,t.original=1,t.in_samplerate=44100,t.num_channels=2,t.num_samples=-1,t.bWriteVbrTag=!0,t.quality=-1,t.short_blocks=null,e.subblock_gain=-1,t.lowpassfreq=0,t.highpassfreq=0,t.lowpasswidth=-1,t.highpasswidth=-1,t.VBR=_.vbr_off,t.VBR_q=4,t.ATHcurve=-1,t.VBR_mean_bitrate_kbps=128,t.VBR_min_bitrate_kbps=0,t.VBR_max_bitrate_kbps=0,t.VBR_hard_min=0,e.VBR_min_bitrate=1,e.VBR_max_bitrate=13,t.quant_comp=-1,t.quant_comp_short=-1,t.msfix=-1,e.resample_ratio=1,e.OldValue[0]=180,e.OldValue[1]=180,e.CurrentStep[0]=4,e.CurrentStep[1]=4,e.masking_lower=1,e.nsPsy.attackthre=-1,e.nsPsy.attackthre_s=-1,t.scale=-1,t.athaa_type=-1,t.ATHtype=-1,t.athaa_loudapprox=-1,t.athaa_sensitivity=0,t.useTemporal=null,t.interChRatio=-1,e.mf_samples_to_encode=q.ENCDELAY+q.POSTDELAY,t.encoder_padding=0,e.mf_size=q.ENCDELAY-q.MDCTDELAY,t.findReplayGain=!1,t.decode_on_the_fly=!1,e.decode_on_the_fly=!1,e.findReplayGain=!1,e.findPeakSample=!1,e.RadioGain=0,e.AudiophileGain=0,e.noclipGainChange=0,e.noclipScale=-1,t.preset=0,t.write_id3tag_automatic=!0,0}function T(t){return t>1?0:t<=0?1:Math.cos(Math.PI/2*t)}function E(t,e){switch(t){case 44100:return e.version=1,0;case 48e3:return e.version=1,1;case 32e3:return e.version=1,2;case 22050:return e.version=0,0;case 24e3:return e.version=0,1;case 16e3:return e.version=0,2;case 11025:return e.version=0,0;case 12e3:return e.version=0,1;case 8e3:return e.version=0,2;default:return e.version=0,-1}}function R(t,e,n){n<16e3&&(e=2);for(var i=A.bitrate_table[e][1],r=2;r<=14;r++)A.bitrate_table[e][r]>0&&Math.abs(A.bitrate_table[e][r]-t)<Math.abs(i-t)&&(i=A.bitrate_table[e][r]);return i}function z(t,e,n){n<16e3&&(e=2);for(var i=0;i<=14;i++)if(A.bitrate_table[e][i]>0&&A.bitrate_table[e][i]==t)return i;return-1}function C(e,n){var i=[new b(8,2e3),new b(16,3700),new b(24,3900),new b(32,5500),new b(40,7e3),new b(48,7500),new b(56,1e4),new b(64,11e3),new b(80,13500),new b(96,15100),new b(112,15600),new b(128,17e3),new b(160,17500),new b(192,18600),new b(224,19400),new b(256,19700),new b(320,20500)],r=t.nearestBitrateFullIndex(n);e.lowerlimit=i[r].lowpass}function L(t){var e=t.internal_flags,i=32;if(e.lowpass1>0){for(var r=999,s=0;s<=31;s++){var a=s/31;a>=e.lowpass2&&(i=Math.min(i,s)),e.lowpass1<a&&a<e.lowpass2&&(r=Math.min(r,s))}e.lowpass1=999==r?(i-.75)/31:(r-.75)/31,e.lowpass2=i/31}e.highpass2>0&&n(),e.highpass2>0&&n();for(s=0;s<32;s++){var o,l;a=s/31;e.highpass2>e.highpass1?n():o=1,l=e.lowpass2>e.lowpass1?T((a-e.lowpass1)/(e.lowpass2-e.lowpass1+1e-20)):1,e.amp_filter[s]=o*l}}function j(t){var e=t.internal_flags;switch(t.quality){default:case 9:e.psymodel=0,e.noise_shaping=0,e.noise_shaping_amp=0,e.noise_shaping_stop=0,e.use_best_huffman=0,e.full_outer_loop=0;break;case 8:t.quality=7;case 7:e.psymodel=1,e.noise_shaping=0,e.noise_shaping_amp=0,e.noise_shaping_stop=0,e.use_best_huffman=0,e.full_outer_loop=0;break;case 6:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),e.noise_shaping_amp=0,e.noise_shaping_stop=0,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=0,e.full_outer_loop=0;break;case 5:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),e.noise_shaping_amp=0,e.noise_shaping_stop=0,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=0,e.full_outer_loop=0;break;case 4:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),e.noise_shaping_amp=0,e.noise_shaping_stop=0,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=1,e.full_outer_loop=0;break;case 3:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),e.noise_shaping_amp=1,e.noise_shaping_stop=1,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=1,e.full_outer_loop=0;break;case 2:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),0==e.substep_shaping&&(e.substep_shaping=2),e.noise_shaping_amp=1,e.noise_shaping_stop=1,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=1,e.full_outer_loop=0;break;case 1:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),0==e.substep_shaping&&(e.substep_shaping=2),e.noise_shaping_amp=2,e.noise_shaping_stop=1,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=1,e.full_outer_loop=0;break;case 0:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),0==e.substep_shaping&&(e.substep_shaping=2),e.noise_shaping_amp=2,e.noise_shaping_stop=1,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=1,e.full_outer_loop=0;break}}function N(t){var e=t.internal_flags;t.frameNum=0,t.write_id3tag_automatic&&f.id3tag_write_v2(t),e.bitrate_stereoMode_Hist=h([16,5]),e.bitrate_blockType_Hist=h([16,6]),e.PeakSample=0,t.bWriteVbrTag&&d.InitVbrTag(t)}function O(t,e){(null==t.in_buffer_0||t.in_buffer_nsamples<e)&&(t.in_buffer_0=a(e),t.in_buffer_1=a(e),t.in_buffer_nsamples=e)}function U(t){var e=q.BLKSIZE+t.framesize-q.FFTOFFSET;return e=Math.max(e,512+t.framesize-32),e}function B(t,e,s,a,o,l,h){var c,u,d,f,p,g=t.internal_flags,m=0,_=[null,null],v=[null,null];if(g.Class_ID!=w)return-3;if(0==a)return 0;if(p=r.copy_buffer(g,o,l,h,0),p<0)return p;if(l+=p,m+=p,v[0]=e,v[1]=s,M.NEQ(t.scale,0)&&M.NEQ(t.scale,1))for(u=0;u<a;++u)v[0][u]*=t.scale,2==g.channels_out&&(v[1][u]*=t.scale);if(M.NEQ(t.scale_left,0)&&M.NEQ(t.scale_left,1))for(u=0;u<a;++u)v[0][u]*=t.scale_left;if(M.NEQ(t.scale_right,0)&&M.NEQ(t.scale_right,1))for(u=0;u<a;++u)v[1][u]*=t.scale_right;2==t.num_channels&&1==g.channels_out&&n(),f=U(t),_[0]=g.mfbuf[0],_[1]=g.mfbuf[1];var y=0;while(a>0){var b=[null,null],S=0,T=0;b[0]=v[0],b[1]=v[1];var E=new H;if(V(t,_,b,y,a,E),S=E.n_in,T=E.n_out,g.findReplayGain&&!g.decode_on_the_fly&&i.AnalyzeSamples(g.rgdata,_[0],g.mf_size,_[1],g.mf_size,T,g.channels_out)==x.GAIN_ANALYSIS_ERROR)return-6;if(a-=S,y+=S,g.channels_out,g.mf_size+=T,g.mf_samples_to_encode<1&&n(),g.mf_samples_to_encode+=T,g.mf_size>=f){var A=h-m;if(0==h&&(A=0),c=F(t,_[0],_[1],o,l,A),c<0)return c;for(l+=c,m+=c,g.mf_size-=t.framesize,g.mf_samples_to_encode-=t.framesize,d=0;d<g.channels_out;d++)for(u=0;u<g.mf_size;u++)_[d][u]=_[d][u+t.framesize]}}return m}function F(e,n,i,r,s,a){var o=t.enc.lame_encode_mp3_frame(e,n,i,r,s,a);return e.frameNum++,o}function H(){this.n_in=0,this.n_out=0}function V(t,e,i,r,s,a){var o=t.internal_flags;if(o.resample_ratio<.9999||o.resample_ratio>1.0001)n();else{a.n_out=Math.min(t.framesize,s),a.n_in=a.n_out;for(var l=0;l<a.n_out;++l)e[0][o.mf_size+l]=i[0][r+l],2==o.channels_out&&(e[1][o.mf_size+l]=i[1][r+l])}}this.lame_init=function(){var t=new k,e=S(t);return 0!=e?null:(t.lame_allocated_gfp=1,t)},this.nearestBitrateFullIndex=function(t){var e=[8,16,24,32,40,48,56,64,80,96,112,128,160,192,224,256,320],n=0,i=0,r=0,s=0;s=e[16],r=16,i=e[16],n=16;for(var a=0;a<16;a++)if(Math.max(t,e[a+1])!=t){s=e[a+1],r=a+1,i=e[a],n=a;break}return s-t>t-i?n:r},this.lame_init_params=function(t){var e=t.internal_flags;if(e.Class_ID=0,null==e.ATH&&(e.ATH=new P),null==e.PSY&&(e.PSY=new m),null==e.rgdata&&(e.rgdata=new I),e.channels_in=t.num_channels,1==e.channels_in&&(t.mode=v.MONO),e.channels_out=t.mode==v.MONO?1:2,e.mode_ext=q.MPG_MD_MS_LR,t.mode==v.MONO&&(t.force_ms=!1),t.VBR==_.vbr_off&&128!=t.VBR_mean_bitrate_kbps&&0==t.brate&&(t.brate=t.VBR_mean_bitrate_kbps),t.VBR==_.vbr_off||t.VBR==_.vbr_mtrh||t.VBR==_.vbr_mt||(t.free_format=!1),t.VBR==_.vbr_off&&0==t.brate&&n(),t.VBR==_.vbr_off&&t.compression_ratio>0&&n(),0!=t.out_samplerate&&(t.out_samplerate<16e3?(t.VBR_mean_bitrate_kbps=Math.max(t.VBR_mean_bitrate_kbps,8),t.VBR_mean_bitrate_kbps=Math.min(t.VBR_mean_bitrate_kbps,64)):t.out_samplerate<32e3?(t.VBR_mean_bitrate_kbps=Math.max(t.VBR_mean_bitrate_kbps,8),t.VBR_mean_bitrate_kbps=Math.min(t.VBR_mean_bitrate_kbps,160)):(t.VBR_mean_bitrate_kbps=Math.max(t.VBR_mean_bitrate_kbps,32),t.VBR_mean_bitrate_kbps=Math.min(t.VBR_mean_bitrate_kbps,320))),0==t.lowpassfreq){var i=16e3;switch(t.VBR){case _.vbr_off:var a=new y;C(a,t.brate),i=a.lowerlimit;break;case _.vbr_abr:a=new y;C(a,t.VBR_mean_bitrate_kbps),i=a.lowerlimit;break;case _.vbr_rh:n();default:n()}t.mode!=v.MONO||t.VBR!=_.vbr_off&&t.VBR!=_.vbr_abr||(i*=1.5),t.lowpassfreq=0|i}switch(0==t.out_samplerate&&n(),t.lowpassfreq=Math.min(20500,t.lowpassfreq),t.lowpassfreq=Math.min(t.out_samplerate/2,t.lowpassfreq),t.VBR==_.vbr_off&&(t.compression_ratio=16*t.out_samplerate*e.channels_out/(1e3*t.brate)),t.VBR==_.vbr_abr&&n(),t.bWriteVbrTag||(t.findReplayGain=!1,t.decode_on_the_fly=!1,e.findPeakSample=!1),e.findReplayGain=t.findReplayGain,e.decode_on_the_fly=t.decode_on_the_fly,e.decode_on_the_fly&&(e.findPeakSample=!0),e.findReplayGain&&n(),e.decode_on_the_fly&&!t.decode_only&&n(),e.mode_gr=t.out_samplerate<=24e3?1:2,t.framesize=576*e.mode_gr,t.encoder_delay=q.ENCDELAY,e.resample_ratio=t.in_samplerate/t.out_samplerate,t.VBR){case _.vbr_mt:case _.vbr_rh:case _.vbr_mtrh:var h=[5.7,6.5,7.3,8.2,10,11.9,13,14,15,16.5];t.compression_ratio=h[t.VBR_q];break;case _.vbr_abr:t.compression_ratio=16*t.out_samplerate*e.channels_out/(1e3*t.VBR_mean_bitrate_kbps);break;default:t.compression_ratio=16*t.out_samplerate*e.channels_out/(1e3*t.brate);break}t.mode==v.NOT_SET&&(t.mode=v.JOINT_STEREO),t.highpassfreq>0?n():(e.highpass1=0,e.highpass2=0),t.lowpassfreq>0?(e.lowpass2=2*t.lowpassfreq,t.lowpasswidth>=0?n():e.lowpass1=2*t.lowpassfreq,e.lowpass1/=t.out_samplerate,e.lowpass2/=t.out_samplerate):n(),L(t),e.samplerate_index=E(t.out_samplerate,t),e.samplerate_index<0&&n(),t.VBR==_.vbr_off?t.free_format?e.bitrate_index=0:(t.brate=R(t.brate,t.version,t.out_samplerate),e.bitrate_index=z(t.brate,t.version,t.out_samplerate),e.bitrate_index<=0&&n()):e.bitrate_index=1,t.analysis&&(t.bWriteVbrTag=!1),null!=e.pinfo&&(t.bWriteVbrTag=!1),r.init_bit_stream_w(e);for(var c,u=e.samplerate_index+3*t.version+6*(t.out_samplerate<16e3?1:0),d=0;d<q.SBMAX_l+1;d++)e.scalefac_band.l[d]=o.sfBandIndex[u].l[d];for(d=0;d<q.PSFB21+1;d++){var f=(e.scalefac_band.l[22]-e.scalefac_band.l[21])/q.PSFB21,b=e.scalefac_band.l[21]+d*f;e.scalefac_band.psfb21[d]=b}e.scalefac_band.psfb21[q.PSFB21]=576;for(d=0;d<q.SBMAX_s+1;d++)e.scalefac_band.s[d]=o.sfBandIndex[u].s[d];for(d=0;d<q.PSFB12+1;d++){f=(e.scalefac_band.s[13]-e.scalefac_band.s[12])/q.PSFB12,b=e.scalefac_band.s[12]+d*f;e.scalefac_band.psfb12[d]=b}for(e.scalefac_band.psfb12[q.PSFB12]=192,1==t.version?e.sideinfo_len=1==e.channels_out?21:36:e.sideinfo_len=1==e.channels_out?13:21,t.error_protection&&(e.sideinfo_len+=2),N(t),e.Class_ID=w,c=0;c<19;c++)e.nsPsy.pefirbuf[c]=700*e.mode_gr*e.channels_out;switch(-1==t.ATHtype&&(t.ATHtype=4),t.VBR){case _.vbr_mt:t.VBR=_.vbr_mtrh;case _.vbr_mtrh:null==t.useTemporal&&(t.useTemporal=!1),s.apply_preset(t,500-10*t.VBR_q,0),t.quality<0&&(t.quality=LAME_DEFAULT_QUALITY),t.quality<5&&(t.quality=0),t.quality>5&&(t.quality=5),e.PSY.mask_adjust=t.maskingadjust,e.PSY.mask_adjust_short=t.maskingadjust_short,t.experimentalY?e.sfb21_extra=!1:e.sfb21_extra=t.out_samplerate>44e3,e.iteration_loop=new VBRNewIterationLoop(l);break;case _.vbr_rh:s.apply_preset(t,500-10*t.VBR_q,0),e.PSY.mask_adjust=t.maskingadjust,e.PSY.mask_adjust_short=t.maskingadjust_short,t.experimentalY?e.sfb21_extra=!1:e.sfb21_extra=t.out_samplerate>44e3,t.quality>6&&(t.quality=6),t.quality<0&&(t.quality=LAME_DEFAULT_QUALITY),e.iteration_loop=new VBROldIterationLoop(l);break;default:var x;e.sfb21_extra=!1,t.quality<0&&(t.quality=LAME_DEFAULT_QUALITY),x=t.VBR,x==_.vbr_off&&(t.VBR_mean_bitrate_kbps=t.brate),s.apply_preset(t,t.VBR_mean_bitrate_kbps,0),t.VBR=x,e.PSY.mask_adjust=t.maskingadjust,e.PSY.mask_adjust_short=t.maskingadjust_short,x==_.vbr_off?e.iteration_loop=new D(l):n();break}return t.VBR!=_.vbr_off&&n(),t.tune&&n(),j(t),t.athaa_type<0?e.ATH.useAdjust=3:e.ATH.useAdjust=t.athaa_type,e.ATH.aaSensitivityP=Math.pow(10,t.athaa_sensitivity/-10),null==t.short_blocks&&(t.short_blocks=g.short_block_allowed),t.short_blocks!=g.short_block_allowed||t.mode!=v.JOINT_STEREO&&t.mode!=v.STEREO||(t.short_blocks=g.short_block_coupled),t.quant_comp<0&&(t.quant_comp=1),t.quant_comp_short<0&&(t.quant_comp_short=0),t.msfix<0&&(t.msfix=0),t.exp_nspsytune=1|t.exp_nspsytune,t.internal_flags.nsPsy.attackthre<0&&(t.internal_flags.nsPsy.attackthre=K.NSATTACKTHRE),t.internal_flags.nsPsy.attackthre_s<0&&(t.internal_flags.nsPsy.attackthre_s=K.NSATTACKTHRE_S),t.scale<0&&(t.scale=1),t.ATHtype<0&&(t.ATHtype=4),t.ATHcurve<0&&(t.ATHcurve=4),t.athaa_loudapprox<0&&(t.athaa_loudapprox=2),t.interChRatio<0&&(t.interChRatio=0),null==t.useTemporal&&(t.useTemporal=!0),e.slot_lag=e.frac_SpF=0,t.VBR==_.vbr_off&&(e.slot_lag=e.frac_SpF=72e3*(t.version+1)*t.brate%t.out_samplerate|0),o.iteration_init(t),p.psymodel_init(t),0},this.lame_encode_flush=function(t,e,i,s){var a,o,l,h,u=t.internal_flags,d=c([2,1152]),f=0,p=u.mf_samples_to_encode-q.POSTDELAY,g=U(t);if(u.mf_samples_to_encode<1)return 0;a=0,t.in_samplerate!=t.out_samplerate&&n(),l=t.framesize-p%t.framesize,l<576&&(l+=t.framesize),t.encoder_padding=l,h=(p+l)/t.framesize;while(h>0&&f>=0){var m=g-u.mf_size,_=t.frameNum;m*=t.in_samplerate,m/=t.out_samplerate,m>1152&&(m=1152),m<1&&(m=1),o=s-a,0==s&&(o=0),f=this.lame_encode_buffer(t,d[0],d[1],m,e,i,o),i+=f,a+=f,h-=_!=t.frameNum?1:0}return u.mf_samples_to_encode=0,f<0?f:(o=s-a,0==s&&(o=0),r.flush_bitstream(t),f=r.copy_buffer(u,e,i,o,1),f<0?f:(i+=f,a+=f,o=s-a,0==s&&(o=0),t.write_id3tag_automatic&&n(),a))},this.lame_encode_buffer=function(t,e,n,i,r,s,a){var o=t.internal_flags,l=[null,null];if(o.Class_ID!=w)return-3;if(0==i)return 0;O(o,i),l[0]=o.in_buffer_0,l[1]=o.in_buffer_1;for(var h=0;h<i;h++)l[0][h]=e[h],o.channels_in>1&&(l[1][h]=n[h]);return B(t,l[0],l[1],i,r,s,a)}}function Z(){this.setModules=function(t,e){0}}function Q(){this.setModules=function(t,e,n){0}}function tt(){}function et(){this.setModules=function(t,e){0}}function nt(t,e,r){1!=t&&n("fix cc: only supports mono");var s=new $,a=new Z,o=new x,l=new M,h=new w,c=new j,u=new B,d=new T,f=new y,p=new et,g=new S,m=new b,_=new Q,E=new tt;s.setModules(o,l,h,c,u,d,f,p,E),l.setModules(o,E,f,d),p.setModules(l,f),h.setModules(s),u.setModules(l,g,c,m),c.setModules(m,g,s.enc.psy),g.setModules(l),m.setModules(c),d.setModules(s,l,f),a.setModules(_,E),_.setModules(f,p,h);var A=s.lame_init();A.num_channels=t,A.in_samplerate=e,A.out_samplerate=e,A.brate=r,A.mode=v.STEREO,A.quality=3,A.bWriteVbrTag=!1,A.disable_reservoir=!0,A.write_id3tag_automatic=!1;s.lame_init_params(A);var R=1152,z=0|1.25*R+7200,C=i(z);this.encodeBuffer=function(e,n){1==t&&(n=e),e.length>R&&(R=e.length,z=0|1.25*R+7200,C=i(z));var r=s.lame_encode_buffer(A,e,n,e.length,C,0,z);return new Int8Array(C.subarray(0,r))},this.flush=function(){var t=s.lame_encode_flush(A,C,0,z);return new Int8Array(C.subarray(0,t))}}U.SFBMAX=3*q.SBMAX_s,q.ENCDELAY=576,q.POSTDELAY=1152,q.MDCTDELAY=48,q.FFTOFFSET=224+q.MDCTDELAY,q.DECDELAY=528,q.SBLIMIT=32,q.CBANDS=64,q.SBPSY_l=21,q.SBPSY_s=12,q.SBMAX_l=22,q.SBMAX_s=13,q.PSFB21=6,q.PSFB12=6,q.BLKSIZE=1024,q.HBLKSIZE=q.BLKSIZE/2+1,q.BLKSIZE_s=256,q.HBLKSIZE_s=q.BLKSIZE_s/2+1,q.NORM_TYPE=0,q.START_TYPE=1,q.SHORT_TYPE=2,q.STOP_TYPE=3,q.MPG_MD_LR_LR=0,q.MPG_MD_LR_I=1,q.MPG_MD_MS_LR=2,q.MPG_MD_MS_I=3,q.fircoef=[-.1039435,-.1892065,5*-.0432472,-.155915,3898045e-23,.0467745*5,.50455,.756825,.187098*5],J.MFSIZE=3456+q.ENCDELAY-q.MDCTDELAY,J.MAX_HEADER_BUF=256,J.MAX_BITS_PER_CHANNEL=4095,J.MAX_BITS_PER_GRANULE=7680,J.BPC=320,U.SFBMAX=3*q.SBMAX_s,e.Mp3Encoder=nt}e(),t.lamejs=e}))},2967:function(t,e,n){"use strict";var i=n(6706),r=n(34),s=n(7750),a=n(3506);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=i(Object.prototype,"__proto__","set"),t(n,[]),e=n instanceof Array}catch(o){}return function(n,i){return s(n),a(i),r(n)?(e?t(n,i):n.__proto__=i,n):n}}():void 0)},3005:function(t,e,n){(function(e,i){t.exports=i(n(6763))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.WordArray,r=n.Hasher,s=e.algo,a=[],o=s.SHA1=r.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var n=this._hash.words,i=n[0],r=n[1],s=n[2],o=n[3],l=n[4],h=0;h<80;h++){if(h<16)a[h]=0|t[e+h];else{var c=a[h-3]^a[h-8]^a[h-14]^a[h-16];a[h]=c<<1|c>>>31}var u=(i<<5|i>>>27)+l+a[h];u+=h<20?1518500249+(r&s|~r&o):h<40?1859775393+(r^s^o):h<60?(r&s|r&o|s&o)-1894007588:(r^s^o)-899497514,l=o,o=s,s=r<<30|r>>>2,r=i,i=u}n[0]=n[0]+i|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+o|0,n[4]=n[4]+l|0},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=Math.floor(n/4294967296),e[15+(i+64>>>9<<4)]=n,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA1=r._createHelper(o),e.HmacSHA1=r._createHmacHelper(o)}(),t.SHA1}))},3167:function(t,e,n){"use strict";var i=n(4901),r=n(34),s=n(2967);t.exports=function(t,e,n){var a,o;return s&&i(a=e.constructor)&&a!==n&&r(o=a.prototype)&&o!==n.prototype&&s(t,o),t}},3190:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(2482),n(1014),n(7573),n(5360),n(8811),n(3490),n(3005),n(7535),n(9314),n(6310),n(3511),n(3515),n(9478),n(4767),n(8973),n(2568),n(796),n(9395),n(2545),n(2730),n(6903),n(6604),n(4771),n(5163),n(3708),n(6253),n(5770),n(2775),n(3565),n(3634),n(4199),n(728),n(4802),n(3966))})(0,(function(t){return t}))},3238:function(t,e,n){"use strict";var i=n(4576),r=n(7811),s=n(7394),a=i.DataView;t.exports=function(t){if(!r||0!==s(t))return!1;try{return new a(t),!1}catch(e){return!0}}},3392:function(t,e,n){"use strict";var i=n(9504),r=0,s=Math.random(),a=i(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++r+s,36)}},3440:function(t,e,n){"use strict";var i=n(7080),r=n(4402),s=n(9286),a=n(5170),o=n(3789),l=n(8469),h=n(507),c=r.has,u=r.remove;t.exports=function(t){var e=i(this),n=o(t),r=s(e);return a(e)<=n.size?l(e,(function(t){n.includes(t)&&u(r,t)})):h(n.getIterator(),(function(t){c(e,t)&&u(r,t)})),r}},3490:function(t,e,n){(function(e,i){t.exports=i(n(6763))})(0,(function(t){return function(e){var n=t,i=n.lib,r=i.WordArray,s=i.Hasher,a=n.algo,o=[];(function(){for(var t=0;t<64;t++)o[t]=4294967296*e.abs(e.sin(t+1))|0})();var l=a.MD5=s.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var i=e+n,r=t[i];t[i]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var s=this._hash.words,a=t[e+0],l=t[e+1],f=t[e+2],p=t[e+3],g=t[e+4],m=t[e+5],_=t[e+6],v=t[e+7],y=t[e+8],b=t[e+9],x=t[e+10],w=t[e+11],S=t[e+12],T=t[e+13],M=t[e+14],E=t[e+15],A=s[0],R=s[1],z=s[2],C=s[3];A=h(A,R,z,C,a,7,o[0]),C=h(C,A,R,z,l,12,o[1]),z=h(z,C,A,R,f,17,o[2]),R=h(R,z,C,A,p,22,o[3]),A=h(A,R,z,C,g,7,o[4]),C=h(C,A,R,z,m,12,o[5]),z=h(z,C,A,R,_,17,o[6]),R=h(R,z,C,A,v,22,o[7]),A=h(A,R,z,C,y,7,o[8]),C=h(C,A,R,z,b,12,o[9]),z=h(z,C,A,R,x,17,o[10]),R=h(R,z,C,A,w,22,o[11]),A=h(A,R,z,C,S,7,o[12]),C=h(C,A,R,z,T,12,o[13]),z=h(z,C,A,R,M,17,o[14]),R=h(R,z,C,A,E,22,o[15]),A=c(A,R,z,C,l,5,o[16]),C=c(C,A,R,z,_,9,o[17]),z=c(z,C,A,R,w,14,o[18]),R=c(R,z,C,A,a,20,o[19]),A=c(A,R,z,C,m,5,o[20]),C=c(C,A,R,z,x,9,o[21]),z=c(z,C,A,R,E,14,o[22]),R=c(R,z,C,A,g,20,o[23]),A=c(A,R,z,C,b,5,o[24]),C=c(C,A,R,z,M,9,o[25]),z=c(z,C,A,R,p,14,o[26]),R=c(R,z,C,A,y,20,o[27]),A=c(A,R,z,C,T,5,o[28]),C=c(C,A,R,z,f,9,o[29]),z=c(z,C,A,R,v,14,o[30]),R=c(R,z,C,A,S,20,o[31]),A=u(A,R,z,C,m,4,o[32]),C=u(C,A,R,z,y,11,o[33]),z=u(z,C,A,R,w,16,o[34]),R=u(R,z,C,A,M,23,o[35]),A=u(A,R,z,C,l,4,o[36]),C=u(C,A,R,z,g,11,o[37]),z=u(z,C,A,R,v,16,o[38]),R=u(R,z,C,A,x,23,o[39]),A=u(A,R,z,C,T,4,o[40]),C=u(C,A,R,z,a,11,o[41]),z=u(z,C,A,R,p,16,o[42]),R=u(R,z,C,A,_,23,o[43]),A=u(A,R,z,C,b,4,o[44]),C=u(C,A,R,z,S,11,o[45]),z=u(z,C,A,R,E,16,o[46]),R=u(R,z,C,A,f,23,o[47]),A=d(A,R,z,C,a,6,o[48]),C=d(C,A,R,z,v,10,o[49]),z=d(z,C,A,R,M,15,o[50]),R=d(R,z,C,A,m,21,o[51]),A=d(A,R,z,C,S,6,o[52]),C=d(C,A,R,z,p,10,o[53]),z=d(z,C,A,R,x,15,o[54]),R=d(R,z,C,A,l,21,o[55]),A=d(A,R,z,C,y,6,o[56]),C=d(C,A,R,z,E,10,o[57]),z=d(z,C,A,R,_,15,o[58]),R=d(R,z,C,A,T,21,o[59]),A=d(A,R,z,C,g,6,o[60]),C=d(C,A,R,z,w,10,o[61]),z=d(z,C,A,R,f,15,o[62]),R=d(R,z,C,A,b,21,o[63]),s[0]=s[0]+A|0,s[1]=s[1]+R|0,s[2]=s[2]+z|0,s[3]=s[3]+C|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,r=8*t.sigBytes;n[r>>>5]|=128<<24-r%32;var s=e.floor(i/4294967296),a=i;n[15+(r+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),n[14+(r+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(n.length+1),this._process();for(var o=this._hash,l=o.words,h=0;h<4;h++){var c=l[h];l[h]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return o},clone:function(){var t=s.clone.call(this);return t._hash=this._hash.clone(),t}});function h(t,e,n,i,r,s,a){var o=t+(e&n|~e&i)+r+a;return(o<<s|o>>>32-s)+e}function c(t,e,n,i,r,s,a){var o=t+(e&i|n&~i)+r+a;return(o<<s|o>>>32-s)+e}function u(t,e,n,i,r,s,a){var o=t+(e^n^i)+r+a;return(o<<s|o>>>32-s)+e}function d(t,e,n,i,r,s,a){var o=t+(n^(e|~i))+r+a;return(o<<s|o>>>32-s)+e}n.MD5=s._createHelper(l),n.HmacMD5=s._createHmacHelper(l)}(Math),t.MD5}))},3506:function(t,e,n){"use strict";var i=n(3925),r=String,s=TypeError;t.exports=function(t){if(i(t))return t;throw new s("Can't set "+r(t)+" as a prototype")}},3511:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(2482),n(6310))})(0,(function(t){return function(){var e=t,n=e.x64,i=n.Word,r=n.WordArray,s=e.algo,a=s.SHA512,o=s.SHA384=a.extend({_doReset:function(){this._hash=new r.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=a._doFinalize.call(this);return t.sigBytes-=16,t}});e.SHA384=a._createHelper(o),e.HmacSHA384=a._createHmacHelper(o)}(),t.SHA384}))},3515:function(t,e,n){n(4114),function(e,i){t.exports=i(n(6763),n(2482))}(0,(function(t){return function(e){var n=t,i=n.lib,r=i.WordArray,s=i.Hasher,a=n.x64,o=a.Word,l=n.algo,h=[],c=[],u=[];(function(){for(var t=1,e=0,n=0;n<24;n++){h[t+5*e]=(n+1)*(n+2)/2%64;var i=e%5,r=(2*t+3*e)%5;t=i,e=r}for(t=0;t<5;t++)for(e=0;e<5;e++)c[t+5*e]=e+(2*t+3*e)%5*5;for(var s=1,a=0;a<24;a++){for(var l=0,d=0,f=0;f<7;f++){if(1&s){var p=(1<<f)-1;p<32?d^=1<<p:l^=1<<p-32}128&s?s=s<<1^113:s<<=1}u[a]=o.create(l,d)}})();var d=[];(function(){for(var t=0;t<25;t++)d[t]=o.create()})();var f=l.SHA3=s.extend({cfg:s.cfg.extend({outputLength:512}),_doReset:function(){for(var t=this._state=[],e=0;e<25;e++)t[e]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(t,e){for(var n=this._state,i=this.blockSize/2,r=0;r<i;r++){var s=t[e+2*r],a=t[e+2*r+1];s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8);var o=n[r];o.high^=a,o.low^=s}for(var l=0;l<24;l++){for(var f=0;f<5;f++){for(var p=0,g=0,m=0;m<5;m++){o=n[f+5*m];p^=o.high,g^=o.low}var _=d[f];_.high=p,_.low=g}for(f=0;f<5;f++){var v=d[(f+4)%5],y=d[(f+1)%5],b=y.high,x=y.low;for(p=v.high^(b<<1|x>>>31),g=v.low^(x<<1|b>>>31),m=0;m<5;m++){o=n[f+5*m];o.high^=p,o.low^=g}}for(var w=1;w<25;w++){o=n[w];var S=o.high,T=o.low,M=h[w];M<32?(p=S<<M|T>>>32-M,g=T<<M|S>>>32-M):(p=T<<M-32|S>>>64-M,g=S<<M-32|T>>>64-M);var E=d[c[w]];E.high=p,E.low=g}var A=d[0],R=n[0];A.high=R.high,A.low=R.low;for(f=0;f<5;f++)for(m=0;m<5;m++){w=f+5*m,o=n[w];var z=d[w],C=d[(f+1)%5+5*m],P=d[(f+2)%5+5*m];o.high=z.high^~C.high&P.high,o.low=z.low^~C.low&P.low}o=n[0];var k=u[l];o.high^=k.high,o.low^=k.low}},_doFinalize:function(){var t=this._data,n=t.words,i=(this._nDataBytes,8*t.sigBytes),s=32*this.blockSize;n[i>>>5]|=1<<24-i%32,n[(e.ceil((i+1)/s)*s>>>5)-1]|=128,t.sigBytes=4*n.length,this._process();for(var a=this._state,o=this.cfg.outputLength/8,l=o/8,h=[],c=0;c<l;c++){var u=a[c],d=u.high,f=u.low;d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),h.push(f),h.push(d)}return new r.init(h,o)},clone:function(){for(var t=s.clone.call(this),e=t._state=this._state.slice(0),n=0;n<25;n++)e[n]=e[n].clone();return t}});n.SHA3=s._createHelper(f),n.HmacSHA3=s._createHmacHelper(f)}(Math),t.SHA3}))},3565:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(5360),n(3490),n(2568),n(796))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.BlockCipher,r=e.algo,s=[],a=[],o=[],l=[],h=[],c=[],u=[],d=[],f=[],p=[];(function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var n=0,i=0;for(e=0;e<256;e++){var r=i^i<<1^i<<2^i<<3^i<<4;r=r>>>8^255&r^99,s[n]=r,a[r]=n;var g=t[n],m=t[g],_=t[m],v=257*t[r]^16843008*r;o[n]=v<<24|v>>>8,l[n]=v<<16|v>>>16,h[n]=v<<8|v>>>24,c[n]=v;v=16843009*_^65537*m^257*g^16843008*n;u[r]=v<<24|v>>>8,d[r]=v<<16|v>>>16,f[r]=v<<8|v>>>24,p[r]=v,n?(n=g^t[t[t[_^g]]],i^=t[t[i]]):n=i=1}})();var g=[0,1,2,4,8,16,32,64,128,27,54],m=r.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,n=t.sigBytes/4,i=this._nRounds=n+6,r=4*(i+1),a=this._keySchedule=[],o=0;o<r;o++)o<n?a[o]=e[o]:(c=a[o-1],o%n?n>6&&o%n==4&&(c=s[c>>>24]<<24|s[c>>>16&255]<<16|s[c>>>8&255]<<8|s[255&c]):(c=c<<8|c>>>24,c=s[c>>>24]<<24|s[c>>>16&255]<<16|s[c>>>8&255]<<8|s[255&c],c^=g[o/n|0]<<24),a[o]=a[o-n]^c);for(var l=this._invKeySchedule=[],h=0;h<r;h++){o=r-h;if(h%4)var c=a[o];else c=a[o-4];l[h]=h<4||o<=4?c:u[s[c>>>24]]^d[s[c>>>16&255]]^f[s[c>>>8&255]]^p[s[255&c]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,l,h,c,s)},decryptBlock:function(t,e){var n=t[e+1];t[e+1]=t[e+3],t[e+3]=n,this._doCryptBlock(t,e,this._invKeySchedule,u,d,f,p,a);n=t[e+1];t[e+1]=t[e+3],t[e+3]=n},_doCryptBlock:function(t,e,n,i,r,s,a,o){for(var l=this._nRounds,h=t[e]^n[0],c=t[e+1]^n[1],u=t[e+2]^n[2],d=t[e+3]^n[3],f=4,p=1;p<l;p++){var g=i[h>>>24]^r[c>>>16&255]^s[u>>>8&255]^a[255&d]^n[f++],m=i[c>>>24]^r[u>>>16&255]^s[d>>>8&255]^a[255&h]^n[f++],_=i[u>>>24]^r[d>>>16&255]^s[h>>>8&255]^a[255&c]^n[f++],v=i[d>>>24]^r[h>>>16&255]^s[c>>>8&255]^a[255&u]^n[f++];h=g,c=m,u=_,d=v}g=(o[h>>>24]<<24|o[c>>>16&255]<<16|o[u>>>8&255]<<8|o[255&d])^n[f++],m=(o[c>>>24]<<24|o[u>>>16&255]<<16|o[d>>>8&255]<<8|o[255&h])^n[f++],_=(o[u>>>24]<<24|o[d>>>16&255]<<16|o[h>>>8&255]<<8|o[255&c])^n[f++],v=(o[d>>>24]<<24|o[h>>>16&255]<<16|o[c>>>8&255]<<8|o[255&u])^n[f++];t[e]=g,t[e+1]=m,t[e+2]=_,t[e+3]=v},keySize:8});e.AES=i._createHelper(m)}(),t.AES}))},3579:function(t,e,n){"use strict";var i=n(6518),r=n(2652),s=n(9306),a=n(8551),o=n(1767);i({target:"Iterator",proto:!0,real:!0},{some:function(t){a(this),s(t);var e=o(this),n=0;return r(e,(function(e,i){if(t(e,n++))return i()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},3634:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(5360),n(3490),n(2568),n(796))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.WordArray,r=n.BlockCipher,s=e.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],o=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],h=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],c=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],u=s.DES=r.extend({_doReset:function(){for(var t=this._key,e=t.words,n=[],i=0;i<56;i++){var r=a[i]-1;n[i]=e[r>>>5]>>>31-r%32&1}for(var s=this._subKeys=[],h=0;h<16;h++){var c=s[h]=[],u=l[h];for(i=0;i<24;i++)c[i/6|0]|=n[(o[i]-1+u)%28]<<31-i%6,c[4+(i/6|0)]|=n[28+(o[i+24]-1+u)%28]<<31-i%6;c[0]=c[0]<<1|c[0]>>>31;for(i=1;i<7;i++)c[i]=c[i]>>>4*(i-1)+3;c[7]=c[7]<<5|c[7]>>>27}var d=this._invSubKeys=[];for(i=0;i<16;i++)d[i]=s[15-i]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,n){this._lBlock=t[e],this._rBlock=t[e+1],d.call(this,4,252645135),d.call(this,16,65535),f.call(this,2,858993459),f.call(this,8,16711935),d.call(this,1,1431655765);for(var i=0;i<16;i++){for(var r=n[i],s=this._lBlock,a=this._rBlock,o=0,l=0;l<8;l++)o|=h[l][((a^r[l])&c[l])>>>0];this._lBlock=a,this._rBlock=s^o}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,d.call(this,1,1431655765),f.call(this,8,16711935),f.call(this,2,858993459),d.call(this,16,65535),d.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function d(t,e){var n=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=n,this._lBlock^=n<<t}function f(t,e){var n=(this._rBlock>>>t^this._lBlock)&e;this._lBlock^=n,this._rBlock^=n<<t}e.DES=r._createHelper(u);var p=s.TripleDES=r.extend({_doReset:function(){var t=this._key,e=t.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var n=e.slice(0,2),r=e.length<4?e.slice(0,2):e.slice(2,4),s=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=u.createEncryptor(i.create(n)),this._des2=u.createEncryptor(i.create(r)),this._des3=u.createEncryptor(i.create(s))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=r._createHelper(p)}(),t.TripleDES}))},3650:function(t,e,n){"use strict";var i=n(7080),r=n(4402),s=n(9286),a=n(3789),o=n(507),l=r.add,h=r.has,c=r.remove;t.exports=function(t){var e=i(this),n=a(t).getIterator(),r=s(e);return o(n,(function(t){h(e,t)?c(r,t):l(r,t)})),r}},3706:function(t,e,n){"use strict";var i=n(9504),r=n(4901),s=n(7629),a=i(Function.toString);r(s.inspectSource)||(s.inspectSource=function(t){return a(t)}),t.exports=s.inspectSource},3708:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.pad.Iso97971={pad:function(e,n){e.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(e,n)},unpad:function(e){t.pad.ZeroPadding.unpad(e),e.sigBytes--}},t.pad.Iso97971}))},3717:function(t,e){"use strict";e.f=Object.getOwnPropertySymbols},3724:function(t,e,n){"use strict";var i=n(9039);t.exports=!i((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},3789:function(t,e,n){"use strict";var i=n(9306),r=n(8551),s=n(9565),a=n(1291),o=n(1767),l="Invalid size",h=RangeError,c=TypeError,u=Math.max,d=function(t,e){this.set=t,this.size=u(e,0),this.has=i(t.has),this.keys=i(t.keys)};d.prototype={getIterator:function(){return o(r(s(this.keys,this.set)))},includes:function(t){return s(this.has,this.set,t)}},t.exports=function(t){r(t);var e=+t.size;if(e!==e)throw new c(l);var n=a(e);if(n<0)throw new h(l);return new d(t,n)}},3838:function(t,e,n){"use strict";var i=n(7080),r=n(5170),s=n(8469),a=n(3789);t.exports=function(t){var e=i(this),n=a(t);return!(r(e)>n.size)&&!1!==s(e,(function(t){if(!n.includes(t))return!1}),!0)}},3853:function(t,e,n){"use strict";var i=n(6518),r=n(4449),s=n(4916),a=!s("isDisjointFrom",(function(t){return!t}));i({target:"Set",proto:!0,real:!0,forced:a},{isDisjointFrom:r})},3925:function(t,e,n){"use strict";var i=n(34);t.exports=function(t){return i(t)||null===t}},3966:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(5360),n(3490),n(2568),n(796))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.BlockCipher,r=e.algo;const s=16,a=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],o=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var l={pbox:[],sbox:[]};function h(t,e){let n=e>>24&255,i=e>>16&255,r=e>>8&255,s=255&e,a=t.sbox[0][n]+t.sbox[1][i];return a^=t.sbox[2][r],a+=t.sbox[3][s],a}function c(t,e,n){let i,r=e,a=n;for(let o=0;o<s;++o)r^=t.pbox[o],a=h(t,r)^a,i=r,r=a,a=i;return i=r,r=a,a=i,a^=t.pbox[s],r^=t.pbox[s+1],{left:r,right:a}}function u(t,e,n){let i,r=e,a=n;for(let o=s+1;o>1;--o)r^=t.pbox[o],a=h(t,r)^a,i=r,r=a,a=i;return i=r,r=a,a=i,a^=t.pbox[1],r^=t.pbox[0],{left:r,right:a}}function d(t,e,n){for(let s=0;s<4;s++){t.sbox[s]=[];for(let e=0;e<256;e++)t.sbox[s][e]=o[s][e]}let i=0;for(let o=0;o<s+2;o++)t.pbox[o]=a[o]^e[i],i++,i>=n&&(i=0);let r=0,l=0,h=0;for(let a=0;a<s+2;a+=2)h=c(t,r,l),r=h.left,l=h.right,t.pbox[a]=r,t.pbox[a+1]=l;for(let s=0;s<4;s++)for(let e=0;e<256;e+=2)h=c(t,r,l),r=h.left,l=h.right,t.sbox[s][e]=r,t.sbox[s][e+1]=l;return!0}var f=r.Blowfish=i.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var t=this._keyPriorReset=this._key,e=t.words,n=t.sigBytes/4;d(l,e,n)}},encryptBlock:function(t,e){var n=c(l,t[e],t[e+1]);t[e]=n.left,t[e+1]=n.right},decryptBlock:function(t,e){var n=u(l,t[e],t[e+1]);t[e]=n.left,t[e+1]=n.right},blockSize:2,keySize:4,ivSize:2});e.Blowfish=i._createHelper(f)}(),t.Blowfish}))},4055:function(t,e,n){"use strict";var i=n(4576),r=n(34),s=i.document,a=r(s)&&r(s.createElement);t.exports=function(t){return a?s.createElement(t):{}}},4114:function(t,e,n){"use strict";var i=n(6518),r=n(8981),s=n(6198),a=n(4527),o=n(6837),l=n(9039),h=l((function(){return 4294967297!==[].push.call({length:4294967296},1)})),c=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}},u=h||!c();i({target:"Array",proto:!0,arity:1,forced:u},{push:function(t){var e=r(this),n=s(e),i=arguments.length;o(n+i);for(var l=0;l<i;l++)e[n]=arguments[l],n++;return a(e,n),n}})},4117:function(t){"use strict";t.exports=function(t){return null===t||void 0===t}},4149:function(t){"use strict";var e=RangeError;t.exports=function(t){if(t===t)return t;throw new e("NaN is not allowed")}},4199:function(t,e,n){n(8111),n(6933),function(e,i){t.exports=i(n(6763),n(5360),n(3490),n(2568),n(796))}(0,(function(t){return function(){var e=t,n=e.lib,i=n.StreamCipher,r=e.algo,s=r.RC4=i.extend({_doReset:function(){for(var t=this._key,e=t.words,n=t.sigBytes,i=this._S=[],r=0;r<256;r++)i[r]=r;r=0;for(var s=0;r<256;r++){var a=r%n,o=e[a>>>2]>>>24-a%4*8&255;s=(s+i[r]+o)%256;var l=i[r];i[r]=i[s],i[s]=l}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=a.call(this)},keySize:8,ivSize:0});function a(){for(var t=this._S,e=this._i,n=this._j,i=0,r=0;r<4;r++){e=(e+1)%256,n=(n+t[e])%256;var s=t[e];t[e]=t[n],t[n]=s,i|=t[(t[e]+t[n])%256]<<24-8*r}return this._i=e,this._j=n,i}e.RC4=i._createHelper(s);var o=r.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)a.call(this)}});e.RC4Drop=i._createHelper(o)}(),t.RC4}))},4204:function(t,e,n){"use strict";var i=n(7080),r=n(4402).add,s=n(9286),a=n(3789),o=n(507);t.exports=function(t){var e=i(this),n=a(t).getIterator(),l=s(e);return o(n,(function(t){r(l,t)})),l}},4209:function(t,e,n){"use strict";var i=n(8227),r=n(6269),s=i("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||a[s]===t)}},4215:function(t,e,n){"use strict";var i=n(4576),r=n(2839),s=n(2195),a=function(t){return r.slice(0,t.length)===t};t.exports=function(){return a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===s(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST"}()},4270:function(t,e,n){"use strict";var i=n(9565),r=n(4901),s=n(34),a=TypeError;t.exports=function(t,e){var n,o;if("string"===e&&r(n=t.toString)&&!s(o=i(n,t)))return o;if(r(n=t.valueOf)&&!s(o=i(n,t)))return o;if("string"!==e&&r(n=t.toString)&&!s(o=i(n,t)))return o;throw new a("Can't convert object to primitive value")}},4376:function(t,e,n){"use strict";var i=n(2195);t.exports=Array.isArray||function(t){return"Array"===i(t)}},4402:function(t,e,n){"use strict";var i=n(9504),r=Set.prototype;t.exports={Set:Set,add:i(r.add),has:i(r.has),remove:i(r["delete"]),proto:r}},4449:function(t,e,n){"use strict";var i=n(7080),r=n(4402).has,s=n(5170),a=n(3789),o=n(8469),l=n(507),h=n(9539);t.exports=function(t){var e=i(this),n=a(t);if(s(e)<=n.size)return!1!==o(e,(function(t){if(n.includes(t))return!1}),!0);var c=n.getIterator();return!1!==l(c,(function(t){if(r(e,t))return h(c,"normal",!1)}))}},4483:function(t,e,n){"use strict";var i,r,s,a,o=n(4576),l=n(9429),h=n(1548),c=o.structuredClone,u=o.ArrayBuffer,d=o.MessageChannel,f=!1;if(h)f=function(t){c(t,{transfer:[t]})};else if(u)try{d||(i=l("worker_threads"),i&&(d=i.MessageChannel)),d&&(r=new d,s=new u(2),a=function(t){r.port1.postMessage(null,[t])},2===s.byteLength&&(a(s),0===s.byteLength&&(f=a)))}catch(p){}t.exports=f},4495:function(t,e,n){"use strict";var i=n(9519),r=n(9039),s=n(4576),a=s.String;t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol("symbol detection");return!a(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},4527:function(t,e,n){"use strict";var i=n(3724),r=n(4376),s=TypeError,a=Object.getOwnPropertyDescriptor,o=i&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=o?function(t,e){if(r(t)&&!a(t,"length").writable)throw new s("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},4576:function(t,e,n){"use strict";var i=function(t){return t&&t.Math===Math&&t};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof n.g&&n.g)||i("object"==typeof this&&this)||function(){return this}()||Function("return this")()},4603:function(t,e,n){"use strict";var i=n(6840),r=n(9504),s=n(655),a=n(2812),o=URLSearchParams,l=o.prototype,h=r(l.append),c=r(l["delete"]),u=r(l.forEach),d=r([].push),f=new o("a=1&a=2&b=3");f["delete"]("a",1),f["delete"]("b",void 0),f+""!=="a=2"&&i(l,"delete",(function(t){var e=arguments.length,n=e<2?void 0:arguments[1];if(e&&void 0===n)return c(this,t);var i=[];u(this,(function(t,e){d(i,{key:e,value:t})})),a(e,1);var r,o=s(t),l=s(n),f=0,p=0,g=!1,m=i.length;while(f<m)r=i[f++],g||r.key===o?(g=!0,c(this,r.key)):p++;while(p<m)r=i[p++],r.key===o&&r.value===l||h(this,r.key,r.value)}),{enumerable:!0,unsafe:!0})},4644:function(t,e,n){"use strict";var i,r,s,a=n(7811),o=n(3724),l=n(4576),h=n(4901),c=n(34),u=n(9297),d=n(6955),f=n(6823),p=n(6699),g=n(6840),m=n(2106),_=n(1625),v=n(2787),y=n(2967),b=n(8227),x=n(3392),w=n(1181),S=w.enforce,T=w.get,M=l.Int8Array,E=M&&M.prototype,A=l.Uint8ClampedArray,R=A&&A.prototype,z=M&&v(M),C=E&&v(E),P=Object.prototype,k=l.TypeError,D=b("toStringTag"),I=x("TYPED_ARRAY_TAG"),L="TypedArrayConstructor",j=a&&!!y&&"Opera"!==d(l.opera),N=!1,O={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},U={BigInt64Array:8,BigUint64Array:8},B=function(t){if(!c(t))return!1;var e=d(t);return"DataView"===e||u(O,e)||u(U,e)},F=function(t){var e=v(t);if(c(e)){var n=T(e);return n&&u(n,L)?n[L]:F(e)}},H=function(t){if(!c(t))return!1;var e=d(t);return u(O,e)||u(U,e)},q=function(t){if(H(t))return t;throw new k("Target is not a typed array")},V=function(t){if(h(t)&&(!y||_(z,t)))return t;throw new k(f(t)+" is not a typed array constructor")},G=function(t,e,n,i){if(o){if(n)for(var r in O){var s=l[r];if(s&&u(s.prototype,t))try{delete s.prototype[t]}catch(a){try{s.prototype[t]=e}catch(h){}}}C[t]&&!n||g(C,t,n?e:j&&E[t]||e,i)}},W=function(t,e,n){var i,r;if(o){if(y){if(n)for(i in O)if(r=l[i],r&&u(r,t))try{delete r[t]}catch(s){}if(z[t]&&!n)return;try{return g(z,t,n?e:j&&z[t]||e)}catch(s){}}for(i in O)r=l[i],!r||r[t]&&!n||g(r,t,e)}};for(i in O)r=l[i],s=r&&r.prototype,s?S(s)[L]=r:j=!1;for(i in U)r=l[i],s=r&&r.prototype,s&&(S(s)[L]=r);if((!j||!h(z)||z===Function.prototype)&&(z=function(){throw new k("Incorrect invocation")},j))for(i in O)l[i]&&y(l[i],z);if((!j||!C||C===P)&&(C=z.prototype,j))for(i in O)l[i]&&y(l[i].prototype,C);if(j&&v(R)!==C&&y(R,C),o&&!u(C,D))for(i in N=!0,m(C,D,{configurable:!0,get:function(){return c(this)?this[I]:void 0}}),O)l[i]&&p(l[i],I,i);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:j,TYPED_ARRAY_TAG:N&&I,aTypedArray:q,aTypedArrayConstructor:V,exportTypedArrayMethod:G,exportTypedArrayStaticMethod:W,getTypedArrayConstructor:F,isView:B,isTypedArray:H,TypedArray:z,TypedArrayPrototype:C}},4659:function(t,e,n){"use strict";var i=n(3724),r=n(4913),s=n(6980);t.exports=function(t,e,n){i?r.f(t,e,s(0,n)):t[e]=n}},4660:function(t,e,n){var i;n(4114),n(6573),n(8100),n(7936),n(8111),n(2489),n(7467),n(4732),n(9577),n(4979),function(r){var s="object"==typeof window&&!!window.document,a=s?window:Object;r(a,s),i=function(){return a.Recorder}.call(e,n,e,t),void 0===i||(t.exports=i),t.exports&&(t.exports=a.Recorder)}((function(t,e){"use strict";var n=function(){},i=function(t){return"number"==typeof t},r=function(t){return JSON.stringify(t)},s=function(t){return new B(t)},a=s.LM="2025-01-11 09:28",o="https://github.com/xiangyuecn/Recorder",l="Recorder",h="getUserMedia",c="srcSampleRate",u="sampleRate",d="bitRate",f="catch",p=t[l];if(p&&p.LM==a)p.CLog(p.i18n.$T("K8zP::重复导入{1}",0,l),3);else{s.IsOpen=function(){var t=s.Stream;if(t){var e=R(t),n=e[0];if(n){var i=n.readyState;return"live"==i||i==n.LIVE}}return!1},s.BufferSize=4096,s.Destroy=function(){for(var t in z(l+" Destroy"),E(),g)g[t]()};var g={};s.BindDestroy=function(t,e){g[t]=e},s.Support=function(){if(!e)return!1;var t=navigator.mediaDevices||{};return t[h]||(t=navigator,t[h]||(t[h]=t.webkitGetUserMedia||t.mozGetUserMedia||t.msGetUserMedia)),!!t[h]&&(s.Scope=t,!!s.GetContext())},s.GetContext=function(t){if(!e)return null;var n=window.AudioContext;if(n||(n=window.webkitAudioContext),!n)return null;var i=s.Ctx,r=0;return i||(i=s.Ctx=new n,r=1,s.NewCtxs=s.NewCtxs||[],s.BindDestroy("Ctx",(function(){var t=s.Ctx;t&&t.close&&(m(t),s.Ctx=0);var e=s.NewCtxs;s.NewCtxs=[];for(var n=0;n<e.length;n++)m(e[n])}))),t&&i.close&&(r||(i._useC||m(i),i=new n),i._useC=1,s.NewCtxs.push(i)),i},s.CloseNewCtx=function(t){if(t&&t.close){m(t);for(var e=s.NewCtxs||[],n=e.length,i=0;i<e.length;i++)if(e[i]==t){e.splice(i,1);break}z(O("mSxV::剩{1}个GetContext未close",0,n+"-1="+e.length),e.length?3:0)}};var m=function(t){if(t&&t.close&&!t._isC&&(t._isC=1,"closed"!=t.state))try{t.close()}catch(e){z("ctx close err",1,e)}},_=s.ResumeCtx=function(t,e,n,i){var r=0,s=0,a=0,o=0,l="EventListener",h="ResumeCtx ",c=function(e,h){s&&u(),r||(r=1,e&&i(e,o),h&&n(o)),h&&(!t._LsSC&&t["add"+l]&&t["add"+l]("statechange",d),t._LsSC=1,a=1)},u=function(t){if(!t||!s){s=t?1:0;for(var e=["focus","mousedown","mouseup","touchstart","touchend"],n=0;n<e.length;n++)window[(t?"add":"remove")+l](e[n],d,!0)}},d=function(){var n=t.state,i=v(n);if(!r&&!e(i?++o:o))return c();i?(a&&z(h+"sc "+n,3),u(1),t.resume().then((function(){a&&z(h+"sc "+t.state),c(0,1)}))[f]((function(e){z(h+"error",1,e),v(t.state)||c(e.message||"error")}))):"closed"==n?(a&&!t._isC&&z(h+"sc "+n,1),c("ctx closed")):c(0,1)};d()},v=s.CtxSpEnd=function(t){return"suspended"==t||"interrupted"==t},y=function(t){var e=t.state,n="ctx.state="+e;return v(e)&&(n+=O("nMIy::(注意:ctx不是running状态,rec.open和start至少要有一个在用户操作(触摸、点击等)时进行调用,否则将在rec.start时尝试进行ctx.resume,可能会产生兼容性问题(仅iOS),请参阅文档中runningContext配置)")),n},b="ConnectEnableWebM";s[b]=!0;var x="ConnectEnableWorklet";s[x]=!1;var w=function(t){var e=t.BufferSize||s.BufferSize,n=t.Stream,i=n._c,a=i[u],o={},h=R(n),c=h[0],d=null,p="";if(c&&c.getSettings){d=c.getSettings();var g=d[u];g&&g!=a&&(p=O("eS8i::Stream的采样率{1}不等于{2},将进行采样率转换(注意:音质不会变好甚至可能变差),主要在移动端未禁用回声消除时会产生此现象,浏览器有回声消除时可能只会返回16k采样率的音频数据,",0,g,a))}n._ts=d,z(p+"Stream TrackSet: "+r(d),p?3:0);var m,v,y,w=function(t){var e=n._m=i.createMediaStreamSource(n),r=i.destination,s="createMediaStreamDestination";i[s]&&(r=n._d=i[s]()),e.connect(t),t.connect(r)},S="",E=n._call,A=function(t,e){for(var n in E){if(e!=a){o.index=0,o=s.SampleData([t],e,a,o,{_sum:1});var i=o.data,r=o._sum}else{o={};for(var l=t.length,h=(i=new Int16Array(l),r=0,0);h<l;h++){var c=Math.max(-1,Math.min(1,t[h]));c=c<0?32768*c:32767*c,i[h]=c,r+=Math.abs(c)}}for(var u in E)E[u](i,r);return}},C="ScriptProcessor",P="audioWorklet",D=l+" "+P,I="RecProc",L="MediaRecorder",j=L+".WebM.PCM",U=i.createScriptProcessor||i.createJavaScriptNode,B=O("ZGlf::。由于{1}内部1秒375次回调,在移动端可能会有性能问题导致回调丢失录音变短,PC端无影响,暂不建议开启{1}。",0,P),F=function(){v=n.isWorklet=!1,T(n),z(O("7TU0::Connect采用老的{1},",0,C)+N.get(s[x]?O("JwCL::但已设置{1}尝试启用{2}",2):O("VGjB::可设置{1}尝试启用{2}",2),[l+"."+x+"=true",P])+S+B,3);var t=n._p=U.call(i,e,1,1);w(t),t.onaudioprocess=function(t){var e=t.inputBuffer.getChannelData(0);A(e,a)}},H=function(){m=n.isWebM=!1,M(n),v=n.isWorklet=!U||s[x];var t=window.AudioWorkletNode;if(v&&i[P]&&t){var r=function(){var t=function(t){return t.toString().replace(/^function|DEL_/g,"").replace(/\$RA/g,D)},e="class "+I+" extends AudioWorkletProcessor{";return e+="constructor "+t((function(t){DEL_super(t);var e=this,n=t.processorOptions.bufferSize;e.bufferSize=n,e.buffer=new Float32Array(2*n),e.pos=0,e.port.onmessage=function(t){t.data.kill&&(e.kill=!0,$C.log("$RA kill call"))},$C.log("$RA .ctor call",t)})),e+="process "+t((function(t,e,n){var i=this,r=i.bufferSize,s=i.buffer,a=i.pos;if(t=(t[0]||[])[0]||[],t.length){s.set(t,a),a+=t.length;var o=~~(a/r)*r;if(o){this.port.postMessage({val:s.slice(0,o)});var l=s.subarray(o,a);s=new Float32Array(2*r),s.set(l),a=l.length,i.buffer=s}i.pos=a}return!i.kill})),e+='}try{registerProcessor("'+I+'", '+I+')}catch(e){$C.error("'+D+' Reg Error",e)}',e=e.replace(/\$C\./g,"console."),"data:text/javascript;base64,"+btoa(unescape(encodeURIComponent(e)))},o=function(){return v&&n._na},h=n._na=function(){""!==y&&(clearTimeout(y),y=setTimeout((function(){y=0,o()&&(z(O("MxX1::{1}未返回任何音频,恢复使用{2}",0,P,C),3),U&&F())}),500))},c=function(){if(o()){var r=n._n=new t(i,I,{processorOptions:{bufferSize:e}});w(r),r.port.onmessage=function(t){y&&(clearTimeout(y),y=""),o()?A(t.data.val,a):v||z(O("XUap::{1}多余回调",0,P),3)},z(O("yOta::Connect采用{1},设置{2}可恢复老式{3}",0,P,l+"."+x+"=false",C)+S+B,3)}},u=function(){if(o())if(i[I])c();else{var t=r();i[P].addModule(t).then((function(t){o()&&(i[I]=1,c(),y&&h())}))[f]((function(t){z(P+".addModule Error",1,t),o()&&F()}))}};_(i,(function(){return o()}),u,u)}else F()},q=function(){var t=window[L],i="ondataavailable",r="audio/webm; codecs=pcm";m=n.isWebM=s[b];var a=t&&i in t.prototype&&t.isTypeSupported(r);if(S=a?"":O("VwPd::(此浏览器不支持{1})",0,j),m&&a){var o=function(){return m&&n._ra};n._ra=function(){""!==y&&(clearTimeout(y),y=setTimeout((function(){o()&&(z(O("vHnb::{1}未返回任何音频,降级使用{2}",0,L,P),3),H())}),500))};var h=Object.assign({mimeType:r},s.ConnectWebMOptions),c=n._r=new t(n,h),u=n._rd={};c[i]=function(t){var e=new FileReader;e.onloadend=function(){if(o()){var t=k(new Uint8Array(e.result),u);if(!t)return;if(-1==t)return void H();y&&(clearTimeout(y),y=""),A(t,u.webmSR)}else m||z(O("O9P7::{1}多余回调",0,L),3)},e.readAsArrayBuffer(t.data)};try{c.start(~~(e/48)),z(O("LMEm::Connect采用{1},设置{2}可恢复使用{3}或老式{4}",0,j,l+"."+b+"=false",P,C))}catch(d){z("mr start err",1,d),H()}}else H()};q()},S=function(t){t._na&&t._na(),t._ra&&t._ra()},T=function(t){t._na=null,t._n&&(t._n.port.postMessage({kill:!0}),t._n.disconnect(),t._n=null)},M=function(t){if(t._ra=null,t._r){try{t._r.stop()}catch(e){z("mr stop err",1,e)}t._r=null}},E=function(t){t=t||s;var e=t==s,n=t.Stream;n&&(n._m&&(n._m.disconnect(),n._m=null),!n._RC&&n._c&&s.CloseNewCtx(n._c),n._RC=null,n._c=null,n._d&&(A(n._d.stream),n._d=null),n._p&&(n._p.disconnect(),n._p.onaudioprocess=n._p=null),T(n),M(n),e&&A(n)),t.Stream=0},A=s.StopS_=function(t){for(var e=R(t),n=0;n<e.length;n++){var i=e[n];i.stop&&i.stop()}t.stop&&t.stop()},R=function(t){var e=0,n=0,i=[];t.getAudioTracks&&(e=t.getAudioTracks(),n=t.getVideoTracks()),e||(e=t.audioTracks,n=t.videoTracks);for(var r=0,s=e?e.length:0;r<s;r++)i.push(e[r]);for(r=0,s=n?n.length:0;r<s;r++)i.push(n[r]);return i};s.SampleData=function(t,e,n,i,r){var a="SampleData";i||(i={});var o=i.index||0,l=i.offset||0,h=i.raisePrev||0,c=i.filter;if(c&&c.fn&&(c.sr&&c.sr!=e||c.srn&&c.srn!=n)&&(c=null,z(O("d48C::{1}的filter采样率变了,重设滤波",0,a),3)),!c)if(n<=e){var u=n>3*e/4?0:n/2*3/4;c={fn:u?s.IIRFilter(!0,e,u):0}}else{u=e>3*n/4?0:e/2*3/4;c={fn:u?s.IIRFilter(!0,n,u):0}}c.sr=e,c.srn=n;var d=c.fn,f=i.frameNext||[];r||(r={});var p=r.frameSize||1;r.frameType&&(p="mp3"==r.frameType?1152:1);var g=r._sum,m=0,_=t.length;o>_+1&&z(O("tlbC::{1}似乎传入了未重置chunk {2}",0,a,o+">"+_),3);for(var v=0,y=o;y<_;y++)v+=t[y].length;var b=e/n;if(b>1)v=Math.max(0,v-Math.floor(l)),v=Math.floor(v/b);else if(b<1){var x=1/b;v=Math.floor(v*x)}v+=f.length;var w=new Int16Array(v),S=0;for(y=0;y<f.length;y++)w[S]=f[y],S++;for(;o<_;o++){var T=t[o],M=T instanceof Float32Array,E=(y=l,T.length),A=d&&d.Embed,R=0,C=0,P=0,k=0;if(b<1){for(var D=S+y,I=h,L=0;L<E;L++){var j=T[L];M&&(j=Math.max(-1,Math.min(1,j)),j=j<0?32768*j:32767*j);var N=Math.floor(D);D+=x;for(var U=Math.floor(D),B=(j-I)/(U-N),F=1;N<U;N++,F++){var H=Math.floor(I+F*B);A?(P=H,k=A.b0*P+A.b1*A.x1+A.b0*A.x2-A.a1*A.y1-A.a2*A.y2,A.x2=A.x1,A.x1=P,A.y2=A.y1,A.y1=k,H=k):H=d?d(H):H,H>32767?H=32767:H<-32768&&(H=-32768),g&&(m+=Math.abs(H)),w[N]=H,S++}I=h=j,y+=x}l=y%1}else{L=0;for(var q=0;L<E;L++,q++){if(q<E){j=T[q];M&&(j=Math.max(-1,Math.min(1,j)),j=j<0?32768*j:32767*j),A?(P=j,k=A.b0*P+A.b1*A.x1+A.b0*A.x2-A.a1*A.y1-A.a2*A.y2,A.x2=A.x1,A.x1=P,A.y2=A.y1,A.y1=k):k=d?d(j):j}if(R=C,C=k,0!=q){var V=Math.floor(y);if(L==V){var G=Math.ceil(y),W=y-V,X=R,J=G<E?C:X,Y=X+(J-X)*W;Y>32767?Y=32767:Y<-32768&&(Y=-32768),g&&(m+=Math.abs(Y)),w[S]=Y,S++,y+=b}}else L--}l=Math.max(0,y-E)}}b<1&&S+1==v&&(v--,w=new Int16Array(w.buffer.slice(0,2*v))),S-1!=v&&S!=v&&z(a+" idx:"+S+" != size:"+v,3),f=null;var K=v%p;if(K>0){var $=2*(v-K);f=new Int16Array(w.buffer.slice($)),w=new Int16Array(w.buffer.slice(0,$))}var Z={index:o,offset:l,raisePrev:h,filter:c,frameNext:f,sampleRate:n,data:w};return g&&(Z._sum=m),Z},s.IIRFilter=function(t,e,n){var i=2*Math.PI*n/e,r=Math.sin(i),s=Math.cos(i),a=r/2,o=1+a,l=-2*s/o,h=(1-a)/o;if(t)var c=(1-s)/2/o,u=(1-s)/o;else c=(1+s)/2/o,u=-(1+s)/o;var d=0,f=0,p=0,g=0,m=0,_=function(t){return p=c*t+u*d+c*f-l*g-h*m,f=d,d=t,m=g,g=p,p};return _.Embed={x1:0,x2:0,y1:0,y2:0,b0:c,b1:u,a1:l,a2:h},_},s.PowerLevel=function(t,e){var n,i=t/e||0;return n=i<1251?Math.round(i/1250*10):Math.round(Math.min(100,Math.max(0,100*(1+Math.log(i/1e4)/Math.log(10))))),n},s.PowerDBFS=function(t){var e=Math.max(.1,t||0),n=32767;return e=Math.min(e,n),e=20*Math.log(e/n)/Math.log(10),Math.max(-100,Math.round(e))},s.CLog=function(t,e){if("object"==typeof console){var n=new Date,r=("0"+n.getMinutes()).substr(-2)+":"+("0"+n.getSeconds()).substr(-2)+"."+("00"+n.getMilliseconds()).substr(-3),a=this&&this.envIn&&this.envCheck&&this.id,o=["["+r+" "+l+(a?":"+a:"")+"]"+t],h=arguments,c=s.CLog,u=2,d=c.log||console.log;for(i(e)?d=1==e?c.error||console.error:3==e?c.warn||console.warn:d:u=1;u<h.length;u++)o.push(h[u]);C?d&&d("[IsLoser]"+o[0],o.length>1?o:""):d.apply(console,o)}};var z=function(){s.CLog.apply(this,arguments)},C=!0;try{C=!console.log.apply}catch(F){}var P=0;s.Sync={O:9,C:9},s.prototype=B.prototype={CLog:z,_streamStore:function(){return this.set.sourceStream?this:s},_streamGet:function(){return this._streamStore().Stream},_streamCtx:function(){var t=this._streamGet();return t&&t._c},open:function(t,i){var l=this,c=l.set,d=l._streamStore(),p=0;t=t||n;var g=function(t,e){e=!!e,l.CLog(O("5tWi::录音open失败:")+t+",isUserNotAllow:"+e,1),p&&s.CloseNewCtx(p),i&&i(t,e)};l._streamTag=h;var m=function(){l.CLog("open ok, id:"+l.id+" stream:"+l._streamTag),t(),l._SO=0},_=d.Sync,v=++_.O,b=_.C;l._O=l._O_=v,l._SO=l._S;var x=function(){if(b!=_.C||!l._O){var t=O("dFm8::open被取消");return v==_.O?l.close():t=O("VtJO::open被中断"),g(t),!0}};if(e){var S=l.envCheck({envName:"H5",canProcess:!0});if(S)g(O("A5bm::不能录音:")+S);else{var T,M=function(){T=c.runningContext,T||(T=p=s.GetContext(!0))};if(c.sourceStream){if(l._streamTag="set.sourceStream",!s.GetContext())return void g(O("1iU7::不支持此浏览器从流中获取录音"));M(),E(d);var A=l.Stream=c.sourceStream;A._c=T,A._RC=c.runningContext,A._call={};try{w(d)}catch(F){return E(d),void g(O("BTW2::从流中打开录音失败:")+F.message)}m()}else{var R=function(t,e){try{window.top.a}catch(F){return void g(O("Nclz::无权录音(跨域,请尝试给iframe添加麦克风访问策略,如{1})",0,'allow="camera;microphone"'))}z(1,t)&&(/Found/i.test(t)?g(e+O("jBa9::,无可用麦克风")):g(e))},z=function(t,e){if(/Permission|Allow/i.test(e))t&&g(O("gyO5::用户拒绝了录音权限"),!0);else{if(!1!==window.isSecureContext)return 1;t&&g(O("oWNo::浏览器禁止不安全页面录音,可开启https解决"))}};if(s.IsOpen())m();else if(s.Support()){M();var C,P,k=function(t){setTimeout((function(){t._call={};var e=s.Stream;e&&(E(),t._call=e._call),s.Stream=t,t._c=T,t._RC=c.runningContext,x()||(s.IsOpen()?(e&&l.CLog(O("upb8::发现同时多次调用open"),1),w(d),m()):g(O("Q1GA::录音功能无效:无音频流")))}),100)},D=function(t){var e=t.name||t.message||t.code+":"+t,n="";1==I&&z(0,e)&&(n=O("KxE2::,将尝试禁用回声消除后重试"));var i=O("xEQR::请求录音权限错误"),r=O("bDOG::无法录音:");l.CLog(i+n+"|"+t,n||P?3:1,t),n?(C=e,P=t,L(1)):P?(l.CLog(i+"|"+P,1,P),R(C,r+P)):R(e,r+t)},I=0,L=function(t){I++;var e="audioTrackSet",n="autoGainControl",i="echoCancellation",d="noiseSuppression",p=e+":{"+i+","+d+","+n+"}",g=JSON.parse(r(c[e]||!0));l.CLog("open... "+I+" "+e+":"+r(g)),t&&("object"!=typeof g&&(g={}),g[n]=!1,g[i]=!1,g[d]=!1),g[u]&&l.CLog(O("IjL3::注意:已配置{1}参数,可能会出现浏览器不能正确选用麦克风、移动端无法启用回声消除等现象",0,e+"."+u),3);var m={audio:g,video:c.videoTrackSet||!1};try{var _=s.Scope[h](m,k,D)}catch(F){l.CLog(h,3,F),m={audio:!0,video:!1},_=s.Scope[h](m,k,D)}l.CLog(h+"("+r(m)+") "+y(T)+O("RiWe::,未配置 {1} 时浏览器可能会自动启用回声消除,移动端未禁用回声消除时可能会降低系统播放音量(关闭录音后可恢复)和仅提供16k采样率的音频流(不需要回声消除时可明确配置成禁用来获得48k高音质的流),请参阅文档中{2}配置",0,p,e)+"("+o+") LM:"+a+" UA:"+navigator.userAgent),_&&_.then&&_.then(k)[f](D)};L()}else R("",O("COxc::此浏览器不支持录音"))}}}else g(O.G("NonBrowser-1",["open"])+O("EMJq::,可尝试使用RecordApp解决方案")+"("+o+"/tree/master/app-support-sample)")},close:function(t){t=t||n;var e=this,i=e._streamStore();e._stop();var r=" stream:"+e._streamTag,s=i.Sync;if(e._O=0,e._O_!=s.O)return e.CLog(O("hWVz::close被忽略(因为同时open了多个rec,只有最后一个会真正close)")+r,3),void t();s.C++,E(i),e.CLog("close,"+r),t()},mock:function(t,e){var n=this;return n._stop(),n.isMock=1,n.mockEnvInfo=null,n.buffers=[t],n.recSize=t.length,n._setSrcSR(e),n._streamTag="mock",n},_setSrcSR:function(t){var e=this,n=e.set,i=n[u];i>t?n[u]=t:i=0,e[c]=t,e.CLog(c+": "+t+" set."+u+": "+n[u]+(i?" "+O("UHvm::忽略")+": "+i:""),i?3:0)},envCheck:function(t){var e,n=this,i=n.set,r="CPU_BE";if(e||s[r]||"function"!=typeof Int8Array||new Int8Array(new Int32Array([1]).buffer)[0]||(U(r),e=O("Essp::不支持{1}架构",0,r)),!e){var a=i.type,o=n[a+"_envCheck"];i.takeoffEncodeChunk&&(o?t.canProcess||(e=O("7uMV::{1}环境不支持实时处理",0,t.envName)):e=O("2XBl::{1}类型不支持设置takeoffEncodeChunk",0,a)+(n[a]?"":O("LG7e::(未加载编码器)"))),!e&&o&&(e=n[a+"_envCheck"](t,i))}return e||""},envStart:function(t,e){var n=this,i=n.set;if(n.isMock=t?1:0,n.mockEnvInfo=t,n.buffers=[],n.recSize=0,t&&(n._streamTag="env$"+t.envName),n.state=1,n.envInLast=0,n.envInFirst=0,n.envInFix=0,n.envInFixTs=[],n._setSrcSR(e),n.engineCtx=0,n[i.type+"_start"]){var r=n.engineCtx=n[i.type+"_start"](i);r&&(r.pcmDatas=[],r.pcmSize=0)}},envResume:function(){this.envInFixTs=[]},envIn:function(t,e){var n=this,i=n.set,r=n.engineCtx;if(1==n.state){var a=n[c],o=t.length,l=s.PowerLevel(e,o),h=n.buffers,d=h.length;h.push(t);var f=h,p=d,g=Date.now(),m=Math.round(o/a*1e3);n.envInLast=g,1==n.buffers.length&&(n.envInFirst=g-m);var _=n.envInFixTs;_.splice(0,0,{t:g,d:m});for(var v=g,y=0,b=0;b<_.length;b++){var x=_[b];if(g-x.t>3e3){_.length=b;break}v=x.t,y+=x.d}var w=_[1],S=g-v,T=S-y;if(T>S/3&&(w&&S>1e3||_.length>=6)){var M=g-w.t-m;if(M>m/5){var E=!i.disableEnvInFix;if(n.CLog("["+g+"]"+N.get(O(E?"4Kfd::补偿{1}ms":"bM5i::未补偿{1}ms",1),[M]),3),n.envInFix+=M,E){var A=new Int16Array(M*a/1e3);o+=A.length,h.push(A)}}}var R=n.recSize,z=o,C=R+z;if(n.recSize=C,r){var P=s.SampleData(h,a,i[u],r.chunkInfo);r.chunkInfo=P,R=r.pcmSize,z=P.data.length,C=R+z,r.pcmSize=C,h=r.pcmDatas,d=h.length,h.push(P.data),a=P[u]}var k=Math.round(C/a*1e3),D=h.length,I=f.length,L=function(){for(var t=j?0:-z,e=null==h[0],s=d;s<D;s++){var a=h[s];null==a?e=1:(t+=a.length,r&&a.length&&n[i.type+"_encode"](r,a))}if(e&&r){s=p;for(f[0]&&(s=0);s<I;s++)f[s]=null}e&&(t=j?z:0,h[0]=null),r?r.pcmSize+=t:n.recSize+=t},j=0,U="rec.set.onProcess";try{j=i.onProcess(h,l,k,a,d,L),j=!0===j}catch(F){console.error(U+O("gFUF::回调出错是不允许的,需保证不会抛异常"),F)}var B=Date.now()-g;if(B>10&&n.envInFirst-g>1e3&&n.CLog(U+O("2ghS::低性能,耗时{1}ms",0,B),3),j){var H=0;for(b=d;b<D;b++)null==h[b]?H=1:h[b]=new Int16Array(0);H?n.CLog(O("ufqH::未进入异步前不能清除buffers"),3):r?r.pcmSize-=z:n.recSize-=z}else L()}else n.state||n.CLog("envIn at state=0",3)},start:function(){var t=this,e=1;if(t.set.sourceStream?t.Stream||(e=0):s.IsOpen()||(e=0),e){var n=t._streamCtx();if(t.CLog(O("kLDN::start 开始录音,")+y(n)+" stream:"+t._streamTag),t._stop(),t.envStart(null,n[u]),t.state=3,t._SO&&t._SO+1!=t._S)t.CLog(O("Bp2y::start被中断"),3);else{t._SO=0;var i=function(){3==t.state&&(t.state=1,t.resume())},r="AudioContext resume: ",a=t._streamGet();a._call[t.id]=function(){t.CLog(r+n.state+"|stream ok"),i()},_(n,(function(e){return e&&t.CLog(r+"wait..."),3==t.state}),(function(e){e&&t.CLog(r+n.state),i()}),(function(e){t.CLog(r+n.state+O("upkE::,可能无法录音:")+e,1),i()}))}}else t.CLog(O("6WmN::start失败:未open"),1)},pause:function(){var t=this,e=t._streamGet();t.state&&(t.state=2,t.CLog("pause"),e&&delete e._call[t.id])},resume:function(){var t=this,e=t._streamGet(),n="resume",i=n+"(wait ctx)";if(3==t.state)t.CLog(i);else if(t.state){t.state=1,t.CLog(n),t.envResume(),e&&(e._call[t.id]=function(e,n){1==t.state&&t.envIn(e,n)},S(e));var r=t._streamCtx();r&&_(r,(function(e){return e&&t.CLog(i+"..."),1==t.state}),(function(n){n&&t.CLog(i+r.state),S(e)}),(function(e){t.CLog(i+r.state+"[err]"+e,1)}))}},_stop:function(t){var e=this,n=e.set;e.isMock||e._S++,e.state&&(e.pause(),e.state=0),!t&&e[n.type+"_stop"]&&(e[n.type+"_stop"](e.engineCtx),e.engineCtx=0)},stop:function(t,e,n){var i,r=this,h=r.set,d=r.envInLast-r.envInFirst,f=d&&r.buffers.length;r.CLog(O("Xq4s::stop 和start时差:")+(d?d+"ms "+O("3CQP::补偿:")+r.envInFix+"ms envIn:"+f+" fps:"+(f/d*1e3).toFixed(1):"-")+" stream:"+r._streamTag+" ("+o+") LM:"+a);var p=function(){r._stop(),n&&r.close()},g=function(t){r.CLog(O("u8JG::结束录音失败:")+t,1),e&&e(t),p()},m=function(e,n,a){var o="blob",c="arraybuffer",u="dataType",d="DefaultDataType",f=r[u]||s[d]||o,m=u+"="+f,_=e instanceof ArrayBuffer,v=0,y=_?e.byteLength:e.size;if(f==c?_||(v=1):f==o?"function"!=typeof Blob?v=O.G("NonBrowser-1",[m])+O("1skY::,请设置{1}",0,l+"."+d+'="'+c+'"'):(_&&(e=new Blob([e],{type:n})),e instanceof Blob||(v=1),n=e.type||n):v=O.G("NotSupport-1",[m]),r.CLog(O("Wv7l::结束录音 编码花{1}ms 音频时长{2}ms 文件大小{3}b",0,Date.now()-i,a,y)+" "+m+","+n),v)g(1!=v?v:O("Vkbd::{1}编码器返回的不是{2}",0,h.type,f)+", "+m);else{if(h.takeoffEncodeChunk)r.CLog(O("QWnr::启用takeoffEncodeChunk后stop返回的blob长度为0不提供音频数据"),3);else if(y<Math.max(50,a/5))return void g(O("Sz2H::生成的{1}无效",0,h.type));t&&t(e,a,n),p()}};if(!r.isMock){var _=3==r.state;if(!r.state||_)return void g(O("wf9t::未开始录音")+(_?O("Dl2c::,开始录音前无用户交互导致AudioContext未运行"):""))}r._stop(!0);var v=r.recSize;if(v)if(r[h.type]){if(r.isMock){var y=r.envCheck(r.mockEnvInfo||{envName:"mock",canProcess:!1});if(y)return void g(O("AxOH::录音错误:")+y)}var b=r.engineCtx;if(r[h.type+"_complete"]&&b){var x=Math.round(b.pcmSize/h[u]*1e3);return i=Date.now(),void r[h.type+"_complete"](b,(function(t,e){m(t,e,x)}),g)}if(i=Date.now(),r.buffers[0]){var w=s.SampleData(r.buffers,r[c],h[u]);h[u]=w[u];var S=w.data;x=Math.round(S.length/h[u]*1e3);r.CLog(O("CxeT::采样:{1} 花:{2}ms",0,v+"->"+S.length,Date.now()-i)),setTimeout((function(){i=Date.now(),r[h.type](S,(function(t,e){m(t,e,x)}),(function(t){g(t)}))}))}else g(O("xkKd::音频buffers被释放"))}else g(O("xGuI::未加载{1}编码器,请尝试到{2}的src/engine内找到{1}的编码器并加载",0,h.type,l));else g(O("Ltz3::未采集到录音"))}};var k=function(t,e){e.pos||(e.pos=[0],e.tracks={},e.bytes=[]);var n=e.tracks,i=[e.pos[0]],r=function(){e.pos[0]=i[0]},s=e.bytes.length,a=new Uint8Array(s+t.length);if(a.set(e.bytes),a.set(t,s),e.bytes=a,!e._ht){if(L(a,i),j(a,i),!D(L(a,i),[24,83,128,103]))return;L(a,i);while(i[0]<a.length){var o=L(a,i),l=j(a,i),h=[0],c=0;if(!l)return;if(D(o,[22,84,174,107])){while(h[0]<l.length){var d=L(l,h),f=j(l,h),p=[0],g={channels:0,sampleRate:0};if(D(d,[174]))while(p[0]<f.length){var m=L(f,p),_=j(f,p),v=[0];if(D(m,[215])){var y=I(_);g.number=y,n[y]=g}else if(D(m,[131])){y=I(_);1==y?g.type="video":2==y?(g.type="audio",c||(e.track0=g),g.idx=c++):g.type="Type-"+y}else if(D(m,[134])){for(var b="",x=0;x<_.length;x++)b+=String.fromCharCode(_[x]);g.codec=b}else if(D(m,[225]))while(v[0]<_.length){var w=L(_,v),S=j(_,v);if(D(w,[181])){y=0;var T=new Uint8Array(S.reverse()).buffer;4==S.length?y=new Float32Array(T)[0]:8==S.length?y=new Float64Array(T)[0]:z("WebM Track !Float",1,S),g[u]=Math.round(y)}else D(w,[98,100])?g.bitDepth=I(S):D(w,[159])&&(g.channels=I(S))}}}e._ht=1,z("WebM Tracks",n),r();break}}}var M=e.track0;if(M){var E=M[u];if(e.webmSR=E,16==M.bitDepth&&/FLOAT/i.test(M.codec)&&(M.bitDepth=32,z("WebM 16->32 bit",3)),E<8e3||32!=M.bitDepth||M.channels<1||!/(\b|_)PCM\b/i.test(M.codec))return e.bytes=[],e.bad||z("WebM Track Unexpected",3,e),e.bad=1,-1;var A=[],R=0;while(i[0]<a.length){d=L(a,i),f=j(a,i);if(!f)break;if(D(d,[163])){var C=15&f[0];g=n[C];if(!g)return z("WebM !Track"+C,1,n),-1;if(0===g.idx){var P=new Uint8Array(f.length-4);for(x=4;x<f.length;x++)P[x-4]=f[x];A.push(P),R+=P.length}}r()}if(R){var k=new Uint8Array(a.length-e.pos[0]);k.set(a.subarray(e.pos[0])),e.bytes=k,e.pos[0]=0;P=new Uint8Array(R),x=0;for(var N=0;x<A.length;x++)P.set(A[x],N),N+=A[x].length;T=new Float32Array(P.buffer);if(M.channels>1){var O=[];for(x=0;x<T.length;)O.push(T[x]),x+=M.channels;T=new Float32Array(O)}return T}}},D=function(t,e){if(!t||t.length!=e.length)return!1;if(1==t.length)return t[0]==e[0];for(var n=0;n<t.length;n++)if(t[n]!=e[n])return!1;return!0},I=function(t){for(var e="",n=0;n<t.length;n++){var i=t[n];e+=(i<16?"0":"")+i.toString(16)}return parseInt(e,16)||0},L=function(t,e,n){var i=e[0];if(!(i>=t.length)){var r=t[i],s=("0000000"+r.toString(2)).substr(-8),a=/^(0*1)(\d*)$/.exec(s);if(a){var o=a[1].length,l=[];if(!(i+o>t.length)){for(var h=0;h<o;h++)l[h]=t[i],i++;return n&&(l[0]=parseInt(a[2]||"0",2)),e[0]=i,l}}}},j=function(t,e){var n=L(t,e,1);if(n){var i=I(n),r=e[0],s=[];if(i<2147483647){if(r+i>t.length)return;for(var a=0;a<i;a++)s[a]=t[r],r++}return e[0]=r,s}},N=s.i18n={lang:"zh-CN",alias:{"zh-CN":"zh","en-US":"en"},locales:{},data:{},put:function(t,e){var n=l+".i18n.put: ",i=t.overwrite;i=null==i||i;var r=t.lang;if(r=N.alias[r]||r,!r)throw new Error(n+"set.lang?");var s=N.locales[r];s||(s={},N.locales[r]=s);for(var a,o=/^([\w\-]+):/,h=0;h<e.length;h++){var c=e[h];if(a=o.exec(c),a){var u=a[1];c=c.substr(u.length+1);!i&&s[u]||(s[u]=c)}else z(n+"'key:'? "+c,3,t)}},get:function(){return N.v_G.apply(null,arguments)},v_G:function(t,e,n){e=e||[],n=n||N.lang,n=N.alias[n]||n;var i=N.locales[n],r=i&&i[t]||"";return r||"zh"==n?(N.lastLang=n,"=Empty"==r?"":r.replace(/\{(\d+)(\!?)\}/g,(function(n,i,s){return i=+i||0,n=e[i-1],(i<1||i>e.length)&&(n="{?}",z("i18n["+t+"] no {"+i+"}: "+r,3)),s?"":n}))):"en"==n?N.v_G(t,e,"zh"):N.v_G(t,e,"en")},$T:function(){return N.v_T.apply(null,arguments)},v_T:function(){for(var t,e=arguments,n="",r=[],s=0,a=l+".i18n.$T:",o=/^([\w\-]*):/,h=0;h<e.length;h++){var c=e[h];if(0==h){if(t=o.exec(c),n=t&&t[1],!n)throw new Error(a+"0 'key:'?");c=c.substr(n.length+1)}if(-1===s)r.push(c);else{if(s)throw new Error(a+" bad args");if(0===c)s=-1;else if(i(c)){if(c<1)throw new Error(a+" bad args");s=c}else{var u=1==h?"en":h?"":"zh";if(t=o.exec(c),t&&(u=t[1]||u,c=c.substr(t[1].length+1)),!t||!u)throw new Error(a+h+" 'lang:'?");N.put({lang:u,overwrite:!1},[n+":"+c])}}}return n?s>0?n:N.v_G(n,r):""}},O=N.$T;O.G=N.get,O("NonBrowser-1::非浏览器环境,不支持{1}",1),O("IllegalArgs-1::参数错误:{1}",1),O("NeedImport-2::调用{1}需要先导入{2}",2),O("NotSupport-1::不支持:{1}",1),s.TrafficImgUrl="//ia.51.la/go1?id=20469973&pvFlag=1";var U=s.Traffic=function(t){if(e){t=t?"/"+l+"/Report/"+t:"";var n=s.TrafficImgUrl;if(n){var i=s.Traffic,r=/^(https?:..[^\/#]*\/?)[^#]*/i.exec(location.href)||[],a=r[1]||"http://file/",o=(r[0]||a)+t;if(0==n.indexOf("//")&&(n=/^https:/i.test(o)?"https:"+n:"http:"+n),t&&(n=n+"&cu="+encodeURIComponent(a+t)),!i[o]){i[o]=1;var h=new Image;h.src=n,z("Traffic Analysis Image: "+(t||l+".TrafficImgUrl="+s.TrafficImgUrl))}}}};p&&(z(O("8HO5::覆盖导入{1}",0,l),1),p.Destroy()),t[l]=s}function B(t){var e=this;e.id=++P,U();var r={type:"mp3",onProcess:n};for(var s in t)r[s]=t[s];e.set=r;var a=r[d],o=r[u];(a&&!i(a)||o&&!i(o))&&e.CLog(O.G("IllegalArgs-1",[O("VtS4::{1}和{2}必须是数值",0,u,d)]),1,t),r[d]=+a||16,r[u]=+o||16e3,e.state=0,e._S=9,e.Sync={O:9,C:9}}}))},4732:function(t,e,n){"use strict";var i=n(4644),r=n(9504),s=n(9306),a=n(5370),o=i.aTypedArray,l=i.getTypedArrayConstructor,h=i.exportTypedArrayMethod,c=r(i.TypedArrayPrototype.sort);h("toSorted",(function(t){void 0!==t&&s(t);var e=o(this),n=a(l(e),e);return c(n,t)}))},4767:function(t,e,n){(function(e,i){t.exports=i(n(6763))})(0,(function(t){(function(){var e=t,n=e.lib,i=n.Base,r=e.enc,s=r.Utf8,a=e.algo;a.HMAC=i.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=s.parse(e));var n=t.blockSize,i=4*n;e.sigBytes>i&&(e=t.finalize(e)),e.clamp();for(var r=this._oKey=e.clone(),a=this._iKey=e.clone(),o=r.words,l=a.words,h=0;h<n;h++)o[h]^=1549556828,l[h]^=909522486;r.sigBytes=a.sigBytes=i,this.reset()},reset:function(){var t=this._hasher;t.reset(),t.update(this._iKey)},update:function(t){return this._hasher.update(t),this},finalize:function(t){var e=this._hasher,n=e.finalize(t);e.reset();var i=e.finalize(this._oKey.clone().concat(n));return i}})})()}))},4771:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.pad.AnsiX923={pad:function(t,e){var n=t.sigBytes,i=4*e,r=i-n%i,s=n+r-1;t.clamp(),t.words[s>>>2]|=r<<24-s%4*8,t.sigBytes+=r},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},t.pad.Ansix923}))},4802:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(5360),n(3490),n(2568),n(796))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.StreamCipher,r=e.algo,s=[],a=[],o=[],l=r.RabbitLegacy=i.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var r=0;r<4;r++)h.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(e){var s=e.words,a=s[0],o=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),u=l>>>16|4294901760&c,d=c<<16|65535&l;i[0]^=l,i[1]^=u,i[2]^=c,i[3]^=d,i[4]^=l,i[5]^=u,i[6]^=c,i[7]^=d;for(r=0;r<4;r++)h.call(this)}},_doProcessBlock:function(t,e){var n=this._X;h.call(this),s[0]=n[0]^n[5]>>>16^n[3]<<16,s[1]=n[2]^n[7]>>>16^n[5]<<16,s[2]=n[4]^n[1]>>>16^n[7]<<16,s[3]=n[6]^n[3]>>>16^n[1]<<16;for(var i=0;i<4;i++)s[i]=16711935&(s[i]<<8|s[i]>>>24)|4278255360&(s[i]<<24|s[i]>>>8),t[e+i]^=s[i]},blockSize:4,ivSize:2});function h(){for(var t=this._X,e=this._C,n=0;n<8;n++)a[n]=e[n];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<a[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<a[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<a[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<a[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<a[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<a[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<a[6]>>>0?1:0)|0,this._b=e[7]>>>0<a[7]>>>0?1:0;for(n=0;n<8;n++){var i=t[n]+e[n],r=65535&i,s=i>>>16,l=((r*r>>>17)+r*s>>>15)+s*s,h=((4294901760&i)*i|0)+((65535&i)*i|0);o[n]=l^h}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=i._createHelper(l)}(),t.RabbitLegacy}))},4901:function(t){"use strict";var e="object"==typeof document&&document.all;t.exports="undefined"==typeof e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},4913:function(t,e,n){"use strict";var i=n(3724),r=n(5917),s=n(8686),a=n(8551),o=n(6969),l=TypeError,h=Object.defineProperty,c=Object.getOwnPropertyDescriptor,u="enumerable",d="configurable",f="writable";e.f=i?s?function(t,e,n){if(a(t),e=o(e),a(n),"function"===typeof t&&"prototype"===e&&"value"in n&&f in n&&!n[f]){var i=c(t,e);i&&i[f]&&(t[e]=n.value,n={configurable:d in n?n[d]:i[d],enumerable:u in n?n[u]:i[u],writable:!1})}return h(t,e,n)}:h:function(t,e,n){if(a(t),e=o(e),a(n),r)try{return h(t,e,n)}catch(i){}if("get"in n||"set"in n)throw new l("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},4916:function(t,e,n){"use strict";var i=n(7751),r=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},s=function(t){return{size:t,has:function(){return!0},keys:function(){throw new Error("e")}}};t.exports=function(t,e){var n=i("Set");try{(new n)[t](r(0));try{return(new n)[t](r(-1)),!1}catch(o){if(!e)return!0;try{return(new n)[t](s(-1/0)),!1}catch(l){var a=new n;return a.add(1),a.add(2),e(a[t](s(1/0)))}}}catch(l){return!1}}},4919:function(t,e,n){n(4114),n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),n(4603),n(7566),n(8721),function(t){var e="object"==typeof window&&!!window.document,n=e?window:Object,i=n.Recorder,r=i.i18n;t(i,r,r.$T,e)}((function(t,e,n,i){"use strict";var r="48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000",s="8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320";t.prototype.enc_mp3={stable:!0,takeEC:"full",getTestMsg:function(){return n("Zm7L::采样率范围:{1};比特率范围:{2}(不同比特率支持的采样率范围不同,小于32kbps时采样率需小于32000)",0,r,s)}};var a,o=function(e){var i=e.bitRate,a=e.sampleRate,o=a;if(-1==(" "+s+",").indexOf(" "+i+",")&&t.CLog(n("eGB9::{1}不在mp3支持的取值范围:{2}",0,"bitRate="+i,s),3),-1==(" "+r+",").indexOf(" "+a+",")){for(var l=r.split(", "),h=[],c=0;c<l.length;c++)h.push({v:+l[c],s:Math.abs(l[c]-a)});h.sort((function(t,e){return t.s-e.s})),o=h[0].v,e.sampleRate=o,t.CLog(n("zLTa::sampleRate已更新为{1},因为{2}不在mp3支持的取值范围:{3}",0,o,a,r),3)}},l=function(){return n.G("NeedImport-2",["mp3.js","src/engine/mp3-engine.js"])},h=i&&"function"==typeof Worker;t.prototype.mp3=function(e,n,i){var r=this,s=r.set,a=e.length;if(t.lamejs){if(h){var c=r.mp3_start(s);if(c){if(c.isW)return r.mp3_encode(c,e),void r.mp3_complete(c,n,i,1);r.mp3_stop(c)}}o(s);var u=new t.lamejs.Mp3Encoder(1,s.sampleRate,s.bitRate),p=57600,g=new Int8Array(5e5),m=0,_=0,v=0,y=function(){try{if(_<a)var t=u.encodeBuffer(e.subarray(_,_+p));else{v=1;t=u.flush()}}catch(c){if(console.error(c),!v)try{u.flush()}catch(b){console.error(b)}return void i("MP3 Encoder: "+c.message)}var r=t.length;if(r>0){if(m+r>g.length){var o=new Int8Array(g.length+Math.max(5e5,r));o.set(g.subarray(0,m)),g=o}g.set(t,m),m+=r}if(_<a)_+=p,setTimeout(y);else{var l=[g.buffer.slice(0,m)],h=d.fn(l,m,a,s.sampleRate);f(h,s),n(l[0]||new ArrayBuffer(0),"audio/mp3")}};y()}else i(l())},t.BindDestroy("mp3Worker",(function(){a&&(t.CLog("mp3Worker Destroy"),a.terminate(),a=null)})),t.prototype.mp3_envCheck=function(e,i){var r="";return i.takeoffEncodeChunk&&(u()||(r=n("yhUs::当前浏览器版本太低,无法实时处理"))),r||t.lamejs||(r=l()),r},t.prototype.mp3_start=function(t){return u(t)};var c={id:0},u=function(e,i){var r,s=function(t){var e=t.data,n=r.wkScope.wk_ctxs,i=r.wkScope.wk_lame,s=r.wkScope.wk_mp3TrimFix,a=n[e.id];if("init"==e.action)n[e.id]={sampleRate:e.sampleRate,bitRate:e.bitRate,takeoff:e.takeoff,pcmSize:0,memory:new Int8Array(5e5),mOffset:0,encObj:new i.Mp3Encoder(1,e.sampleRate,e.bitRate)};else if(!a)return;var o=function(t){var e=t.length;if(a.mOffset+e>a.memory.length){var n=new Int8Array(a.memory.length+Math.max(5e5,e));n.set(a.memory.subarray(0,a.mOffset)),a.memory=n}a.memory.set(t,a.mOffset),a.mOffset+=e};switch(e.action){case"stop":if(!a.isCp)try{a.encObj.flush()}catch(t){console.error(t)}a.encObj=null,delete n[e.id];break;case"encode":if(a.isCp)break;a.pcmSize+=e.pcm.length;try{var l=a.encObj.encodeBuffer(e.pcm)}catch(t){a.err=t,console.error(t)}l&&l.length>0&&(a.takeoff?p.onmessage({action:"takeoff",id:e.id,chunk:l}):o(l));break;case"complete":a.isCp=1;try{l=a.encObj.flush()}catch(t){a.err=t,console.error(t)}if(l&&l.length>0&&(a.takeoff?p.onmessage({action:"takeoff",id:e.id,chunk:l}):o(l)),a.err){p.onmessage({action:e.action,id:e.id,err:"MP3 Encoder: "+a.err.message});break}var h=[a.memory.buffer.slice(0,a.mOffset)],c=s.fn(h,a.mOffset,a.pcmSize,a.sampleRate);p.onmessage({action:e.action,id:e.id,blob:h[0]||new ArrayBuffer(0),meta:c});break}},l=function(t){p.onmessage=function(e){var n=e;t&&(n=e.data);var i=c[n.id];i&&("takeoff"==n.action?i.set.takeoffEncodeChunk(new Uint8Array(n.chunk.buffer)):(i.call&&i.call(n),i.call=null))}},f=function(){var t={worker:p,set:e};return e?(t.id=++c.id,c[t.id]=t,o(e),p.postMessage({action:"init",id:t.id,sampleRate:e.sampleRate,bitRate:e.bitRate,takeoff:!!e.takeoffEncodeChunk,x:new Int16Array(5)})):p.postMessage({x:new Int16Array(5)}),t},p=a;if(i||!h)return t.CLog(n("k9PT::当前环境不支持Web Worker,mp3实时编码器运行在主线程中"),3),p={postMessage:function(t){s({data:t})}},r={wkScope:{wk_ctxs:{},wk_lame:t.lamejs,wk_mp3TrimFix:d}},l(),f();try{if(!p){var g=(s+"").replace(/[\w\$]+\.onmessage/g,"self.postMessage");g=g.replace(/[\w\$]+\.wkScope/g,"wkScope");var m=");wk_lame();self.onmessage="+g;m+=";var wkScope={ wk_ctxs:{},wk_lame:wk_lame",m+=",wk_mp3TrimFix:{rm:"+d.rm+",fn:"+d.fn+"} }";var _=t.lamejs.toString(),v=(window.URL||webkitURL).createObjectURL(new Blob(["var wk_lame=(",_,m],{type:"text/javascript"}));p=new Worker(v),setTimeout((function(){(window.URL||webkitURL).revokeObjectURL(v)}),1e4),l(1)}var y=f();return y.isW=1,a=p,y}catch(b){return p&&p.terminate(),console.error(b),u(e,1)}};t.prototype.mp3_stop=function(e){if(e&&e.worker){e.worker.postMessage({action:"stop",id:e.id}),e.worker=null,delete c[e.id];var i=-1;for(var r in c)i++;i&&t.CLog(n("fT6M::mp3 worker剩{1}个未stop",0,i),3)}},t.prototype.mp3_encode=function(t,e){t&&t.worker&&t.worker.postMessage({action:"encode",id:t.id,pcm:e})},t.prototype.mp3_complete=function(t,e,i,r){var s=this;t&&t.worker?(t.call=function(n){r&&s.mp3_stop(t),n.err?i(n.err):(f(n.meta,t.set),e(n.blob,"audio/mp3"))},t.worker.postMessage({action:"complete",id:t.id})):i(n("mPxH::mp3编码器未start"))},t.mp3ReadMeta=function(t,e){var n="undefined"!=typeof window&&window.parseInt||"undefined"!=typeof self&&self.parseInt||parseInt,i=new Uint8Array(t[0]||[]);if(i.length<4)return null;var r=function(t,e){return("0000000"+((e||i)[t]||0).toString(2)).substr(-8)},s=r(0)+r(1),a=r(2)+r(3);if(!/^1{11}/.test(s))return null;var o={"00":2.5,10:2,11:1}[s.substr(11,2)],l={"01":3}[s.substr(13,2)],h={1:[44100,48e3,32e3],2:[22050,24e3,16e3],2.5:[11025,12e3,8e3]}[o];h&&(h=h[n(a.substr(4,2),2)]);var c=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320]][1==o?1:0][n(a.substr(0,4),2)];if(!o||!l||!c||!h)return null;for(var u=Math.round(8*e/c),d=1==l?384:2==l||1==o?1152:576,f=d/h*1e3,p=Math.floor(d*c/8/h*1e3),g=0,m=0,_=0;_<t.length;_++){var v=t[_];if(m+=v.byteLength,m>=p+3){var y=new Uint8Array(v),b=v.byteLength-(m-(p+3)+1),x=r(b,y);g="1"==x.charAt(6);break}}return g&&p++,{version:o,layer:l,sampleRate:h,bitRate:c,duration:u,size:e,hasPadding:g,frameSize:p,frameDurationFloat:f}};var d={rm:t.mp3ReadMeta,fn:function(t,e,n,i){var r=this.rm(t,e);if(!r)return{size:e,err:"mp3 unknown format"};var s=Math.round(n/i*1e3),a=Math.floor((r.duration-s)/r.frameDurationFloat);if(a>0){var o=a*r.frameSize-(r.hasPadding?1:0);e-=o;for(var l=0,h=[],c=0;c<t.length;c++){var u=t[c];if(o<=0)break;o>=u.byteLength?(o-=u.byteLength,h.push(u),t.splice(c,1),c--):(t[c]=u.slice(o),l=u,o=0)}var d=this.rm(t,e);if(!d){l&&(t[0]=l);for(c=0;c<h.length;c++)t.splice(c,0,h[c]);r.err="mp3 fix error: 已还原,错误原因不明"}var f=r.trimFix={};f.remove=a,f.removeDuration=Math.round(a*r.frameDurationFloat),f.duration=Math.round(8*e/r.bitRate)}return r}},f=function(e,i){var r="MP3 Info: ";(e.sampleRate&&e.sampleRate!=i.sampleRate||e.bitRate&&e.bitRate!=i.bitRate)&&(t.CLog(r+n("uY9i::和设置的不匹配{1},已更新成{2}",0,"set:"+i.bitRate+"kbps "+i.sampleRate+"hz","set:"+e.bitRate+"kbps "+e.sampleRate+"hz"),3,i),i.sampleRate=e.sampleRate,i.bitRate=e.bitRate);var s=e.trimFix;s?(r+=n("iMSm::Fix移除{1}帧",0,s.remove)+" "+s.removeDuration+"ms -> "+s.duration+"ms",s.remove>2&&(e.err=(e.err?e.err+", ":"")+n("b9zm::移除帧数过多"))):r+=(e.duration||"-")+"ms",e.err?t.CLog(r,e.size?1:0,e.err,e):t.CLog(r,e)}}))},4979:function(t,e,n){"use strict";var i=n(6518),r=n(4576),s=n(7751),a=n(6980),o=n(4913).f,l=n(9297),h=n(679),c=n(3167),u=n(2603),d=n(5002),f=n(6193),p=n(3724),g=n(6395),m="DOMException",_=s("Error"),v=s(m),y=function(){h(this,b);var t=arguments.length,e=u(t<1?void 0:arguments[0]),n=u(t<2?void 0:arguments[1],"Error"),i=new v(e,n),r=new _(e);return r.name=m,o(i,"stack",a(1,f(r.stack,1))),c(i,this,y),i},b=y.prototype=v.prototype,x="stack"in new _(m),w="stack"in new v(1,2),S=v&&p&&Object.getOwnPropertyDescriptor(r,m),T=!!S&&!(S.writable&&S.configurable),M=x&&!T&&!w;i({global:!0,constructor:!0,forced:g||M},{DOMException:M?y:v});var E=s(m),A=E.prototype;if(A.constructor!==E)for(var R in g||o(A,"constructor",a(1,E)),d)if(l(d,R)){var z=d[R],C=z.s;l(E,C)||o(E,C,a(6,z.c))}},5002:function(t){"use strict";t.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},5024:function(t,e,n){"use strict";var i=n(6518),r=n(3650),s=n(4916);i({target:"Set",proto:!0,real:!0,forced:!s("symmetricDifference")},{symmetricDifference:r})},5031:function(t,e,n){"use strict";var i=n(7751),r=n(9504),s=n(8480),a=n(3717),o=n(8551),l=r([].concat);t.exports=i("Reflect","ownKeys")||function(t){var e=s.f(o(t)),n=a.f;return n?l(e,n(t)):e}},5163:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.pad.Iso10126={pad:function(e,n){var i=4*n,r=i-e.sigBytes%i;e.concat(t.lib.WordArray.random(r-1)).concat(t.lib.WordArray.create([r<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},t.pad.Iso10126}))},5169:function(t,e,n){"use strict";var i=n(3238),r=TypeError;t.exports=function(t){if(i(t))throw new r("ArrayBuffer is detached");return t}},5170:function(t,e,n){"use strict";var i=n(6706),r=n(4402);t.exports=i(r.proto,"size","get")||function(t){return t.size}},5360:function(t,e,n){n(4114),function(e,i){t.exports=i(n(6763))}(0,(function(t){return function(){var e=t,n=e.lib,i=n.WordArray,r=e.enc;r.Base64={stringify:function(t){var e=t.words,n=t.sigBytes,i=this._map;t.clamp();for(var r=[],s=0;s<n;s+=3)for(var a=e[s>>>2]>>>24-s%4*8&255,o=e[s+1>>>2]>>>24-(s+1)%4*8&255,l=e[s+2>>>2]>>>24-(s+2)%4*8&255,h=a<<16|o<<8|l,c=0;c<4&&s+.75*c<n;c++)r.push(i.charAt(h>>>6*(3-c)&63));var u=i.charAt(64);if(u)while(r.length%4)r.push(u);return r.join("")},parse:function(t){var e=t.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var r=0;r<n.length;r++)i[n.charCodeAt(r)]=r}var a=n.charAt(64);if(a){var o=t.indexOf(a);-1!==o&&(e=o)}return s(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function s(t,e,n){for(var r=[],s=0,a=0;a<e;a++)if(a%4){var o=n[t.charCodeAt(a-1)]<<a%4*2,l=n[t.charCodeAt(a)]>>>6-a%4*2,h=o|l;r[s>>>2]|=h<<24-s%4*8,s++}return i.create(r,s)}}(),t.enc.Base64}))},5370:function(t,e,n){"use strict";var i=n(6198);t.exports=function(t,e,n){var r=0,s=arguments.length>2?n:i(e),a=new t(s);while(s>r)a[r]=e[r++];return a}},5397:function(t,e,n){"use strict";var i=n(7055),r=n(7750);t.exports=function(t){return i(r(t))}},5610:function(t,e,n){"use strict";var i=n(1291),r=Math.max,s=Math.min;t.exports=function(t,e){var n=i(t);return n<0?r(n+e,0):s(n,e)}},5636:function(t,e,n){"use strict";var i=n(4576),r=n(9504),s=n(6706),a=n(7696),o=n(5169),l=n(7394),h=n(4483),c=n(1548),u=i.structuredClone,d=i.ArrayBuffer,f=i.DataView,p=Math.min,g=d.prototype,m=f.prototype,_=r(g.slice),v=s(g,"resizable","get"),y=s(g,"maxByteLength","get"),b=r(m.getInt8),x=r(m.setInt8);t.exports=(c||h)&&function(t,e,n){var i,r=l(t),s=void 0===e?r:a(e),g=!v||!v(t);if(o(t),c&&(t=u(t,{transfer:[t]}),r===s&&(n||g)))return t;if(r>=s&&(!n||g))i=_(t,0,s);else{var m=n&&!g&&y?{maxByteLength:y(t)}:void 0;i=new d(s,m);for(var w=new f(t),S=new f(i),T=p(s,r),M=0;M<T;M++)x(S,M,b(w,M))}return c||h(t),i}},5745:function(t,e,n){"use strict";var i=n(7629);t.exports=function(t,e){return i[t]||(i[t]=e||{})}},5770:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.pad.NoPadding={pad:function(){},unpad:function(){}},t.pad.NoPadding}))},5854:function(t,e,n){"use strict";var i=n(2777),r=TypeError;t.exports=function(t){var e=i(t,"number");if("number"==typeof e)throw new r("Can't convert number to bigint");return BigInt(e)}},5876:function(t,e,n){"use strict";var i=n(6518),r=n(3838),s=n(4916),a=!s("isSubsetOf",(function(t){return t}));i({target:"Set",proto:!0,real:!0,forced:a},{isSubsetOf:r})},5917:function(t,e,n){"use strict";var i=n(3724),r=n(9039),s=n(4055);t.exports=!i&&!r((function(){return 7!==Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},5966:function(t,e,n){"use strict";var i=n(9306),r=n(4117);t.exports=function(t,e){var n=t[e];return r(n)?void 0:i(n)}},6080:function(t,e,n){"use strict";var i=n(7476),r=n(9306),s=n(616),a=i(i.bind);t.exports=function(t,e){return r(t),void 0===e?t:s?a(t,e):function(){return t.apply(e,arguments)}}},6119:function(t,e,n){"use strict";var i=n(5745),r=n(3392),s=i("keys");t.exports=function(t){return s[t]||(s[t]=r(t))}},6193:function(t,e,n){"use strict";var i=n(9504),r=Error,s=i("".replace),a=function(t){return String(new r(t).stack)}("zxcasd"),o=/\n\s*at [^:]*:[^\n]*/,l=o.test(a);t.exports=function(t,e){if(l&&"string"==typeof t&&!r.prepareStackTrace)while(e--)t=s(t,o,"");return t}},6198:function(t,e,n){"use strict";var i=n(8014);t.exports=function(t){return i(t.length)}},6253:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.pad.ZeroPadding={pad:function(t,e){var n=4*e;t.clamp(),t.sigBytes+=n-(t.sigBytes%n||n)},unpad:function(t){var e=t.words,n=t.sigBytes-1;for(n=t.sigBytes-1;n>=0;n--)if(e[n>>>2]>>>24-n%4*8&255){t.sigBytes=n+1;break}}},t.pad.ZeroPadding}))},6269:function(t){"use strict";t.exports={}},6279:function(t,e,n){"use strict";var i=n(6840);t.exports=function(t,e,n){for(var r in e)i(t,r,e[r],n);return t}},6300:function(t,e,n){n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),function(t){var e="object"==typeof window&&!!window.document,n=e?window:Object,i=n.Recorder,r=i.i18n;t(i,r,r.$T,e)}((function(t,e,n,i){"use strict";var r=function(t){return new a(t)},s="WaveSurferView",a=function(t){var e=this,r={scale:2,fps:50,duration:2500,direction:1,position:0,centerHeight:1,linear:[0,"rgba(0,187,17,1)",.7,"rgba(255,215,0,1)",1,"rgba(255,102,0,1)"],centerColor:""};for(var a in t)r[a]=t[a];e.set=t=r;var o="compatibleCanvas";if(t[o])var l=e.canvas=t[o],h=e.canvas2=t[o+"_2x"];else{if(!i)throw new Error(n.G("NonBrowser-1",[s]));var c=t.elem;c&&("string"==typeof c?c=document.querySelector(c):c.length&&(c=c[0])),c&&(t.width=c.offsetWidth,t.height=c.offsetHeight);var u=e.elem=document.createElement("div");u.style.fontSize=0,u.innerHTML='<canvas style="width:100%;height:100%;"/>';l=e.canvas=u.querySelector("canvas"),h=e.canvas2=document.createElement("canvas");c&&(c.innerHTML="",c.appendChild(u))}var d=t.scale,f=t.width*d,p=t.height*d;if(!f||!p)throw new Error(n.G("IllegalArgs-1",[s+" width=0 height=0"]));l.width=f,l.height=p;e.ctx=l.getContext("2d");h.width=2*f,h.height=p;e.ctx2=h.getContext("2d");e.x=0};a.prototype=r.prototype={genLinear:function(t,e,n,i){for(var r=t.createLinearGradient(0,n,0,i),s=0;s<e.length;)r.addColorStop(e[s++],e[s++]);return r},input:function(t,e,n){var i=this;i.sampleRate=n,i.pcmData=t,i.pcmPos=0,i.inputTime=Date.now(),i.schedule()},schedule:function(){var t=this,e=t.set,n=Math.floor(1e3/e.fps);t.timer||(t.timer=setInterval((function(){t.schedule()}),n));var i=Date.now(),r=t.drawTime||0;if(!(i-r<n)){t.drawTime=i;for(var s=t.sampleRate/e.fps,a=t.pcmData,o=t.pcmPos,l=new Int16Array(Math.min(s,a.length-o)),h=0;h<l.length;h++,o++)l[h]=a[o];t.pcmPos=o,l.length?t.draw(l,t.sampleRate):i-t.inputTime>1300&&(clearInterval(t.timer),t.timer=0)}},draw:function(t,e){var n=this,i=n.set,r=n.ctx2,s=i.scale,a=i.width*s,o=2*a,l=i.height*s,h=1*s,c=i.position,u=Math.abs(i.position),d=1==c?0:l,f=l;u<1&&(f/=2,d=f,f=Math.floor(f*(1+u)),d=Math.floor(c>0?d*(1-u):d*(1+u)));var p=1e3*t.length/e,g=p*a/i.duration;g+=n.drawLoss||0;var m=0;g<h?n.drawLoss=g:(n.drawLoss=0,m=Math.floor(g/h));for(var _=n.genLinear(r,i.linear,d,d-f),v=n.genLinear(r,i.linear,d,d+f),y=n.x,b=t.length/m,x=0,w=0;x<m;x++){var S=Math.floor(w),T=Math.floor(w+b);w+=b;for(var M=0;S<T;S++)M=Math.max(M,Math.abs(t[S]));var E=f*Math.min(1,M/32767);0!=d&&(r.fillStyle=_,r.fillRect(y,d-E,h,E)),d!=l&&(r.fillStyle=v,r.fillRect(y,d,h,E)),y+=h,y>=o&&(r.clearRect(0,0,a,l),r.drawImage(n.canvas2,a,0,a,l,0,0,a,l),r.clearRect(a,0,a,l),y=a)}n.x=y,r=n.ctx,r.clearRect(0,0,a,l);var A=i.centerHeight*s;if(A){var R=d-Math.floor(A/2);R=Math.max(R,0),R=Math.min(R,l-A),r.fillStyle=i.centerColor||i.linear[1],r.fillRect(0,R,a,A)}var z=0,C=y,P=0;C>a?(z=C-a,C=a):P=a-C;var k=i.direction;-1==k?r.drawImage(n.canvas2,z,0,C,l,P,0,C,l):(r.save(),r.scale(-1,1),r.drawImage(n.canvas2,z,0,C,l,-a+P,0,C,l),r.restore())}},t[s]=r}))},6310:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(2482))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.Hasher,r=e.x64,s=r.Word,a=r.WordArray,o=e.algo;function l(){return s.create.apply(s,arguments)}var h=[l(1116352408,3609767458),l(1899447441,602891725),l(3049323471,3964484399),l(3921009573,2173295548),l(961987163,4081628472),l(1508970993,3053834265),l(2453635748,2937671579),l(2870763221,3664609560),l(3624381080,2734883394),l(310598401,1164996542),l(607225278,1323610764),l(1426881987,3590304994),l(1925078388,4068182383),l(2162078206,991336113),l(2614888103,633803317),l(3248222580,3479774868),l(3835390401,2666613458),l(4022224774,944711139),l(264347078,2341262773),l(604807628,2007800933),l(770255983,1495990901),l(1249150122,1856431235),l(1555081692,3175218132),l(1996064986,2198950837),l(2554220882,3999719339),l(2821834349,766784016),l(2952996808,2566594879),l(3210313671,3203337956),l(3336571891,1034457026),l(3584528711,2466948901),l(113926993,3758326383),l(338241895,168717936),l(666307205,1188179964),l(773529912,1546045734),l(1294757372,1522805485),l(1396182291,2643833823),l(1695183700,2343527390),l(1986661051,1014477480),l(2177026350,1206759142),l(2456956037,344077627),l(2730485921,1290863460),l(2820302411,3158454273),l(3259730800,3505952657),l(3345764771,106217008),l(3516065817,3606008344),l(3600352804,1432725776),l(4094571909,1467031594),l(275423344,851169720),l(430227734,3100823752),l(506948616,1363258195),l(659060556,3750685593),l(883997877,3785050280),l(958139571,3318307427),l(1322822218,3812723403),l(1537002063,2003034995),l(1747873779,3602036899),l(1955562222,1575990012),l(2024104815,1125592928),l(2227730452,2716904306),l(2361852424,442776044),l(2428436474,593698344),l(2756734187,3733110249),l(3204031479,2999351573),l(3329325298,3815920427),l(3391569614,3928383900),l(3515267271,566280711),l(3940187606,3454069534),l(4118630271,4000239992),l(116418474,1914138554),l(174292421,2731055270),l(289380356,3203993006),l(460393269,320620315),l(685471733,587496836),l(852142971,1086792851),l(1017036298,365543100),l(1126000580,2618297676),l(1288033470,3409855158),l(1501505948,4234509866),l(1607167915,987167468),l(1816402316,1246189591)],c=[];(function(){for(var t=0;t<80;t++)c[t]=l()})();var u=o.SHA512=i.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var n=this._hash.words,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],u=n[6],d=n[7],f=i.high,p=i.low,g=r.high,m=r.low,_=s.high,v=s.low,y=a.high,b=a.low,x=o.high,w=o.low,S=l.high,T=l.low,M=u.high,E=u.low,A=d.high,R=d.low,z=f,C=p,P=g,k=m,D=_,I=v,L=y,j=b,N=x,O=w,U=S,B=T,F=M,H=E,q=A,V=R,G=0;G<80;G++){var W,X,J=c[G];if(G<16)X=J.high=0|t[e+2*G],W=J.low=0|t[e+2*G+1];else{var Y=c[G-15],K=Y.high,$=Y.low,Z=(K>>>1|$<<31)^(K>>>8|$<<24)^K>>>7,Q=($>>>1|K<<31)^($>>>8|K<<24)^($>>>7|K<<25),tt=c[G-2],et=tt.high,nt=tt.low,it=(et>>>19|nt<<13)^(et<<3|nt>>>29)^et>>>6,rt=(nt>>>19|et<<13)^(nt<<3|et>>>29)^(nt>>>6|et<<26),st=c[G-7],at=st.high,ot=st.low,lt=c[G-16],ht=lt.high,ct=lt.low;W=Q+ot,X=Z+at+(W>>>0<Q>>>0?1:0),W+=rt,X=X+it+(W>>>0<rt>>>0?1:0),W+=ct,X=X+ht+(W>>>0<ct>>>0?1:0),J.high=X,J.low=W}var ut=N&U^~N&F,dt=O&B^~O&H,ft=z&P^z&D^P&D,pt=C&k^C&I^k&I,gt=(z>>>28|C<<4)^(z<<30|C>>>2)^(z<<25|C>>>7),mt=(C>>>28|z<<4)^(C<<30|z>>>2)^(C<<25|z>>>7),_t=(N>>>14|O<<18)^(N>>>18|O<<14)^(N<<23|O>>>9),vt=(O>>>14|N<<18)^(O>>>18|N<<14)^(O<<23|N>>>9),yt=h[G],bt=yt.high,xt=yt.low,wt=V+vt,St=q+_t+(wt>>>0<V>>>0?1:0),Tt=(wt=wt+dt,St=St+ut+(wt>>>0<dt>>>0?1:0),wt=wt+xt,St=St+bt+(wt>>>0<xt>>>0?1:0),wt=wt+W,St=St+X+(wt>>>0<W>>>0?1:0),mt+pt),Mt=gt+ft+(Tt>>>0<mt>>>0?1:0);q=F,V=H,F=U,H=B,U=N,B=O,O=j+wt|0,N=L+St+(O>>>0<j>>>0?1:0)|0,L=D,j=I,D=P,I=k,P=z,k=C,C=wt+Tt|0,z=St+Mt+(C>>>0<wt>>>0?1:0)|0}p=i.low=p+C,i.high=f+z+(p>>>0<C>>>0?1:0),m=r.low=m+k,r.high=g+P+(m>>>0<k>>>0?1:0),v=s.low=v+I,s.high=_+D+(v>>>0<I>>>0?1:0),b=a.low=b+j,a.high=y+L+(b>>>0<j>>>0?1:0),w=o.low=w+O,o.high=x+N+(w>>>0<O>>>0?1:0),T=l.low=T+B,l.high=S+U+(T>>>0<B>>>0?1:0),E=u.low=E+H,u.high=M+F+(E>>>0<H>>>0?1:0),R=d.low=R+V,d.high=A+q+(R>>>0<V>>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),e[31+(i+128>>>10<<5)]=n,t.sigBytes=4*e.length,this._process();var r=this._hash.toX32();return r},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=i._createHelper(u),e.HmacSHA512=i._createHmacHelper(u)}(),t.SHA512}))},6319:function(t,e,n){"use strict";var i=n(8551),r=n(9539);t.exports=function(t,e,n,s){try{return s?e(i(n)[0],n[1]):e(n)}catch(a){r(t,"throw",a)}}},6368:function(t,e,n){"use strict";var i=n(6518),r=n(4576),s=n(9225).clear;i({global:!0,bind:!0,enumerable:!0,forced:r.clearImmediate!==s},{clearImmediate:s})},6395:function(t){"use strict";t.exports=!1},6518:function(t,e,n){"use strict";var i=n(4576),r=n(7347).f,s=n(6699),a=n(6840),o=n(9433),l=n(7740),h=n(2796);t.exports=function(t,e){var n,c,u,d,f,p,g=t.target,m=t.global,_=t.stat;if(c=m?i:_?i[g]||o(g,{}):i[g]&&i[g].prototype,c)for(u in e){if(f=e[u],t.dontCallGetSet?(p=r(c,u),d=p&&p.value):d=c[u],n=h(m?u:g+(_?".":"#")+u,t.forced),!n&&void 0!==d){if(typeof f==typeof d)continue;l(f,d)}(t.sham||d&&d.sham)&&s(f,"sham",!0),a(c,u,f,t)}}},6573:function(t,e,n){"use strict";var i=n(3724),r=n(2106),s=n(3238),a=ArrayBuffer.prototype;i&&!("detached"in a)&&r(a,"detached",{configurable:!0,get:function(){return s(this)}})},6604:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.mode.ECB=function(){var e=t.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),e.Decryptor=e.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),e}(),t.mode.ECB}))},6699:function(t,e,n){"use strict";var i=n(3724),r=n(4913),s=n(6980);t.exports=i?function(t,e,n){return r.f(t,e,s(1,n))}:function(t,e,n){return t[e]=n,t}},6706:function(t,e,n){"use strict";var i=n(9504),r=n(9306);t.exports=function(t,e,n){try{return i(r(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(s){}}},6763:function(t,e,n){n(4114),n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),function(e,n){t.exports=n()}(0,(function(){var t=t||function(t,e){var i;if("undefined"!==typeof window&&window.crypto&&(i=window.crypto),"undefined"!==typeof self&&self.crypto&&(i=self.crypto),"undefined"!==typeof globalThis&&globalThis.crypto&&(i=globalThis.crypto),!i&&"undefined"!==typeof window&&window.msCrypto&&(i=window.msCrypto),!i&&"undefined"!==typeof n.g&&n.g.crypto&&(i=n.g.crypto),!i)try{i=n(477)}catch(m){}var r=function(){if(i){if("function"===typeof i.getRandomValues)try{return i.getRandomValues(new Uint32Array(1))[0]}catch(m){}if("function"===typeof i.randomBytes)try{return i.randomBytes(4).readInt32LE()}catch(m){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function t(){}return function(e){var n;return t.prototype=e,n=new t,t.prototype=null,n}}(),a={},o=a.lib={},l=o.Base=function(){return{extend:function(t){var e=s(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),h=o.WordArray=l.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:4*t.length},toString:function(t){return(t||u).stringify(this)},concat:function(t){var e=this.words,n=t.words,i=this.sigBytes,r=t.sigBytes;if(this.clamp(),i%4)for(var s=0;s<r;s++){var a=n[s>>>2]>>>24-s%4*8&255;e[i+s>>>2]|=a<<24-(i+s)%4*8}else for(var o=0;o<r;o+=4)e[i+o>>>2]=n[o>>>2];return this.sigBytes+=r,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=t.ceil(n/4)},clone:function(){var t=l.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],n=0;n<t;n+=4)e.push(r());return new h.init(e,t)}}),c=a.enc={},u=c.Hex={stringify:function(t){for(var e=t.words,n=t.sigBytes,i=[],r=0;r<n;r++){var s=e[r>>>2]>>>24-r%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,n=[],i=0;i<e;i+=2)n[i>>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new h.init(n,e/2)}},d=c.Latin1={stringify:function(t){for(var e=t.words,n=t.sigBytes,i=[],r=0;r<n;r++){var s=e[r>>>2]>>>24-r%4*8&255;i.push(String.fromCharCode(s))}return i.join("")},parse:function(t){for(var e=t.length,n=[],i=0;i<e;i++)n[i>>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new h.init(n,e)}},f=c.Utf8={stringify:function(t){try{return decodeURIComponent(escape(d.stringify(t)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(t){return d.parse(unescape(encodeURIComponent(t)))}},p=o.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new h.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var n,i=this._data,r=i.words,s=i.sigBytes,a=this.blockSize,o=4*a,l=s/o;l=e?t.ceil(l):t.max((0|l)-this._minBufferSize,0);var c=l*a,u=t.min(4*c,s);if(c){for(var d=0;d<c;d+=a)this._doProcessBlock(r,d);n=r.splice(0,c),i.sigBytes-=u}return new h.init(n,u)},clone:function(){var t=l.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0}),g=(o.Hasher=p.extend({cfg:l.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var e=this._doFinalize();return e},blockSize:16,_createHelper:function(t){return function(e,n){return new t.init(n).finalize(e)}},_createHmacHelper:function(t){return function(e,n){return new g.HMAC.init(t,n).finalize(e)}}}),a.algo={});return a}(Math);return t}))},6801:function(t,e,n){"use strict";var i=n(3724),r=n(8686),s=n(4913),a=n(8551),o=n(5397),l=n(1072);e.f=i&&!r?Object.defineProperties:function(t,e){a(t);var n,i=o(e),r=l(e),h=r.length,c=0;while(h>c)s.f(t,n=r[c++],i[n]);return t}},6823:function(t){"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(n){return"Object"}}},6837:function(t){"use strict";var e=TypeError,n=9007199254740991;t.exports=function(t){if(t>n)throw e("Maximum allowed index exceeded");return t}},6840:function(t,e,n){"use strict";var i=n(4901),r=n(4913),s=n(283),a=n(9433);t.exports=function(t,e,n,o){o||(o={});var l=o.enumerable,h=void 0!==o.name?o.name:e;if(i(n)&&s(n,h,o),o.global)l?t[e]=n:a(e,n);else{try{o.unsafe?t[e]&&(l=!0):delete t[e]}catch(c){}l?t[e]=n:r.f(t,e,{value:n,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return t}},6903:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.mode.OFB=function(){var e=t.lib.BlockCipherMode.extend(),n=e.Encryptor=e.extend({processBlock:function(t,e){var n=this._cipher,i=n.blockSize,r=this._iv,s=this._keystream;r&&(s=this._keystream=r.slice(0),this._iv=void 0),n.encryptBlock(s,0);for(var a=0;a<i;a++)t[e+a]^=s[a]}});return e.Decryptor=n,e}(),t.mode.OFB}))},6933:function(t,e,n){"use strict";var i=n(6518),r=n(9565),s=n(8551),a=n(1767),o=n(4149),l=n(9590),h=n(9462),c=n(6395),u=h((function(){var t,e,n=this.iterator,i=this.next;while(this.remaining)if(this.remaining--,t=s(r(i,n)),e=this.done=!!t.done,e)return;if(t=s(r(i,n)),e=this.done=!!t.done,!e)return t.value}));i({target:"Iterator",proto:!0,real:!0,forced:c},{drop:function(t){s(this);var e=l(o(+t));return new u(a(this),{remaining:e})}})},6955:function(t,e,n){"use strict";var i=n(2140),r=n(4901),s=n(2195),a=n(8227),o=a("toStringTag"),l=Object,h="Arguments"===s(function(){return arguments}()),c=function(t,e){try{return t[e]}catch(n){}};t.exports=i?s:function(t){var e,n,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=c(e=l(t),o))?n:h?s(e):"Object"===(i=s(e))&&r(e.callee)?"Arguments":i}},6969:function(t,e,n){"use strict";var i=n(2777),r=n(757);t.exports=function(t){var e=i(t,"string");return r(e)?e:e+""}},6980:function(t){"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},7040:function(t,e,n){"use strict";var i=n(4495);t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},7055:function(t,e,n){"use strict";var i=n(9504),r=n(9039),s=n(2195),a=Object,o=i("".split);t.exports=r((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"===s(t)?o(t,""):a(t)}:a},7080:function(t,e,n){"use strict";var i=n(4402).has;t.exports=function(t){return i(t),t}},7347:function(t,e,n){"use strict";var i=n(3724),r=n(9565),s=n(8773),a=n(6980),o=n(5397),l=n(6969),h=n(9297),c=n(5917),u=Object.getOwnPropertyDescriptor;e.f=i?u:function(t,e){if(t=o(t),e=l(e),c)try{return u(t,e)}catch(n){}if(h(t,e))return a(!r(s.f,t,e),t[e])}},7394:function(t,e,n){"use strict";var i=n(4576),r=n(6706),s=n(2195),a=i.ArrayBuffer,o=i.TypeError;t.exports=a&&r(a.prototype,"byteLength","get")||function(t){if("ArrayBuffer"!==s(t))throw new o("ArrayBuffer expected");return t.byteLength}},7467:function(t,e,n){"use strict";var i=n(7628),r=n(4644),s=r.aTypedArray,a=r.exportTypedArrayMethod,o=r.getTypedArrayConstructor;a("toReversed",(function(){return i(s(this),o(this))}))},7476:function(t,e,n){"use strict";var i=n(2195),r=n(9504);t.exports=function(t){if("Function"===i(t))return r(t)}},7535:function(t,e,n){(function(e,i){t.exports=i(n(6763))})(0,(function(t){return function(e){var n=t,i=n.lib,r=i.WordArray,s=i.Hasher,a=n.algo,o=[],l=[];(function(){function t(t){for(var n=e.sqrt(t),i=2;i<=n;i++)if(!(t%i))return!1;return!0}function n(t){return 4294967296*(t-(0|t))|0}var i=2,r=0;while(r<64)t(i)&&(r<8&&(o[r]=n(e.pow(i,.5))),l[r]=n(e.pow(i,1/3)),r++),i++})();var h=[],c=a.SHA256=s.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var n=this._hash.words,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],c=n[5],u=n[6],d=n[7],f=0;f<64;f++){if(f<16)h[f]=0|t[e+f];else{var p=h[f-15],g=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,m=h[f-2],_=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;h[f]=g+h[f-7]+_+h[f-16]}var v=o&c^~o&u,y=i&r^i&s^r&s,b=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),x=(o<<26|o>>>6)^(o<<21|o>>>11)^(o<<7|o>>>25),w=d+x+v+l[f]+h[f],S=b+y;d=u,u=c,c=o,o=a+w|0,a=s,s=r,r=i,i=w+S|0}n[0]=n[0]+i|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+o|0,n[5]=n[5]+c|0,n[6]=n[6]+u|0,n[7]=n[7]+d|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,r=8*t.sigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=e.floor(i/4294967296),n[15+(r+64>>>9<<4)]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var t=s.clone.call(this);return t._hash=this._hash.clone(),t}});n.SHA256=s._createHelper(c),n.HmacSHA256=s._createHmacHelper(c)}(Math),t.SHA256}))},7566:function(t,e,n){"use strict";var i=n(6840),r=n(9504),s=n(655),a=n(2812),o=URLSearchParams,l=o.prototype,h=r(l.getAll),c=r(l.has),u=new o("a=1");!u.has("a",2)&&u.has("a",void 0)||i(l,"has",(function(t){var e=arguments.length,n=e<2?void 0:arguments[1];if(e&&void 0===n)return c(this,t);var i=h(this,t);a(e,1);var r=s(n),o=0;while(o<i.length)if(i[o++]===r)return!0;return!1}),{enumerable:!0,unsafe:!0})},7573:function(t,e,n){n(4114),function(e,i){t.exports=i(n(6763))}(0,(function(t){return function(){var e=t,n=e.lib,i=n.WordArray,r=e.enc;r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,n=t.sigBytes,i=[],r=0;r<n;r+=2){var s=e[r>>>2]>>>16-r%4*8&65535;i.push(String.fromCharCode(s))}return i.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r<e;r++)n[r>>>1]|=t.charCodeAt(r)<<16-r%2*16;return i.create(n,2*e)}};function s(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16LE={stringify:function(t){for(var e=t.words,n=t.sigBytes,i=[],r=0;r<n;r+=2){var a=s(e[r>>>2]>>>16-r%4*8&65535);i.push(String.fromCharCode(a))}return i.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r<e;r++)n[r>>>1]|=s(t.charCodeAt(r)<<16-r%2*16);return i.create(n,2*e)}}}(),t.enc.Utf16}))},7588:function(t,e,n){"use strict";var i=n(6518),r=n(2652),s=n(9306),a=n(8551),o=n(1767);i({target:"Iterator",proto:!0,real:!0},{forEach:function(t){a(this),s(t);var e=o(this),n=0;r(e,(function(e){t(e,n++)}),{IS_RECORD:!0})}})},7628:function(t,e,n){"use strict";var i=n(6198);t.exports=function(t,e){for(var n=i(t),r=new e(n),s=0;s<n;s++)r[s]=t[n-s-1];return r}},7629:function(t,e,n){"use strict";var i=n(6395),r=n(4576),s=n(9433),a="__core-js_shared__",o=t.exports=r[a]||s(a,{});(o.versions||(o.versions=[])).push({version:"3.41.0",mode:i?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE",source:"https://github.com/zloirock/core-js"})},7642:function(t,e,n){"use strict";var i=n(6518),r=n(3440),s=n(4916),a=!s("difference",(function(t){return 0===t.size}));i({target:"Set",proto:!0,real:!0,forced:a},{difference:r})},7657:function(t,e,n){"use strict";var i,r,s,a=n(9039),o=n(4901),l=n(34),h=n(2360),c=n(2787),u=n(6840),d=n(8227),f=n(6395),p=d("iterator"),g=!1;[].keys&&(s=[].keys(),"next"in s?(r=c(c(s)),r!==Object.prototype&&(i=r)):g=!0);var m=!l(i)||a((function(){var t={};return i[p].call(t)!==t}));m?i={}:f&&(i=h(i)),o(i[p])||u(i,p,(function(){return this})),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:g}},7680:function(t,e,n){"use strict";var i=n(9504);t.exports=i([].slice)},7696:function(t,e,n){"use strict";var i=n(1291),r=n(8014),s=RangeError;t.exports=function(t){if(void 0===t)return 0;var e=i(t),n=r(e);if(e!==n)throw new s("Wrong length or index");return n}},7740:function(t,e,n){"use strict";var i=n(9297),r=n(5031),s=n(7347),a=n(4913);t.exports=function(t,e,n){for(var o=r(e),l=a.f,h=s.f,c=0;c<o.length;c++){var u=o[c];i(t,u)||n&&i(n,u)||l(t,u,h(e,u))}}},7750:function(t,e,n){"use strict";var i=n(4117),r=TypeError;t.exports=function(t){if(i(t))throw new r("Can't call method on "+t);return t}},7751:function(t,e,n){"use strict";var i=n(4576),r=n(4901),s=function(t){return r(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?s(i[t]):i[t]&&i[t][e]}},7784:function(t,e,n){n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),function(t){var e="object"==typeof window&&!!window.document,n=e?window:Object,i=n.Recorder,r=i.i18n;t(i,r,r.$T,e)}((function(t,e,n,i){"use strict";var r=function(t){return new a(t)},s="FrequencyHistogramView",a=function(e){var r=this,a={scale:2,fps:20,lineCount:30,widthRatio:.6,spaceWidth:0,minHeight:0,position:-1,mirrorEnable:!1,stripeEnable:!0,stripeHeight:3,stripeMargin:6,fallDuration:1e3,stripeFallDuration:3500,linear:[0,"rgba(0,187,17,1)",.5,"rgba(255,215,0,1)",1,"rgba(255,102,0,1)"],stripeLinear:null,shadowBlur:0,shadowColor:"#bbb",stripeShadowBlur:-1,stripeShadowColor:"",fullFreq:!1,onDraw:function(t,e){}};for(var o in e)a[o]=e[o];r.set=e=a;var l="compatibleCanvas";if(e[l])var h=r.canvas=e[l];else{if(!i)throw new Error(n.G("NonBrowser-1",[s]));var c=e.elem;c&&("string"==typeof c?c=document.querySelector(c):c.length&&(c=c[0])),c&&(e.width=c.offsetWidth,e.height=c.offsetHeight);var u=r.elem=document.createElement("div");u.style.fontSize=0,u.innerHTML='<canvas style="width:100%;height:100%;"/>';h=r.canvas=u.querySelector("canvas");c&&(c.innerHTML="",c.appendChild(u))}var d=e.scale,f=e.width*d,p=e.height*d;if(!f||!p)throw new Error(n.G("IllegalArgs-1",[s+" width=0 height=0"]));h.width=f,h.height=p;r.ctx=h.getContext("2d");if(!t.LibFFT)throw new Error(n.G("NeedImport-2",[s,"src/extensions/lib.fft.js"]));r.fft=t.LibFFT(1024),r.lastH=[],r.stripesH=[]};a.prototype=r.prototype={genLinear:function(t,e,n,i){for(var r=t.createLinearGradient(0,n,0,i),s=0;s<e.length;)r.addColorStop(e[s++],e[s++]);return r},input:function(t,e,n){var i=this;i.sampleRate=n,i.pcmData=t,i.pcmPos=0,i.inputTime=Date.now(),i.schedule()},schedule:function(){var t=this,e=t.set,n=Math.floor(1e3/e.fps);t.timer||(t.timer=setInterval((function(){t.schedule()}),n));var i=Date.now(),r=t.drawTime||0;if(i-t.inputTime>1.3*e.stripeFallDuration)return clearInterval(t.timer),t.timer=0,t.lastH=[],t.stripesH=[],void t.draw(null,t.sampleRate);if(!(i-r<n)){t.drawTime=i;for(var s=t.fft.bufferSize,a=t.pcmData,o=t.pcmPos,l=new Int16Array(s),h=0;h<s&&o<a.length;h++,o++)l[h]=a[o];t.pcmPos=o;var c=t.fft.transform(l);t.draw(c,t.sampleRate)}},draw:function(t,e){var n=this,i=n.set,r=n.ctx,s=i.scale,a=i.width*s,o=i.height*s,l=i.lineCount,h=n.fft.bufferSize,c=i.position,u=Math.abs(i.position),d=1==c?0:o,f=o;u<1&&(f/=2,d=f,f=Math.floor(f*(1+u)),d=Math.floor(c>0?d*(1-u):d*(1+u)));var p=n.lastH,g=n.stripesH,m=Math.ceil(f/(i.fallDuration/(1e3/i.fps))),_=Math.ceil(f/(i.stripeFallDuration/(1e3/i.fps))),v=i.stripeMargin*s,y=1<<(Math.round(Math.log(h)/Math.log(2)+3)<<1),b=Math.log(y)/Math.log(10),x=20*Math.log(32767)/Math.log(10),w=h/2,S=w;i.fullFreq||(S=Math.min(w,Math.floor(5e3*w/(e/2))));for(var T=S==w,M=T?l:Math.round(.8*l),E=S/M,A=T?0:(w-S)/(l-M),R=0,z=0;z<l;z++){var C=Math.ceil(R);R+=z<M?E:A;var P=Math.ceil(R);P==C&&P++,P=Math.min(P,w);var k=0;if(t)for(var D=C;D<P;D++)k=Math.max(k,Math.abs(t[D]));var I=k>y?Math.floor(17*(Math.log(k)/Math.log(10)-b)):0,L=f*Math.min(I/x,1);p[z]=(p[z]||0)-m,L<p[z]&&(L=p[z]),L<0&&(L=0),p[z]=L;var j=g[z]||0;if(L&&L+v>j)g[z]=L+v;else{var N=j-_;N<0&&(N=0),g[z]=N}}r.clearRect(0,0,a,o);var O=n.genLinear(r,i.linear,d,d-f),U=i.stripeLinear&&n.genLinear(r,i.stripeLinear,d,d-f)||O,B=n.genLinear(r,i.linear,d,d+f),F=i.stripeLinear&&n.genLinear(r,i.stripeLinear,d,d+f)||B,H=i.mirrorEnable,q=H?2*l-1:l,V=i.widthRatio,G=i.spaceWidth*s;0!=G&&(V=(a-G*(q+1))/a);for(z=0;z<2;z++){var W=Math.max(1*s,a*V/q),X=Math.floor(W),J=W-X,Y=(a-q*W)/(q+1);if(!(Y>0&&Y<1))break;V=1,Y=0}for(var K=i.minHeight*s,$=H?(a-X)/2-Y:0,Z=0;Z<2;Z++){Z&&(r.save(),r.scale(-1,1));var Q=Z?a:0;r.shadowBlur=i.shadowBlur*s,r.shadowColor=i.shadowColor;z=0;for(var tt=$,et=0;z<l;z++)tt+=Y,it=Math.floor(tt)-Q,st=X,et+=J,et>=1&&(st++,et--),L=Math.max(p[z],K),0!=d&&(rt=d-L,r.fillStyle=O,r.fillRect(it,rt,st,L)),d!=o&&(r.fillStyle=B,r.fillRect(it,d,st,L)),tt+=st;if(i.stripeEnable){var nt=i.stripeShadowBlur;r.shadowBlur=(-1==nt?i.shadowBlur:nt)*s,r.shadowColor=i.stripeShadowColor||i.shadowColor;var it,rt,st,at=i.stripeHeight*s;for(z=0,tt=$,et=0;z<l;z++)tt+=Y,it=Math.floor(tt)-Q,st=X,et+=J,et>=1&&(st++,et--),L=g[z],0!=d&&(rt=d-L-at,rt<0&&(rt=0),r.fillStyle=U,r.fillRect(it,rt,st,at)),d!=o&&(rt=d+L,rt+at>o&&(rt=o-at),r.fillStyle=F,r.fillRect(it,rt,st,at)),tt+=st}if(Z&&r.restore(),!H)break}t&&i.onDraw(t,e)}},t[s]=r}))},7811:function(t){"use strict";t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},7936:function(t,e,n){"use strict";var i=n(6518),r=n(5636);r&&i({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return r(this,arguments.length?arguments[0]:void 0,!1)}})},8004:function(t,e,n){"use strict";var i=n(6518),r=n(9039),s=n(8750),a=n(4916),o=!a("intersection",(function(t){return 2===t.size&&t.has(1)&&t.has(2)}))||r((function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))}));i({target:"Set",proto:!0,real:!0,forced:o},{intersection:s})},8014:function(t,e,n){"use strict";var i=n(1291),r=Math.min;t.exports=function(t){var e=i(t);return e>0?r(e,9007199254740991):0}},8100:function(t,e,n){"use strict";var i=n(6518),r=n(5636);r&&i({target:"ArrayBuffer",proto:!0},{transfer:function(){return r(this,arguments.length?arguments[0]:void 0,!0)}})},8111:function(t,e,n){"use strict";var i=n(6518),r=n(4576),s=n(679),a=n(8551),o=n(4901),l=n(2787),h=n(2106),c=n(4659),u=n(9039),d=n(9297),f=n(8227),p=n(7657).IteratorPrototype,g=n(3724),m=n(6395),_="constructor",v="Iterator",y=f("toStringTag"),b=TypeError,x=r[v],w=m||!o(x)||x.prototype!==p||!u((function(){x({})})),S=function(){if(s(this,p),l(this)===p)throw new b("Abstract class Iterator not directly constructable")},T=function(t,e){g?h(p,t,{configurable:!0,get:function(){return e},set:function(e){if(a(this),this===p)throw new b("You can't redefine this property");d(this,t)?this[t]=e:c(this,t,e)}}):p[t]=e};d(p,y)||T(y,v),!w&&d(p,_)&&p[_]!==Object||T(_,S),S.prototype=p,i({global:!0,constructor:!0,forced:w},{Iterator:S})},8140:function(t,e,n){n(6573),n(8100),n(7936),n(7467),n(4732),n(9577),function(t){var e="object"==typeof window&&!!window.document,n=e?window:Object,i=n.Recorder,r=i.i18n;t(i,r,r.$T,e)}((function(t,e,n,i){"use strict";t.LibFFT=function(t){var e,n,i,r,s,a,o,l,h=function(t){var h,c,u,d;for(e=Math.round(Math.log(t)/Math.log(2)),n=1<<e,i=(n<<2)*Math.sqrt(2),r=[],s=[],a=[0],o=[0],l=[],h=0;h<n;h++){for(u=h,c=0,d=0;c!=e;c++)d<<=1,d|=1&u,u>>>=1;l[h]=d}var f,p=2*Math.PI/n;for(h=(n>>1)-1;h>0;h--)f=h*p,o[h]=Math.cos(f),a[h]=Math.sin(f)},c=function(t){var h,c,u,d,f,p,g,m,_=1,v=e-1;for(h=0;h!=n;h++)r[h]=t[l[h]],s[h]=0;for(h=e;0!=h;h--){for(c=0;c!=_;c++)for(f=o[c<<v],p=a[c<<v],u=c;u<n;u+=_<<1)d=u+_,g=f*r[d]-p*s[d],m=f*s[d]+p*r[d],r[d]=r[u]-g,s[d]=s[u]-m,r[u]+=g,s[u]+=m;_<<=1,v--}c=n>>1;var y=new Float64Array(c);for(p=i,f=-i,h=c;0!=h;h--)g=r[h],m=s[h],y[h-1]=g>f&&g<p&&m>f&&m<p?0:Math.round(g*g+m*m);return y};return h(t),{transform:c,bufferSize:n}}}))},8227:function(t,e,n){"use strict";var i=n(4576),r=n(5745),s=n(9297),a=n(3392),o=n(4495),l=n(7040),h=i.Symbol,c=r("wks"),u=l?h["for"]||h:h&&h.withoutSetter||a;t.exports=function(t){return s(c,t)||(c[t]=o&&s(h,t)?h[t]:u("Symbol."+t)),c[t]}},8237:function(t,e,n){"use strict";var i=n(6518),r=n(2652),s=n(9306),a=n(8551),o=n(1767),l=TypeError;i({target:"Iterator",proto:!0,real:!0},{reduce:function(t){a(this),s(t);var e=o(this),n=arguments.length<2,i=n?void 0:arguments[1],h=0;if(r(e,(function(e){n?(n=!1,i=e):i=t(i,e,h),h++}),{IS_RECORD:!0}),n)throw new l("Reduce of empty iterator with no initial value");return i}})},8469:function(t,e,n){"use strict";var i=n(9504),r=n(507),s=n(4402),a=s.Set,o=s.proto,l=i(o.forEach),h=i(o.keys),c=h(new a).next;t.exports=function(t,e,n){return n?r({iterator:h(t),next:c},e):l(t,e)}},8480:function(t,e,n){"use strict";var i=n(1828),r=n(8727),s=r.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,s)}},8527:function(t,e,n){"use strict";var i=n(7080),r=n(4402).has,s=n(5170),a=n(3789),o=n(507),l=n(9539);t.exports=function(t){var e=i(this),n=a(t);if(s(e)<n.size)return!1;var h=n.getIterator();return!1!==o(h,(function(t){if(!r(e,t))return l(h,"normal",!1)}))}},8551:function(t,e,n){"use strict";var i=n(34),r=String,s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(r(t)+" is not an object")}},8574:function(t,e,n){"use strict";var i=n(4215);t.exports="NODE"===i},8622:function(t,e,n){"use strict";var i=n(4576),r=n(4901),s=i.WeakMap;t.exports=r(s)&&/native code/.test(String(s))},8686:function(t,e,n){"use strict";var i=n(3724),r=n(9039);t.exports=i&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},8721:function(t,e,n){"use strict";var i=n(3724),r=n(9504),s=n(2106),a=URLSearchParams.prototype,o=r(a.forEach);i&&!("size"in a)&&s(a,"size",{get:function(){var t=0;return o(this,(function(){t++})),t},configurable:!0,enumerable:!0})},8727:function(t){"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},8745:function(t,e,n){"use strict";var i=n(616),r=Function.prototype,s=r.apply,a=r.call;t.exports="object"==typeof Reflect&&Reflect.apply||(i?a.bind(s):function(){return a.apply(s,arguments)})},8750:function(t,e,n){"use strict";var i=n(7080),r=n(4402),s=n(5170),a=n(3789),o=n(8469),l=n(507),h=r.Set,c=r.add,u=r.has;t.exports=function(t){var e=i(this),n=a(t),r=new h;return s(e)>n.size?l(n.getIterator(),(function(t){u(e,t)&&c(r,t)})):o(e,(function(t){n.includes(t)&&c(r,t)})),r}},8773:function(t,e){"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,r=i&&!n.call({1:2},1);e.f=r?function(t){var e=i(this,t);return!!e&&e.enumerable}:n},8789:function(t,e,n){n(4114),function(t){var e="object"==typeof window&&!!window.document,n=e?window:Object,i=n.Recorder,r=i.i18n;t(i,r,r.$T,e)}((function(t,e,n,i){"use strict";var r=function(t){return new a(t)},s="WaveView",a=function(t){var e=this,r={scale:2,speed:9,phase:21.8,fps:20,keep:!0,lineWidth:3,linear1:[0,"rgba(150,96,238,1)",.2,"rgba(170,79,249,1)",1,"rgba(53,199,253,1)"],linear2:[0,"rgba(209,130,255,0.6)",1,"rgba(53,199,255,0.6)"],linearBg:[0,"rgba(255,255,255,0.2)",1,"rgba(54,197,252,0.2)"]};for(var a in t)r[a]=t[a];e.set=t=r;var o="compatibleCanvas";if(t[o])var l=e.canvas=t[o];else{if(!i)throw new Error(n.G("NonBrowser-1",[s]));var h=t.elem;h&&("string"==typeof h?h=document.querySelector(h):h.length&&(h=h[0])),h&&(t.width=h.offsetWidth,t.height=h.offsetHeight);var c=e.elem=document.createElement("div");c.style.fontSize=0,c.innerHTML='<canvas style="width:100%;height:100%;"/>';l=e.canvas=c.querySelector("canvas");h&&(h.innerHTML="",h.appendChild(c))}var u=t.scale,d=t.width*u,f=t.height*u;if(!d||!f)throw new Error(n.G("IllegalArgs-1",[s+" width=0 height=0"]));l.width=d,l.height=f;var p=e.ctx=l.getContext("2d");e.linear1=e.genLinear(p,d,t.linear1),e.linear2=e.genLinear(p,d,t.linear2),e.linearBg=e.genLinear(p,f,t.linearBg,!0),e._phase=0};a.prototype=r.prototype={genLinear:function(t,e,n,i){for(var r=t.createLinearGradient(0,0,i?0:e,i?e:0),s=0;s<n.length;)r.addColorStop(n[s++],n[s++]);return r},genPath:function(t,e,n){for(var i=[],r=this,s=r.set,a=s.scale,o=s.width*a,l=s.height*a/2,h=0;h<=o;h+=a){var c=(1+Math.cos(Math.PI+h/o*2*Math.PI))/2,u=c*l*e*Math.sin(2*Math.PI*(h/o)*t+n)+l;i.push(u)}return i},input:function(t,e,n){var i=this;i.sampleRate=n,i.pcmData=t,i.pcmPos=0,i.inputTime=Date.now(),i.schedule()},schedule:function(){var e=this,n=e.set,i=Math.floor(1e3/n.fps);e.timer||(e.timer=setInterval((function(){e.schedule()}),i));var r=Date.now(),s=e.drawTime||0;if(!(r-s<i)){e.drawTime=r;for(var a=e.sampleRate/n.fps,o=e.pcmData,l=e.pcmPos,h=Math.max(0,Math.min(a,o.length-l)),c=0,u=0;u<h;u++,l++)c+=Math.abs(o[l]);e.pcmPos=l,!h&&n.keep||e.draw(t.PowerLevel(c,h)),!h&&r-e.inputTime>1300&&(clearInterval(e.timer),e.timer=0)}},draw:function(t){var e=this,n=e.set,i=e.ctx,r=n.scale,s=n.width*r,a=n.height*r,o=n.speed/n.fps,l=e._phase-=o,h=l+o*n.phase,c=t/100,u=e.genPath(2,c,l),d=e.genPath(1.8,c,h);i.clearRect(0,0,s,a),i.beginPath();for(var f=0,p=0;p<=s;f++,p+=r)0==p?i.moveTo(p,u[f]):i.lineTo(p,u[f]);f--;for(p=s-1;p>=0;f--,p-=r)i.lineTo(p,d[f]);i.closePath(),i.fillStyle=e.linearBg,i.fill(),e.drawPath(d,e.linear2),e.drawPath(u,e.linear1)},drawPath:function(t,e){var n=this,i=n.set,r=n.ctx,s=i.scale,a=i.width*s;r.beginPath();for(var o=0,l=0;l<=a;o++,l+=s)0==l?r.moveTo(l,t[o]):r.lineTo(l,t[o]);r.lineWidth=i.lineWidth*s,r.strokeStyle=e,r.stroke()}},t[s]=r}))},8811:function(t,e,n){n(4114),function(e,i){t.exports=i(n(6763))}(0,(function(t){return function(){var e=t,n=e.lib,i=n.WordArray,r=e.enc;r.Base64url={stringify:function(t,e){void 0===e&&(e=!0);var n=t.words,i=t.sigBytes,r=e?this._safe_map:this._map;t.clamp();for(var s=[],a=0;a<i;a+=3)for(var o=n[a>>>2]>>>24-a%4*8&255,l=n[a+1>>>2]>>>24-(a+1)%4*8&255,h=n[a+2>>>2]>>>24-(a+2)%4*8&255,c=o<<16|l<<8|h,u=0;u<4&&a+.75*u<i;u++)s.push(r.charAt(c>>>6*(3-u)&63));var d=r.charAt(64);if(d)while(s.length%4)s.push(d);return s.join("")},parse:function(t,e){void 0===e&&(e=!0);var n=t.length,i=e?this._safe_map:this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var a=0;a<i.length;a++)r[i.charCodeAt(a)]=a}var o=i.charAt(64);if(o){var l=t.indexOf(o);-1!==l&&(n=l)}return s(t,n,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"};function s(t,e,n){for(var r=[],s=0,a=0;a<e;a++)if(a%4){var o=n[t.charCodeAt(a-1)]<<a%4*2,l=n[t.charCodeAt(a)]>>>6-a%4*2,h=o|l;r[s>>>2]|=h<<24-s%4*8,s++}return i.create(r,s)}}(),t.enc.Base64url}))},8973:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(7535),n(4767))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.Base,r=n.WordArray,s=e.algo,a=s.SHA256,o=s.HMAC,l=s.PBKDF2=i.extend({cfg:i.extend({keySize:4,hasher:a,iterations:25e4}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){var n=this.cfg,i=o.create(n.hasher,t),s=r.create(),a=r.create([1]),l=s.words,h=a.words,c=n.keySize,u=n.iterations;while(l.length<c){var d=i.update(e).finalize(a);i.reset();for(var f=d.words,p=f.length,g=d,m=1;m<u;m++){g=i.finalize(g),i.reset();for(var _=g.words,v=0;v<p;v++)f[v]^=_[v]}s.concat(d),h[0]++}return s.sigBytes=4*c,s}});e.PBKDF2=function(t,e,n){return l.create(n).compute(t,e)}}(),t.PBKDF2}))},8981:function(t,e,n){"use strict";var i=n(7750),r=Object;t.exports=function(t){return r(i(t))}},9039:function(t){"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},9225:function(t,e,n){"use strict";var i,r,s,a,o=n(4576),l=n(8745),h=n(6080),c=n(4901),u=n(9297),d=n(9039),f=n(397),p=n(7680),g=n(4055),m=n(2812),_=n(9544),v=n(8574),y=o.setImmediate,b=o.clearImmediate,x=o.process,w=o.Dispatch,S=o.Function,T=o.MessageChannel,M=o.String,E=0,A={},R="onreadystatechange";d((function(){i=o.location}));var z=function(t){if(u(A,t)){var e=A[t];delete A[t],e()}},C=function(t){return function(){z(t)}},P=function(t){z(t.data)},k=function(t){o.postMessage(M(t),i.protocol+"//"+i.host)};y&&b||(y=function(t){m(arguments.length,1);var e=c(t)?t:S(t),n=p(arguments,1);return A[++E]=function(){l(e,void 0,n)},r(E),E},b=function(t){delete A[t]},v?r=function(t){x.nextTick(C(t))}:w&&w.now?r=function(t){w.now(C(t))}:T&&!_?(s=new T,a=s.port2,s.port1.onmessage=P,r=h(a.postMessage,a)):o.addEventListener&&c(o.postMessage)&&!o.importScripts&&i&&"file:"!==i.protocol&&!d(k)?(r=k,o.addEventListener("message",P,!1)):r=R in g("script")?function(t){f.appendChild(g("script"))[R]=function(){f.removeChild(this),z(t)}}:function(t){setTimeout(C(t),0)}),t.exports={set:y,clear:b}},9274:function(e){"use strict";if("undefined"===typeof t){var n=new Error("Cannot find module 'undefined'");throw n.code="MODULE_NOT_FOUND",n}e.exports=t},9286:function(t,e,n){"use strict";var i=n(4402),r=n(8469),s=i.Set,a=i.add;t.exports=function(t){var e=new s;return r(t,(function(t){a(e,t)})),e}},9297:function(t,e,n){"use strict";var i=n(9504),r=n(8981),s=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return s(r(t),e)}},9306:function(t,e,n){"use strict";var i=n(4901),r=n(6823),s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(r(t)+" is not a function")}},9309:function(t,e,n){"use strict";var i=n(6518),r=n(4576),s=n(9225).set,a=n(9472),o=r.setImmediate?a(s,!1):s;i({global:!0,bind:!0,enumerable:!0,forced:r.setImmediate!==o},{setImmediate:o})},9314:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(7535))})(0,(function(t){return function(){var e=t,n=e.lib,i=n.WordArray,r=e.algo,s=r.SHA256,a=r.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=4,t}});e.SHA224=s._createHelper(a),e.HmacSHA224=s._createHmacHelper(a)}(),t.SHA224}))},9395:function(t,e,n){(function(e,i){t.exports=i(n(6763),n(796))})(0,(function(t){return t.mode.CFB=function(){var e=t.lib.BlockCipherMode.extend();function n(t,e,n,i){var r,s=this._iv;s?(r=s.slice(0),this._iv=void 0):r=this._prevBlock,i.encryptBlock(r,0);for(var a=0;a<n;a++)t[e+a]^=r[a]}return e.Encryptor=e.extend({processBlock:function(t,e){var i=this._cipher,r=i.blockSize;n.call(this,t,e,r,i),this._prevBlock=t.slice(e,e+r)}}),e.Decryptor=e.extend({processBlock:function(t,e){var i=this._cipher,r=i.blockSize,s=t.slice(e,e+r);n.call(this,t,e,r,i),this._prevBlock=s}}),e}(),t.mode.CFB}))},9429:function(t,e,n){"use strict";var i=n(4576),r=n(8574);t.exports=function(t){if(r){try{return i.process.getBuiltinModule(t)}catch(e){}try{return Function('return require("'+t+'")')()}catch(e){}}}},9433:function(t,e,n){"use strict";var i=n(4576),r=Object.defineProperty;t.exports=function(t,e){try{r(i,t,{value:e,configurable:!0,writable:!0})}catch(n){i[t]=e}return e}},9462:function(t,e,n){"use strict";var i=n(9565),r=n(2360),s=n(6699),a=n(6279),o=n(8227),l=n(1181),h=n(5966),c=n(7657).IteratorPrototype,u=n(2529),d=n(9539),f=o("toStringTag"),p="IteratorHelper",g="WrapForValidIterator",m=l.set,_=function(t){var e=l.getterFor(t?g:p);return a(r(c),{next:function(){var n=e(this);if(t)return n.nextHandler();if(n.done)return u(void 0,!0);try{var i=n.nextHandler();return n.returnHandlerResult?i:u(i,n.done)}catch(r){throw n.done=!0,r}},return:function(){var n=e(this),r=n.iterator;if(n.done=!0,t){var s=h(r,"return");return s?i(s,r):u(void 0,!0)}if(n.inner)try{d(n.inner.iterator,"normal")}catch(a){return d(r,"throw",a)}return r&&d(r,"normal"),u(void 0,!0)}})},v=_(!0),y=_(!1);s(y,f,"Iterator Helper"),t.exports=function(t,e,n){var i=function(i,r){r?(r.iterator=i.iterator,r.next=i.next):r=i,r.type=e?g:p,r.returnHandlerResult=!!n,r.nextHandler=t,r.counter=0,r.done=!1,m(this,r)};return i.prototype=e?v:y,i}},9472:function(t,e,n){"use strict";var i=n(4576),r=n(8745),s=n(4901),a=n(4215),o=n(2839),l=n(7680),h=n(2812),c=i.Function,u=/MSIE .\./.test(o)||"BUN"===a&&function(){var t=i.Bun.version.split(".");return t.length<3||"0"===t[0]&&(t[1]<3||"3"===t[1]&&"0"===t[2])}();t.exports=function(t,e){var n=e?2:1;return u?function(i,a){var o=h(arguments.length,1)>n,u=s(i)?i:c(i),d=o?l(arguments,n):[],f=o?function(){r(u,this,d)}:u;return e?t(f,a):t(f)}:t}},9478:function(t,e,n){(function(e,i){t.exports=i(n(6763))})(0,(function(t){
|
|
8
|
+
/** @preserve
|
|
9
|
+
(c) 2012 by Cédric Mesnil. All rights reserved.
|
|
10
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
11
|
+
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
12
|
+
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
13
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
14
|
+
*/
|
|
15
|
+
return function(){var e=t,n=e.lib,i=n.WordArray,r=n.Hasher,s=e.algo,a=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),o=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),h=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),c=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=s.RIPEMD160=r.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var i=e+n,r=t[i];t[i]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var s,d,y,b,x,w,S,T,M,E,A,R=this._hash.words,z=c.words,C=u.words,P=a.words,k=o.words,D=l.words,I=h.words;w=s=R[0],S=d=R[1],T=y=R[2],M=b=R[3],E=x=R[4];for(n=0;n<80;n+=1)A=s+t[e+P[n]]|0,A+=n<16?f(d,y,b)+z[0]:n<32?p(d,y,b)+z[1]:n<48?g(d,y,b)+z[2]:n<64?m(d,y,b)+z[3]:_(d,y,b)+z[4],A|=0,A=v(A,D[n]),A=A+x|0,s=x,x=b,b=v(y,10),y=d,d=A,A=w+t[e+k[n]]|0,A+=n<16?_(S,T,M)+C[0]:n<32?m(S,T,M)+C[1]:n<48?g(S,T,M)+C[2]:n<64?p(S,T,M)+C[3]:f(S,T,M)+C[4],A|=0,A=v(A,I[n]),A=A+E|0,w=E,E=M,M=v(T,10),T=S,S=A;A=R[1]+y+M|0,R[1]=R[2]+b+E|0,R[2]=R[3]+x+w|0,R[3]=R[4]+s+S|0,R[4]=R[0]+d+T|0,R[0]=A},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),t.sigBytes=4*(e.length+1),this._process();for(var r=this._hash,s=r.words,a=0;a<5;a++){var o=s[a];s[a]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}return r},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t}});function f(t,e,n){return t^e^n}function p(t,e,n){return t&e|~t&n}function g(t,e,n){return(t|~e)^n}function m(t,e,n){return t&n|e&~n}function _(t,e,n){return t^(e|~n)}function v(t,e){return t<<e|t>>>32-e}e.RIPEMD160=r._createHelper(d),e.HmacRIPEMD160=r._createHmacHelper(d)}(Math),t.RIPEMD160}))},9504:function(t,e,n){"use strict";var i=n(616),r=Function.prototype,s=r.call,a=i&&r.bind.bind(s,s);t.exports=i?a:function(t){return function(){return s.apply(t,arguments)}}},9519:function(t,e,n){"use strict";var i,r,s=n(4576),a=n(2839),o=s.process,l=s.Deno,h=o&&o.versions||l&&l.version,c=h&&h.v8;c&&(i=c.split("."),r=i[0]>0&&i[0]<4?1:+(i[0]+i[1])),!r&&a&&(i=a.match(/Edge\/(\d+)/),(!i||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/),i&&(r=+i[1]))),t.exports=r},9539:function(t,e,n){"use strict";var i=n(9565),r=n(8551),s=n(5966);t.exports=function(t,e,n){var a,o;r(t);try{if(a=s(t,"return"),!a){if("throw"===e)throw n;return n}a=i(a,t)}catch(l){o=!0,a=l}if("throw"===e)throw n;if(o)throw a;return r(a),n}},9544:function(t,e,n){"use strict";var i=n(2839);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(i)},9565:function(t,e,n){"use strict";var i=n(616),r=Function.prototype.call;t.exports=i?r.bind(r):function(){return r.apply(r,arguments)}},9577:function(t,e,n){"use strict";var i=n(9928),r=n(4644),s=n(1108),a=n(1291),o=n(5854),l=r.aTypedArray,h=r.getTypedArrayConstructor,c=r.exportTypedArrayMethod,u=!!function(){try{new Int8Array(1)["with"](2,{valueOf:function(){throw 8}})}catch(t){return 8===t}}();c("with",{with:function(t,e){var n=l(this),r=a(t),c=s(n)?o(e):+e;return i(n,h(n),r,c)}}["with"],!u)},9590:function(t,e,n){"use strict";var i=n(1291),r=RangeError;t.exports=function(t){var e=i(t);if(e<0)throw new r("The argument can't be less than 0");return e}},9617:function(t,e,n){"use strict";var i=n(5397),r=n(5610),s=n(6198),a=function(t){return function(e,n,a){var o=i(e),l=s(o);if(0===l)return!t&&-1;var h,c=r(a,l);if(t&&n!==n){while(l>c)if(h=o[c++],h!==h)return!0}else for(;l>c;c++)if((t||c in o)&&o[c]===n)return t||c||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},9848:function(t,e,n){"use strict";n(6368),n(9309)},9928:function(t,e,n){"use strict";var i=n(6198),r=n(1291),s=RangeError;t.exports=function(t,e,n,a){var o=i(t),l=r(n),h=l<0?o+l:l;if(h>=o||h<0)throw new s("Incorrect index");for(var c=new e(o),u=0;u<o;u++)c[u]=u===h?a:t[u];return c}}},n={};function i(t){var r=n[t];if(void 0!==r)return r.exports;var s=n[t]={exports:{}};return e[t].call(s.exports,s,s.exports,i),s.exports}!function(){i.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return i.d(e,{a:e}),e}}(),function(){var t,e=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__};i.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"===typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"===typeof n.then)return n}var s=Object.create(null);i.r(s);var a={};t=t||[null,e({}),e([]),e(e)];for(var o=2&r&&n;"object"==typeof o&&!~t.indexOf(o);o=e(o))Object.getOwnPropertyNames(o).forEach((function(t){a[t]=function(){return n[t]}}));return a["default"]=function(){return n},i.d(s,a),s}}(),function(){i.d=function(t,e){for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})}}(),function(){i.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){i.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}}(),function(){i.p=""}();var r={};return function(){"use strict";i.r(r),i.d(r,{default:function(){return P_}});var t={};if(i.r(t),i.d(t,{hasBrowserEnv:function(){return Lt},hasStandardBrowserEnv:function(){return Nt},hasStandardBrowserWebWorkerEnv:function(){return Ot},navigator:function(){return jt},origin:function(){return Ut}}),"undefined"!==typeof window){var e=window.document.currentScript,n=e&&e.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);n&&(i.p=n[1])}i(4114),i(8111),i(2489),i(7588),i(1701),i(4979),i(6573),i(8100),i(7936),i(7467),i(4732),i(9577),i(9848);function s(t,e){return function(){return t.apply(e,arguments)}}const{toString:a}=Object.prototype,{getPrototypeOf:o}=Object,l=(t=>e=>{const n=a.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),h=t=>(t=t.toLowerCase(),e=>l(e)===t),c=t=>e=>typeof e===t,{isArray:u}=Array,d=c("undefined");function f(t){return null!==t&&!d(t)&&null!==t.constructor&&!d(t.constructor)&&_(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const p=h("ArrayBuffer");function g(t){let e;return e="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&p(t.buffer),e}const m=c("string"),_=c("function"),v=c("number"),y=t=>null!==t&&"object"===typeof t,b=t=>!0===t||!1===t,x=t=>{if("object"!==l(t))return!1;const e=o(t);return(null===e||e===Object.prototype||null===Object.getPrototypeOf(e))&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},w=h("Date"),S=h("File"),T=h("Blob"),M=h("FileList"),E=t=>y(t)&&_(t.pipe),A=t=>{let e;return t&&("function"===typeof FormData&&t instanceof FormData||_(t.append)&&("formdata"===(e=l(t))||"object"===e&&_(t.toString)&&"[object FormData]"===t.toString()))},R=h("URLSearchParams"),[z,C,P,k]=["ReadableStream","Request","Response","Headers"].map(h),D=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function I(t,e,{allOwnKeys:n=!1}={}){if(null===t||"undefined"===typeof t)return;let i,r;if("object"!==typeof t&&(t=[t]),u(t))for(i=0,r=t.length;i<r;i++)e.call(null,t[i],i,t);else{const r=n?Object.getOwnPropertyNames(t):Object.keys(t),s=r.length;let a;for(i=0;i<s;i++)a=r[i],e.call(null,t[a],a,t)}}function L(t,e){e=e.toLowerCase();const n=Object.keys(t);let i,r=n.length;while(r-- >0)if(i=n[r],e===i.toLowerCase())return i;return null}const j=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global)(),N=t=>!d(t)&&t!==j;function O(){const{caseless:t}=N(this)&&this||{},e={},n=(n,i)=>{const r=t&&L(e,i)||i;x(e[r])&&x(n)?e[r]=O(e[r],n):x(n)?e[r]=O({},n):u(n)?e[r]=n.slice():e[r]=n};for(let i=0,r=arguments.length;i<r;i++)arguments[i]&&I(arguments[i],n);return e}const U=(t,e,n,{allOwnKeys:i}={})=>(I(e,((e,i)=>{n&&_(e)?t[i]=s(e,n):t[i]=e}),{allOwnKeys:i}),t),B=t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),F=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},H=(t,e,n,i)=>{let r,s,a;const l={};if(e=e||{},null==t)return e;do{r=Object.getOwnPropertyNames(t),s=r.length;while(s-- >0)a=r[s],i&&!i(a,t,e)||l[a]||(e[a]=t[a],l[a]=!0);t=!1!==n&&o(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},q=(t,e,n)=>{t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return-1!==i&&i===n},V=t=>{if(!t)return null;if(u(t))return t;let e=t.length;if(!v(e))return null;const n=new Array(e);while(e-- >0)n[e]=t[e];return n},G=(t=>e=>t&&e instanceof t)("undefined"!==typeof Uint8Array&&o(Uint8Array)),W=(t,e)=>{const n=t&&t[Symbol.iterator],i=n.call(t);let r;while((r=i.next())&&!r.done){const n=r.value;e.call(t,n[0],n[1])}},X=(t,e)=>{let n;const i=[];while(null!==(n=t.exec(e)))i.push(n);return i},J=h("HTMLFormElement"),Y=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n})),K=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),$=h("RegExp"),Z=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};I(n,((n,r)=>{let s;!1!==(s=e(n,r,t))&&(i[r]=s||n)})),Object.defineProperties(t,i)},Q=t=>{Z(t,((e,n)=>{if(_(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const i=t[n];_(i)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},tt=(t,e)=>{const n={},i=t=>{t.forEach((t=>{n[t]=!0}))};return u(t)?i(t):i(String(t).split(e)),n},et=()=>{},nt=(t,e)=>null!=t&&Number.isFinite(t=+t)?t:e;function it(t){return!!(t&&_(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])}const rt=t=>{const e=new Array(10),n=(t,i)=>{if(y(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[i]=t;const r=u(t)?[]:{};return I(t,((t,e)=>{const s=n(t,i+1);!d(s)&&(r[e]=s)})),e[i]=void 0,r}}return t};return n(t,0)},st=h("AsyncFunction"),at=t=>t&&(y(t)||_(t))&&_(t.then)&&_(t.catch),ot=((t,e)=>t?setImmediate:e?((t,e)=>(j.addEventListener("message",(({source:n,data:i})=>{n===j&&i===t&&e.length&&e.shift()()}),!1),n=>{e.push(n),j.postMessage(t,"*")}))(`axios@${Math.random()}`,[]):t=>setTimeout(t))("function"===typeof setImmediate,_(j.postMessage)),lt="undefined"!==typeof queueMicrotask?queueMicrotask.bind(j):"undefined"!==typeof process&&process.nextTick||ot;var ht={isArray:u,isArrayBuffer:p,isBuffer:f,isFormData:A,isArrayBufferView:g,isString:m,isNumber:v,isBoolean:b,isObject:y,isPlainObject:x,isReadableStream:z,isRequest:C,isResponse:P,isHeaders:k,isUndefined:d,isDate:w,isFile:S,isBlob:T,isRegExp:$,isFunction:_,isStream:E,isURLSearchParams:R,isTypedArray:G,isFileList:M,forEach:I,merge:O,extend:U,trim:D,stripBOM:B,inherits:F,toFlatObject:H,kindOf:l,kindOfTest:h,endsWith:q,toArray:V,forEachEntry:W,matchAll:X,isHTMLForm:J,hasOwnProperty:K,hasOwnProp:K,reduceDescriptors:Z,freezeMethods:Q,toObjectSet:tt,toCamelCase:Y,noop:et,toFiniteNumber:nt,findKey:L,global:j,isContextDefined:N,isSpecCompliantForm:it,toJSONObject:rt,isAsyncFn:st,isThenable:at,setImmediate:ot,asap:lt};i(3579),i(1806);function ct(t,e,n,i,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),i&&(this.request=i),r&&(this.response=r,this.status=r.status?r.status:null)}ht.inherits(ct,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ht.toJSONObject(this.config),code:this.code,status:this.status}}});const ut=ct.prototype,dt={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{dt[t]={value:t}})),Object.defineProperties(ct,dt),Object.defineProperty(ut,"isAxiosError",{value:!0}),ct.from=(t,e,n,i,r,s)=>{const a=Object.create(ut);return ht.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),ct.call(a,t.message,e,n,i,r),a.cause=t,a.name=t.name,s&&Object.assign(a,s),a};var ft=ct,pt=null;function gt(t){return ht.isPlainObject(t)||ht.isArray(t)}function mt(t){return ht.endsWith(t,"[]")?t.slice(0,-2):t}function _t(t,e,n){return t?t.concat(e).map((function(t,e){return t=mt(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}function vt(t){return ht.isArray(t)&&!t.some(gt)}const yt=ht.toFlatObject(ht,{},null,(function(t){return/^is[A-Z]/.test(t)}));function bt(t,e,n){if(!ht.isObject(t))throw new TypeError("target must be an object");e=e||new(pt||FormData),n=ht.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!ht.isUndefined(e[t])}));const i=n.metaTokens,r=n.visitor||c,s=n.dots,a=n.indexes,o=n.Blob||"undefined"!==typeof Blob&&Blob,l=o&&ht.isSpecCompliantForm(e);if(!ht.isFunction(r))throw new TypeError("visitor must be a function");function h(t){if(null===t)return"";if(ht.isDate(t))return t.toISOString();if(!l&&ht.isBlob(t))throw new ft("Blob is not supported. Use a Buffer instead.");return ht.isArrayBuffer(t)||ht.isTypedArray(t)?l&&"function"===typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,r){let o=t;if(t&&!r&&"object"===typeof t)if(ht.endsWith(n,"{}"))n=i?n:n.slice(0,-2),t=JSON.stringify(t);else if(ht.isArray(t)&&vt(t)||(ht.isFileList(t)||ht.endsWith(n,"[]"))&&(o=ht.toArray(t)))return n=mt(n),o.forEach((function(t,i){!ht.isUndefined(t)&&null!==t&&e.append(!0===a?_t([n],i,s):null===a?n:n+"[]",h(t))})),!1;return!!gt(t)||(e.append(_t(r,n,s),h(t)),!1)}const u=[],d=Object.assign(yt,{defaultVisitor:c,convertValue:h,isVisitable:gt});function f(t,n){if(!ht.isUndefined(t)){if(-1!==u.indexOf(t))throw Error("Circular reference detected in "+n.join("."));u.push(t),ht.forEach(t,(function(t,i){const s=!(ht.isUndefined(t)||null===t)&&r.call(e,t,ht.isString(i)?i.trim():i,n,d);!0===s&&f(t,n?n.concat(i):[i])})),u.pop()}}if(!ht.isObject(t))throw new TypeError("data must be an object");return f(t),e}var xt=bt;function wt(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function St(t,e){this._pairs=[],t&&xt(t,this,e)}const Tt=St.prototype;Tt.append=function(t,e){this._pairs.push([t,e])},Tt.toString=function(t){const e=t?function(e){return t.call(this,e,wt)}:wt;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var Mt=St;function Et(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function At(t,e,n){if(!e)return t;const i=n&&n.encode||Et;ht.isFunction(n)&&(n={serialize:n});const r=n&&n.serialize;let s;if(s=r?r(e,n):ht.isURLSearchParams(e)?e.toString():new Mt(e,n).toString(i),s){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+s}return t}class Rt{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ht.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}var zt=Rt,Ct={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Pt=(i(4603),i(7566),i(8721),"undefined"!==typeof URLSearchParams?URLSearchParams:Mt),kt="undefined"!==typeof FormData?FormData:null,Dt="undefined"!==typeof Blob?Blob:null,It={isBrowser:!0,classes:{URLSearchParams:Pt,FormData:kt,Blob:Dt},protocols:["http","https","file","blob","url","data"]};const Lt="undefined"!==typeof window&&"undefined"!==typeof document,jt="object"===typeof navigator&&navigator||void 0,Nt=Lt&&(!jt||["ReactNative","NativeScript","NS"].indexOf(jt.product)<0),Ot=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)(),Ut=Lt&&window.location.href||"http://localhost";var Bt={...t,...It};function Ft(t,e){return xt(t,new Bt.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,i){return Bt.isNode&&ht.isBuffer(t)?(this.append(e,t.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},e))}function Ht(t){return ht.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}function qt(t){const e={},n=Object.keys(t);let i;const r=n.length;let s;for(i=0;i<r;i++)s=n[i],e[s]=t[s];return e}function Vt(t){function e(t,n,i,r){let s=t[r++];if("__proto__"===s)return!0;const a=Number.isFinite(+s),o=r>=t.length;if(s=!s&&ht.isArray(i)?i.length:s,o)return ht.hasOwnProp(i,s)?i[s]=[i[s],n]:i[s]=n,!a;i[s]&&ht.isObject(i[s])||(i[s]=[]);const l=e(t,n,i[s],r);return l&&ht.isArray(i[s])&&(i[s]=qt(i[s])),!a}if(ht.isFormData(t)&&ht.isFunction(t.entries)){const n={};return ht.forEachEntry(t,((t,i)=>{e(Ht(t),i,n,0)})),n}return null}var Gt=Vt;function Wt(t,e,n){if(ht.isString(t))try{return(e||JSON.parse)(t),ht.trim(t)}catch(i){if("SyntaxError"!==i.name)throw i}return(n||JSON.stringify)(t)}const Xt={transitional:Ct,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,r=ht.isObject(t);r&&ht.isHTMLForm(t)&&(t=new FormData(t));const s=ht.isFormData(t);if(s)return i?JSON.stringify(Gt(t)):t;if(ht.isArrayBuffer(t)||ht.isBuffer(t)||ht.isStream(t)||ht.isFile(t)||ht.isBlob(t)||ht.isReadableStream(t))return t;if(ht.isArrayBufferView(t))return t.buffer;if(ht.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return Ft(t,this.formSerializer).toString();if((a=ht.isFileList(t))||n.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return xt(a?{"files[]":t}:t,e&&new e,this.formSerializer)}}return r||i?(e.setContentType("application/json",!1),Wt(t)):t}],transformResponse:[function(t){const e=this.transitional||Xt.transitional,n=e&&e.forcedJSONParsing,i="json"===this.responseType;if(ht.isResponse(t)||ht.isReadableStream(t))return t;if(t&&ht.isString(t)&&(n&&!this.responseType||i)){const n=e&&e.silentJSONParsing,s=!n&&i;try{return JSON.parse(t)}catch(r){if(s){if("SyntaxError"===r.name)throw ft.from(r,ft.ERR_BAD_RESPONSE,this,null,this.response);throw r}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Bt.classes.FormData,Blob:Bt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ht.forEach(["delete","get","head","post","put","patch"],(t=>{Xt.headers[t]={}}));var Jt=Xt;const Yt=ht.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Kt=t=>{const e={};let n,i,r;return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),n=t.substring(0,r).trim().toLowerCase(),i=t.substring(r+1).trim(),!n||e[n]&&Yt[n]||("set-cookie"===n?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)})),e};const $t=Symbol("internals");function Zt(t){return t&&String(t).trim().toLowerCase()}function Qt(t){return!1===t||null==t?t:ht.isArray(t)?t.map(Qt):String(t)}function te(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;while(i=n.exec(t))e[i[1]]=i[2];return e}const ee=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function ne(t,e,n,i,r){return ht.isFunction(i)?i.call(this,e,n):(r&&(e=n),ht.isString(e)?ht.isString(i)?-1!==e.indexOf(i):ht.isRegExp(i)?i.test(e):void 0:void 0)}function ie(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,n)=>e.toUpperCase()+n))}function re(t,e){const n=ht.toCamelCase(" "+e);["get","set","has"].forEach((i=>{Object.defineProperty(t,i+n,{value:function(t,n,r){return this[i].call(this,e,t,n,r)},configurable:!0})}))}class se{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function r(t,e,n){const r=Zt(e);if(!r)throw new Error("header name must be a non-empty string");const s=ht.findKey(i,r);(!s||void 0===i[s]||!0===n||void 0===n&&!1!==i[s])&&(i[s||e]=Qt(t))}const s=(t,e)=>ht.forEach(t,((t,n)=>r(t,n,e)));if(ht.isPlainObject(t)||t instanceof this.constructor)s(t,e);else if(ht.isString(t)&&(t=t.trim())&&!ee(t))s(Kt(t),e);else if(ht.isHeaders(t))for(const[a,o]of t.entries())r(o,a,n);else null!=t&&r(e,t,n);return this}get(t,e){if(t=Zt(t),t){const n=ht.findKey(this,t);if(n){const t=this[n];if(!e)return t;if(!0===e)return te(t);if(ht.isFunction(e))return e.call(this,t,n);if(ht.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=Zt(t),t){const n=ht.findKey(this,t);return!(!n||void 0===this[n]||e&&!ne(this,this[n],n,e))}return!1}delete(t,e){const n=this;let i=!1;function r(t){if(t=Zt(t),t){const r=ht.findKey(n,t);!r||e&&!ne(n,n[r],r,e)||(delete n[r],i=!0)}}return ht.isArray(t)?t.forEach(r):r(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;while(n--){const r=e[n];t&&!ne(this,this[r],r,t,!0)||(delete this[r],i=!0)}return i}normalize(t){const e=this,n={};return ht.forEach(this,((i,r)=>{const s=ht.findKey(n,r);if(s)return e[s]=Qt(i),void delete e[r];const a=t?ie(r):String(r).trim();a!==r&&delete e[r],e[a]=Qt(i),n[a]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return ht.forEach(this,((n,i)=>{null!=n&&!1!==n&&(e[i]=t&&ht.isArray(n)?n.join(", "):n)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach((t=>n.set(t))),n}static accessor(t){const e=this[$t]=this[$t]={accessors:{}},n=e.accessors,i=this.prototype;function r(t){const e=Zt(t);n[e]||(re(i,t),n[e]=!0)}return ht.isArray(t)?t.forEach(r):r(t),this}}se.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ht.reduceDescriptors(se.prototype,(({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[n]=t}}})),ht.freezeMethods(se);var ae=se;function oe(t,e){const n=this||Jt,i=e||n,r=ae.from(i.headers);let s=i.data;return ht.forEach(t,(function(t){s=t.call(n,s,r.normalize(),e?e.status:void 0)})),r.normalize(),s}function le(t){return!(!t||!t.__CANCEL__)}function he(t,e,n){ft.call(this,null==t?"canceled":t,ft.ERR_CANCELED,e,n),this.name="CanceledError"}ht.inherits(he,ft,{__CANCEL__:!0});var ce=he;function ue(t,e,n){const i=n.config.validateStatus;n.status&&i&&!i(n.status)?e(new ft("Request failed with status code "+n.status,[ft.ERR_BAD_REQUEST,ft.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}function de(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function fe(t,e){t=t||10;const n=new Array(t),i=new Array(t);let r,s=0,a=0;return e=void 0!==e?e:1e3,function(o){const l=Date.now(),h=i[a];r||(r=l),n[s]=o,i[s]=l;let c=a,u=0;while(c!==s)u+=n[c++],c%=t;if(s=(s+1)%t,s===a&&(a=(a+1)%t),l-r<e)return;const d=h&&l-h;return d?Math.round(1e3*u/d):void 0}}var pe=fe;function ge(t,e){let n,i,r=0,s=1e3/e;const a=(e,s=Date.now())=>{r=s,n=null,i&&(clearTimeout(i),i=null),t.apply(null,e)},o=(...t)=>{const e=Date.now(),o=e-r;o>=s?a(t,e):(n=t,i||(i=setTimeout((()=>{i=null,a(n)}),s-o)))},l=()=>n&&a(n);return[o,l]}var me=ge;const _e=(t,e,n=3)=>{let i=0;const r=pe(50,250);return me((n=>{const s=n.loaded,a=n.lengthComputable?n.total:void 0,o=s-i,l=r(o),h=s<=a;i=s;const c={loaded:s,total:a,progress:a?s/a:void 0,bytes:o,rate:l||void 0,estimated:l&&a&&h?(a-s)/l:void 0,event:n,lengthComputable:null!=a,[e?"download":"upload"]:!0};t(c)}),n)},ve=(t,e)=>{const n=null!=t;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},ye=t=>(...e)=>ht.asap((()=>t(...e)));var be=Bt.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,Bt.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(Bt.origin),Bt.navigator&&/(msie|trident)/i.test(Bt.navigator.userAgent)):()=>!0,xe=Bt.hasStandardBrowserEnv?{write(t,e,n,i,r,s){const a=[t+"="+encodeURIComponent(e)];ht.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),ht.isString(i)&&a.push("path="+i),ht.isString(r)&&a.push("domain="+r),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function we(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Se(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function Te(t,e,n){let i=!we(e);return t&&i||0==n?Se(t,e):e}const Me=t=>t instanceof ae?{...t}:t;function Ee(t,e){e=e||{};const n={};function i(t,e,n,i){return ht.isPlainObject(t)&&ht.isPlainObject(e)?ht.merge.call({caseless:i},t,e):ht.isPlainObject(e)?ht.merge({},e):ht.isArray(e)?e.slice():e}function r(t,e,n,r){return ht.isUndefined(e)?ht.isUndefined(t)?void 0:i(void 0,t,n,r):i(t,e,n,r)}function s(t,e){if(!ht.isUndefined(e))return i(void 0,e)}function a(t,e){return ht.isUndefined(e)?ht.isUndefined(t)?void 0:i(void 0,t):i(void 0,e)}function o(n,r,s){return s in e?i(n,r):s in t?i(void 0,n):void 0}const l={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:o,headers:(t,e,n)=>r(Me(t),Me(e),n,!0)};return ht.forEach(Object.keys(Object.assign({},t,e)),(function(i){const s=l[i]||r,a=s(t[i],e[i],i);ht.isUndefined(a)&&s!==o||(n[i]=a)})),n}var Ae=t=>{const e=Ee({},t);let n,{data:i,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:a,headers:o,auth:l}=e;if(e.headers=o=ae.from(o),e.url=At(Te(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),l&&o.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),ht.isFormData(i))if(Bt.hasStandardBrowserEnv||Bt.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(!1!==(n=o.getContentType())){const[t,...e]=n?n.split(";").map((t=>t.trim())).filter(Boolean):[];o.setContentType([t||"multipart/form-data",...e].join("; "))}if(Bt.hasStandardBrowserEnv&&(r&&ht.isFunction(r)&&(r=r(e)),r||!1!==r&&be(e.url))){const t=s&&a&&xe.read(a);t&&o.set(s,t)}return e};const Re="undefined"!==typeof XMLHttpRequest;var ze=Re&&function(t){return new Promise((function(e,n){const i=Ae(t);let r=i.data;const s=ae.from(i.headers).normalize();let a,o,l,h,c,{responseType:u,onUploadProgress:d,onDownloadProgress:f}=i;function p(){h&&h(),c&&c(),i.cancelToken&&i.cancelToken.unsubscribe(a),i.signal&&i.signal.removeEventListener("abort",a)}let g=new XMLHttpRequest;function m(){if(!g)return;const i=ae.from("getAllResponseHeaders"in g&&g.getAllResponseHeaders()),r=u&&"text"!==u&&"json"!==u?g.response:g.responseText,s={data:r,status:g.status,statusText:g.statusText,headers:i,config:t,request:g};ue((function(t){e(t),p()}),(function(t){n(t),p()}),s),g=null}g.open(i.method.toUpperCase(),i.url,!0),g.timeout=i.timeout,"onloadend"in g?g.onloadend=m:g.onreadystatechange=function(){g&&4===g.readyState&&(0!==g.status||g.responseURL&&0===g.responseURL.indexOf("file:"))&&setTimeout(m)},g.onabort=function(){g&&(n(new ft("Request aborted",ft.ECONNABORTED,t,g)),g=null)},g.onerror=function(){n(new ft("Network Error",ft.ERR_NETWORK,t,g)),g=null},g.ontimeout=function(){let e=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const r=i.transitional||Ct;i.timeoutErrorMessage&&(e=i.timeoutErrorMessage),n(new ft(e,r.clarifyTimeoutError?ft.ETIMEDOUT:ft.ECONNABORTED,t,g)),g=null},void 0===r&&s.setContentType(null),"setRequestHeader"in g&&ht.forEach(s.toJSON(),(function(t,e){g.setRequestHeader(e,t)})),ht.isUndefined(i.withCredentials)||(g.withCredentials=!!i.withCredentials),u&&"json"!==u&&(g.responseType=i.responseType),f&&([l,c]=_e(f,!0),g.addEventListener("progress",l)),d&&g.upload&&([o,h]=_e(d),g.upload.addEventListener("progress",o),g.upload.addEventListener("loadend",h)),(i.cancelToken||i.signal)&&(a=e=>{g&&(n(!e||e.type?new ce(null,t,g):e),g.abort(),g=null)},i.cancelToken&&i.cancelToken.subscribe(a),i.signal&&(i.signal.aborted?a():i.signal.addEventListener("abort",a)));const _=de(i.url);_&&-1===Bt.protocols.indexOf(_)?n(new ft("Unsupported protocol "+_+":",ft.ERR_BAD_REQUEST,t)):g.send(r||null)}))};const Ce=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let n,i=new AbortController;const r=function(t){if(!n){n=!0,a();const e=t instanceof Error?t:this.reason;i.abort(e instanceof ft?e:new ce(e instanceof Error?e.message:e))}};let s=e&&setTimeout((()=>{s=null,r(new ft(`timeout ${e} of ms exceeded`,ft.ETIMEDOUT))}),e);const a=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach((t=>{t.unsubscribe?t.unsubscribe(r):t.removeEventListener("abort",r)})),t=null)};t.forEach((t=>t.addEventListener("abort",r)));const{signal:o}=i;return o.unsubscribe=()=>ht.asap(a),o}};var Pe=Ce;const ke=function*(t,e){let n=t.byteLength;if(!e||n<e)return void(yield t);let i,r=0;while(r<n)i=r+e,yield t.slice(r,i),r=i},De=async function*(t,e){for await(const n of Ie(t))yield*ke(n,e)},Ie=async function*(t){if(t[Symbol.asyncIterator])return void(yield*t);const e=t.getReader();try{for(;;){const{done:t,value:n}=await e.read();if(t)break;yield n}}finally{await e.cancel()}},Le=(t,e,n,i)=>{const r=De(t,e);let s,a=0,o=t=>{s||(s=!0,i&&i(t))};return new ReadableStream({async pull(t){try{const{done:e,value:i}=await r.next();if(e)return o(),void t.close();let s=i.byteLength;if(n){let t=a+=s;n(t)}t.enqueue(new Uint8Array(i))}catch(e){throw o(e),e}},cancel(t){return o(t),r.return()}},{highWaterMark:2})},je="function"===typeof fetch&&"function"===typeof Request&&"function"===typeof Response,Ne=je&&"function"===typeof ReadableStream,Oe=je&&("function"===typeof TextEncoder?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),Ue=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},Be=Ne&&Ue((()=>{let t=!1;const e=new Request(Bt.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e})),Fe=65536,He=Ne&&Ue((()=>ht.isReadableStream(new Response("").body))),qe={stream:He&&(t=>t.body)};je&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!qe[e]&&(qe[e]=ht.isFunction(t[e])?t=>t[e]():(t,n)=>{throw new ft(`Response type '${e}' is not supported`,ft.ERR_NOT_SUPPORT,n)})}))})(new Response);const Ve=async t=>{if(null==t)return 0;if(ht.isBlob(t))return t.size;if(ht.isSpecCompliantForm(t)){const e=new Request(Bt.origin,{method:"POST",body:t});return(await e.arrayBuffer()).byteLength}return ht.isArrayBufferView(t)||ht.isArrayBuffer(t)?t.byteLength:(ht.isURLSearchParams(t)&&(t+=""),ht.isString(t)?(await Oe(t)).byteLength:void 0)},Ge=async(t,e)=>{const n=ht.toFiniteNumber(t.getContentLength());return null==n?Ve(e):n};var We=je&&(async t=>{let{url:e,method:n,data:i,signal:r,cancelToken:s,timeout:a,onDownloadProgress:o,onUploadProgress:l,responseType:h,headers:c,withCredentials:u="same-origin",fetchOptions:d}=Ae(t);h=h?(h+"").toLowerCase():"text";let f,p=Pe([r,s&&s.toAbortSignal()],a);const g=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let m;try{if(l&&Be&&"get"!==n&&"head"!==n&&0!==(m=await Ge(c,i))){let t,n=new Request(e,{method:"POST",body:i,duplex:"half"});if(ht.isFormData(i)&&(t=n.headers.get("content-type"))&&c.setContentType(t),n.body){const[t,e]=ve(m,_e(ye(l)));i=Le(n.body,Fe,t,e)}}ht.isString(u)||(u=u?"include":"omit");const r="credentials"in Request.prototype;f=new Request(e,{...d,signal:p,method:n.toUpperCase(),headers:c.normalize().toJSON(),body:i,duplex:"half",credentials:r?u:void 0});let s=await fetch(f);const a=He&&("stream"===h||"response"===h);if(He&&(o||a&&g)){const t={};["status","statusText","headers"].forEach((e=>{t[e]=s[e]}));const e=ht.toFiniteNumber(s.headers.get("content-length")),[n,i]=o&&ve(e,_e(ye(o),!0))||[];s=new Response(Le(s.body,Fe,n,(()=>{i&&i(),g&&g()})),t)}h=h||"text";let _=await qe[ht.findKey(qe,h)||"text"](s,t);return!a&&g&&g(),await new Promise(((e,n)=>{ue(e,n,{data:_,headers:ae.from(s.headers),status:s.status,statusText:s.statusText,config:t,request:f})}))}catch(_){if(g&&g(),_&&"TypeError"===_.name&&/fetch/i.test(_.message))throw Object.assign(new ft("Network Error",ft.ERR_NETWORK,t,f),{cause:_.cause||_});throw ft.from(_,_&&_.code,t,f)}});const Xe={http:pt,xhr:ze,fetch:We};ht.forEach(Xe,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}}));const Je=t=>`- ${t}`,Ye=t=>ht.isFunction(t)||null===t||!1===t;var Ke={getAdapter:t=>{t=ht.isArray(t)?t:[t];const{length:e}=t;let n,i;const r={};for(let s=0;s<e;s++){let e;if(n=t[s],i=n,!Ye(n)&&(i=Xe[(e=String(n)).toLowerCase()],void 0===i))throw new ft(`Unknown adapter '${e}'`);if(i)break;r[e||"#"+s]=i}if(!i){const t=Object.entries(r).map((([t,e])=>`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let n=e?t.length>1?"since :\n"+t.map(Je).join("\n"):" "+Je(t[0]):"as no adapter specified";throw new ft("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return i},adapters:Xe};function $e(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ce(null,t)}function Ze(t){$e(t),t.headers=ae.from(t.headers),t.data=oe.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1);const e=Ke.getAdapter(t.adapter||Jt.adapter);return e(t).then((function(e){return $e(t),e.data=oe.call(t,t.transformResponse,e),e.headers=ae.from(e.headers),e}),(function(e){return le(e)||($e(t),e&&e.response&&(e.response.data=oe.call(t,t.transformResponse,e.response),e.response.headers=ae.from(e.response.headers))),Promise.reject(e)}))}const Qe="1.8.3",tn={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{tn[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));const en={};function nn(t,e,n){if("object"!==typeof t)throw new ft("options must be an object",ft.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let r=i.length;while(r-- >0){const s=i[r],a=e[s];if(a){const e=t[s],n=void 0===e||a(e,s,t);if(!0!==n)throw new ft("option "+s+" must be "+n,ft.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new ft("Unknown option "+s,ft.ERR_BAD_OPTION)}}tn.transitional=function(t,e,n){function i(t,e){return"[Axios v"+Qe+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return(n,r,s)=>{if(!1===t)throw new ft(i(r," has been removed"+(e?" in "+e:"")),ft.ERR_DEPRECATED);return e&&!en[r]&&(en[r]=!0,console.warn(i(r," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,r,s)}},tn.spelling=function(t){return(e,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};var rn={assertOptions:nn,validators:tn};const sn=rn.validators;class an{constructor(t){this.defaults=t,this.interceptors={request:new zt,response:new zt}}async request(t,e){try{return await this._request(t,e)}catch(n){if(n instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const e=t.stack?t.stack.replace(/^.+\n/,""):"";try{n.stack?e&&!String(n.stack).endsWith(e.replace(/^.+\n.+\n/,""))&&(n.stack+="\n"+e):n.stack=e}catch(i){}}throw n}}_request(t,e){"string"===typeof t?(e=e||{},e.url=t):e=t||{},e=Ee(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:r}=e;void 0!==n&&rn.assertOptions(n,{silentJSONParsing:sn.transitional(sn.boolean),forcedJSONParsing:sn.transitional(sn.boolean),clarifyTimeoutError:sn.transitional(sn.boolean)},!1),null!=i&&(ht.isFunction(i)?e.paramsSerializer={serialize:i}:rn.assertOptions(i,{encode:sn.function,serialize:sn.function},!0)),void 0!==e.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?e.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:e.allowAbsoluteUrls=!0),rn.assertOptions(e,{baseUrl:sn.spelling("baseURL"),withXsrfToken:sn.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=r&&ht.merge(r.common,r[e.method]);r&&ht.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete r[t]})),e.headers=ae.concat(s,r);const a=[];let o=!0;this.interceptors.request.forEach((function(t){"function"===typeof t.runWhen&&!1===t.runWhen(e)||(o=o&&t.synchronous,a.unshift(t.fulfilled,t.rejected))}));const l=[];let h;this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));let c,u=0;if(!o){const t=[Ze.bind(this),void 0];t.unshift.apply(t,a),t.push.apply(t,l),c=t.length,h=Promise.resolve(e);while(u<c)h=h.then(t[u++],t[u++]);return h}c=a.length;let d=e;u=0;while(u<c){const t=a[u++],e=a[u++];try{d=t(d)}catch(f){e.call(this,f);break}}try{h=Ze.call(this,d)}catch(f){return Promise.reject(f)}u=0,c=l.length;while(u<c)h=h.then(l[u++],l[u++]);return h}getUri(t){t=Ee(this.defaults,t);const e=Te(t.baseURL,t.url,t.allowAbsoluteUrls);return At(e,t.params,t.paramsSerializer)}}ht.forEach(["delete","get","head","options"],(function(t){an.prototype[t]=function(e,n){return this.request(Ee(n||{},{method:t,url:e,data:(n||{}).data}))}})),ht.forEach(["post","put","patch"],(function(t){function e(e){return function(n,i,r){return this.request(Ee(r||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:n,data:i}))}}an.prototype[t]=e(),an.prototype[t+"Form"]=e(!0)}));var on=an;class ln{constructor(t){if("function"!==typeof t)throw new TypeError("executor must be a function.");let e;this.promise=new Promise((function(t){e=t}));const n=this;this.promise.then((t=>{if(!n._listeners)return;let e=n._listeners.length;while(e-- >0)n._listeners[e](t);n._listeners=null})),this.promise.then=t=>{let e;const i=new Promise((t=>{n.subscribe(t),e=t})).then(t);return i.cancel=function(){n.unsubscribe(e)},i},t((function(t,i,r){n.reason||(n.reason=new ce(t,i,r),e(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}toAbortSignal(){const t=new AbortController,e=e=>{t.abort(e)};return this.subscribe(e),t.signal.unsubscribe=()=>this.unsubscribe(e),t.signal}static source(){let t;const e=new ln((function(e){t=e}));return{token:e,cancel:t}}}var hn=ln;function cn(t){return function(e){return t.apply(null,e)}}function un(t){return ht.isObject(t)&&!0===t.isAxiosError}const dn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(dn).forEach((([t,e])=>{dn[e]=t}));var fn=dn;function pn(t){const e=new on(t),n=s(on.prototype.request,e);return ht.extend(n,on.prototype,e,{allOwnKeys:!0}),ht.extend(n,e,null,{allOwnKeys:!0}),n.create=function(e){return pn(Ee(t,e))},n}const gn=pn(Jt);gn.Axios=on,gn.CanceledError=ce,gn.CancelToken=hn,gn.isCancel=le,gn.VERSION=Qe,gn.toFormData=xt,gn.AxiosError=ft,gn.Cancel=gn.CanceledError,gn.all=function(t){return Promise.all(t)},gn.spread=cn,gn.isAxiosError=un,gn.mergeConfig=Ee,gn.AxiosHeaders=ae,gn.formToJSON=t=>Gt(ht.isHTMLForm(t)?new FormData(t):t),gn.getAdapter=Ke.getAdapter,gn.HttpStatusCode=fn,gn.default=gn;var mn=gn;i(7642),i(8004),i(3853),i(5876),i(2475),i(5024),i(1698),i(116);
|
|
16
|
+
/**
|
|
17
|
+
* @license
|
|
18
|
+
* Copyright 2010-2025 Three.js Authors
|
|
19
|
+
* SPDX-License-Identifier: MIT
|
|
20
|
+
*/
|
|
21
|
+
const _n="173",vn=0,yn=1,bn=2,xn=1,wn=2,Sn=3,Tn=0,Mn=1,En=2,An=0,Rn=1,zn=2,Cn=3,Pn=4,kn=5,Dn=100,In=101,Ln=102,jn=103,Nn=104,On=200,Un=201,Bn=202,Fn=203,Hn=204,qn=205,Vn=206,Gn=207,Wn=208,Xn=209,Jn=210,Yn=211,Kn=212,$n=213,Zn=214,Qn=0,ti=1,ei=2,ni=3,ii=4,ri=5,si=6,ai=7,oi=0,li=1,hi=2,ci=0,ui=1,di=2,fi=3,pi=4,gi=5,mi=6,_i=7,vi=300,yi=301,bi=302,xi=303,wi=304,Si=306,Ti=1e3,Mi=1001,Ei=1002,Ai=1003,Ri=1004,zi=1005,Ci=1006,Pi=1007,ki=1008,Di=1009,Ii=1010,Li=1011,ji=1012,Ni=1013,Oi=1014,Ui=1015,Bi=1016,Fi=1017,Hi=1018,qi=1020,Vi=35902,Gi=1021,Wi=1022,Xi=1023,Ji=1024,Yi=1025,Ki=1026,$i=1027,Zi=1028,Qi=1029,tr=1030,er=1031,nr=1033,ir=33776,rr=33777,sr=33778,ar=33779,or=35840,lr=35841,hr=35842,cr=35843,ur=36196,dr=37492,fr=37496,pr=37808,gr=37809,mr=37810,_r=37811,vr=37812,yr=37813,br=37814,xr=37815,wr=37816,Sr=37817,Tr=37818,Mr=37819,Er=37820,Ar=37821,Rr=36492,zr=36494,Cr=36495,Pr=36283,kr=36284,Dr=36285,Ir=36286,Lr=2300,jr=2301,Nr=2302,Or=2400,Ur=2401,Br=2402,Fr=3200,Hr=3201,qr=0,Vr=1,Gr="",Wr="srgb",Xr="srgb-linear",Jr="linear",Yr="srgb",Kr=7680,$r=519,Zr=512,Qr=513,ts=514,es=515,ns=516,is=517,rs=518,ss=519,as=35044,os="300 es",ls=2e3,hs=2001;class cs{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){const n=this._listeners;return void 0!==n&&(void 0!==n[t]&&-1!==n[t].indexOf(e))}removeEventListener(t,e){const n=this._listeners;if(void 0===n)return;const i=n[t];if(void 0!==i){const t=i.indexOf(e);-1!==t&&i.splice(t,1)}}dispatchEvent(t){const e=this._listeners;if(void 0===e)return;const n=e[t.type];if(void 0!==n){t.target=this;const e=n.slice(0);for(let n=0,i=e.length;n<i;n++)e[n].call(this,t);t.target=null}}}const us=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];const ds=Math.PI/180,fs=180/Math.PI;function ps(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0,r=us[255&t]+us[t>>8&255]+us[t>>16&255]+us[t>>24&255]+"-"+us[255&e]+us[e>>8&255]+"-"+us[e>>16&15|64]+us[e>>24&255]+"-"+us[63&n|128]+us[n>>8&255]+"-"+us[n>>16&255]+us[n>>24&255]+us[255&i]+us[i>>8&255]+us[i>>16&255]+us[i>>24&255];return r.toLowerCase()}function gs(t,e,n){return Math.max(e,Math.min(n,t))}function ms(t,e){return(t%e+e)%e}function _s(t,e,n){return(1-n)*t+n*e}function vs(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function ys(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}class bs{constructor(t=0,e=0){bs.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=gs(this.x,t.x,e.x),this.y=gs(this.y,t.y,e.y),this}clampScalar(t,e){return this.x=gs(this.x,t,e),this.y=gs(this.y,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(gs(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){const t=Math.atan2(-this.y,-this.x)+Math.PI;return t}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(gs(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class xs{constructor(t,e,n,i,r,s,a,o,l){xs.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l)}set(t,e,n,i,r,s,a,o,l){const h=this.elements;return h[0]=t,h[1]=i,h[2]=a,h[3]=e,h[4]=r,h[5]=o,h[6]=n,h[7]=s,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],h=n[4],c=n[7],u=n[2],d=n[5],f=n[8],p=i[0],g=i[3],m=i[6],_=i[1],v=i[4],y=i[7],b=i[2],x=i[5],w=i[8];return r[0]=s*p+a*_+o*b,r[3]=s*g+a*v+o*x,r[6]=s*m+a*y+o*w,r[1]=l*p+h*_+c*b,r[4]=l*g+h*v+c*x,r[7]=l*m+h*y+c*w,r[2]=u*p+d*_+f*b,r[5]=u*g+d*v+f*x,r[8]=u*m+d*y+f*w,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],h=t[8];return e*s*h-e*a*l-n*r*h+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],h=t[8],c=h*s-a*l,u=a*o-h*r,d=l*r-s*o,f=e*c+n*u+i*d;if(0===f)return this.set(0,0,0,0,0,0,0,0,0);const p=1/f;return t[0]=c*p,t[1]=(i*l-h*n)*p,t[2]=(a*n-i*s)*p,t[3]=u*p,t[4]=(h*e-i*o)*p,t[5]=(i*r-a*e)*p,t[6]=d*p,t[7]=(n*o-l*e)*p,t[8]=(s*e-n*r)*p,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(ws.makeScale(t,e)),this}rotate(t){return this.premultiply(ws.makeRotation(-t)),this}translate(t,e){return this.premultiply(ws.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const ws=new xs;function Ss(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;function Ts(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function Ms(){const t=Ts("canvas");return t.style.display="block",t}const Es={};function As(t){t in Es||(Es[t]=!0,console.warn(t))}function Rs(t,e,n){return new Promise((function(i,r){function s(){switch(t.clientWaitSync(e,t.SYNC_FLUSH_COMMANDS_BIT,0)){case t.WAIT_FAILED:r();break;case t.TIMEOUT_EXPIRED:setTimeout(s,n);break;default:i()}}setTimeout(s,n)}))}function zs(t){const e=t.elements;e[2]=.5*e[2]+.5*e[3],e[6]=.5*e[6]+.5*e[7],e[10]=.5*e[10]+.5*e[11],e[14]=.5*e[14]+.5*e[15]}function Cs(t){const e=t.elements,n=-1===e[11];n?(e[10]=-e[10]-1,e[14]=-e[14]):(e[10]=-e[10],e[14]=1-e[14])}const Ps=(new xs).set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),ks=(new xs).set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Ds(){const t={enabled:!0,workingColorSpace:Xr,spaces:{},convert:function(t,e,n){return!1!==this.enabled&&e!==n&&e&&n?(this.spaces[e].transfer===Yr&&(t.r=Ls(t.r),t.g=Ls(t.g),t.b=Ls(t.b)),this.spaces[e].primaries!==this.spaces[n].primaries&&(t.applyMatrix3(this.spaces[e].toXYZ),t.applyMatrix3(this.spaces[n].fromXYZ)),this.spaces[n].transfer===Yr&&(t.r=js(t.r),t.g=js(t.g),t.b=js(t.b)),t):t},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)},getPrimaries:function(t){return this.spaces[t].primaries},getTransfer:function(t){return t===Gr?Jr:this.spaces[t].transfer},getLuminanceCoefficients:function(t,e=this.workingColorSpace){return t.fromArray(this.spaces[e].luminanceCoefficients)},define:function(t){Object.assign(this.spaces,t)},_getMatrix:function(t,e,n){return t.copy(this.spaces[e].toXYZ).multiply(this.spaces[n].fromXYZ)},_getDrawingBufferColorSpace:function(t){return this.spaces[t].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(t=this.workingColorSpace){return this.spaces[t].workingColorSpaceConfig.unpackColorSpace}},e=[.64,.33,.3,.6,.15,.06],n=[.2126,.7152,.0722],i=[.3127,.329];return t.define({[Xr]:{primaries:e,whitePoint:i,transfer:Jr,toXYZ:Ps,fromXYZ:ks,luminanceCoefficients:n,workingColorSpaceConfig:{unpackColorSpace:Wr},outputColorSpaceConfig:{drawingBufferColorSpace:Wr}},[Wr]:{primaries:e,whitePoint:i,transfer:Yr,toXYZ:Ps,fromXYZ:ks,luminanceCoefficients:n,outputColorSpaceConfig:{drawingBufferColorSpace:Wr}}}),t}const Is=Ds();function Ls(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function js(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}let Ns;class Os{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"===typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===Ns&&(Ns=Ts("canvas")),Ns.width=t.width,Ns.height=t.height;const n=Ns.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=Ns}return e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&t instanceof ImageBitmap){const e=Ts("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t<r.length;t++)r[t]=255*Ls(r[t]/255);return n.putImageData(i,0,0),e}if(t.data){const e=t.data.slice(0);for(let t=0;t<e.length;t++)e instanceof Uint8Array||e instanceof Uint8ClampedArray?e[t]=Math.floor(255*Ls(e[t]/255)):e[t]=Ls(e[t]);return{data:e,width:t.width,height:t.height}}return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),t}}let Us=0;class Bs{constructor(t=null){this.isSource=!0,Object.defineProperty(this,"id",{value:Us++}),this.uuid=ps(),this.data=t,this.dataReady=!0,this.version=0}set needsUpdate(t){!0===t&&this.version++}toJSON(t){const e=void 0===t||"string"===typeof t;if(!e&&void 0!==t.images[this.uuid])return t.images[this.uuid];const n={uuid:this.uuid,url:""},i=this.data;if(null!==i){let t;if(Array.isArray(i)){t=[];for(let e=0,n=i.length;e<n;e++)i[e].isDataTexture?t.push(Fs(i[e].image)):t.push(Fs(i[e]))}else t=Fs(i);n.url=t}return e||(t.images[this.uuid]=n),n}}function Fs(t){return"undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&t instanceof ImageBitmap?Os.getDataURL(t):t.data?{data:Array.from(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let Hs=0;class qs extends cs{constructor(t=qs.DEFAULT_IMAGE,e=qs.DEFAULT_MAPPING,n=Mi,i=Mi,r=Ci,s=ki,a=Xi,o=Di,l=qs.DEFAULT_ANISOTROPY,h=Gr){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:Hs++}),this.uuid=ps(),this.name="",this.source=new Bs(t),this.mipmaps=[],this.mapping=e,this.channel=0,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new bs(0,0),this.repeat=new bs(1,1),this.center=new bs(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new xs,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=h,this.userData={},this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.renderTarget=t.renderTarget,this.isRenderTargetTexture=t.isRenderTargetTexture,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}toJSON(t){const e=void 0===t||"string"===typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==vi)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Ti:t.x=t.x-Math.floor(t.x);break;case Mi:t.x=t.x<0?0:1;break;case Ei:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Ti:t.y=t.y-Math.floor(t.y);break;case Mi:t.y=t.y<0?0:1;break;case Ei:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){!0===t&&this.pmremVersion++}}qs.DEFAULT_IMAGE=null,qs.DEFAULT_MAPPING=vi,qs.DEFAULT_ANISOTROPY=1;class Vs{constructor(t=0,e=0,n=0,i=1){Vs.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],h=o[4],c=o[8],u=o[1],d=o[5],f=o[9],p=o[2],g=o[6],m=o[10];if(Math.abs(h-u)<s&&Math.abs(c-p)<s&&Math.abs(f-g)<s){if(Math.abs(h+u)<a&&Math.abs(c+p)<a&&Math.abs(f+g)<a&&Math.abs(l+d+m-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,o=(d+1)/2,_=(m+1)/2,v=(h+u)/4,y=(c+p)/4,b=(f+g)/4;return t>o&&t>_?t<s?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=v/n,r=y/n):o>_?o<s?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),n=v/i,r=b/i):_<s?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(_),n=y/r,i=b/r),this.set(n,i,r,e),this}let _=Math.sqrt((g-f)*(g-f)+(c-p)*(c-p)+(u-h)*(u-h));return Math.abs(_)<.001&&(_=1),this.x=(g-f)/_,this.y=(c-p)/_,this.z=(u-h)/_,this.w=Math.acos((l+d+m-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=gs(this.x,t.x,e.x),this.y=gs(this.y,t.y,e.y),this.z=gs(this.z,t.z,e.z),this.w=gs(this.w,t.w,e.w),this}clampScalar(t,e){return this.x=gs(this.x,t,e),this.y=gs(this.y,t,e),this.z=gs(this.z,t,e),this.w=gs(this.w,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(gs(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class Gs extends cs{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Vs(0,0,t,e),this.scissorTest=!1,this.viewport=new Vs(0,0,t,e);const i={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Ci,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const r=new qs(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);r.flipY=!1,r.generateMipmaps=n.generateMipmaps,r.internalFormat=n.internalFormat,this.textures=[];const s=n.count;for(let a=0;a<s;a++)this.textures[a]=r.clone(),this.textures[a].isRenderTargetTexture=!0,this.textures[a].renderTarget=this;this.depthBuffer=n.depthBuffer,this.stencilBuffer=n.stencilBuffer,this.resolveDepthBuffer=n.resolveDepthBuffer,this.resolveStencilBuffer=n.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=n.depthTexture,this.samples=n.samples}get texture(){return this.textures[0]}set texture(t){this.textures[0]=t}set depthTexture(t){null!==this._depthTexture&&(this._depthTexture.renderTarget=null),null!==t&&(t.renderTarget=this),this._depthTexture=t}get depthTexture(){return this._depthTexture}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,r=this.textures.length;i<r;i++)this.textures[i].image.width=t,this.textures[i].image.height=e,this.textures[i].image.depth=n;this.dispose()}this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.textures.length=0;for(let n=0,i=t.textures.length;n<i;n++)this.textures[n]=t.textures[n].clone(),this.textures[n].isRenderTargetTexture=!0,this.textures[n].renderTarget=this;const e=Object.assign({},t.texture.image);return this.texture.source=new Bs(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.resolveDepthBuffer=t.resolveDepthBuffer,this.resolveStencilBuffer=t.resolveStencilBuffer,null!==t.depthTexture&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Ws extends Gs{constructor(t=1,e=1,n={}){super(t,e,n),this.isWebGLRenderTarget=!0}}class Xs extends qs{constructor(t=null,e=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=Ai,this.minFilter=Ai,this.wrapR=Mi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class Js extends qs{constructor(t=null,e=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=Ai,this.minFilter=Ai,this.wrapR=Mi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Ys{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=i}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],l=n[i+1],h=n[i+2],c=n[i+3];const u=r[s+0],d=r[s+1],f=r[s+2],p=r[s+3];if(0===a)return t[e+0]=o,t[e+1]=l,t[e+2]=h,void(t[e+3]=c);if(1===a)return t[e+0]=u,t[e+1]=d,t[e+2]=f,void(t[e+3]=p);if(c!==p||o!==u||l!==d||h!==f){let t=1-a;const e=o*u+l*d+h*f+c*p,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,h=h*t+f*r,c=c*t+p*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+h*h+c*c);o*=t,l*=t,h*=t,c*=t}}t[e]=o,t[e+1]=l,t[e+2]=h,t[e+3]=c}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],h=n[i+3],c=r[s],u=r[s+1],d=r[s+2],f=r[s+3];return t[e]=a*f+h*c+o*d-l*u,t[e+1]=o*f+h*u+l*c-a*d,t[e+2]=l*f+h*d+a*u-o*c,t[e+3]=h*f-a*c-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),h=a(i/2),c=a(r/2),u=o(n/2),d=o(i/2),f=o(r/2);switch(s){case"XYZ":this._x=u*h*c+l*d*f,this._y=l*d*c-u*h*f,this._z=l*h*f+u*d*c,this._w=l*h*c-u*d*f;break;case"YXZ":this._x=u*h*c+l*d*f,this._y=l*d*c-u*h*f,this._z=l*h*f-u*d*c,this._w=l*h*c+u*d*f;break;case"ZXY":this._x=u*h*c-l*d*f,this._y=l*d*c+u*h*f,this._z=l*h*f+u*d*c,this._w=l*h*c-u*d*f;break;case"ZYX":this._x=u*h*c-l*d*f,this._y=l*d*c+u*h*f,this._z=l*h*f-u*d*c,this._w=l*h*c+u*d*f;break;case"YZX":this._x=u*h*c+l*d*f,this._y=l*d*c+u*h*f,this._z=l*h*f-u*d*c,this._w=l*h*c-u*d*f;break;case"XZY":this._x=u*h*c-l*d*f,this._y=l*d*c-u*h*f,this._z=l*h*f+u*d*c,this._w=l*h*c+u*d*f;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!0===e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],h=e[6],c=e[10],u=n+a+c;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(h-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>c){const t=2*Math.sqrt(1+n-a-c);this._w=(h-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>c){const t=2*Math.sqrt(1+a-n-c);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+h)/t}else{const t=2*Math.sqrt(1+c-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+h)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(gs(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,h=e._w;return this._x=n*h+s*a+i*l-r*o,this._y=i*h+s*o+r*a-n*l,this._z=r*h+s*l+n*o-i*a,this._w=s*h-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this}const l=Math.sqrt(o),h=Math.atan2(l,a),c=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=s*c+this._w*u,this._x=n*c+this._x*u,this._y=i*c+this._y*u,this._z=r*c+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(i*Math.sin(t),i*Math.cos(t),r*Math.sin(e),r*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Ks{constructor(t=0,e=0,n=0){Ks.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Zs.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Zs.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=2*(s*i-a*n),h=2*(a*e-r*i),c=2*(r*n-s*e);return this.x=e+o*l+s*c-a*h,this.y=n+o*h+a*l-r*c,this.z=i+o*c+r*h-s*l,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=gs(this.x,t.x,e.x),this.y=gs(this.y,t.y,e.y),this.z=gs(this.z,t.z,e.z),this}clampScalar(t,e){return this.x=gs(this.x,t,e),this.y=gs(this.y,t,e),this.z=gs(this.z,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(gs(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return $s.copy(this).projectOnVector(t),this.sub($s)}reflect(t){return this.sub($s.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(gs(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=2*Math.random()-1,n=Math.sqrt(1-e*e);return this.x=n*Math.cos(t),this.y=e,this.z=n*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const $s=new Ks,Zs=new Ys;class Qs{constructor(t=new Ks(1/0,1/0,1/0),e=new Ks(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e+=3)this.expandByPoint(ea.fromArray(t,e));return this}setFromBufferAttribute(t){this.makeEmpty();for(let e=0,n=t.count;e<n;e++)this.expandByPoint(ea.fromBufferAttribute(t,e));return this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=ea.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t,e=!1){return this.makeEmpty(),this.expandByObject(t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t,e=!1){t.updateWorldMatrix(!1,!1);const n=t.geometry;if(void 0!==n){const i=n.getAttribute("position");if(!0===e&&void 0!==i&&!0!==t.isInstancedMesh)for(let e=0,n=i.count;e<n;e++)!0===t.isMesh?t.getVertexPosition(e,ea):ea.fromBufferAttribute(i,e),ea.applyMatrix4(t.matrixWorld),this.expandByPoint(ea);else void 0!==t.boundingBox?(null===t.boundingBox&&t.computeBoundingBox(),na.copy(t.boundingBox)):(null===n.boundingBox&&n.computeBoundingBox(),na.copy(n.boundingBox)),na.applyMatrix4(t.matrixWorld),this.union(na)}const i=t.children;for(let r=0,s=i.length;r<s;r++)this.expandByObject(i[r],e);return this}containsPoint(t){return t.x>=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,ea),ea.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ha),ca.subVectors(this.max,ha),ia.subVectors(t.a,ha),ra.subVectors(t.b,ha),sa.subVectors(t.c,ha),aa.subVectors(ra,ia),oa.subVectors(sa,ra),la.subVectors(ia,sa);let e=[0,-aa.z,aa.y,0,-oa.z,oa.y,0,-la.z,la.y,aa.z,0,-aa.x,oa.z,0,-oa.x,la.z,0,-la.x,-aa.y,aa.x,0,-oa.y,oa.x,0,-la.y,la.x,0];return!!fa(e,ia,ra,sa,ca)&&(e=[1,0,0,0,1,0,0,0,1],!!fa(e,ia,ra,sa,ca)&&(ua.crossVectors(aa,oa),e=[ua.x,ua.y,ua.z],fa(e,ia,ra,sa,ca)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,ea).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(ea).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(ta[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ta[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ta[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ta[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ta[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ta[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ta[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ta[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ta)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const ta=[new Ks,new Ks,new Ks,new Ks,new Ks,new Ks,new Ks,new Ks],ea=new Ks,na=new Qs,ia=new Ks,ra=new Ks,sa=new Ks,aa=new Ks,oa=new Ks,la=new Ks,ha=new Ks,ca=new Ks,ua=new Ks,da=new Ks;function fa(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){da.fromArray(t,s);const a=r.x*Math.abs(da.x)+r.y*Math.abs(da.y)+r.z*Math.abs(da.z),o=e.dot(da),l=n.dot(da),h=i.dot(da);if(Math.max(-Math.max(o,l,h),Math.min(o,l,h))>a)return!1}return!0}const pa=new Qs,ga=new Ks,ma=new Ks;class _a{constructor(t=new Ks,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):pa.setFromPoints(t).getCenter(n);let i=0;for(let r=0,s=t.length;r<s;r++)i=Math.max(i,n.distanceToSquared(t[r]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;ga.subVectors(t,this.center);const e=ga.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(ga,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(ma.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(ga.copy(t.center).add(ma)),this.expandByPoint(ga.copy(t.center).sub(ma))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const va=new Ks,ya=new Ks,ba=new Ks,xa=new Ks,wa=new Ks,Sa=new Ks,Ta=new Ks;class Ma{constructor(t=new Ks,e=new Ks(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,va)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=va.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(va.copy(this.origin).addScaledVector(this.direction,e),va.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){ya.copy(t).add(e).multiplyScalar(.5),ba.copy(e).sub(t).normalize(),xa.copy(this.origin).sub(ya);const r=.5*t.distanceTo(e),s=-this.direction.dot(ba),a=xa.dot(this.direction),o=-xa.dot(ba),l=xa.lengthSq(),h=Math.abs(1-s*s);let c,u,d,f;if(h>0)if(c=s*o-a,u=s*a-o,f=r*h,c>=0)if(u>=-f)if(u<=f){const t=1/h;c*=t,u*=t,d=c*(c+s*u+2*a)+u*(s*c+u+2*o)+l}else u=r,c=Math.max(0,-(s*u+a)),d=-c*c+u*(u+2*o)+l;else u=-r,c=Math.max(0,-(s*u+a)),d=-c*c+u*(u+2*o)+l;else u<=-f?(c=Math.max(0,-(-s*r+a)),u=c>0?-r:Math.min(Math.max(-r,-o),r),d=-c*c+u*(u+2*o)+l):u<=f?(c=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(c=Math.max(0,-(s*r+a)),u=c>0?r:Math.min(Math.max(-r,-o),r),d=-c*c+u*(u+2*o)+l);else u=s>0?-r:r,c=Math.max(0,-(s*u+a)),d=-c*c+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,c),i&&i.copy(ya).addScaledVector(ba,u),d}intersectSphere(t,e){va.subVectors(t.center,this.origin);const n=va.dot(this.direction),i=va.dot(va)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;const n=t.normal.dot(this.direction);return n*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,h=1/this.direction.y,c=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),h>=0?(r=(t.min.y-u.y)*h,s=(t.max.y-u.y)*h):(r=(t.max.y-u.y)*h,s=(t.min.y-u.y)*h),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s<i||isNaN(i))&&(i=s),c>=0?(a=(t.min.z-u.z)*c,o=(t.max.z-u.z)*c):(a=(t.max.z-u.z)*c,o=(t.min.z-u.z)*c),n>o||a>i?null:((a>n||n!==n)&&(n=a),(o<i||i!==i)&&(i=o),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,va)}intersectTriangle(t,e,n,i,r){wa.subVectors(e,t),Sa.subVectors(n,t),Ta.crossVectors(wa,Sa);let s,a=this.direction.dot(Ta);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}xa.subVectors(this.origin,t);const o=s*this.direction.dot(Sa.crossVectors(xa,Sa));if(o<0)return null;const l=s*this.direction.dot(wa.cross(xa));if(l<0)return null;if(o+l>a)return null;const h=-s*xa.dot(Ta);return h<0?null:this.at(h/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Ea{constructor(t,e,n,i,r,s,a,o,l,h,c,u,d,f,p,g){Ea.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l,h,c,u,d,f,p,g)}set(t,e,n,i,r,s,a,o,l,h,c,u,d,f,p,g){const m=this.elements;return m[0]=t,m[4]=e,m[8]=n,m[12]=i,m[1]=r,m[5]=s,m[9]=a,m[13]=o,m[2]=l,m[6]=h,m[10]=c,m[14]=u,m[3]=d,m[7]=f,m[11]=p,m[15]=g,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Ea).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/Aa.setFromMatrixColumn(t,0).length(),r=1/Aa.setFromMatrixColumn(t,1).length(),s=1/Aa.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),h=Math.cos(r),c=Math.sin(r);if("XYZ"===t.order){const t=s*h,n=s*c,i=a*h,r=a*c;e[0]=o*h,e[4]=-o*c,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*h,n=o*c,i=l*h,r=l*c;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*c,e[5]=s*h,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*h,n=o*c,i=l*h,r=l*c;e[0]=t-r*a,e[4]=-s*c,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*h,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*h,n=s*c,i=a*h,r=a*c;e[0]=o*h,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*c,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*h,e[4]=r-t*c,e[8]=i*c+n,e[1]=c,e[5]=s*h,e[9]=-a*h,e[2]=-l*h,e[6]=n*c+i,e[10]=t-r*c}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*h,e[4]=-c,e[8]=l*h,e[1]=t*c+r,e[5]=s*h,e[9]=n*c-i,e[2]=i*c-n,e[6]=a*h,e[10]=r*c+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(za,t,Ca)}lookAt(t,e,n){const i=this.elements;return Da.subVectors(t,e),0===Da.lengthSq()&&(Da.z=1),Da.normalize(),Pa.crossVectors(n,Da),0===Pa.lengthSq()&&(1===Math.abs(n.z)?Da.x+=1e-4:Da.z+=1e-4,Da.normalize(),Pa.crossVectors(n,Da)),Pa.normalize(),ka.crossVectors(Da,Pa),i[0]=Pa.x,i[4]=ka.x,i[8]=Da.x,i[1]=Pa.y,i[5]=ka.y,i[9]=Da.y,i[2]=Pa.z,i[6]=ka.z,i[10]=Da.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],h=n[1],c=n[5],u=n[9],d=n[13],f=n[2],p=n[6],g=n[10],m=n[14],_=n[3],v=n[7],y=n[11],b=n[15],x=i[0],w=i[4],S=i[8],T=i[12],M=i[1],E=i[5],A=i[9],R=i[13],z=i[2],C=i[6],P=i[10],k=i[14],D=i[3],I=i[7],L=i[11],j=i[15];return r[0]=s*x+a*M+o*z+l*D,r[4]=s*w+a*E+o*C+l*I,r[8]=s*S+a*A+o*P+l*L,r[12]=s*T+a*R+o*k+l*j,r[1]=h*x+c*M+u*z+d*D,r[5]=h*w+c*E+u*C+d*I,r[9]=h*S+c*A+u*P+d*L,r[13]=h*T+c*R+u*k+d*j,r[2]=f*x+p*M+g*z+m*D,r[6]=f*w+p*E+g*C+m*I,r[10]=f*S+p*A+g*P+m*L,r[14]=f*T+p*R+g*k+m*j,r[3]=_*x+v*M+y*z+b*D,r[7]=_*w+v*E+y*C+b*I,r[11]=_*S+v*A+y*P+b*L,r[15]=_*T+v*R+y*k+b*j,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],h=t[2],c=t[6],u=t[10],d=t[14],f=t[3],p=t[7],g=t[11],m=t[15];return f*(+r*o*c-i*l*c-r*a*u+n*l*u+i*a*d-n*o*d)+p*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*h-r*o*h)+g*(+e*l*c-e*a*d-r*s*c+n*s*d+r*a*h-n*l*h)+m*(-i*a*h-e*o*c+e*a*u+i*s*c-n*s*u+n*o*h)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],h=t[8],c=t[9],u=t[10],d=t[11],f=t[12],p=t[13],g=t[14],m=t[15],_=c*g*l-p*u*l+p*o*d-a*g*d-c*o*m+a*u*m,v=f*u*l-h*g*l-f*o*d+s*g*d+h*o*m-s*u*m,y=h*p*l-f*c*l+f*a*d-s*p*d-h*a*m+s*c*m,b=f*c*o-h*p*o-f*a*u+s*p*u+h*a*g-s*c*g,x=e*_+n*v+i*y+r*b;if(0===x)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/x;return t[0]=_*w,t[1]=(p*u*r-c*g*r-p*i*d+n*g*d+c*i*m-n*u*m)*w,t[2]=(a*g*r-p*o*r+p*i*l-n*g*l-a*i*m+n*o*m)*w,t[3]=(c*o*r-a*u*r-c*i*l+n*u*l+a*i*d-n*o*d)*w,t[4]=v*w,t[5]=(h*g*r-f*u*r+f*i*d-e*g*d-h*i*m+e*u*m)*w,t[6]=(f*o*r-s*g*r-f*i*l+e*g*l+s*i*m-e*o*m)*w,t[7]=(s*u*r-h*o*r+h*i*l-e*u*l-s*i*d+e*o*d)*w,t[8]=y*w,t[9]=(f*c*r-h*p*r-f*n*d+e*p*d+h*n*m-e*c*m)*w,t[10]=(s*p*r-f*a*r+f*n*l-e*p*l-s*n*m+e*a*m)*w,t[11]=(h*a*r-s*c*r-h*n*l+e*c*l+s*n*d-e*a*d)*w,t[12]=b*w,t[13]=(h*p*i-f*c*i+f*n*u-e*p*u-h*n*g+e*c*g)*w,t[14]=(f*a*i-s*p*i-f*n*o+e*p*o+s*n*g-e*a*g)*w,t[15]=(s*c*i-h*a*i+h*n*o-e*c*o-s*n*u+e*a*u)*w,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,h=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,h*a+n,h*o-i*s,0,l*o-i*a,h*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,h=s+s,c=a+a,u=r*l,d=r*h,f=r*c,p=s*h,g=s*c,m=a*c,_=o*l,v=o*h,y=o*c,b=n.x,x=n.y,w=n.z;return i[0]=(1-(p+m))*b,i[1]=(d+y)*b,i[2]=(f-v)*b,i[3]=0,i[4]=(d-y)*x,i[5]=(1-(u+m))*x,i[6]=(g+_)*x,i[7]=0,i[8]=(f+v)*w,i[9]=(g-_)*w,i[10]=(1-(u+p))*w,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=Aa.set(i[0],i[1],i[2]).length();const s=Aa.set(i[4],i[5],i[6]).length(),a=Aa.set(i[8],i[9],i[10]).length(),o=this.determinant();o<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Ra.copy(this);const l=1/r,h=1/s,c=1/a;return Ra.elements[0]*=l,Ra.elements[1]*=l,Ra.elements[2]*=l,Ra.elements[4]*=h,Ra.elements[5]*=h,Ra.elements[6]*=h,Ra.elements[8]*=c,Ra.elements[9]*=c,Ra.elements[10]*=c,e.setFromRotationMatrix(Ra),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s,a=ls){const o=this.elements,l=2*r/(e-t),h=2*r/(n-i),c=(e+t)/(e-t),u=(n+i)/(n-i);let d,f;if(a===ls)d=-(s+r)/(s-r),f=-2*s*r/(s-r);else{if(a!==hs)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);d=-s/(s-r),f=-s*r/(s-r)}return o[0]=l,o[4]=0,o[8]=c,o[12]=0,o[1]=0,o[5]=h,o[9]=u,o[13]=0,o[2]=0,o[6]=0,o[10]=d,o[14]=f,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,r,s,a=ls){const o=this.elements,l=1/(e-t),h=1/(n-i),c=1/(s-r),u=(e+t)*l,d=(n+i)*h;let f,p;if(a===ls)f=(s+r)*c,p=-2*c;else{if(a!==hs)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);f=r*c,p=-1*c}return o[0]=2*l,o[4]=0,o[8]=0,o[12]=-u,o[1]=0,o[5]=2*h,o[9]=0,o[13]=-d,o[2]=0,o[6]=0,o[10]=p,o[14]=-f,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Aa=new Ks,Ra=new Ea,za=new Ks(0,0,0),Ca=new Ks(1,1,1),Pa=new Ks,ka=new Ks,Da=new Ks,Ia=new Ea,La=new Ys;class ja{constructor(t=0,e=0,n=0,i=ja.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],h=i[9],c=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(gs(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-gs(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-c,r),this._z=0);break;case"ZXY":this._x=Math.asin(gs(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-c,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-gs(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(gs(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-c,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-gs(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-h,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Ia.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Ia,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return La.setFromEuler(this),this.setFromQuaternion(La,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ja.DEFAULT_ORDER="XYZ";class Na{constructor(){this.mask=1}set(t){this.mask=1<<t>>>0}enable(t){this.mask|=1<<t}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t}disable(t){this.mask&=~(1<<t)}disableAll(){this.mask=0}test(t){return 0!==(this.mask&t.mask)}isEnabled(t){return 0!==(this.mask&1<<t)}}let Oa=0;const Ua=new Ks,Ba=new Ys,Fa=new Ea,Ha=new Ks,qa=new Ks,Va=new Ks,Ga=new Ys,Wa=new Ks(1,0,0),Xa=new Ks(0,1,0),Ja=new Ks(0,0,1),Ya={type:"added"},Ka={type:"removed"},$a={type:"childadded",child:null},Za={type:"childremoved",child:null};class Qa extends cs{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:Oa++}),this.uuid=ps(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Qa.DEFAULT_UP.clone();const t=new Ks,e=new ja,n=new Ys,i=new Ks(1,1,1);function r(){n.setFromEuler(e,!1)}function s(){e.setFromQuaternion(n,void 0,!1)}e._onChange(r),n._onChange(s),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new Ea},normalMatrix:{value:new xs}}),this.matrix=new Ea,this.matrixWorld=new Ea,this.matrixAutoUpdate=Qa.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=Qa.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new Na,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return Ba.setFromAxisAngle(t,e),this.quaternion.multiply(Ba),this}rotateOnWorldAxis(t,e){return Ba.setFromAxisAngle(t,e),this.quaternion.premultiply(Ba),this}rotateX(t){return this.rotateOnAxis(Wa,t)}rotateY(t){return this.rotateOnAxis(Xa,t)}rotateZ(t){return this.rotateOnAxis(Ja,t)}translateOnAxis(t,e){return Ua.copy(t).applyQuaternion(this.quaternion),this.position.add(Ua.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(Wa,t)}translateY(t){return this.translateOnAxis(Xa,t)}translateZ(t){return this.translateOnAxis(Ja,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(Fa.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Ha.copy(t):Ha.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),qa.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Fa.lookAt(qa,Ha,this.up):Fa.lookAt(Ha,qa,this.up),this.quaternion.setFromRotationMatrix(Fa),i&&(Fa.extractRotation(i.matrixWorld),Ba.setFromRotationMatrix(Fa),this.quaternion.premultiply(Ba.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(t.removeFromParent(),t.parent=this,this.children.push(t),t.dispatchEvent(Ya),$a.child=t,this.dispatchEvent($a),$a.child=null):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(Ka),Za.child=t,this.dispatchEvent(Za),Za.child=null),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){return this.remove(...this.children)}attach(t){return this.updateWorldMatrix(!0,!1),Fa.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),Fa.multiply(t.parent.matrixWorld)),t.applyMatrix4(Fa),t.removeFromParent(),t.parent=this,this.children.push(t),t.updateWorldMatrix(!1,!0),t.dispatchEvent(Ya),$a.child=t,this.dispatchEvent($a),$a.child=null,this}getObjectById(t){return this.getObjectByProperty("id",t)}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n],r=i.getObjectByProperty(t,e);if(void 0!==r)return r}}getObjectsByProperty(t,e,n=[]){this[t]===e&&n.push(this);const i=this.children;for(let r=0,s=i.length;r<s;r++)i[r].getObjectsByProperty(t,e,n);return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(qa,t,Va),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(qa,Ga,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++){const i=e[n];i.updateMatrixWorld(t)}}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++){const n=t[e];n.updateWorldMatrix(!1,!0)}}}toJSON(t){const e=void 0===t||"string"===typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},n.metadata={version:4.6,type:"Object",generator:"Object3D.toJSON"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map((t=>({boxInitialized:t.boxInitialized,boxMin:t.box.min.toArray(),boxMax:t.box.max.toArray(),sphereInitialized:t.sphereInitialized,sphereRadius:t.sphere.radius,sphereCenter:t.sphere.center.toArray()}))),i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(t),null!==this._colorsTexture&&(i.colorsTexture=this._colorsTexture.toJSON(t)),null!==this.boundingSphere&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),null!==this.boundingBox&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];r(t.shapes,i)}else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(r(t.animations,n))}}if(e){const e=s(t.geometries),i=s(t.materials),r=s(t.textures),a=s(t.images),o=s(t.shapes),l=s(t.skeletons),h=s(t.animations),c=s(t.nodes);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),h.length>0&&(n.animations=h),c.length>0&&(n.nodes=c)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let n=0;n<t.children.length;n++){const e=t.children[n];this.add(e.clone())}return this}}Qa.DEFAULT_UP=new Ks(0,1,0),Qa.DEFAULT_MATRIX_AUTO_UPDATE=!0,Qa.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const to=new Ks,eo=new Ks,no=new Ks,io=new Ks,ro=new Ks,so=new Ks,ao=new Ks,oo=new Ks,lo=new Ks,ho=new Ks,co=new Vs,uo=new Vs,fo=new Vs;class po{constructor(t=new Ks,e=new Ks,n=new Ks){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),to.subVectors(t,e),i.cross(to);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){to.subVectors(i,e),eo.subVectors(n,e),no.subVectors(t,e);const s=to.dot(to),a=to.dot(eo),o=to.dot(no),l=eo.dot(eo),h=eo.dot(no),c=s*l-a*a;if(0===c)return r.set(0,0,0),null;const u=1/c,d=(l*o-a*h)*u,f=(s*h-a*o)*u;return r.set(1-d-f,f,d)}static containsPoint(t,e,n,i){return null!==this.getBarycoord(t,e,n,i,io)&&(io.x>=0&&io.y>=0&&io.x+io.y<=1)}static getInterpolation(t,e,n,i,r,s,a,o){return null===this.getBarycoord(t,e,n,i,io)?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(r,io.x),o.addScaledVector(s,io.y),o.addScaledVector(a,io.z),o)}static getInterpolatedAttribute(t,e,n,i,r,s){return co.setScalar(0),uo.setScalar(0),fo.setScalar(0),co.fromBufferAttribute(t,e),uo.fromBufferAttribute(t,n),fo.fromBufferAttribute(t,i),s.setScalar(0),s.addScaledVector(co,r.x),s.addScaledVector(uo,r.y),s.addScaledVector(fo,r.z),s}static isFrontFacing(t,e,n,i){return to.subVectors(n,e),eo.subVectors(t,e),to.cross(eo).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return to.subVectors(this.c,this.b),eo.subVectors(this.a,this.b),.5*to.cross(eo).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return po.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return po.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,i,r){return po.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return po.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return po.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ro.subVectors(i,n),so.subVectors(r,n),oo.subVectors(t,n);const o=ro.dot(oo),l=so.dot(oo);if(o<=0&&l<=0)return e.copy(n);lo.subVectors(t,i);const h=ro.dot(lo),c=so.dot(lo);if(h>=0&&c<=h)return e.copy(i);const u=o*c-h*l;if(u<=0&&o>=0&&h<=0)return s=o/(o-h),e.copy(n).addScaledVector(ro,s);ho.subVectors(t,r);const d=ro.dot(ho),f=so.dot(ho);if(f>=0&&d<=f)return e.copy(r);const p=d*l-o*f;if(p<=0&&l>=0&&f<=0)return a=l/(l-f),e.copy(n).addScaledVector(so,a);const g=h*f-d*c;if(g<=0&&c-h>=0&&d-f>=0)return ao.subVectors(r,i),a=(c-h)/(c-h+(d-f)),e.copy(i).addScaledVector(ao,a);const m=1/(g+p+u);return s=p*m,a=u*m,e.copy(n).addScaledVector(ro,s).addScaledVector(so,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const go={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},mo={h:0,s:0,l:0},_o={h:0,s:0,l:0};function vo(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class yo{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"===typeof e?this.setHex(e):"string"===typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Wr){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,Is.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=Is.workingColorSpace){return this.r=t,this.g=e,this.b=n,Is.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=Is.workingColorSpace){if(t=ms(t,1),e=gs(e,0,1),n=gs(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=vo(r,i,t+1/3),this.g=vo(r,i,t),this.b=vo(r,i,t-1/3)}return Is.toWorkingColorSpace(this,i),this}setStyle(t,e=Wr){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Wr){const n=go[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Ls(t.r),this.g=Ls(t.g),this.b=Ls(t.b),this}copyLinearToSRGB(t){return this.r=js(t.r),this.g=js(t.g),this.b=js(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Wr){return Is.fromWorkingColorSpace(bo.copy(this),t),65536*Math.round(gs(255*bo.r,0,255))+256*Math.round(gs(255*bo.g,0,255))+Math.round(gs(255*bo.b,0,255))}getHexString(t=Wr){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Is.workingColorSpace){Is.fromWorkingColorSpace(bo.copy(this),e);const n=bo.r,i=bo.g,r=bo.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const h=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=h<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i<r?6:0);break;case i:o=(r-n)/t+2;break;case r:o=(n-i)/t+4;break}o/=6}return t.h=o,t.s=l,t.l=h,t}getRGB(t,e=Is.workingColorSpace){return Is.fromWorkingColorSpace(bo.copy(this),e),t.r=bo.r,t.g=bo.g,t.b=bo.b,t}getStyle(t=Wr){Is.fromWorkingColorSpace(bo.copy(this),t);const e=bo.r,n=bo.g,i=bo.b;return t!==Wr?`color(${t} ${e.toFixed(3)} ${n.toFixed(3)} ${i.toFixed(3)})`:`rgb(${Math.round(255*e)},${Math.round(255*n)},${Math.round(255*i)})`}offsetHSL(t,e,n){return this.getHSL(mo),this.setHSL(mo.h+t,mo.s+e,mo.l+n)}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(mo),t.getHSL(_o);const n=_s(mo.h,_o.h,e),i=_s(mo.s,_o.s,e),r=_s(mo.l,_o.l,e);return this.setHSL(n,i,r),this}setFromVector3(t){return this.r=t.x,this.g=t.y,this.b=t.z,this}applyMatrix3(t){const e=this.r,n=this.g,i=this.b,r=t.elements;return this.r=r[0]*e+r[3]*n+r[6]*i,this.g=r[1]*e+r[4]*n+r[7]*i,this.b=r[2]*e+r[5]*n+r[8]*i,this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const bo=new yo;yo.NAMES=go;let xo=0;class wo extends cs{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:xo++}),this.uuid=ps(),this.name="",this.type="Material",this.blending=Rn,this.side=Tn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=Hn,this.blendDst=qn,this.blendEquation=Dn,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new yo(0,0,0),this.blendAlpha=0,this.depthFunc=ni,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=$r,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Kr,this.stencilZFail=Kr,this.stencilZPass=Kr,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!==t>0&&this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"===typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(n.dispersion=this.dispersion),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapRotation&&(n.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Rn&&(n.blending=this.blending),this.side!==Tn&&(n.side=this.side),!0===this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=!0),this.blendSrc!==Hn&&(n.blendSrc=this.blendSrc),this.blendDst!==qn&&(n.blendDst=this.blendDst),this.blendEquation!==Dn&&(n.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(n.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(n.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==ni&&(n.depthFunc=this.depthFunc),!1===this.depthTest&&(n.depthTest=this.depthTest),!1===this.depthWrite&&(n.depthWrite=this.depthWrite),!1===this.colorWrite&&(n.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==$r&&(n.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(n.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Kr&&(n.stencilFail=this.stencilFail),this.stencilZFail!==Kr&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==Kr&&(n.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(n.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=!0),!0===this.alphaToCoverage&&(n.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=!0),!0===this.forceSinglePass&&(n.forceSinglePass=!0),!0===this.wireframe&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class So extends wo{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new yo(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ja,this.combine=oi,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const To=new Ks,Mo=new bs;let Eo=0;class Ao{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:Eo++}),this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=as,this.updateRanges=[],this.gpuType=Ui,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)Mo.fromBufferAttribute(this,e),Mo.applyMatrix3(t),this.setXY(e,Mo.x,Mo.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)To.fromBufferAttribute(this,e),To.applyMatrix3(t),this.setXYZ(e,To.x,To.y,To.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)To.fromBufferAttribute(this,e),To.applyMatrix4(t),this.setXYZ(e,To.x,To.y,To.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)To.fromBufferAttribute(this,e),To.applyNormalMatrix(t),this.setXYZ(e,To.x,To.y,To.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)To.fromBufferAttribute(this,e),To.transformDirection(t),this.setXYZ(e,To.x,To.y,To.z);return this}set(t,e=0){return this.array.set(t,e),this}getComponent(t,e){let n=this.array[t*this.itemSize+e];return this.normalized&&(n=vs(n,this.array)),n}setComponent(t,e,n){return this.normalized&&(n=ys(n,this.array)),this.array[t*this.itemSize+e]=n,this}getX(t){let e=this.array[t*this.itemSize];return this.normalized&&(e=vs(e,this.array)),e}setX(t,e){return this.normalized&&(e=ys(e,this.array)),this.array[t*this.itemSize]=e,this}getY(t){let e=this.array[t*this.itemSize+1];return this.normalized&&(e=vs(e,this.array)),e}setY(t,e){return this.normalized&&(e=ys(e,this.array)),this.array[t*this.itemSize+1]=e,this}getZ(t){let e=this.array[t*this.itemSize+2];return this.normalized&&(e=vs(e,this.array)),e}setZ(t,e){return this.normalized&&(e=ys(e,this.array)),this.array[t*this.itemSize+2]=e,this}getW(t){let e=this.array[t*this.itemSize+3];return this.normalized&&(e=vs(e,this.array)),e}setW(t,e){return this.normalized&&(e=ys(e,this.array)),this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.normalized&&(e=ys(e,this.array),n=ys(n,this.array)),this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.normalized&&(e=ys(e,this.array),n=ys(n,this.array),i=ys(i,this.array)),this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.normalized&&(e=ys(e,this.array),n=ys(n,this.array),i=ys(i,this.array),r=ys(r,this.array)),this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return""!==this.name&&(t.name=this.name),this.usage!==as&&(t.usage=this.usage),t}}class Ro extends Ao{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class zo extends Ao{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class Co extends Ao{constructor(t,e,n){super(new Float32Array(t),e,n)}}let Po=0;const ko=new Ea,Do=new Qa,Io=new Ks,Lo=new Qs,jo=new Qs,No=new Ks;class Oo extends cs{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:Po++}),this.uuid=ps(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(Ss(t)?zo:Ro)(t,1):this.index=t,this}setIndirect(t){return this.indirect=t,this}getIndirect(){return this.indirect}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new xs).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return ko.makeRotationFromQuaternion(t),this.applyMatrix4(ko),this}rotateX(t){return ko.makeRotationX(t),this.applyMatrix4(ko),this}rotateY(t){return ko.makeRotationY(t),this.applyMatrix4(ko),this}rotateZ(t){return ko.makeRotationZ(t),this.applyMatrix4(ko),this}translate(t,e,n){return ko.makeTranslation(t,e,n),this.applyMatrix4(ko),this}scale(t,e,n){return ko.makeScale(t,e,n),this.applyMatrix4(ko),this}lookAt(t){return Do.lookAt(t),Do.updateMatrix(),this.applyMatrix4(Do.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Io).negate(),this.translate(Io.x,Io.y,Io.z),this}setFromPoints(t){const e=this.getAttribute("position");if(void 0===e){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}this.setAttribute("position",new Co(e,3))}else{const n=Math.min(t.length,e.count);for(let i=0;i<n;i++){const n=t[i];e.setXYZ(i,n.x,n.y,n.z||0)}t.length>e.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),e.needsUpdate=!0}return this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Qs);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),void this.boundingBox.set(new Ks(-1/0,-1/0,-1/0),new Ks(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let n=0,i=e.length;n<i;n++){const t=e[n];Lo.setFromBufferAttribute(t),this.morphTargetsRelative?(No.addVectors(this.boundingBox.min,Lo.min),this.boundingBox.expandByPoint(No),No.addVectors(this.boundingBox.max,Lo.max),this.boundingBox.expandByPoint(No)):(this.boundingBox.expandByPoint(Lo.min),this.boundingBox.expandByPoint(Lo.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new _a);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error("THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),void this.boundingSphere.set(new Ks,1/0);if(t){const n=this.boundingSphere.center;if(Lo.setFromBufferAttribute(t),e)for(let t=0,r=e.length;t<r;t++){const n=e[t];jo.setFromBufferAttribute(n),this.morphTargetsRelative?(No.addVectors(Lo.min,jo.min),Lo.expandByPoint(No),No.addVectors(Lo.max,jo.max),Lo.expandByPoint(No)):(Lo.expandByPoint(jo.min),Lo.expandByPoint(jo.max))}Lo.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)No.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(No));if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r],a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++)No.fromBufferAttribute(s,e),a&&(Io.fromBufferAttribute(t,e),No.add(Io)),i=Math.max(i,n.distanceToSquared(No))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const n=e.position,i=e.normal,r=e.uv;!1===this.hasAttribute("tangent")&&this.setAttribute("tangent",new Ao(new Float32Array(4*n.count),4));const s=this.getAttribute("tangent"),a=[],o=[];for(let S=0;S<n.count;S++)a[S]=new Ks,o[S]=new Ks;const l=new Ks,h=new Ks,c=new Ks,u=new bs,d=new bs,f=new bs,p=new Ks,g=new Ks;function m(t,e,i){l.fromBufferAttribute(n,t),h.fromBufferAttribute(n,e),c.fromBufferAttribute(n,i),u.fromBufferAttribute(r,t),d.fromBufferAttribute(r,e),f.fromBufferAttribute(r,i),h.sub(l),c.sub(l),d.sub(u),f.sub(u);const s=1/(d.x*f.y-f.x*d.y);isFinite(s)&&(p.copy(h).multiplyScalar(f.y).addScaledVector(c,-d.y).multiplyScalar(s),g.copy(c).multiplyScalar(d.x).addScaledVector(h,-f.x).multiplyScalar(s),a[t].add(p),a[e].add(p),a[i].add(p),o[t].add(g),o[e].add(g),o[i].add(g))}let _=this.groups;0===_.length&&(_=[{start:0,count:t.count}]);for(let S=0,T=_.length;S<T;++S){const e=_[S],n=e.start,i=e.count;for(let r=n,s=n+i;r<s;r+=3)m(t.getX(r+0),t.getX(r+1),t.getX(r+2))}const v=new Ks,y=new Ks,b=new Ks,x=new Ks;function w(t){b.fromBufferAttribute(i,t),x.copy(b);const e=a[t];v.copy(e),v.sub(b.multiplyScalar(b.dot(e))).normalize(),y.crossVectors(x,e);const n=y.dot(o[t]),r=n<0?-1:1;s.setXYZW(t,v.x,v.y,v.z,r)}for(let S=0,T=_.length;S<T;++S){const e=_[S],n=e.start,i=e.count;for(let r=n,s=n+i;r<s;r+=3)w(t.getX(r+0)),w(t.getX(r+1)),w(t.getX(r+2))}}computeVertexNormals(){const t=this.index,e=this.getAttribute("position");if(void 0!==e){let n=this.getAttribute("normal");if(void 0===n)n=new Ao(new Float32Array(3*e.count),3),this.setAttribute("normal",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Ks,r=new Ks,s=new Ks,a=new Ks,o=new Ks,l=new Ks,h=new Ks,c=new Ks;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),f=t.getX(u+1),p=t.getX(u+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,f),s.fromBufferAttribute(e,p),h.subVectors(s,r),c.subVectors(i,r),h.cross(c),a.fromBufferAttribute(n,d),o.fromBufferAttribute(n,f),l.fromBufferAttribute(n,p),a.add(h),o.add(h),l.add(h),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(f,o.x,o.y,o.z),n.setXYZ(p,l.x,l.y,l.z)}else for(let t=0,u=e.count;t<u;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),s.fromBufferAttribute(e,t+2),h.subVectors(s,r),c.subVectors(i,r),h.cross(c),n.setXYZ(t+0,h.x,h.y,h.z),n.setXYZ(t+1,h.x,h.y,h.z),n.setXYZ(t+2,h.x,h.y,h.z);this.normalizeNormals(),n.needsUpdate=!0}}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)No.fromBufferAttribute(t,e),No.normalize(),t.setXYZ(e,No.x,No.y,No.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,s=new n.constructor(e.length*i);let a=0,o=0;for(let l=0,h=e.length;l<h;l++){a=t.isInterleavedBufferAttribute?e[l]*t.data.stride+t.offset:e[l]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new Ao(s,i,r)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const e=new Oo,n=this.index.array,i=this.attributes;for(const a in i){const r=i[a],s=t(r,n);e.setAttribute(a,s)}const r=this.morphAttributes;for(const a in r){const i=[],s=r[a];for(let e=0,r=s.length;e<r;e++){const r=s[e],a=t(r,n);i.push(a)}e.morphAttributes[a]=i}e.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let a=0,o=s.length;a<o;a++){const t=s[a];e.addGroup(t.start,t.count,t.materialIndex)}return e}toJSON(){const t={metadata:{version:4.6,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const o in n){const e=n[o];t.data.attributes[o]=e.toJSON(t.data)}const i={};let r=!1;for(const o in this.morphAttributes){const e=this.morphAttributes[o],n=[];for(let i=0,r=e.length;i<r;i++){const r=e[i];n.push(r.toJSON(t.data))}n.length>0&&(i[o]=n,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const l in i){const t=i[l];this.setAttribute(l,t.clone(e))}const r=t.morphAttributes;for(const l in r){const t=[],n=r[l];for(let i=0,r=n.length;i<r;i++)t.push(n[i].clone(e));this.morphAttributes[l]=t}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let l=0,h=s.length;l<h;l++){const t=s[l];this.addGroup(t.start,t.count,t.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}const Uo=new Ea,Bo=new Ma,Fo=new _a,Ho=new Ks,qo=new Ks,Vo=new Ks,Go=new Ks,Wo=new Ks,Xo=new Ks,Jo=new Ks,Yo=new Ks;class Ko extends Qa{constructor(t=new Oo,e=new So){super(),this.isMesh=!0,this.type="Mesh",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry,e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}getVertexPosition(t,e){const n=this.geometry,i=n.attributes.position,r=n.morphAttributes.position,s=n.morphTargetsRelative;e.fromBufferAttribute(i,t);const a=this.morphTargetInfluences;if(r&&a){Xo.set(0,0,0);for(let n=0,i=r.length;n<i;n++){const i=a[n],o=r[n];0!==i&&(Wo.fromBufferAttribute(o,t),s?Xo.addScaledVector(Wo,i):Xo.addScaledVector(Wo.sub(e),i))}e.add(Xo)}return e}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0!==i){if(null===n.boundingSphere&&n.computeBoundingSphere(),Fo.copy(n.boundingSphere),Fo.applyMatrix4(r),Bo.copy(t.ray).recast(t.near),!1===Fo.containsPoint(Bo.origin)){if(null===Bo.intersectSphere(Fo,Ho))return;if(Bo.origin.distanceToSquared(Ho)>(t.far-t.near)**2)return}Uo.copy(r).invert(),Bo.copy(t.ray).applyMatrix4(Uo),null!==n.boundingBox&&!1===Bo.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,Bo)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,l=r.attributes.uv,h=r.attributes.uv1,c=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let f=0,p=u.length;f<p;f++){const r=u[f],o=s[r.materialIndex],p=Math.max(r.start,d.start),g=Math.min(a.count,Math.min(r.start+r.count,d.start+d.count));for(let s=p,u=g;s<u;s+=3){const u=a.getX(s),d=a.getX(s+1),f=a.getX(s+2);i=Zo(this,o,t,n,l,h,c,u,d,f),i&&(i.faceIndex=Math.floor(s/3),i.face.materialIndex=r.materialIndex,e.push(i))}}else{const r=Math.max(0,d.start),o=Math.min(a.count,d.start+d.count);for(let u=r,d=o;u<d;u+=3){const r=a.getX(u),o=a.getX(u+1),d=a.getX(u+2);i=Zo(this,s,t,n,l,h,c,r,o,d),i&&(i.faceIndex=Math.floor(u/3),e.push(i))}}else if(void 0!==o)if(Array.isArray(s))for(let f=0,p=u.length;f<p;f++){const r=u[f],a=s[r.materialIndex],p=Math.max(r.start,d.start),g=Math.min(o.count,Math.min(r.start+r.count,d.start+d.count));for(let s=p,o=g;s<o;s+=3){const o=s,u=s+1,d=s+2;i=Zo(this,a,t,n,l,h,c,o,u,d),i&&(i.faceIndex=Math.floor(s/3),i.face.materialIndex=r.materialIndex,e.push(i))}}else{const r=Math.max(0,d.start),a=Math.min(o.count,d.start+d.count);for(let o=r,u=a;o<u;o+=3){const r=o,a=o+1,u=o+2;i=Zo(this,s,t,n,l,h,c,r,a,u),i&&(i.faceIndex=Math.floor(o/3),e.push(i))}}}}function $o(t,e,n,i,r,s,a,o){let l;if(l=e.side===Mn?i.intersectTriangle(a,s,r,!0,o):i.intersectTriangle(r,s,a,e.side===Tn,o),null===l)return null;Yo.copy(o),Yo.applyMatrix4(t.matrixWorld);const h=n.ray.origin.distanceTo(Yo);return h<n.near||h>n.far?null:{distance:h,point:Yo.clone(),object:t}}function Zo(t,e,n,i,r,s,a,o,l,h){t.getVertexPosition(o,qo),t.getVertexPosition(l,Vo),t.getVertexPosition(h,Go);const c=$o(t,e,n,i,qo,Vo,Go,Jo);if(c){const t=new Ks;po.getBarycoord(Jo,qo,Vo,Go,t),r&&(c.uv=po.getInterpolatedAttribute(r,o,l,h,t,new bs)),s&&(c.uv1=po.getInterpolatedAttribute(s,o,l,h,t,new bs)),a&&(c.normal=po.getInterpolatedAttribute(a,o,l,h,t,new Ks),c.normal.dot(i.direction)>0&&c.normal.multiplyScalar(-1));const e={a:o,b:l,c:h,normal:new Ks,materialIndex:0};po.getNormal(qo,Vo,Go,e.normal),c.face=e,c.barycoord=t}return c}class Qo extends Oo{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],h=[],c=[];let u=0,d=0;function f(t,e,n,i,r,s,f,p,g,m,_){const v=s/g,y=f/m,b=s/2,x=f/2,w=p/2,S=g+1,T=m+1;let M=0,E=0;const A=new Ks;for(let a=0;a<T;a++){const s=a*y-x;for(let o=0;o<S;o++){const u=o*v-b;A[t]=u*i,A[e]=s*r,A[n]=w,l.push(A.x,A.y,A.z),A[t]=0,A[e]=0,A[n]=p>0?1:-1,h.push(A.x,A.y,A.z),c.push(o/g),c.push(1-a/m),M+=1}}for(let a=0;a<m;a++)for(let t=0;t<g;t++){const e=u+t+S*a,n=u+t+S*(a+1),i=u+(t+1)+S*(a+1),r=u+(t+1)+S*a;o.push(e,n,r),o.push(n,i,r),E+=6}a.addGroup(d,E,_),d+=E,u+=M}f("z","y","x",-1,-1,n,e,t,s,r,0),f("z","y","x",1,-1,n,e,-t,s,r,1),f("x","z","y",1,1,t,n,e,i,s,2),f("x","z","y",1,-1,t,n,-e,i,s,3),f("x","y","z",1,-1,t,e,n,i,r,4),f("x","y","z",-1,-1,t,e,-n,i,r,5),this.setIndex(o),this.setAttribute("position",new Co(l,3)),this.setAttribute("normal",new Co(h,3)),this.setAttribute("uv",new Co(c,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Qo(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function tl(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?r.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[n][i]=null):e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function el(t){const e={};for(let n=0;n<t.length;n++){const i=tl(t[n]);for(const t in i)e[t]=i[t]}return e}function nl(t){const e=[];for(let n=0;n<t.length;n++)e.push(t[n].clone());return e}function il(t){const e=t.getRenderTarget();return null===e?t.outputColorSpace:!0===e.isXRRenderTarget?e.texture.colorSpace:Is.workingColorSpace}const rl={clone:tl,merge:el};var sl="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",al="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";class ol extends wo{constructor(t){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=sl,this.fragmentShader=al,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&this.setValues(t)}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=tl(t.uniforms),this.uniformsGroups=nl(t.uniformsGroups),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.fog=t.fog,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const i in this.uniforms){const n=this.uniforms[i],r=n.value;r&&r.isTexture?e.uniforms[i]={type:"t",value:r.toJSON(t).uuid}:r&&r.isColor?e.uniforms[i]={type:"c",value:r.getHex()}:r&&r.isVector2?e.uniforms[i]={type:"v2",value:r.toArray()}:r&&r.isVector3?e.uniforms[i]={type:"v3",value:r.toArray()}:r&&r.isVector4?e.uniforms[i]={type:"v4",value:r.toArray()}:r&&r.isMatrix3?e.uniforms[i]={type:"m3",value:r.toArray()}:r&&r.isMatrix4?e.uniforms[i]={type:"m4",value:r.toArray()}:e.uniforms[i]={value:r}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const i in this.extensions)!0===this.extensions[i]&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class ll extends Qa{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Ea,this.projectionMatrix=new Ea,this.projectionMatrixInverse=new Ea,this.coordinateSystem=ls}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const hl=new Ks,cl=new bs,ul=new bs;class dl extends ll{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*fs*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*ds*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*fs*Math.atan(Math.tan(.5*ds*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){hl.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(hl.x,hl.y).multiplyScalar(-t/hl.z),hl.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(hl.x,hl.y).multiplyScalar(-t/hl.z)}getViewSize(t,e){return this.getViewBounds(t,cl,ul),e.subVectors(ul,cl)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*ds*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const fl=-90,pl=1;class gl extends Qa{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new dl(fl,pl,t,e);i.layers=this.layers,this.add(i);const r=new dl(fl,pl,t,e);r.layers=this.layers,this.add(r);const s=new dl(fl,pl,t,e);s.layers=this.layers,this.add(s);const a=new dl(fl,pl,t,e);a.layers=this.layers,this.add(a);const o=new dl(fl,pl,t,e);o.layers=this.layers,this.add(o);const l=new dl(fl,pl,t,e);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,i,r,s,a,o]=e;for(const l of e)this.remove(l);if(t===ls)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else{if(t!==hs)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1)}for(const l of e)this.add(l),l.updateMatrixWorld()}update(t,e){null===this.parent&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[r,s,a,o,l,h]=this.children,c=t.getRenderTarget(),u=t.getActiveCubeFace(),d=t.getActiveMipmapLevel(),f=t.xr.enabled;t.xr.enabled=!1;const p=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,i),t.render(e,r),t.setRenderTarget(n,1,i),t.render(e,s),t.setRenderTarget(n,2,i),t.render(e,a),t.setRenderTarget(n,3,i),t.render(e,o),t.setRenderTarget(n,4,i),t.render(e,l),n.texture.generateMipmaps=p,t.setRenderTarget(n,5,i),t.render(e,h),t.setRenderTarget(c,u,d),t.xr.enabled=f,n.texture.needsPMREMUpdate=!0}}class ml extends qs{constructor(t,e,n,i,r,s,a,o,l,h){t=void 0!==t?t:[],e=void 0!==e?e:yi,super(t,e,n,i,r,s,a,o,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class _l extends Ws{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new ml(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:Ci}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new Qo(5,5,5),r=new ol({name:"CubemapFromEquirect",uniforms:tl(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Mn,blending:An});r.uniforms.tEquirect.value=e;const s=new Ko(i,r),a=e.minFilter;e.minFilter===ki&&(e.minFilter=Ci);const o=new gl(1,10,this);return o.update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,n,i);t.setRenderTarget(r)}}class vl extends Qa{constructor(){super(),this.isGroup=!0,this.type="Group"}}const yl={type:"move"};class bl{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new vl,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new vl,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Ks,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Ks),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new vl,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Ks,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Ks),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState){if(l&&t.hand){s=!0;for(const s of t.hand.values()){const t=e.getJointPose(s,n),i=this._getHandJoint(l,s);null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.matrixWorldNeedsUpdate=!0,i.jointRadius=t.radius),i.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,h=.005;l.inputState.pinching&&a>o+h?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-h&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(yl)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new vl;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class xl extends Qa{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new ja,this.environmentIntensity=1,this.environmentRotation=new ja,this.overrideMaterial=null,"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}const wl=new Ks,Sl=new Ks,Tl=new xs;class Ml{constructor(t=new Ks(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=wl.subVectors(n,e).cross(Sl.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(wl),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Tl.getNormalMatrix(t),i=this.coplanarPoint(wl).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const El=new _a,Al=new Ks;class Rl{constructor(t=new Ml,e=new Ml,n=new Ml,i=new Ml,r=new Ml,s=new Ml){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=ls){const n=this.planes,i=t.elements,r=i[0],s=i[1],a=i[2],o=i[3],l=i[4],h=i[5],c=i[6],u=i[7],d=i[8],f=i[9],p=i[10],g=i[11],m=i[12],_=i[13],v=i[14],y=i[15];if(n[0].setComponents(o-r,u-l,g-d,y-m).normalize(),n[1].setComponents(o+r,u+l,g+d,y+m).normalize(),n[2].setComponents(o+s,u+h,g+f,y+_).normalize(),n[3].setComponents(o-s,u-h,g-f,y-_).normalize(),n[4].setComponents(o-a,u-c,g-p,y-v).normalize(),e===ls)n[5].setComponents(o+a,u+c,g+p,y+v).normalize();else{if(e!==hs)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);n[5].setComponents(a,c,p,v).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),El.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),El.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(El)}intersectsSprite(t){return El.center.set(0,0,0),El.radius=.7071067811865476,El.applyMatrix4(t.matrixWorld),this.intersectsSphere(El)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let r=0;r<6;r++){const t=e[r].distanceToPoint(n);if(t<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(Al.x=i.normal.x>0?t.max.x:t.min.x,Al.y=i.normal.y>0?t.max.y:t.min.y,Al.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(Al)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}class zl extends qs{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:Ci,this.magFilter=void 0!==r?r:Ci,this.generateMipmaps=!1;const h=this;function c(){h.needsUpdate=!0,t.requestVideoFrameCallback(c)}"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback(c)}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image,e="requestVideoFrameCallback"in t;!1===e&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Cl extends qs{constructor(t,e,n,i,r,s,a,o,l,h=Ki){if(h!==Ki&&h!==$i)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&h===Ki&&(n=Oi),void 0===n&&h===$i&&(n=qi),super(null,i,r,s,a,o,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:Ai,this.minFilter=void 0!==o?o:Ai,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}class Pl extends Oo{constructor(t=1,e=1,n=1,i=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,s=e/2,a=Math.floor(n),o=Math.floor(i),l=a+1,h=o+1,c=t/a,u=e/o,d=[],f=[],p=[],g=[];for(let m=0;m<h;m++){const t=m*u-s;for(let e=0;e<l;e++){const n=e*c-r;f.push(n,-t,0),p.push(0,0,1),g.push(e/a),g.push(1-m/o)}}for(let m=0;m<o;m++)for(let t=0;t<a;t++){const e=t+l*m,n=t+l*(m+1),i=t+1+l*(m+1),r=t+1+l*m;d.push(e,n,r),d.push(n,i,r)}this.setIndex(d),this.setAttribute("position",new Co(f,3)),this.setAttribute("normal",new Co(p,3)),this.setAttribute("uv",new Co(g,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Pl(t.width,t.height,t.widthSegments,t.heightSegments)}}class kl extends wo{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Fr,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class Dl extends wo{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function Il(t,e,n){return!t||!n&&t.constructor===e?t:"number"===typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function Ll(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}class jl{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.copySampleValue_(n-1)}if(n===s)break;if(r=i,i=e[++n],t<i)break e}s=e.length;break n}if(t>=r)break t;{const a=e[1];t<a&&(n=2,r=a);for(let s=n-2;;){if(void 0===r)return this._cachedIndex=0,this.copySampleValue_(0);if(n===s)break;if(i=r,r=e[--n-1],t>=r)break e}s=n,n=0}}while(n<s){const i=n+s>>>1;t<e[i]?s=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.copySampleValue_(0);if(void 0===i)return n=e.length,this._cachedIndex=n,this.copySampleValue_(n-1)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let s=0;s!==i;++s)e[s]=n[r+s];return e}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class Nl extends jl{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:Or,endingEnd:Or}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(void 0===a)switch(this.getSettings_().endingStart){case Ur:r=t,a=2*e-n;break;case Br:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case Ur:s=t,o=2*n-e;break;case Br:s=1,o=n+i[1]-i[0];break;default:s=t-1,o=e}const l=.5*(n-e),h=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(o-n),this._offsetPrev=r*h,this._offsetNext=s*h}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,h=this._offsetPrev,c=this._offsetNext,u=this._weightPrev,d=this._weightNext,f=(n-e)/(i-e),p=f*f,g=p*f,m=-u*g+2*u*p-u*f,_=(1+u)*g+(-1.5-2*u)*p+(-.5+u)*f+1,v=(-1-d)*g+(1.5+d)*p+.5*f,y=d*g-d*p;for(let b=0;b!==a;++b)r[b]=m*s[h+b]+_*s[l+b]+v*s[o+b]+y*s[c+b];return r}}class Ol extends jl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,h=(n-e)/(i-e),c=1-h;for(let u=0;u!==a;++u)r[u]=s[l+u]*c+s[o+u]*h;return r}}class Ul extends jl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class Bl{constructor(t,e,n,i){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=Il(e,this.TimeBufferType),this.values=Il(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:Il(t.times,Array),values:Il(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new Ul(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new Ol(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new Nl(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case Lr:e=this.InterpolantFactoryMethodDiscrete;break;case jr:e=this.InterpolantFactoryMethodLinear;break;case Nr:e=this.InterpolantFactoryMethodSmooth;break}if(void 0===e){const e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Lr;case this.InterpolantFactoryMethodLinear:return jr;case this.InterpolantFactoryMethodSmooth:return Nr}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;while(r!==i&&n[r]<t)++r;while(-1!==s&&n[s]>e)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=n.slice(r,s),this.values=this.values.slice(r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let a=0;a!==r;a++){const e=n[a];if("number"===typeof e&&isNaN(e)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,e),t=!1;break}if(null!==s&&s>e){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,e,s),t=!1;break}s=e}if(void 0!==i&&Ll(i))for(let a=0,o=i.length;a!==o;++a){const e=i[a];if(isNaN(e)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,e),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===Nr,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=!1;const o=t[a],l=t[a+1];if(o!==l&&(1!==a||o!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=!0;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=t.slice(0,s),this.values=e.slice(0,s*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}}Bl.prototype.TimeBufferType=Float32Array,Bl.prototype.ValueBufferType=Float32Array,Bl.prototype.DefaultInterpolation=jr;class Fl extends Bl{constructor(t,e,n){super(t,e,n)}}Fl.prototype.ValueTypeName="bool",Fl.prototype.ValueBufferType=Array,Fl.prototype.DefaultInterpolation=Lr,Fl.prototype.InterpolantFactoryMethodLinear=void 0,Fl.prototype.InterpolantFactoryMethodSmooth=void 0;class Hl extends Bl{}Hl.prototype.ValueTypeName="color";class ql extends Bl{}ql.prototype.ValueTypeName="number";class Vl extends jl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let h=l+a;l!==h;l+=4)Ys.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Gl extends Bl{InterpolantFactoryMethodLinear(t){return new Vl(this.times,this.values,this.getValueSize(),t)}}Gl.prototype.ValueTypeName="quaternion",Gl.prototype.InterpolantFactoryMethodSmooth=void 0;class Wl extends Bl{constructor(t,e,n){super(t,e,n)}}Wl.prototype.ValueTypeName="string",Wl.prototype.ValueBufferType=Array,Wl.prototype.DefaultInterpolation=Lr,Wl.prototype.InterpolantFactoryMethodLinear=void 0,Wl.prototype.InterpolantFactoryMethodSmooth=void 0;class Xl extends Bl{}Xl.prototype.ValueTypeName="vector";class Jl{constructor(t,e,n){const i=this;let r,s=!1,a=0,o=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){o++,!1===s&&void 0!==i.onStart&&i.onStart(t,a,o),s=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(s=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const Yl=new Jl;class Kl{constructor(t){this.manager=void 0!==t?t:Yl,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}Kl.DEFAULT_MATERIAL_NAME="__DEFAULT";Error;class $l extends ll{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}class Zl extends dl{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t,this.index=0}}const Ql="\\[\\]\\.:\\/",th=new RegExp("["+Ql+"]","g"),eh="[^"+Ql+"]",nh="[^"+Ql.replace("\\.","")+"]",ih=/((?:WC+[\/:])*)/.source.replace("WC",eh),rh=/(WCOD+)?/.source.replace("WCOD",nh),sh=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",eh),ah=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",eh),oh=new RegExp("^"+ih+rh+sh+ah+"$"),lh=["material","materials","bones","map"];class hh{constructor(t,e,n){const i=n||ch.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class ch{constructor(t,e,n){this.path=e,this.parsedPath=n||ch.parseTrackName(e),this.node=ch.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new ch.Composite(t,e,n):new ch(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(th,"")}static parseTrackName(t){const e=oh.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==lh.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const s=n(r.children);if(s)return s}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=ch.findNode(this.rootNode,e.nodeName),this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");if(n){let i=e.objectIndex;switch(n){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;case"map":if("map"in t){t=t.map;break}if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.map)return void console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);t=t.material.map;break;default:if(void 0===t[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[i]}}const s=t[i];if(void 0===s){const n=e.nodeName;return void console.error("THREE.PropertyBinding: Trying to update property for track: "+n+"."+i+" but it wasn't found.",t)}let a=this.Versioning.None;this.targetObject=t,!0===t.isMaterial?a=this.Versioning.NeedsUpdate:!0===t.isObject3D&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if("morphTargetInfluences"===i){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}ch.Composite=hh,ch.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},ch.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},ch.prototype.GetterByBindingType=[ch.prototype._getValue_direct,ch.prototype._getValue_array,ch.prototype._getValue_arrayElement,ch.prototype._getValue_toArray],ch.prototype.SetterByBindingTypeAndVersioning=[[ch.prototype._setValue_direct,ch.prototype._setValue_direct_setNeedsUpdate,ch.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[ch.prototype._setValue_array,ch.prototype._setValue_array_setNeedsUpdate,ch.prototype._setValue_array_setMatrixWorldNeedsUpdate],[ch.prototype._setValue_arrayElement,ch.prototype._setValue_arrayElement_setNeedsUpdate,ch.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[ch.prototype._setValue_fromArray,ch.prototype._setValue_fromArray_setNeedsUpdate,ch.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];new Float32Array(1);function uh(t,e,n,i){const r=dh(i);switch(n){case Gi:return t*e;case Ji:return t*e;case Yi:return t*e*2;case Zi:return t*e/r.components*r.byteLength;case Qi:return t*e/r.components*r.byteLength;case tr:return t*e*2/r.components*r.byteLength;case er:return t*e*2/r.components*r.byteLength;case Wi:return t*e*3/r.components*r.byteLength;case Xi:return t*e*4/r.components*r.byteLength;case nr:return t*e*4/r.components*r.byteLength;case ir:case rr:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case sr:case ar:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case lr:case cr:return Math.max(t,16)*Math.max(e,8)/4;case or:case hr:return Math.max(t,8)*Math.max(e,8)/2;case ur:case dr:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case fr:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case pr:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case gr:return Math.floor((t+4)/5)*Math.floor((e+3)/4)*16;case mr:return Math.floor((t+4)/5)*Math.floor((e+4)/5)*16;case _r:return Math.floor((t+5)/6)*Math.floor((e+4)/5)*16;case vr:return Math.floor((t+5)/6)*Math.floor((e+5)/6)*16;case yr:return Math.floor((t+7)/8)*Math.floor((e+4)/5)*16;case br:return Math.floor((t+7)/8)*Math.floor((e+5)/6)*16;case xr:return Math.floor((t+7)/8)*Math.floor((e+7)/8)*16;case wr:return Math.floor((t+9)/10)*Math.floor((e+4)/5)*16;case Sr:return Math.floor((t+9)/10)*Math.floor((e+5)/6)*16;case Tr:return Math.floor((t+9)/10)*Math.floor((e+7)/8)*16;case Mr:return Math.floor((t+9)/10)*Math.floor((e+9)/10)*16;case Er:return Math.floor((t+11)/12)*Math.floor((e+9)/10)*16;case Ar:return Math.floor((t+11)/12)*Math.floor((e+11)/12)*16;case Rr:case zr:case Cr:return Math.ceil(t/4)*Math.ceil(e/4)*16;case Pr:case kr:return Math.ceil(t/4)*Math.ceil(e/4)*8;case Dr:case Ir:return Math.ceil(t/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function dh(t){switch(t){case Di:case Ii:return{byteLength:1,components:1};case ji:case Li:case Bi:return{byteLength:2,components:1};case Fi:case Hi:return{byteLength:2,components:4};case Oi:case Ni:case Ui:return{byteLength:4,components:1};case Vi:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${t}.`)}
|
|
22
|
+
/**
|
|
23
|
+
* @license
|
|
24
|
+
* Copyright 2010-2025 Three.js Authors
|
|
25
|
+
* SPDX-License-Identifier: MIT
|
|
26
|
+
*/
|
|
27
|
+
function fh(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function ph(t){const e=new WeakMap;function n(e,n){const i=e.array,r=e.usage,s=i.byteLength,a=t.createBuffer();let o;if(t.bindBuffer(n,a),t.bufferData(n,i,r),e.onUploadCallback(),i instanceof Float32Array)o=t.FLOAT;else if(i instanceof Uint16Array)o=e.isFloat16BufferAttribute?t.HALF_FLOAT:t.UNSIGNED_SHORT;else if(i instanceof Int16Array)o=t.SHORT;else if(i instanceof Uint32Array)o=t.UNSIGNED_INT;else if(i instanceof Int32Array)o=t.INT;else if(i instanceof Int8Array)o=t.BYTE;else if(i instanceof Uint8Array)o=t.UNSIGNED_BYTE;else{if(!(i instanceof Uint8ClampedArray))throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+i);o=t.UNSIGNED_BYTE}return{buffer:a,type:o,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version,size:s}}function i(e,n,i){const r=n.array,s=n.updateRanges;if(t.bindBuffer(i,e),0===s.length)t.bufferSubData(i,0,r);else{s.sort(((t,e)=>t.start-e.start));let e=0;for(let t=1;t<s.length;t++){const n=s[e],i=s[t];i.start<=n.start+n.count+1?n.count=Math.max(n.count,i.start+i.count-n.start):(++e,s[e]=i)}s.length=e+1;for(let n=0,a=s.length;n<a;n++){const e=s[n];t.bufferSubData(i,e.start*r.BYTES_PER_ELEMENT,r,e.start,e.count)}n.clearUpdateRanges()}n.onUploadCallback()}function r(t){return t.isInterleavedBufferAttribute&&(t=t.data),e.get(t)}function s(n){n.isInterleavedBufferAttribute&&(n=n.data);const i=e.get(n);i&&(t.deleteBuffer(i.buffer),e.delete(n))}function a(t,r){if(t.isInterleavedBufferAttribute&&(t=t.data),t.isGLBufferAttribute){const n=e.get(t);return void((!n||n.version<t.version)&&e.set(t,{buffer:t.buffer,type:t.type,bytesPerElement:t.elementSize,version:t.version}))}const s=e.get(t);if(void 0===s)e.set(t,n(t,r));else if(s.version<t.version){if(s.size!==t.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");i(s.buffer,t,r),s.version=t.version}}return{get:r,remove:s,update:a}}"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:_n}})),"undefined"!==typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=_n);var gh="#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",mh="#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif",_h="#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",vh="#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",yh="#ifdef USE_ALPHATEST\n\t#ifdef ALPHA_TO_COVERAGE\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\tif ( diffuseColor.a < alphaTest ) discard;\n\t#endif\n#endif",bh="#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif",xh="#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif",wh="#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",Sh="#ifdef USE_BATCHING\n\t#if ! defined( GL_ANGLE_multi_draw )\n\t#define gl_DrawID _gl_DrawID\n\tuniform int _gl_DrawID;\n\t#endif\n\tuniform highp sampler2D batchingTexture;\n\tuniform highp usampler2D batchingIdTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n\tfloat getIndirectIndex( const in int i ) {\n\t\tint size = textureSize( batchingIdTexture, 0 ).x;\n\t\tint x = i % size;\n\t\tint y = i / size;\n\t\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n\t}\n#endif\n#ifdef USE_BATCHING_COLOR\n\tuniform sampler2D batchingColorTexture;\n\tvec3 getBatchingColor( const in float i ) {\n\t\tint size = textureSize( batchingColorTexture, 0 ).x;\n\t\tint j = int( i );\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n\t}\n#endif",Th="#ifdef USE_BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif",Mh="vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif",Eh="vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",Ah="float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated",Rh="#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif",zh="#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",Ch="#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif",Ph="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",kh="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",Dh="#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",Ih="#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",Lh="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",jh="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvarying vec3 vColor;\n#endif",Nh="#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n\tvColor.xyz *= batchingColor.xyz;\n#endif",Oh="#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",Uh="#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",Bh="vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",Fh="#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",Hh="#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",qh="#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\n\t\temissiveColor = sRGBTransferEOTF( emissiveColor );\n\t#endif\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",Vh="#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",Gh="gl_FragColor = linearToOutputTexel( gl_FragColor );",Wh="vec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferEOTF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",Xh="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",Jh="#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",Yh="#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",Kh="#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",$h="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",Zh="#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",Qh="#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",tc="#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",ec="#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",nc="#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",ic="#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",rc="LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",sc="varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",ac="uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif ( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",oc="#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",lc="ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",hc="varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",cc="BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",uc="varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",dc="PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n\tmaterial.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",fc="struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\tfloat dispersion;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",pc="\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",gc="#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",mc="#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",_c="#if defined( USE_LOGDEPTHBUF )\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",vc="#if defined( USE_LOGDEPTHBUF )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",yc="#ifdef USE_LOGDEPTHBUF\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",bc="#ifdef USE_LOGDEPTHBUF\n\tvFragDepth = 1.0 + gl_Position.w;\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",xc="#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",wc="#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",Sc="#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",Tc="#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",Mc="float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",Ec="#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",Ac="#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif",Rc="#if defined( USE_MORPHCOLORS )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",zc="#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",Cc="#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t#endif\n\tuniform sampler2DArray morphTargetsTexture;\n\tuniform ivec2 morphTargetsTextureSize;\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t}\n#endif",Pc="#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",kc="float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",Dc="#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",Ic="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",Lc="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",jc="#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",Nc="#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",Oc="#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",Uc="#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",Bc="#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",Fc="#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",Hc="#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",qc="vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\nconst float Inv255 = 1. / 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec4( 0., 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec4( 1., 1., 1., 1. );\n\tfloat vuf;\n\tfloat af = modf( v * PackFactors.a, vuf );\n\tfloat bf = modf( vuf * ShiftRight8, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec3( 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec3( 1., 1., 1. );\n\tfloat vuf;\n\tfloat bf = modf( v * PackFactors.b, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec2( 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec2( 1., 1. );\n\tfloat vuf;\n\tfloat gf = modf( v * 256., vuf );\n\treturn vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n\treturn dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",Vc="#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",Gc="vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",Wc="#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",Xc="#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",Jc="float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",Yc="#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",Kc="#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tfloat shadow = 1.0;\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\t\n\t\tfloat lightToPositionLength = length( lightToPosition );\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\n\t\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\t\tshadow = (\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t\t) * ( 1.0 / 9.0 );\n\t\t\t#else\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n#endif",$c="#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",Zc="#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",Qc="float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",tu="#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",eu="#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",nu="#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",iu="#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",ru="float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",su="#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",au="#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",ou="#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tconst float StartCompression = 0.8 - 0.04;\n\tconst float Desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min( color.r, min( color.g, color.b ) );\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max( color.r, max( color.g, color.b ) );\n\tif ( peak < StartCompression ) return color;\n\tfloat d = 1. - StartCompression;\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n\treturn mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",lu="#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",hu="#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec4 transmittedLight;\n\t\tvec3 transmittance;\n\t\t#ifdef USE_DISPERSION\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\t\trefractionCoords += 1.0;\n\t\t\t\trefractionCoords /= 2.0;\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n\t\t\t}\n\t\t\ttransmittedLight.a /= 3.0;\n\t\t#else\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\trefractionCoords += 1.0;\n\t\t\trefractionCoords /= 2.0;\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\t#endif\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",cu="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uu="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",du="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",fu="#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif";const pu="varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",gu="uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",mu="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",_u="#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vu="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",yu="uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",bu="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",xu="#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#elif DEPTH_PACKING == 3202\n\t\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n\t#elif DEPTH_PACKING == 3203\n\t\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n\t#endif\n}",wu="#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",Su="#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",Tu="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",Mu="uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",Eu="uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",Au="uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",Ru="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",zu="uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",Cu="#define LAMBERT\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",Pu="#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_lambert_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",ku="#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",Du="#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",Iu="#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",Lu="#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",ju="#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",Nu="#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",Ou="#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",Uu="#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n\tuniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",Bu="#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",Fu="#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",Hu="uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",qu="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",Vu="#include <common>\n#include <batching_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",Gu="uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <logdepthbuf_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}",Wu="uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix[ 3 ];\n\tvec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",Xu="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}",Ju={alphahash_fragment:gh,alphahash_pars_fragment:mh,alphamap_fragment:_h,alphamap_pars_fragment:vh,alphatest_fragment:yh,alphatest_pars_fragment:bh,aomap_fragment:xh,aomap_pars_fragment:wh,batching_pars_vertex:Sh,batching_vertex:Th,begin_vertex:Mh,beginnormal_vertex:Eh,bsdfs:Ah,iridescence_fragment:Rh,bumpmap_pars_fragment:zh,clipping_planes_fragment:Ch,clipping_planes_pars_fragment:Ph,clipping_planes_pars_vertex:kh,clipping_planes_vertex:Dh,color_fragment:Ih,color_pars_fragment:Lh,color_pars_vertex:jh,color_vertex:Nh,common:Oh,cube_uv_reflection_fragment:Uh,defaultnormal_vertex:Bh,displacementmap_pars_vertex:Fh,displacementmap_vertex:Hh,emissivemap_fragment:qh,emissivemap_pars_fragment:Vh,colorspace_fragment:Gh,colorspace_pars_fragment:Wh,envmap_fragment:Xh,envmap_common_pars_fragment:Jh,envmap_pars_fragment:Yh,envmap_pars_vertex:Kh,envmap_physical_pars_fragment:oc,envmap_vertex:$h,fog_vertex:Zh,fog_pars_vertex:Qh,fog_fragment:tc,fog_pars_fragment:ec,gradientmap_pars_fragment:nc,lightmap_pars_fragment:ic,lights_lambert_fragment:rc,lights_lambert_pars_fragment:sc,lights_pars_begin:ac,lights_toon_fragment:lc,lights_toon_pars_fragment:hc,lights_phong_fragment:cc,lights_phong_pars_fragment:uc,lights_physical_fragment:dc,lights_physical_pars_fragment:fc,lights_fragment_begin:pc,lights_fragment_maps:gc,lights_fragment_end:mc,logdepthbuf_fragment:_c,logdepthbuf_pars_fragment:vc,logdepthbuf_pars_vertex:yc,logdepthbuf_vertex:bc,map_fragment:xc,map_pars_fragment:wc,map_particle_fragment:Sc,map_particle_pars_fragment:Tc,metalnessmap_fragment:Mc,metalnessmap_pars_fragment:Ec,morphinstance_vertex:Ac,morphcolor_vertex:Rc,morphnormal_vertex:zc,morphtarget_pars_vertex:Cc,morphtarget_vertex:Pc,normal_fragment_begin:kc,normal_fragment_maps:Dc,normal_pars_fragment:Ic,normal_pars_vertex:Lc,normal_vertex:jc,normalmap_pars_fragment:Nc,clearcoat_normal_fragment_begin:Oc,clearcoat_normal_fragment_maps:Uc,clearcoat_pars_fragment:Bc,iridescence_pars_fragment:Fc,opaque_fragment:Hc,packing:qc,premultiplied_alpha_fragment:Vc,project_vertex:Gc,dithering_fragment:Wc,dithering_pars_fragment:Xc,roughnessmap_fragment:Jc,roughnessmap_pars_fragment:Yc,shadowmap_pars_fragment:Kc,shadowmap_pars_vertex:$c,shadowmap_vertex:Zc,shadowmask_pars_fragment:Qc,skinbase_vertex:tu,skinning_pars_vertex:eu,skinning_vertex:nu,skinnormal_vertex:iu,specularmap_fragment:ru,specularmap_pars_fragment:su,tonemapping_fragment:au,tonemapping_pars_fragment:ou,transmission_fragment:lu,transmission_pars_fragment:hu,uv_pars_fragment:cu,uv_pars_vertex:uu,uv_vertex:du,worldpos_vertex:fu,background_vert:pu,background_frag:gu,backgroundCube_vert:mu,backgroundCube_frag:_u,cube_vert:vu,cube_frag:yu,depth_vert:bu,depth_frag:xu,distanceRGBA_vert:wu,distanceRGBA_frag:Su,equirect_vert:Tu,equirect_frag:Mu,linedashed_vert:Eu,linedashed_frag:Au,meshbasic_vert:Ru,meshbasic_frag:zu,meshlambert_vert:Cu,meshlambert_frag:Pu,meshmatcap_vert:ku,meshmatcap_frag:Du,meshnormal_vert:Iu,meshnormal_frag:Lu,meshphong_vert:ju,meshphong_frag:Nu,meshphysical_vert:Ou,meshphysical_frag:Uu,meshtoon_vert:Bu,meshtoon_frag:Fu,points_vert:Hu,points_frag:qu,shadow_vert:Vu,shadow_frag:Gu,sprite_vert:Wu,sprite_frag:Xu},Yu={common:{diffuse:{value:new yo(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new xs},alphaMap:{value:null},alphaMapTransform:{value:new xs},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new xs}},envmap:{envMap:{value:null},envMapRotation:{value:new xs},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new xs}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new xs}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new xs},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new xs},normalScale:{value:new bs(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new xs},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new xs}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new xs}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new xs}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new yo(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new yo(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new xs},alphaTest:{value:0},uvTransform:{value:new xs}},sprite:{diffuse:{value:new yo(16777215)},opacity:{value:1},center:{value:new bs(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new xs},alphaMap:{value:null},alphaMapTransform:{value:new xs},alphaTest:{value:0}}},Ku={basic:{uniforms:el([Yu.common,Yu.specularmap,Yu.envmap,Yu.aomap,Yu.lightmap,Yu.fog]),vertexShader:Ju.meshbasic_vert,fragmentShader:Ju.meshbasic_frag},lambert:{uniforms:el([Yu.common,Yu.specularmap,Yu.envmap,Yu.aomap,Yu.lightmap,Yu.emissivemap,Yu.bumpmap,Yu.normalmap,Yu.displacementmap,Yu.fog,Yu.lights,{emissive:{value:new yo(0)}}]),vertexShader:Ju.meshlambert_vert,fragmentShader:Ju.meshlambert_frag},phong:{uniforms:el([Yu.common,Yu.specularmap,Yu.envmap,Yu.aomap,Yu.lightmap,Yu.emissivemap,Yu.bumpmap,Yu.normalmap,Yu.displacementmap,Yu.fog,Yu.lights,{emissive:{value:new yo(0)},specular:{value:new yo(1118481)},shininess:{value:30}}]),vertexShader:Ju.meshphong_vert,fragmentShader:Ju.meshphong_frag},standard:{uniforms:el([Yu.common,Yu.envmap,Yu.aomap,Yu.lightmap,Yu.emissivemap,Yu.bumpmap,Yu.normalmap,Yu.displacementmap,Yu.roughnessmap,Yu.metalnessmap,Yu.fog,Yu.lights,{emissive:{value:new yo(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ju.meshphysical_vert,fragmentShader:Ju.meshphysical_frag},toon:{uniforms:el([Yu.common,Yu.aomap,Yu.lightmap,Yu.emissivemap,Yu.bumpmap,Yu.normalmap,Yu.displacementmap,Yu.gradientmap,Yu.fog,Yu.lights,{emissive:{value:new yo(0)}}]),vertexShader:Ju.meshtoon_vert,fragmentShader:Ju.meshtoon_frag},matcap:{uniforms:el([Yu.common,Yu.bumpmap,Yu.normalmap,Yu.displacementmap,Yu.fog,{matcap:{value:null}}]),vertexShader:Ju.meshmatcap_vert,fragmentShader:Ju.meshmatcap_frag},points:{uniforms:el([Yu.points,Yu.fog]),vertexShader:Ju.points_vert,fragmentShader:Ju.points_frag},dashed:{uniforms:el([Yu.common,Yu.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ju.linedashed_vert,fragmentShader:Ju.linedashed_frag},depth:{uniforms:el([Yu.common,Yu.displacementmap]),vertexShader:Ju.depth_vert,fragmentShader:Ju.depth_frag},normal:{uniforms:el([Yu.common,Yu.bumpmap,Yu.normalmap,Yu.displacementmap,{opacity:{value:1}}]),vertexShader:Ju.meshnormal_vert,fragmentShader:Ju.meshnormal_frag},sprite:{uniforms:el([Yu.sprite,Yu.fog]),vertexShader:Ju.sprite_vert,fragmentShader:Ju.sprite_frag},background:{uniforms:{uvTransform:{value:new xs},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ju.background_vert,fragmentShader:Ju.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new xs}},vertexShader:Ju.backgroundCube_vert,fragmentShader:Ju.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ju.cube_vert,fragmentShader:Ju.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ju.equirect_vert,fragmentShader:Ju.equirect_frag},distanceRGBA:{uniforms:el([Yu.common,Yu.displacementmap,{referencePosition:{value:new Ks},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ju.distanceRGBA_vert,fragmentShader:Ju.distanceRGBA_frag},shadow:{uniforms:el([Yu.lights,Yu.fog,{color:{value:new yo(0)},opacity:{value:1}}]),vertexShader:Ju.shadow_vert,fragmentShader:Ju.shadow_frag}};Ku.physical={uniforms:el([Ku.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new xs},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new xs},clearcoatNormalScale:{value:new bs(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new xs},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new xs},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new xs},sheen:{value:0},sheenColor:{value:new yo(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new xs},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new xs},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new xs},transmissionSamplerSize:{value:new bs},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new xs},attenuationDistance:{value:0},attenuationColor:{value:new yo(0)},specularColor:{value:new yo(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new xs},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new xs},anisotropyVector:{value:new bs},anisotropyMap:{value:null},anisotropyMapTransform:{value:new xs}}]),vertexShader:Ju.meshphysical_vert,fragmentShader:Ju.meshphysical_frag};const $u={r:0,b:0,g:0},Zu=new ja,Qu=new Ea;function td(t,e,n,i,r,s,a){const o=new yo(0);let l,h,c=!0===s?0:1,u=null,d=0,f=null;function p(t){let i=!0===t.isScene?t.background:null;if(i&&i.isTexture){const r=t.backgroundBlurriness>0;i=(r?n:e).get(i)}return i}function g(e){let n=!1;const r=p(e);null===r?_(o,c):r&&r.isColor&&(_(r,1),n=!0);const s=t.xr.getEnvironmentBlendMode();"additive"===s?i.buffers.color.setClear(0,0,0,1,a):"alpha-blend"===s&&i.buffers.color.setClear(0,0,0,0,a),(t.autoClear||n)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil))}function m(e,n){const i=p(n);i&&(i.isCubeTexture||i.mapping===Si)?(void 0===h&&(h=new Ko(new Qo(1,1,1),new ol({name:"BackgroundCubeMaterial",uniforms:tl(Ku.backgroundCube.uniforms),vertexShader:Ku.backgroundCube.vertexShader,fragmentShader:Ku.backgroundCube.fragmentShader,side:Mn,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),Zu.copy(n.backgroundRotation),Zu.x*=-1,Zu.y*=-1,Zu.z*=-1,i.isCubeTexture&&!1===i.isRenderTargetTexture&&(Zu.y*=-1,Zu.z*=-1),h.material.uniforms.envMap.value=i,h.material.uniforms.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,h.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,h.material.uniforms.backgroundRotation.value.setFromMatrix4(Qu.makeRotationFromEuler(Zu)),h.material.toneMapped=Is.getTransfer(i.colorSpace)!==Yr,u===i&&d===i.version&&f===t.toneMapping||(h.material.needsUpdate=!0,u=i,d=i.version,f=t.toneMapping),h.layers.enableAll(),e.unshift(h,h.geometry,h.material,0,0,null)):i&&i.isTexture&&(void 0===l&&(l=new Ko(new Pl(2,2),new ol({name:"BackgroundMaterial",uniforms:tl(Ku.background.uniforms),vertexShader:Ku.background.vertexShader,fragmentShader:Ku.background.fragmentShader,side:Tn,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(l)),l.material.uniforms.t2D.value=i,l.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,l.material.toneMapped=Is.getTransfer(i.colorSpace)!==Yr,!0===i.matrixAutoUpdate&&i.updateMatrix(),l.material.uniforms.uvTransform.value.copy(i.matrix),u===i&&d===i.version&&f===t.toneMapping||(l.material.needsUpdate=!0,u=i,d=i.version,f=t.toneMapping),l.layers.enableAll(),e.unshift(l,l.geometry,l.material,0,0,null))}function _(e,n){e.getRGB($u,il(t)),i.buffers.color.setClear($u.r,$u.g,$u.b,n,a)}function v(){void 0!==h&&(h.geometry.dispose(),h.material.dispose(),h=void 0),void 0!==l&&(l.geometry.dispose(),l.material.dispose(),l=void 0)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),c=e,_(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(t){c=t,_(o,c)},render:g,addToRenderList:m,dispose:v}}function ed(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS),i={},r=d(null);let s=r,a=!1;function o(n,i,r,o,l){let c=!1;const d=u(o,r,i);s!==d&&(s=d,h(s.object)),c=f(n,o,r,l),c&&p(n,o,r,l),null!==l&&e.update(l,t.ELEMENT_ARRAY_BUFFER),(c||a)&&(a=!1,b(n,i,r,o),null!==l&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(l).buffer))}function l(){return t.createVertexArray()}function h(e){return t.bindVertexArray(e)}function c(e){return t.deleteVertexArray(e)}function u(t,e,n){const r=!0===n.wireframe;let s=i[t.id];void 0===s&&(s={},i[t.id]=s);let a=s[e.id];void 0===a&&(a={},s[e.id]=a);let o=a[r];return void 0===o&&(o=d(l()),a[r]=o),o}function d(t){const e=[],i=[],r=[];for(let s=0;s<n;s++)e[s]=0,i[s]=0,r[s]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:i,attributeDivisors:r,object:t,attributes:{},index:null}}function f(t,e,n,i){const r=s.attributes,a=e.attributes;let o=0;const l=n.getAttributes();for(const s in l){const e=l[s];if(e.location>=0){const e=r[s];let n=a[s];if(void 0===n&&("instanceMatrix"===s&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===s&&t.instanceColor&&(n=t.instanceColor)),void 0===e)return!0;if(e.attribute!==n)return!0;if(n&&e.data!==n.data)return!0;o++}}return s.attributesNum!==o||s.index!==i}function p(t,e,n,i){const r={},a=e.attributes;let o=0;const l=n.getAttributes();for(const s in l){const e=l[s];if(e.location>=0){let e=a[s];void 0===e&&("instanceMatrix"===s&&t.instanceMatrix&&(e=t.instanceMatrix),"instanceColor"===s&&t.instanceColor&&(e=t.instanceColor));const n={};n.attribute=e,e&&e.data&&(n.data=e.data),r[s]=n,o++}}s.attributes=r,s.attributesNum=o,s.index=i}function g(){const t=s.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function m(t){_(t,0)}function _(e,n){const i=s.newAttributes,r=s.enabledAttributes,a=s.attributeDivisors;i[e]=1,0===r[e]&&(t.enableVertexAttribArray(e),r[e]=1),a[e]!==n&&(t.vertexAttribDivisor(e,n),a[e]=n)}function v(){const e=s.newAttributes,n=s.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function y(e,n,i,r,s,a,o){!0===o?t.vertexAttribIPointer(e,n,i,s,a):t.vertexAttribPointer(e,n,i,r,s,a)}function b(n,i,r,s){g();const a=s.attributes,o=r.getAttributes(),l=i.defaultAttributeValues;for(const h in o){const i=o[h];if(i.location>=0){let r=a[h];if(void 0===r&&("instanceMatrix"===h&&n.instanceMatrix&&(r=n.instanceMatrix),"instanceColor"===h&&n.instanceColor&&(r=n.instanceColor)),void 0!==r){const a=r.normalized,o=r.itemSize,l=e.get(r);if(void 0===l)continue;const h=l.buffer,c=l.type,u=l.bytesPerElement,d=c===t.INT||c===t.UNSIGNED_INT||r.gpuType===Ni;if(r.isInterleavedBufferAttribute){const e=r.data,l=e.stride,f=r.offset;if(e.isInstancedInterleavedBuffer){for(let t=0;t<i.locationSize;t++)_(i.location+t,e.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===s._maxInstanceCount&&(s._maxInstanceCount=e.meshPerAttribute*e.count)}else for(let t=0;t<i.locationSize;t++)m(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,h);for(let t=0;t<i.locationSize;t++)y(i.location+t,o/i.locationSize,c,a,l*u,(f+o/i.locationSize*t)*u,d)}else{if(r.isInstancedBufferAttribute){for(let t=0;t<i.locationSize;t++)_(i.location+t,r.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===s._maxInstanceCount&&(s._maxInstanceCount=r.meshPerAttribute*r.count)}else for(let t=0;t<i.locationSize;t++)m(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,h);for(let t=0;t<i.locationSize;t++)y(i.location+t,o/i.locationSize,c,a,o*u,o/i.locationSize*t*u,d)}}else if(void 0!==l){const e=l[h];if(void 0!==e)switch(e.length){case 2:t.vertexAttrib2fv(i.location,e);break;case 3:t.vertexAttrib3fv(i.location,e);break;case 4:t.vertexAttrib4fv(i.location,e);break;default:t.vertexAttrib1fv(i.location,e)}}}}v()}function x(){T();for(const t in i){const e=i[t];for(const t in e){const n=e[t];for(const t in n)c(n[t].object),delete n[t];delete e[t]}delete i[t]}}function w(t){if(void 0===i[t.id])return;const e=i[t.id];for(const n in e){const t=e[n];for(const e in t)c(t[e].object),delete t[e];delete e[n]}delete i[t.id]}function S(t){for(const e in i){const n=i[e];if(void 0===n[t.id])continue;const r=n[t.id];for(const t in r)c(r[t].object),delete r[t];delete n[t.id]}}function T(){M(),a=!0,s!==r&&(s=r,h(s.object))}function M(){r.geometry=null,r.program=null,r.wireframe=!1}return{setup:o,reset:T,resetDefaultState:M,dispose:x,releaseStatesOfGeometry:w,releaseStatesOfProgram:S,initAttributes:g,enableAttribute:m,disableUnusedAttributes:v}}function nd(t,e,n){let i;function r(t){i=t}function s(e,r){t.drawArrays(i,e,r),n.update(r,i,1)}function a(e,r,s){0!==s&&(t.drawArraysInstanced(i,e,r,s),n.update(r,i,s))}function o(t,r,s){if(0===s)return;const a=e.get("WEBGL_multi_draw");a.multiDrawArraysWEBGL(i,t,0,r,0,s);let o=0;for(let e=0;e<s;e++)o+=r[e];n.update(o,i,1)}function l(t,r,s,o){if(0===s)return;const l=e.get("WEBGL_multi_draw");if(null===l)for(let e=0;e<t.length;e++)a(t[e],r[e],o[e]);else{l.multiDrawArraysInstancedWEBGL(i,t,0,r,0,o,0,s);let e=0;for(let t=0;t<s;t++)e+=r[t]*o[t];n.update(e,i,1)}}this.setMode=r,this.render=s,this.renderInstances=a,this.renderMultiDraw=o,this.renderMultiDrawInstances=l}function id(t,e,n,i){let r;function s(){if(void 0!==r)return r;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");r=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r}function a(e){return e===Xi||i.convert(e)===t.getParameter(t.IMPLEMENTATION_COLOR_READ_FORMAT)}function o(n){const r=n===Bi&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(n!==Di&&i.convert(n)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_TYPE)&&n!==Ui&&!r)}function l(e){if("highp"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let h=void 0!==n.precision?n.precision:"highp";const c=l(h);c!==h&&(console.warn("THREE.WebGLRenderer:",h,"not supported, using",c,"instead."),h=c);const u=!0===n.logarithmicDepthBuffer,d=!0===n.reverseDepthBuffer&&e.has("EXT_clip_control"),f=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),p=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),g=t.getParameter(t.MAX_TEXTURE_SIZE),m=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),_=t.getParameter(t.MAX_VERTEX_ATTRIBS),v=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),y=t.getParameter(t.MAX_VARYING_VECTORS),b=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),x=p>0,w=t.getParameter(t.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:s,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:h,logarithmicDepthBuffer:u,reverseDepthBuffer:d,maxTextures:f,maxVertexTextures:p,maxTextureSize:g,maxCubemapSize:m,maxAttributes:_,maxVertexUniforms:v,maxVaryings:y,maxFragmentUniforms:b,vertexTextures:x,maxSamples:w}}function rd(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Ml,o=new xs,l={value:null,needsUpdate:!1};function h(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function c(t,n,i,r){const s=null!==t?t.length:0;let h=null;if(0!==s){if(h=l.value,!0!==r||null===h){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===h||h.length<e)&&(h=new Float32Array(e));for(let n=0,l=i;n!==s;++n,l+=4)a.copy(t[n]).applyMatrix4(r,o),a.normal.toArray(h,l),h[l+3]=a.constant}l.value=h,l.needsUpdate=!0}return e.numPlanes=s,e.numIntersection=0,h}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e){const n=0!==t.length||e||0!==i||r;return r=e,i=t.length,n},this.beginShadows=function(){s=!0,c(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(t,e){n=c(t,e,0)},this.setState=function(e,a,o){const u=e.clippingPlanes,d=e.clipIntersection,f=e.clipShadows,p=t.get(e);if(!r||null===u||0===u.length||s&&!f)s?c(null):h();else{const t=s?0:i,e=4*t;let r=p.clippingState||null;l.value=r,r=c(u,a,e,o);for(let i=0;i!==e;++i)r[i]=n[i];p.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function sd(t){let e=new WeakMap;function n(t,e){return e===xi?t.mapping=yi:e===wi&&(t.mapping=bi),t}function i(i){if(i&&i.isTexture){const s=i.mapping;if(s===xi||s===wi){if(e.has(i)){const t=e.get(i).texture;return n(t,i.mapping)}{const s=i.image;if(s&&s.height>0){const a=new _l(s.height);return a.fromEquirectangularTexture(t,i),e.set(i,a),i.addEventListener("dispose",r),n(a.texture,i.mapping)}return null}}}return i}function r(t){const n=t.target;n.removeEventListener("dispose",r);const i=e.get(n);void 0!==i&&(e.delete(n),i.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}const ad=4,od=[.125,.215,.35,.446,.526,.582],ld=20,hd=new $l,cd=new yo;let ud=null,dd=0,fd=0,pd=!1;const gd=(1+Math.sqrt(5))/2,md=1/gd,_d=[new Ks(-gd,md,0),new Ks(gd,md,0),new Ks(-md,0,gd),new Ks(md,0,gd),new Ks(0,gd,-md),new Ks(0,gd,md),new Ks(-1,1,-1),new Ks(1,1,-1),new Ks(-1,1,1),new Ks(1,1,1)];class vd{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){ud=this._renderer.getRenderTarget(),dd=this._renderer.getActiveCubeFace(),fd=this._renderer.getActiveMipmapLevel(),pd=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Td(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=Sd(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;t<this._lodPlanes.length;t++)this._lodPlanes[t].dispose()}_cleanup(t){this._renderer.setRenderTarget(ud,dd,fd),this._renderer.xr.enabled=pd,t.scissorTest=!1,xd(t,0,0,t.width,t.height)}_fromTexture(t,e){t.mapping===yi||t.mapping===bi?this._setSize(0===t.image.length?16:t.image[0].width||t.image[0].image.width):this._setSize(t.image.width/4),ud=this._renderer.getRenderTarget(),dd=this._renderer.getActiveCubeFace(),fd=this._renderer.getActiveMipmapLevel(),pd=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const n=e||this._allocateTargets();return this._textureToCubeUV(t,n),this._applyPMREM(n),this._cleanup(n),n}_allocateTargets(){const t=3*Math.max(this._cubeSize,112),e=4*this._cubeSize,n={magFilter:Ci,minFilter:Ci,generateMipmaps:!1,type:Bi,format:Xi,colorSpace:Xr,depthBuffer:!1},i=bd(t,e,n);if(null===this._pingPongRenderTarget||this._pingPongRenderTarget.width!==t||this._pingPongRenderTarget.height!==e){null!==this._pingPongRenderTarget&&this._dispose(),this._pingPongRenderTarget=bd(t,e,n);const{_lodMax:i}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=yd(i)),this._blurMaterial=wd(i,t,e)}return i}_compileMaterial(t){const e=new Ko(this._lodPlanes[0],t);this._renderer.compile(e,hd)}_sceneToCubeUV(t,e,n,i){const r=90,s=1,a=new dl(r,s,e,n),o=[1,-1,1,1,1,1],l=[1,1,1,-1,-1,-1],h=this._renderer,c=h.autoClear,u=h.toneMapping;h.getClearColor(cd),h.toneMapping=ci,h.autoClear=!1;const d=new So({name:"PMREM.Background",side:Mn,depthWrite:!1,depthTest:!1}),f=new Ko(new Qo,d);let p=!1;const g=t.background;g?g.isColor&&(d.color.copy(g),t.background=null,p=!0):(d.color.copy(cd),p=!0);for(let m=0;m<6;m++){const e=m%3;0===e?(a.up.set(0,o[m],0),a.lookAt(l[m],0,0)):1===e?(a.up.set(0,0,o[m]),a.lookAt(0,l[m],0)):(a.up.set(0,o[m],0),a.lookAt(0,0,l[m]));const n=this._cubeSize;xd(i,e*n,m>2?n:0,n,n),h.setRenderTarget(i),p&&h.render(f,a),h.render(t,a)}f.geometry.dispose(),f.material.dispose(),h.toneMapping=u,h.autoClear=c,t.background=g}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===yi||t.mapping===bi;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Td()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=Sd());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Ko(this._lodPlanes[0],r),a=r.uniforms;a["envMap"].value=t;const o=this._cubeSize;xd(e,0,0,3*o,2*o),n.setRenderTarget(e),n.render(s,hd)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;const i=this._lodPlanes.length;for(let r=1;r<i;r++){const e=Math.sqrt(this._sigmas[r]*this._sigmas[r]-this._sigmas[r-1]*this._sigmas[r-1]),n=_d[(i-r-1)%_d.length];this._blur(t,r-1,r,e,n)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,"latitudinal",r),this._halfBlur(s,t,n,n,i,"longitudinal",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer,l=this._blurMaterial;"latitudinal"!==s&&"longitudinal"!==s&&console.error("blur direction must be either latitudinal or longitudinal!");const h=3,c=new Ko(this._lodPlanes[i],l),u=l.uniforms,d=this._sizeLods[n]-1,f=isFinite(r)?Math.PI/(2*d):2*Math.PI/(2*ld-1),p=r/f,g=isFinite(r)?1+Math.floor(h*p):ld;g>ld&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${g} samples when the maximum is set to ${ld}`);const m=[];let _=0;for(let w=0;w<ld;++w){const t=w/p,e=Math.exp(-t*t/2);m.push(e),0===w?_+=e:w<g&&(_+=2*e)}for(let w=0;w<m.length;w++)m[w]=m[w]/_;u["envMap"].value=t.texture,u["samples"].value=g,u["weights"].value=m,u["latitudinal"].value="latitudinal"===s,a&&(u["poleAxis"].value=a);const{_lodMax:v}=this;u["dTheta"].value=f,u["mipInt"].value=v-n;const y=this._sizeLods[i],b=3*y*(i>v-ad?i-v+ad:0),x=4*(this._cubeSize-y);xd(e,b,x,3*y,2*y),o.setRenderTarget(e),o.render(c,hd)}}function yd(t){const e=[],n=[],i=[];let r=t;const s=t-ad+1+od.length;for(let a=0;a<s;a++){const s=Math.pow(2,r);n.push(s);let o=1/s;a>t-ad?o=od[a-t+ad-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),h=-l,c=1+l,u=[h,h,c,h,c,c,h,h,c,c,h,c],d=6,f=6,p=3,g=2,m=1,_=new Float32Array(p*f*d),v=new Float32Array(g*f*d),y=new Float32Array(m*f*d);for(let t=0;t<d;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];_.set(i,p*f*t),v.set(u,g*f*t);const r=[t,t,t,t,t,t];y.set(r,m*f*t)}const b=new Oo;b.setAttribute("position",new Ao(_,p)),b.setAttribute("uv",new Ao(v,g)),b.setAttribute("faceIndex",new Ao(y,m)),e.push(b),r>ad&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}function bd(t,e,n){const i=new Ws(t,e,n);return i.texture.mapping=Si,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function xd(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function wd(t,e,n){const i=new Float32Array(ld),r=new Ks(0,1,0),s=new ol({name:"SphericalGaussianBlur",defines:{n:ld,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Md(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:An,depthTest:!1,depthWrite:!1});return s}function Sd(){return new ol({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Md(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:An,depthTest:!1,depthWrite:!1})}function Td(){return new ol({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Md(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:An,depthTest:!1,depthWrite:!1})}function Md(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Ed(t){let e=new WeakMap,n=null;function i(i){if(i&&i.isTexture){const a=i.mapping,o=a===xi||a===wi,l=a===yi||a===bi;if(o||l){let a=e.get(i);const h=void 0!==a?a.texture.pmremVersion:0;if(i.isRenderTargetTexture&&i.pmremVersion!==h)return null===n&&(n=new vd(t)),a=o?n.fromEquirectangular(i,a):n.fromCubemap(i,a),a.texture.pmremVersion=i.pmremVersion,e.set(i,a),a.texture;if(void 0!==a)return a.texture;{const h=i.image;return o&&h&&h.height>0||l&&h&&r(h)?(null===n&&(n=new vd(t)),a=o?n.fromEquirectangular(i):n.fromCubemap(i),a.texture.pmremVersion=i.pmremVersion,e.set(i,a),i.addEventListener("dispose",s),a.texture):null}}}return i}function r(t){let e=0;const n=6;for(let i=0;i<n;i++)void 0!==t[i]&&e++;return e===n}function s(t){const n=t.target;n.removeEventListener("dispose",s);const i=e.get(n);void 0!==i&&(e.delete(n),i.dispose())}function a(){e=new WeakMap,null!==n&&(n.dispose(),n=null)}return{get:i,dispose:a}}function Ad(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(t){const e=n(t);return null===e&&As("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function Rd(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const n in o.attributes)e.remove(o.attributes[n]);o.removeEventListener("dispose",a),delete r[o.id];const l=s.get(o);l&&(e.remove(l),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e}function l(n){const i=n.attributes;for(const r in i)e.update(i[r],t.ARRAY_BUFFER)}function h(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],s=t[e+2];n.push(i,r,r,s,s,i)}}else{if(void 0===r)return;{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,r=e+2;n.push(t,i,i,r,r,t)}}}const o=new(Ss(n)?zo:Ro)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l),s.set(t,o)}function c(t){const e=s.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&h(t)}else h(t);return s.get(t)}return{get:o,update:l,getWireframeAttribute:c}}function zd(t,e,n){let i,r,s;function a(t){i=t}function o(t){r=t.type,s=t.bytesPerElement}function l(e,a){t.drawElements(i,a,r,e*s),n.update(a,i,1)}function h(e,a,o){0!==o&&(t.drawElementsInstanced(i,a,r,e*s,o),n.update(a,i,o))}function c(t,s,a){if(0===a)return;const o=e.get("WEBGL_multi_draw");o.multiDrawElementsWEBGL(i,s,0,r,t,0,a);let l=0;for(let e=0;e<a;e++)l+=s[e];n.update(l,i,1)}function u(t,a,o,l){if(0===o)return;const c=e.get("WEBGL_multi_draw");if(null===c)for(let e=0;e<t.length;e++)h(t[e]/s,a[e],l[e]);else{c.multiDrawElementsInstancedWEBGL(i,a,0,r,t,0,l,0,o);let e=0;for(let t=0;t<o;t++)e+=a[t]*l[t];n.update(e,i,1)}}this.setMode=a,this.setIndex=o,this.render=l,this.renderInstances=h,this.renderMultiDraw=c,this.renderMultiDrawInstances=u}function Cd(t){const e={geometries:0,textures:0},n={frame:0,calls:0,triangles:0,points:0,lines:0};function i(e,i,r){switch(n.calls++,i){case t.TRIANGLES:n.triangles+=r*(e/3);break;case t.LINES:n.lines+=r*(e/2);break;case t.LINE_STRIP:n.lines+=r*(e-1);break;case t.LINE_LOOP:n.lines+=r*e;break;case t.POINTS:n.points+=r*e;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",i);break}}function r(){n.calls=0,n.triangles=0,n.points=0,n.lines=0}return{memory:e,render:n,programs:null,autoReset:!0,reset:r,update:i}}function Pd(t,e,n){const i=new WeakMap,r=new Vs;function s(s,a,o){const l=s.morphTargetInfluences,h=a.morphAttributes.position||a.morphAttributes.normal||a.morphAttributes.color,c=void 0!==h?h.length:0;let u=i.get(a);if(void 0===u||u.count!==c){void 0!==u&&u.texture.dispose();const d=void 0!==a.morphAttributes.position,f=void 0!==a.morphAttributes.normal,p=void 0!==a.morphAttributes.color,g=a.morphAttributes.position||[],m=a.morphAttributes.normal||[],_=a.morphAttributes.color||[];let v=0;!0===d&&(v=1),!0===f&&(v=2),!0===p&&(v=3);let y=a.attributes.position.count*v,b=1;y>e.maxTextureSize&&(b=Math.ceil(y/e.maxTextureSize),y=e.maxTextureSize);const x=new Float32Array(y*b*4*c),w=new Xs(x,y,b,c);w.type=Ui,w.needsUpdate=!0;const S=4*v;for(let M=0;M<c;M++){const E=g[M],A=m[M],R=_[M],z=y*b*4*M;for(let C=0;C<E.count;C++){const P=C*S;!0===d&&(r.fromBufferAttribute(E,C),x[z+P+0]=r.x,x[z+P+1]=r.y,x[z+P+2]=r.z,x[z+P+3]=0),!0===f&&(r.fromBufferAttribute(A,C),x[z+P+4]=r.x,x[z+P+5]=r.y,x[z+P+6]=r.z,x[z+P+7]=0),!0===p&&(r.fromBufferAttribute(R,C),x[z+P+8]=r.x,x[z+P+9]=r.y,x[z+P+10]=r.z,x[z+P+11]=4===R.itemSize?r.w:1)}}function T(){w.dispose(),i.delete(a),a.removeEventListener("dispose",T)}u={count:c,texture:w,size:new bs(y,b)},i.set(a,u),a.addEventListener("dispose",T)}if(!0===s.isInstancedMesh&&null!==s.morphTexture)o.getUniforms().setValue(t,"morphTexture",s.morphTexture,n);else{let k=0;for(let I=0;I<l.length;I++)k+=l[I];const D=a.morphTargetsRelative?1:1-k;o.getUniforms().setValue(t,"morphTargetBaseInfluence",D),o.getUniforms().setValue(t,"morphTargetInfluences",l)}o.getUniforms().setValue(t,"morphTargetsTexture",u.texture,n),o.getUniforms().setValue(t,"morphTargetsTextureSize",u.size)}return{update:s}}function kd(t,e,n,i){let r=new WeakMap;function s(s){const a=i.render.frame,l=s.geometry,h=e.get(s,l);if(r.get(h)!==a&&(e.update(h),r.set(h,a)),s.isInstancedMesh&&(!1===s.hasEventListener("dispose",o)&&s.addEventListener("dispose",o),r.get(s)!==a&&(n.update(s.instanceMatrix,t.ARRAY_BUFFER),null!==s.instanceColor&&n.update(s.instanceColor,t.ARRAY_BUFFER),r.set(s,a))),s.isSkinnedMesh){const t=s.skeleton;r.get(t)!==a&&(t.update(),r.set(t,a))}return h}function a(){r=new WeakMap}function o(t){const e=t.target;e.removeEventListener("dispose",o),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:s,dispose:a}}const Dd=new qs,Id=new Cl(1,1),Ld=new Xs,jd=new Js,Nd=new ml,Od=[],Ud=[],Bd=new Float32Array(16),Fd=new Float32Array(9),Hd=new Float32Array(4);function qd(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=Od[r];if(void 0===s&&(s=new Float32Array(r),Od[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Vd(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function Gd(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function Wd(t,e){let n=Ud[e];void 0===n&&(n=new Int32Array(e),Ud[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function Xd(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function Jd(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(Vd(n,e))return;t.uniform2fv(this.addr,e),Gd(n,e)}}function Yd(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(Vd(n,e))return;t.uniform3fv(this.addr,e),Gd(n,e)}}function Kd(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(Vd(n,e))return;t.uniform4fv(this.addr,e),Gd(n,e)}}function $d(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Vd(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),Gd(n,e)}else{if(Vd(n,i))return;Hd.set(i),t.uniformMatrix2fv(this.addr,!1,Hd),Gd(n,i)}}function Zd(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Vd(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),Gd(n,e)}else{if(Vd(n,i))return;Fd.set(i),t.uniformMatrix3fv(this.addr,!1,Fd),Gd(n,i)}}function Qd(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Vd(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),Gd(n,e)}else{if(Vd(n,i))return;Bd.set(i),t.uniformMatrix4fv(this.addr,!1,Bd),Gd(n,i)}}function tf(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function ef(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2i(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(Vd(n,e))return;t.uniform2iv(this.addr,e),Gd(n,e)}}function nf(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3i(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(Vd(n,e))return;t.uniform3iv(this.addr,e),Gd(n,e)}}function rf(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4i(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(Vd(n,e))return;t.uniform4iv(this.addr,e),Gd(n,e)}}function sf(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function af(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2ui(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(Vd(n,e))return;t.uniform2uiv(this.addr,e),Gd(n,e)}}function of(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3ui(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(Vd(n,e))return;t.uniform3uiv(this.addr,e),Gd(n,e)}}function lf(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4ui(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(Vd(n,e))return;t.uniform4uiv(this.addr,e),Gd(n,e)}}function hf(t,e,n){const i=this.cache,r=n.allocateTextureUnit();let s;i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),this.type===t.SAMPLER_2D_SHADOW?(Id.compareFunction=es,s=Id):s=Dd,n.setTexture2D(e||s,r)}function cf(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||jd,r)}function uf(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTextureCube(e||Nd,r)}function df(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||Ld,r)}function ff(t){switch(t){case 5126:return Xd;case 35664:return Jd;case 35665:return Yd;case 35666:return Kd;case 35674:return $d;case 35675:return Zd;case 35676:return Qd;case 5124:case 35670:return tf;case 35667:case 35671:return ef;case 35668:case 35672:return nf;case 35669:case 35673:return rf;case 5125:return sf;case 36294:return af;case 36295:return of;case 36296:return lf;case 35678:case 36198:case 36298:case 36306:case 35682:return hf;case 35679:case 36299:case 36307:return cf;case 35680:case 36300:case 36308:case 36293:return uf;case 36289:case 36303:case 36311:case 36292:return df}}function pf(t,e){t.uniform1fv(this.addr,e)}function gf(t,e){const n=qd(e,this.size,2);t.uniform2fv(this.addr,n)}function mf(t,e){const n=qd(e,this.size,3);t.uniform3fv(this.addr,n)}function _f(t,e){const n=qd(e,this.size,4);t.uniform4fv(this.addr,n)}function vf(t,e){const n=qd(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function yf(t,e){const n=qd(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function bf(t,e){const n=qd(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function xf(t,e){t.uniform1iv(this.addr,e)}function wf(t,e){t.uniform2iv(this.addr,e)}function Sf(t,e){t.uniform3iv(this.addr,e)}function Tf(t,e){t.uniform4iv(this.addr,e)}function Mf(t,e){t.uniform1uiv(this.addr,e)}function Ef(t,e){t.uniform2uiv(this.addr,e)}function Af(t,e){t.uniform3uiv(this.addr,e)}function Rf(t,e){t.uniform4uiv(this.addr,e)}function zf(t,e,n){const i=this.cache,r=e.length,s=Wd(n,r);Vd(i,s)||(t.uniform1iv(this.addr,s),Gd(i,s));for(let a=0;a!==r;++a)n.setTexture2D(e[a]||Dd,s[a])}function Cf(t,e,n){const i=this.cache,r=e.length,s=Wd(n,r);Vd(i,s)||(t.uniform1iv(this.addr,s),Gd(i,s));for(let a=0;a!==r;++a)n.setTexture3D(e[a]||jd,s[a])}function Pf(t,e,n){const i=this.cache,r=e.length,s=Wd(n,r);Vd(i,s)||(t.uniform1iv(this.addr,s),Gd(i,s));for(let a=0;a!==r;++a)n.setTextureCube(e[a]||Nd,s[a])}function kf(t,e,n){const i=this.cache,r=e.length,s=Wd(n,r);Vd(i,s)||(t.uniform1iv(this.addr,s),Gd(i,s));for(let a=0;a!==r;++a)n.setTexture2DArray(e[a]||Ld,s[a])}function Df(t){switch(t){case 5126:return pf;case 35664:return gf;case 35665:return mf;case 35666:return _f;case 35674:return vf;case 35675:return yf;case 35676:return bf;case 5124:case 35670:return xf;case 35667:case 35671:return wf;case 35668:case 35672:return Sf;case 35669:case 35673:return Tf;case 5125:return Mf;case 36294:return Ef;case 36295:return Af;case 36296:return Rf;case 35678:case 36198:case 36298:case 36306:case 35682:return zf;case 35679:case 36299:case 36307:return Cf;case 35680:case 36300:case 36308:case 36293:return Pf;case 36289:case 36303:case 36311:case 36292:return kf}}class If{constructor(t,e,n){this.id=t,this.addr=n,this.cache=[],this.type=e.type,this.setValue=ff(e.type)}}class Lf{constructor(t,e,n){this.id=t,this.addr=n,this.cache=[],this.type=e.type,this.size=e.size,this.setValue=Df(e.type)}}class jf{constructor(t){this.id=t,this.seq=[],this.map={}}setValue(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}}}const Nf=/(\w+)(\])?(\[|\.)?/g;function Of(t,e){t.seq.push(e),t.map[e.id]=e}function Uf(t,e,n){const i=t.name,r=i.length;Nf.lastIndex=0;while(1){const s=Nf.exec(i),a=Nf.lastIndex;let o=s[1];const l="]"===s[2],h=s[3];if(l&&(o|=0),void 0===h||"["===h&&a+2===r){Of(n,void 0===h?new If(o,t,e):new Lf(o,t,e));break}{const t=n.map;let e=t[o];void 0===e&&(e=new jf(o),Of(n,e)),n=e}}}class Bf{constructor(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i),r=t.getUniformLocation(e,n.name);Uf(n,r,this)}}setValue(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)}setOptional(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)}static upload(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];!1!==a.needsUpdate&&s.setValue(t,a.value,i)}}static seqWithValue(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n}}function Ff(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}const Hf=37297;let qf=0;function Vf(t,e){const n=t.split("\n"),i=[],r=Math.max(e-6,0),s=Math.min(e+6,n.length);for(let a=r;a<s;a++){const t=a+1;i.push(`${t===e?">":" "} ${t}: ${n[a]}`)}return i.join("\n")}const Gf=new xs;function Wf(t){Is._getMatrix(Gf,Is.workingColorSpace,t);const e=`mat3( ${Gf.elements.map((t=>t.toFixed(4)))} )`;switch(Is.getTransfer(t)){case Jr:return[e,"LinearTransferOETF"];case Yr:return[e,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",t),[e,"LinearTransferOETF"]}}function Xf(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS),r=t.getShaderInfoLog(e).trim();if(i&&""===r)return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const i=parseInt(s[1]);return n.toUpperCase()+"\n\n"+r+"\n\n"+Vf(t.getShaderSource(e),i)}return r}function Jf(t,e){const n=Wf(e);return[`vec4 ${t}( vec4 value ) {`,`\treturn ${n[1]}( vec4( value.rgb * ${n[0]}, value.a ) );`,"}"].join("\n")}function Yf(t,e){let n;switch(e){case ui:n="Linear";break;case di:n="Reinhard";break;case fi:n="Cineon";break;case pi:n="ACESFilmic";break;case mi:n="AgX";break;case _i:n="Neutral";break;case gi:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}const Kf=new Ks;function $f(){Is.getLuminanceCoefficients(Kf);const t=Kf.x.toFixed(4),e=Kf.y.toFixed(4),n=Kf.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",`\tconst vec3 weights = vec3( ${t}, ${e}, ${n} );`,"\treturn dot( weights, rgb );","}"].join("\n")}function Zf(t){const e=[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""];return e.filter(ep).join("\n")}function Qf(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}function tp(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r),s=i.name;let a=1;i.type===t.FLOAT_MAT2&&(a=2),i.type===t.FLOAT_MAT3&&(a=3),i.type===t.FLOAT_MAT4&&(a=4),n[s]={type:i.type,location:t.getAttribLocation(e,s),locationSize:a}}return n}function ep(t){return""!==t}function np(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function ip(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const rp=/^[ \t]*#include +<([\w\d./]+)>/gm;function sp(t){return t.replace(rp,op)}const ap=new Map;function op(t,e){let n=Ju[e];if(void 0===n){const t=ap.get(e);if(void 0===t)throw new Error("Can not resolve #include <"+e+">");n=Ju[t],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,t)}return sp(n)}const lp=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function hp(t){return t.replace(lp,cp)}function cp(t,e,n,i){let r="";for(let s=parseInt(e);s<parseInt(n);s++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+s+" ]").replace(/UNROLLED_LOOP_INDEX/g,s);return r}function up(t){let e=`precision ${t.precision} float;\n\tprecision ${t.precision} int;\n\tprecision ${t.precision} sampler2D;\n\tprecision ${t.precision} samplerCube;\n\tprecision ${t.precision} sampler3D;\n\tprecision ${t.precision} sampler2DArray;\n\tprecision ${t.precision} sampler2DShadow;\n\tprecision ${t.precision} samplerCubeShadow;\n\tprecision ${t.precision} sampler2DArrayShadow;\n\tprecision ${t.precision} isampler2D;\n\tprecision ${t.precision} isampler3D;\n\tprecision ${t.precision} isamplerCube;\n\tprecision ${t.precision} isampler2DArray;\n\tprecision ${t.precision} usampler2D;\n\tprecision ${t.precision} usampler3D;\n\tprecision ${t.precision} usamplerCube;\n\tprecision ${t.precision} usampler2DArray;\n\t`;return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function dp(t){let e="SHADOWMAP_TYPE_BASIC";return t.shadowMapType===xn?e="SHADOWMAP_TYPE_PCF":t.shadowMapType===wn?e="SHADOWMAP_TYPE_PCF_SOFT":t.shadowMapType===Sn&&(e="SHADOWMAP_TYPE_VSM"),e}function fp(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case yi:case bi:e="ENVMAP_TYPE_CUBE";break;case Si:e="ENVMAP_TYPE_CUBE_UV";break}return e}function pp(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case bi:e="ENVMAP_MODE_REFRACTION";break}return e}function gp(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case oi:e="ENVMAP_BLENDING_MULTIPLY";break;case li:e="ENVMAP_BLENDING_MIX";break;case hi:e="ENVMAP_BLENDING_ADD";break}return e}function mp(t){const e=t.envMapCubeUVHeight;if(null===e)return null;const n=Math.log2(e)-2,i=1/e,r=1/(3*Math.max(Math.pow(2,n),112));return{texelWidth:r,texelHeight:i,maxMip:n}}function _p(t,e,n,i){const r=t.getContext(),s=n.defines;let a=n.vertexShader,o=n.fragmentShader;const l=dp(n),h=fp(n),c=pp(n),u=gp(n),d=mp(n),f=Zf(n),p=Qf(s),g=r.createProgram();let m,_,v=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(m=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,p].filter(ep).join("\n"),m.length>0&&(m+="\n"),_=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,p].filter(ep).join("\n"),_.length>0&&(_+="\n")):(m=[up(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,p,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(ep).join("\n"),_=[up(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,p,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+h:"",n.envMap?"#define "+c:"",n.envMap?"#define "+u:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==ci?"#define TONE_MAPPING":"",n.toneMapping!==ci?Ju["tonemapping_pars_fragment"]:"",n.toneMapping!==ci?Yf("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Ju["colorspace_pars_fragment"],Jf("linearToOutputTexel",n.outputColorSpace),$f(),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(ep).join("\n")),a=sp(a),a=np(a,n),a=ip(a,n),o=sp(o),o=np(o,n),o=ip(o,n),a=hp(a),o=hp(o),!0!==n.isRawShaderMaterial&&(v="#version 300 es\n",m=[f,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+m,_=["#define varying in",n.glslVersion===os?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===os?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+_);const y=v+m+a,b=v+_+o,x=Ff(r,r.VERTEX_SHADER,y),w=Ff(r,r.FRAGMENT_SHADER,b);function S(e){if(t.debug.checkShaderErrors){const n=r.getProgramInfoLog(g).trim(),i=r.getShaderInfoLog(x).trim(),s=r.getShaderInfoLog(w).trim();let a=!0,o=!0;if(!1===r.getProgramParameter(g,r.LINK_STATUS))if(a=!1,"function"===typeof t.debug.onShaderError)t.debug.onShaderError(r,g,x,w);else{const t=Xf(r,x,"vertex"),i=Xf(r,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(g,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+e.name+"\nMaterial Type: "+e.type+"\n\nProgram Info Log: "+n+"\n"+t+"\n"+i)}else""!==n?console.warn("THREE.WebGLProgram: Program Info Log:",n):""!==i&&""!==s||(o=!1);o&&(e.diagnostics={runnable:a,programLog:n,vertexShader:{log:i,prefix:m},fragmentShader:{log:s,prefix:_}})}r.deleteShader(x),r.deleteShader(w),T=new Bf(r,g),M=tp(r,g)}let T,M;r.attachShader(g,x),r.attachShader(g,w),void 0!==n.index0AttributeName?r.bindAttribLocation(g,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(g,0,"position"),r.linkProgram(g),this.getUniforms=function(){return void 0===T&&S(this),T},this.getAttributes=function(){return void 0===M&&S(this),M};let E=!1===n.rendererExtensionParallelShaderCompile;return this.isReady=function(){return!1===E&&(E=r.getProgramParameter(g,Hf)),E},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(g),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=qf++,this.cacheKey=e,this.usedTimes=1,this.program=g,this.vertexShader=x,this.fragmentShader=w,this}let vp=0;class yp{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),r=this._getShaderStage(n),s=this._getShaderCacheForMaterial(t);return!1===s.has(i)&&(s.add(i),i.usedTimes++),!1===s.has(r)&&(s.add(r),r.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,0===n.usedTimes&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return void 0===n&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return void 0===n&&(n=new bp(t),e.set(t,n)),n}}class bp{constructor(t){this.id=vp++,this.code=t,this.usedTimes=0}}function xp(t,e,n,i,r,s,a){const o=new Na,l=new yp,h=new Set,c=[],u=r.logarithmicDepthBuffer,d=r.vertexTextures;let f=r.precision;const p={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function g(t){return h.add(t),0===t?"uv":`uv${t}`}function m(s,o,c,m,_){const v=m.fog,y=_.geometry,b=s.isMeshStandardMaterial?m.environment:null,x=(s.isMeshStandardMaterial?n:e).get(s.envMap||b),w=x&&x.mapping===Si?x.image.height:null,S=p[s.type];null!==s.precision&&(f=r.getMaxPrecision(s.precision),f!==s.precision&&console.warn("THREE.WebGLProgram.getParameters:",s.precision,"not supported, using",f,"instead."));const T=y.morphAttributes.position||y.morphAttributes.normal||y.morphAttributes.color,M=void 0!==T?T.length:0;let E,A,R,z,C=0;if(void 0!==y.morphAttributes.position&&(C=1),void 0!==y.morphAttributes.normal&&(C=2),void 0!==y.morphAttributes.color&&(C=3),S){const t=Ku[S];E=t.vertexShader,A=t.fragmentShader}else E=s.vertexShader,A=s.fragmentShader,l.update(s),R=l.getVertexShaderID(s),z=l.getFragmentShaderID(s);const P=t.getRenderTarget(),k=t.state.buffers.depth.getReversed(),D=!0===_.isInstancedMesh,I=!0===_.isBatchedMesh,L=!!s.map,j=!!s.matcap,N=!!x,O=!!s.aoMap,U=!!s.lightMap,B=!!s.bumpMap,F=!!s.normalMap,H=!!s.displacementMap,q=!!s.emissiveMap,V=!!s.metalnessMap,G=!!s.roughnessMap,W=s.anisotropy>0,X=s.clearcoat>0,J=s.dispersion>0,Y=s.iridescence>0,K=s.sheen>0,$=s.transmission>0,Z=W&&!!s.anisotropyMap,Q=X&&!!s.clearcoatMap,tt=X&&!!s.clearcoatNormalMap,et=X&&!!s.clearcoatRoughnessMap,nt=Y&&!!s.iridescenceMap,it=Y&&!!s.iridescenceThicknessMap,rt=K&&!!s.sheenColorMap,st=K&&!!s.sheenRoughnessMap,at=!!s.specularMap,ot=!!s.specularColorMap,lt=!!s.specularIntensityMap,ht=$&&!!s.transmissionMap,ct=$&&!!s.thicknessMap,ut=!!s.gradientMap,dt=!!s.alphaMap,ft=s.alphaTest>0,pt=!!s.alphaHash,gt=!!s.extensions;let mt=ci;s.toneMapped&&(null!==P&&!0!==P.isXRRenderTarget||(mt=t.toneMapping));const _t={shaderID:S,shaderType:s.type,shaderName:s.name,vertexShader:E,fragmentShader:A,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:z,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:f,batching:I,batchingColor:I&&null!==_._colorsTexture,instancing:D,instancingColor:D&&null!==_.instanceColor,instancingMorph:D&&null!==_.morphTexture,supportsVertexTextures:d,outputColorSpace:null===P?t.outputColorSpace:!0===P.isXRRenderTarget?P.texture.colorSpace:Xr,alphaToCoverage:!!s.alphaToCoverage,map:L,matcap:j,envMap:N,envMapMode:N&&x.mapping,envMapCubeUVHeight:w,aoMap:O,lightMap:U,bumpMap:B,normalMap:F,displacementMap:d&&H,emissiveMap:q,normalMapObjectSpace:F&&s.normalMapType===Vr,normalMapTangentSpace:F&&s.normalMapType===qr,metalnessMap:V,roughnessMap:G,anisotropy:W,anisotropyMap:Z,clearcoat:X,clearcoatMap:Q,clearcoatNormalMap:tt,clearcoatRoughnessMap:et,dispersion:J,iridescence:Y,iridescenceMap:nt,iridescenceThicknessMap:it,sheen:K,sheenColorMap:rt,sheenRoughnessMap:st,specularMap:at,specularColorMap:ot,specularIntensityMap:lt,transmission:$,transmissionMap:ht,thicknessMap:ct,gradientMap:ut,opaque:!1===s.transparent&&s.blending===Rn&&!1===s.alphaToCoverage,alphaMap:dt,alphaTest:ft,alphaHash:pt,combine:s.combine,mapUv:L&&g(s.map.channel),aoMapUv:O&&g(s.aoMap.channel),lightMapUv:U&&g(s.lightMap.channel),bumpMapUv:B&&g(s.bumpMap.channel),normalMapUv:F&&g(s.normalMap.channel),displacementMapUv:H&&g(s.displacementMap.channel),emissiveMapUv:q&&g(s.emissiveMap.channel),metalnessMapUv:V&&g(s.metalnessMap.channel),roughnessMapUv:G&&g(s.roughnessMap.channel),anisotropyMapUv:Z&&g(s.anisotropyMap.channel),clearcoatMapUv:Q&&g(s.clearcoatMap.channel),clearcoatNormalMapUv:tt&&g(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:et&&g(s.clearcoatRoughnessMap.channel),iridescenceMapUv:nt&&g(s.iridescenceMap.channel),iridescenceThicknessMapUv:it&&g(s.iridescenceThicknessMap.channel),sheenColorMapUv:rt&&g(s.sheenColorMap.channel),sheenRoughnessMapUv:st&&g(s.sheenRoughnessMap.channel),specularMapUv:at&&g(s.specularMap.channel),specularColorMapUv:ot&&g(s.specularColorMap.channel),specularIntensityMapUv:lt&&g(s.specularIntensityMap.channel),transmissionMapUv:ht&&g(s.transmissionMap.channel),thicknessMapUv:ct&&g(s.thicknessMap.channel),alphaMapUv:dt&&g(s.alphaMap.channel),vertexTangents:!!y.attributes.tangent&&(F||W),vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!y.attributes.color&&4===y.attributes.color.itemSize,pointsUvs:!0===_.isPoints&&!!y.attributes.uv&&(L||dt),fog:!!v,useFog:!0===s.fog,fogExp2:!!v&&v.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,reverseDepthBuffer:k,skinning:!0===_.isSkinnedMesh,morphTargets:void 0!==y.morphAttributes.position,morphNormals:void 0!==y.morphAttributes.normal,morphColors:void 0!==y.morphAttributes.color,morphTargetsCount:M,morphTextureStride:C,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&c.length>0,shadowMapType:t.shadowMap.type,toneMapping:mt,decodeVideoTexture:L&&!0===s.map.isVideoTexture&&Is.getTransfer(s.map.colorSpace)===Yr,decodeVideoTextureEmissive:q&&!0===s.emissiveMap.isVideoTexture&&Is.getTransfer(s.emissiveMap.colorSpace)===Yr,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===En,flipSided:s.side===Mn,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionClipCullDistance:gt&&!0===s.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(gt&&!0===s.extensions.multiDraw||I)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:s.customProgramCacheKey()};return _t.vertexUv1s=h.has(1),_t.vertexUv2s=h.has(2),_t.vertexUv3s=h.has(3),h.clear(),_t}function _(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(v(n,e),y(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()}function v(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.numLightProbes),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}function y(t,e){o.disableAll(),e.supportsVertexTextures&&o.enable(0),e.instancing&&o.enable(1),e.instancingColor&&o.enable(2),e.instancingMorph&&o.enable(3),e.matcap&&o.enable(4),e.envMap&&o.enable(5),e.normalMapObjectSpace&&o.enable(6),e.normalMapTangentSpace&&o.enable(7),e.clearcoat&&o.enable(8),e.iridescence&&o.enable(9),e.alphaTest&&o.enable(10),e.vertexColors&&o.enable(11),e.vertexAlphas&&o.enable(12),e.vertexUv1s&&o.enable(13),e.vertexUv2s&&o.enable(14),e.vertexUv3s&&o.enable(15),e.vertexTangents&&o.enable(16),e.anisotropy&&o.enable(17),e.alphaHash&&o.enable(18),e.batching&&o.enable(19),e.dispersion&&o.enable(20),e.batchingColor&&o.enable(21),t.push(o.mask),o.disableAll(),e.fog&&o.enable(0),e.useFog&&o.enable(1),e.flatShading&&o.enable(2),e.logarithmicDepthBuffer&&o.enable(3),e.reverseDepthBuffer&&o.enable(4),e.skinning&&o.enable(5),e.morphTargets&&o.enable(6),e.morphNormals&&o.enable(7),e.morphColors&&o.enable(8),e.premultipliedAlpha&&o.enable(9),e.shadowMapEnabled&&o.enable(10),e.doubleSided&&o.enable(11),e.flipSided&&o.enable(12),e.useDepthPacking&&o.enable(13),e.dithering&&o.enable(14),e.transmission&&o.enable(15),e.sheen&&o.enable(16),e.opaque&&o.enable(17),e.pointsUvs&&o.enable(18),e.decodeVideoTexture&&o.enable(19),e.decodeVideoTextureEmissive&&o.enable(20),e.alphaToCoverage&&o.enable(21),t.push(o.mask)}function b(t){const e=p[t.type];let n;if(e){const t=Ku[e];n=rl.clone(t.uniforms)}else n=t.uniforms;return n}function x(e,n){let i;for(let t=0,r=c.length;t<r;t++){const e=c[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new _p(t,n,e,s),c.push(i)),i}function w(t){if(0===--t.usedTimes){const e=c.indexOf(t);c[e]=c[c.length-1],c.pop(),t.destroy()}}function S(t){l.remove(t)}function T(){l.dispose()}return{getParameters:m,getProgramCacheKey:_,getUniforms:b,acquireProgram:x,releaseProgram:w,releaseShaderCache:S,programs:c,dispose:T}}function wp(){let t=new WeakMap;function e(e){return t.has(e)}function n(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n}function i(e){t.delete(e)}function r(e,n,i){t.get(e)[n]=i}function s(){t=new WeakMap}return{has:e,get:n,remove:i,update:r,dispose:s}}function Sp(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function Tp(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function Mp(){const t=[];let e=0;const n=[],i=[],r=[];function s(){e=0,n.length=0,i.length=0,r.length=0}function a(n,i,r,s,a,o){let l=t[e];return void 0===l?(l={id:n.id,object:n,geometry:i,material:r,groupOrder:s,renderOrder:n.renderOrder,z:a,group:o},t[e]=l):(l.id=n.id,l.object=n,l.geometry=i,l.material=r,l.groupOrder=s,l.renderOrder=n.renderOrder,l.z=a,l.group=o),e++,l}function o(t,e,s,o,l,h){const c=a(t,e,s,o,l,h);s.transmission>0?i.push(c):!0===s.transparent?r.push(c):n.push(c)}function l(t,e,s,o,l,h){const c=a(t,e,s,o,l,h);s.transmission>0?i.unshift(c):!0===s.transparent?r.unshift(c):n.unshift(c)}function h(t,e){n.length>1&&n.sort(t||Sp),i.length>1&&i.sort(e||Tp),r.length>1&&r.sort(e||Tp)}function c(){for(let n=e,i=t.length;n<i;n++){const e=t[n];if(null===e.id)break;e.id=null,e.object=null,e.geometry=null,e.material=null,e.group=null}}return{opaque:n,transmissive:i,transparent:r,init:s,push:o,unshift:l,finish:c,sort:h}}function Ep(){let t=new WeakMap;function e(e,n){const i=t.get(e);let r;return void 0===i?(r=new Mp,t.set(e,[r])):n>=i.length?(r=new Mp,i.push(r)):r=i[n],r}function n(){t=new WeakMap}return{get:e,dispose:n}}function Ap(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Ks,color:new yo};break;case"SpotLight":n={position:new Ks,direction:new Ks,color:new yo,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Ks,color:new yo,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Ks,skyColor:new yo,groundColor:new yo};break;case"RectAreaLight":n={color:new yo,position:new Ks,halfWidth:new Ks,halfHeight:new Ks};break}return t[e.id]=n,n}}}function Rp(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new bs};break;case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new bs};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new bs,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let zp=0;function Cp(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function Pp(t){const e=new Ap,n=Rp(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)i.probe.push(new Ks);const r=new Ks,s=new Ea,a=new Ea;function o(r){let s=0,a=0,o=0;for(let t=0;t<9;t++)i.probe[t].set(0,0,0);let l=0,h=0,c=0,u=0,d=0,f=0,p=0,g=0,m=0,_=0,v=0;r.sort(Cp);for(let t=0,b=r.length;t<b;t++){const y=r[t],b=y.color,x=y.intensity,w=y.distance,S=y.shadow&&y.shadow.map?y.shadow.map.texture:null;if(y.isAmbientLight)s+=b.r*x,a+=b.g*x,o+=b.b*x;else if(y.isLightProbe){for(let t=0;t<9;t++)i.probe[t].addScaledVector(y.sh.coefficients[t],x);v++}else if(y.isDirectionalLight){const t=e.get(y);if(t.color.copy(y.color).multiplyScalar(y.intensity),y.castShadow){const t=y.shadow,e=n.get(y);e.shadowIntensity=t.intensity,e.shadowBias=t.bias,e.shadowNormalBias=t.normalBias,e.shadowRadius=t.radius,e.shadowMapSize=t.mapSize,i.directionalShadow[l]=e,i.directionalShadowMap[l]=S,i.directionalShadowMatrix[l]=y.shadow.matrix,f++}i.directional[l]=t,l++}else if(y.isSpotLight){const t=e.get(y);t.position.setFromMatrixPosition(y.matrixWorld),t.color.copy(b).multiplyScalar(x),t.distance=w,t.coneCos=Math.cos(y.angle),t.penumbraCos=Math.cos(y.angle*(1-y.penumbra)),t.decay=y.decay,i.spot[c]=t;const r=y.shadow;if(y.map&&(i.spotLightMap[m]=y.map,m++,r.updateMatrices(y),y.castShadow&&_++),i.spotLightMatrix[c]=r.matrix,y.castShadow){const t=n.get(y);t.shadowIntensity=r.intensity,t.shadowBias=r.bias,t.shadowNormalBias=r.normalBias,t.shadowRadius=r.radius,t.shadowMapSize=r.mapSize,i.spotShadow[c]=t,i.spotShadowMap[c]=S,g++}c++}else if(y.isRectAreaLight){const t=e.get(y);t.color.copy(b).multiplyScalar(x),t.halfWidth.set(.5*y.width,0,0),t.halfHeight.set(0,.5*y.height,0),i.rectArea[u]=t,u++}else if(y.isPointLight){const t=e.get(y);if(t.color.copy(y.color).multiplyScalar(y.intensity),t.distance=y.distance,t.decay=y.decay,y.castShadow){const t=y.shadow,e=n.get(y);e.shadowIntensity=t.intensity,e.shadowBias=t.bias,e.shadowNormalBias=t.normalBias,e.shadowRadius=t.radius,e.shadowMapSize=t.mapSize,e.shadowCameraNear=t.camera.near,e.shadowCameraFar=t.camera.far,i.pointShadow[h]=e,i.pointShadowMap[h]=S,i.pointShadowMatrix[h]=y.shadow.matrix,p++}i.point[h]=t,h++}else if(y.isHemisphereLight){const t=e.get(y);t.skyColor.copy(y.color).multiplyScalar(x),t.groundColor.copy(y.groundColor).multiplyScalar(x),i.hemi[d]=t,d++}}u>0&&(!0===t.has("OES_texture_float_linear")?(i.rectAreaLTC1=Yu.LTC_FLOAT_1,i.rectAreaLTC2=Yu.LTC_FLOAT_2):(i.rectAreaLTC1=Yu.LTC_HALF_1,i.rectAreaLTC2=Yu.LTC_HALF_2)),i.ambient[0]=s,i.ambient[1]=a,i.ambient[2]=o;const y=i.hash;y.directionalLength===l&&y.pointLength===h&&y.spotLength===c&&y.rectAreaLength===u&&y.hemiLength===d&&y.numDirectionalShadows===f&&y.numPointShadows===p&&y.numSpotShadows===g&&y.numSpotMaps===m&&y.numLightProbes===v||(i.directional.length=l,i.spot.length=c,i.rectArea.length=u,i.point.length=h,i.hemi.length=d,i.directionalShadow.length=f,i.directionalShadowMap.length=f,i.pointShadow.length=p,i.pointShadowMap.length=p,i.spotShadow.length=g,i.spotShadowMap.length=g,i.directionalShadowMatrix.length=f,i.pointShadowMatrix.length=p,i.spotLightMatrix.length=g+m-_,i.spotLightMap.length=m,i.numSpotLightShadowsWithMaps=_,i.numLightProbes=v,y.directionalLength=l,y.pointLength=h,y.spotLength=c,y.rectAreaLength=u,y.hemiLength=d,y.numDirectionalShadows=f,y.numPointShadows=p,y.numSpotShadows=g,y.numSpotMaps=m,y.numLightProbes=v,i.version=zp++)}function l(t,e){let n=0,o=0,l=0,h=0,c=0;const u=e.matrixWorldInverse;for(let d=0,f=t.length;d<f;d++){const e=t[d];if(e.isDirectionalLight){const t=i.directional[n];t.direction.setFromMatrixPosition(e.matrixWorld),r.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(u),n++}else if(e.isSpotLight){const t=i.spot[l];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(e.matrixWorld),r.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(u),l++}else if(e.isRectAreaLight){const t=i.rectArea[h];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(u),a.identity(),s.copy(e.matrixWorld),s.premultiply(u),a.extractRotation(s),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),t.halfWidth.applyMatrix4(a),t.halfHeight.applyMatrix4(a),h++}else if(e.isPointLight){const t=i.point[o];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(u),o++}else if(e.isHemisphereLight){const t=i.hemi[c];t.direction.setFromMatrixPosition(e.matrixWorld),t.direction.transformDirection(u),c++}}}return{setup:o,setupView:l,state:i}}function kp(t){const e=new Pp(t),n=[],i=[];function r(t){h.camera=t,n.length=0,i.length=0}function s(t){n.push(t)}function a(t){i.push(t)}function o(){e.setup(n)}function l(t){e.setupView(n,t)}const h={lightsArray:n,shadowsArray:i,camera:null,lights:e,transmissionRenderTarget:{}};return{init:r,state:h,setupLights:o,setupLightsView:l,pushLight:s,pushShadow:a}}function Dp(t){let e=new WeakMap;function n(n,i=0){const r=e.get(n);let s;return void 0===r?(s=new kp(t),e.set(n,[s])):i>=r.length?(s=new kp(t),r.push(s)):s=r[i],s}function i(){e=new WeakMap}return{get:n,dispose:i}}const Ip="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",Lp="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function jp(t,e,n){let i=new Rl;const r=new bs,s=new bs,a=new Vs,o=new kl({depthPacking:Hr}),l=new Dl,h={},c=n.maxTextureSize,u={[Tn]:Mn,[Mn]:Tn,[En]:En},d=new ol({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new bs},radius:{value:4}},vertexShader:Ip,fragmentShader:Lp}),f=d.clone();f.defines.HORIZONTAL_PASS=1;const p=new Oo;p.setAttribute("position",new Ao(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const g=new Ko(p,d),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=xn;let _=this.type;function v(n,i){const s=e.update(g);d.defines.VSM_SAMPLES!==n.blurSamples&&(d.defines.VSM_SAMPLES=n.blurSamples,f.defines.VSM_SAMPLES=n.blurSamples,d.needsUpdate=!0,f.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new Ws(r.x,r.y)),d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,d,g,null),f.uniforms.shadow_pass.value=n.mapPass.texture,f.uniforms.resolution.value=n.mapSize,f.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,f,g,null)}function y(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?l:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=h[t];void 0===i&&(i={},h[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r,n.addEventListener("dispose",x)),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===Sn?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:u[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){const e=t.properties.get(s);e.light=i}return s}function b(n,r,s,a,o){if(!1===n.visible)return;const l=n.layers.test(r.layers);if(l&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===Sn)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),l=n.material;if(Array.isArray(l)){const e=i.groups;for(let h=0,c=e.length;h<c;h++){const c=e[h],u=l[c.materialIndex];if(u&&u.visible){const e=y(n,u,a,o);n.onBeforeShadow(t,n,r,s,i,e,c),t.renderBufferDirect(s,null,i,e,n,c),n.onAfterShadow(t,n,r,s,i,e,c)}}}else if(l.visible){const e=y(n,l,a,o);n.onBeforeShadow(t,n,r,s,i,e,null),t.renderBufferDirect(s,null,i,e,n,null),n.onAfterShadow(t,n,r,s,i,e,null)}}const h=n.children;for(let t=0,e=h.length;t<e;t++)b(h[t],r,s,a,o)}function x(t){const e=t.target;e.removeEventListener("dispose",x);for(const n in h){const e=h[n],i=t.target.uuid;if(i in e){const t=e[i];t.dispose(),delete e[i]}}}this.render=function(e,n,o){if(!1===m.enabled)return;if(!1===m.autoUpdate&&!1===m.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),h=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(An),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);const f=_!==Sn&&this.type===Sn,p=_===Sn&&this.type!==Sn;for(let g=0,m=e.length;g<m;g++){const l=e[g],h=l.shadow;if(void 0===h){console.warn("THREE.WebGLShadowMap:",l,"has no shadow.");continue}if(!1===h.autoUpdate&&!1===h.needsUpdate)continue;r.copy(h.mapSize);const u=h.getFrameExtents();if(r.multiply(u),s.copy(h.mapSize),(r.x>c||r.y>c)&&(r.x>c&&(s.x=Math.floor(c/u.x),r.x=s.x*u.x,h.mapSize.x=s.x),r.y>c&&(s.y=Math.floor(c/u.y),r.y=s.y*u.y,h.mapSize.y=s.y)),null===h.map||!0===f||!0===p){const t=this.type!==Sn?{minFilter:Ai,magFilter:Ai}:{};null!==h.map&&h.map.dispose(),h.map=new Ws(r.x,r.y,t),h.map.texture.name=l.name+".shadowMap",h.camera.updateProjectionMatrix()}t.setRenderTarget(h.map),t.clear();const m=h.getViewportCount();for(let t=0;t<m;t++){const e=h.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w),d.viewport(a),h.updateMatrices(l,t),i=h.getFrustum(),b(n,o,h.camera,l,this.type)}!0!==h.isPointLightShadow&&this.type===Sn&&v(h,o),h.needsUpdate=!1}_=this.type,m.needsUpdate=!1,t.setRenderTarget(l,h,u)}}const Np={[Qn]:ti,[ei]:si,[ii]:ai,[ni]:ri,[ti]:Qn,[si]:ei,[ai]:ii,[ri]:ni};function Op(t,e){function n(){let e=!1;const n=new Vs;let i=null;const r=new Vs(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}}function i(){let n=!1,i=!1,r=null,s=null,a=null;return{setReversed:function(t){if(i!==t){const t=e.get("EXT_clip_control");i?t.clipControlEXT(t.LOWER_LEFT_EXT,t.ZERO_TO_ONE_EXT):t.clipControlEXT(t.LOWER_LEFT_EXT,t.NEGATIVE_ONE_TO_ONE_EXT);const n=a;a=null,this.setClear(n)}i=t},getReversed:function(){return i},setTest:function(e){e?q(t.DEPTH_TEST):V(t.DEPTH_TEST)},setMask:function(e){r===e||n||(t.depthMask(e),r=e)},setFunc:function(e){if(i&&(e=Np[e]),s!==e){switch(e){case Qn:t.depthFunc(t.NEVER);break;case ti:t.depthFunc(t.ALWAYS);break;case ei:t.depthFunc(t.LESS);break;case ni:t.depthFunc(t.LEQUAL);break;case ii:t.depthFunc(t.EQUAL);break;case ri:t.depthFunc(t.GEQUAL);break;case si:t.depthFunc(t.GREATER);break;case ai:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}s=e}},setLocked:function(t){n=t},setClear:function(e){a!==e&&(i&&(e=1-e),t.clearDepth(e),a=e)},reset:function(){n=!1,r=null,s=null,a=null,i=!1}}}function r(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,h=null;return{setTest:function(n){e||(n?q(t.STENCIL_TEST):V(t.STENCIL_TEST))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&l===i||(t.stencilOp(e,n,i),a=e,o=n,l=i)},setLocked:function(t){e=t},setClear:function(e){h!==e&&(t.clearStencil(e),h=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,h=null}}}const s=new n,a=new i,o=new r,l=new WeakMap,h=new WeakMap;let c={},u={},d=new WeakMap,f=[],p=null,g=!1,m=null,_=null,v=null,y=null,b=null,x=null,w=null,S=new yo(0,0,0),T=0,M=!1,E=null,A=null,R=null,z=null,C=null;const P=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let k=!1,D=0;const I=t.getParameter(t.VERSION);-1!==I.indexOf("WebGL")?(D=parseFloat(/^WebGL (\d)/.exec(I)[1]),k=D>=1):-1!==I.indexOf("OpenGL ES")&&(D=parseFloat(/^OpenGL ES (\d)/.exec(I)[1]),k=D>=2);let L=null,j={};const N=t.getParameter(t.SCISSOR_BOX),O=t.getParameter(t.VIEWPORT),U=(new Vs).fromArray(N),B=(new Vs).fromArray(O);function F(e,n,i,r){const s=new Uint8Array(4),a=t.createTexture();t.bindTexture(e,a),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;o<i;o++)e===t.TEXTURE_3D||e===t.TEXTURE_2D_ARRAY?t.texImage3D(n,0,t.RGBA,1,1,r,0,t.RGBA,t.UNSIGNED_BYTE,s):t.texImage2D(n+o,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,s);return a}const H={};function q(e){!0!==c[e]&&(t.enable(e),c[e]=!0)}function V(e){!1!==c[e]&&(t.disable(e),c[e]=!1)}function G(e,n){return u[e]!==n&&(t.bindFramebuffer(e,n),u[e]=n,e===t.DRAW_FRAMEBUFFER&&(u[t.FRAMEBUFFER]=n),e===t.FRAMEBUFFER&&(u[t.DRAW_FRAMEBUFFER]=n),!0)}function W(e,n){let i=f,r=!1;if(e){i=d.get(n),void 0===i&&(i=[],d.set(n,i));const s=e.textures;if(i.length!==s.length||i[0]!==t.COLOR_ATTACHMENT0){for(let e=0,n=s.length;e<n;e++)i[e]=t.COLOR_ATTACHMENT0+e;i.length=s.length,r=!0}}else i[0]!==t.BACK&&(i[0]=t.BACK,r=!0);r&&t.drawBuffers(i)}function X(e){return p!==e&&(t.useProgram(e),p=e,!0)}H[t.TEXTURE_2D]=F(t.TEXTURE_2D,t.TEXTURE_2D,1),H[t.TEXTURE_CUBE_MAP]=F(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),H[t.TEXTURE_2D_ARRAY]=F(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1),H[t.TEXTURE_3D]=F(t.TEXTURE_3D,t.TEXTURE_3D,1,1),s.setClear(0,0,0,1),a.setClear(1),o.setClear(0),q(t.DEPTH_TEST),a.setFunc(ni),Z(!1),Q(yn),q(t.CULL_FACE),K(An);const J={[Dn]:t.FUNC_ADD,[In]:t.FUNC_SUBTRACT,[Ln]:t.FUNC_REVERSE_SUBTRACT};J[jn]=t.MIN,J[Nn]=t.MAX;const Y={[On]:t.ZERO,[Un]:t.ONE,[Bn]:t.SRC_COLOR,[Hn]:t.SRC_ALPHA,[Jn]:t.SRC_ALPHA_SATURATE,[Wn]:t.DST_COLOR,[Vn]:t.DST_ALPHA,[Fn]:t.ONE_MINUS_SRC_COLOR,[qn]:t.ONE_MINUS_SRC_ALPHA,[Xn]:t.ONE_MINUS_DST_COLOR,[Gn]:t.ONE_MINUS_DST_ALPHA,[Yn]:t.CONSTANT_COLOR,[Kn]:t.ONE_MINUS_CONSTANT_COLOR,[$n]:t.CONSTANT_ALPHA,[Zn]:t.ONE_MINUS_CONSTANT_ALPHA};function K(e,n,i,r,s,a,o,l,h,c){if(e!==An){if(!1===g&&(q(t.BLEND),g=!0),e===kn)s=s||n,a=a||i,o=o||r,n===_&&s===b||(t.blendEquationSeparate(J[n],J[s]),_=n,b=s),i===v&&r===y&&a===x&&o===w||(t.blendFuncSeparate(Y[i],Y[r],Y[a],Y[o]),v=i,y=r,x=a,w=o),!1!==l.equals(S)&&h===T||(t.blendColor(l.r,l.g,l.b,h),S.copy(l),T=h),m=e,M=!1;else if(e!==m||c!==M){if(_===Dn&&b===Dn||(t.blendEquation(t.FUNC_ADD),_=Dn,b=Dn),c)switch(e){case Rn:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case zn:t.blendFunc(t.ONE,t.ONE);break;case Cn:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case Pn:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",e);break}else switch(e){case Rn:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case zn:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case Cn:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case Pn:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",e);break}v=null,y=null,x=null,w=null,S.set(0,0,0),T=0,m=e,M=c}}else!0===g&&(V(t.BLEND),g=!1)}function $(e,n){e.side===En?V(t.CULL_FACE):q(t.CULL_FACE);let i=e.side===Mn;n&&(i=!i),Z(i),e.blending===Rn&&!1===e.transparent?K(An):K(e.blending,e.blendEquation,e.blendSrc,e.blendDst,e.blendEquationAlpha,e.blendSrcAlpha,e.blendDstAlpha,e.blendColor,e.blendAlpha,e.premultipliedAlpha),a.setFunc(e.depthFunc),a.setTest(e.depthTest),a.setMask(e.depthWrite),s.setMask(e.colorWrite);const r=e.stencilWrite;o.setTest(r),r&&(o.setMask(e.stencilWriteMask),o.setFunc(e.stencilFunc,e.stencilRef,e.stencilFuncMask),o.setOp(e.stencilFail,e.stencilZFail,e.stencilZPass)),et(e.polygonOffset,e.polygonOffsetFactor,e.polygonOffsetUnits),!0===e.alphaToCoverage?q(t.SAMPLE_ALPHA_TO_COVERAGE):V(t.SAMPLE_ALPHA_TO_COVERAGE)}function Z(e){E!==e&&(e?t.frontFace(t.CW):t.frontFace(t.CCW),E=e)}function Q(e){e!==vn?(q(t.CULL_FACE),e!==A&&(e===yn?t.cullFace(t.BACK):e===bn?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):V(t.CULL_FACE),A=e}function tt(e){e!==R&&(k&&t.lineWidth(e),R=e)}function et(e,n,i){e?(q(t.POLYGON_OFFSET_FILL),z===n&&C===i||(t.polygonOffset(n,i),z=n,C=i)):V(t.POLYGON_OFFSET_FILL)}function nt(e){e?q(t.SCISSOR_TEST):V(t.SCISSOR_TEST)}function it(e){void 0===e&&(e=t.TEXTURE0+P-1),L!==e&&(t.activeTexture(e),L=e)}function rt(e,n,i){void 0===i&&(i=null===L?t.TEXTURE0+P-1:L);let r=j[i];void 0===r&&(r={type:void 0,texture:void 0},j[i]=r),r.type===e&&r.texture===n||(L!==i&&(t.activeTexture(i),L=i),t.bindTexture(e,n||H[e]),r.type=e,r.texture=n)}function st(){const e=j[L];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)}function at(){try{t.compressedTexImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function ot(){try{t.compressedTexImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function lt(){try{t.texSubImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function ht(){try{t.texSubImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function ct(){try{t.compressedTexSubImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function ut(){try{t.compressedTexSubImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function dt(){try{t.texStorage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function ft(){try{t.texStorage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function pt(){try{t.texImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function gt(){try{t.texImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}}function mt(e){!1===U.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),U.copy(e))}function _t(e){!1===B.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),B.copy(e))}function vt(e,n){let i=h.get(n);void 0===i&&(i=new WeakMap,h.set(n,i));let r=i.get(e);void 0===r&&(r=t.getUniformBlockIndex(n,e.name),i.set(e,r))}function yt(e,n){const i=h.get(n),r=i.get(e);l.get(n)!==r&&(t.uniformBlockBinding(n,r,e.__bindingPointIndex),l.set(n,r))}function bt(){t.disable(t.BLEND),t.disable(t.CULL_FACE),t.disable(t.DEPTH_TEST),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.SAMPLE_ALPHA_TO_COVERAGE),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ZERO),t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO),t.blendColor(0,0,0,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(t.LESS),a.setReversed(!1),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(t.ALWAYS,0,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.clearStencil(0),t.cullFace(t.BACK),t.frontFace(t.CCW),t.polygonOffset(0,0),t.activeTexture(t.TEXTURE0),t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),c={},L=null,j={},u={},d=new WeakMap,f=[],p=null,g=!1,m=null,_=null,v=null,y=null,b=null,x=null,w=null,S=new yo(0,0,0),T=0,M=!1,E=null,A=null,R=null,z=null,C=null,U.set(0,0,t.canvas.width,t.canvas.height),B.set(0,0,t.canvas.width,t.canvas.height),s.reset(),a.reset(),o.reset()}return{buffers:{color:s,depth:a,stencil:o},enable:q,disable:V,bindFramebuffer:G,drawBuffers:W,useProgram:X,setBlending:K,setMaterial:$,setFlipSided:Z,setCullFace:Q,setLineWidth:tt,setPolygonOffset:et,setScissorTest:nt,activeTexture:it,bindTexture:rt,unbindTexture:st,compressedTexImage2D:at,compressedTexImage3D:ot,texImage2D:pt,texImage3D:gt,updateUBOMapping:vt,uniformBlockBinding:yt,texStorage2D:dt,texStorage3D:ft,texSubImage2D:lt,texSubImage3D:ht,compressedTexSubImage2D:ct,compressedTexSubImage3D:ut,scissor:mt,viewport:_t,reset:bt}}function Up(t,e,n,i,r,s,a){const o=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,l="undefined"!==typeof navigator&&/OculusBrowser/g.test(navigator.userAgent),h=new bs,c=new WeakMap;let u;const d=new WeakMap;let f=!1;try{f="undefined"!==typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(it){}function p(t,e){return f?new OffscreenCanvas(t,e):Ts("canvas")}function g(t,e,n){let i=1;const r=nt(t);if((r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height)),i<1){if("undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&t instanceof ImageBitmap||"undefined"!==typeof VideoFrame&&t instanceof VideoFrame){const n=Math.floor(i*r.width),s=Math.floor(i*r.height);void 0===u&&(u=p(n,s));const a=e?p(n,s):u;a.width=n,a.height=s;const o=a.getContext("2d");return o.drawImage(t,0,0,n,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+r.width+"x"+r.height+") to ("+n+"x"+s+")."),a}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+r.width+"x"+r.height+")."),t}return t}function m(t){return t.generateMipmaps}function _(e){t.generateMipmap(e)}function v(e){return e.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:e.isWebGL3DRenderTarget?t.TEXTURE_3D:e.isWebGLArrayRenderTarget||e.isCompressedArrayTexture?t.TEXTURE_2D_ARRAY:t.TEXTURE_2D}function y(n,i,r,s,a=!1){if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;if(i===t.RED&&(r===t.FLOAT&&(o=t.R32F),r===t.HALF_FLOAT&&(o=t.R16F),r===t.UNSIGNED_BYTE&&(o=t.R8)),i===t.RED_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.R8UI),r===t.UNSIGNED_SHORT&&(o=t.R16UI),r===t.UNSIGNED_INT&&(o=t.R32UI),r===t.BYTE&&(o=t.R8I),r===t.SHORT&&(o=t.R16I),r===t.INT&&(o=t.R32I)),i===t.RG&&(r===t.FLOAT&&(o=t.RG32F),r===t.HALF_FLOAT&&(o=t.RG16F),r===t.UNSIGNED_BYTE&&(o=t.RG8)),i===t.RG_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.RG8UI),r===t.UNSIGNED_SHORT&&(o=t.RG16UI),r===t.UNSIGNED_INT&&(o=t.RG32UI),r===t.BYTE&&(o=t.RG8I),r===t.SHORT&&(o=t.RG16I),r===t.INT&&(o=t.RG32I)),i===t.RGB_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.RGB8UI),r===t.UNSIGNED_SHORT&&(o=t.RGB16UI),r===t.UNSIGNED_INT&&(o=t.RGB32UI),r===t.BYTE&&(o=t.RGB8I),r===t.SHORT&&(o=t.RGB16I),r===t.INT&&(o=t.RGB32I)),i===t.RGBA_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.RGBA8UI),r===t.UNSIGNED_SHORT&&(o=t.RGBA16UI),r===t.UNSIGNED_INT&&(o=t.RGBA32UI),r===t.BYTE&&(o=t.RGBA8I),r===t.SHORT&&(o=t.RGBA16I),r===t.INT&&(o=t.RGBA32I)),i===t.RGB&&r===t.UNSIGNED_INT_5_9_9_9_REV&&(o=t.RGB9_E5),i===t.RGBA){const e=a?Jr:Is.getTransfer(s);r===t.FLOAT&&(o=t.RGBA32F),r===t.HALF_FLOAT&&(o=t.RGBA16F),r===t.UNSIGNED_BYTE&&(o=e===Yr?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(o=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(o=t.RGB5_A1)}return o!==t.R16F&&o!==t.R32F&&o!==t.RG16F&&o!==t.RG32F&&o!==t.RGBA16F&&o!==t.RGBA32F||e.get("EXT_color_buffer_float"),o}function b(e,n){let i;return e?null===n||n===Oi||n===qi?i=t.DEPTH24_STENCIL8:n===Ui?i=t.DEPTH32F_STENCIL8:n===ji&&(i=t.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===n||n===Oi||n===qi?i=t.DEPTH_COMPONENT24:n===Ui?i=t.DEPTH_COMPONENT32F:n===ji&&(i=t.DEPTH_COMPONENT16),i}function x(t,e){return!0===m(t)||t.isFramebufferTexture&&t.minFilter!==Ai&&t.minFilter!==Ci?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function w(t){const e=t.target;e.removeEventListener("dispose",w),T(e),e.isVideoTexture&&c.delete(e)}function S(t){const e=t.target;e.removeEventListener("dispose",S),E(e)}function T(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=d.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&M(t),0===Object.keys(r).length&&d.delete(n)}i.remove(t)}function M(e){const n=i.get(e);t.deleteTexture(n.__webglTexture);const r=e.source,s=d.get(r);delete s[n.__cacheKey],a.memory.textures--}function E(e){const n=i.get(e);if(e.depthTexture&&(e.depthTexture.dispose(),i.remove(e.depthTexture)),e.isWebGLCubeRenderTarget)for(let i=0;i<6;i++){if(Array.isArray(n.__webglFramebuffer[i]))for(let e=0;e<n.__webglFramebuffer[i].length;e++)t.deleteFramebuffer(n.__webglFramebuffer[i][e]);else t.deleteFramebuffer(n.__webglFramebuffer[i]);n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer[i])}else{if(Array.isArray(n.__webglFramebuffer))for(let e=0;e<n.__webglFramebuffer.length;e++)t.deleteFramebuffer(n.__webglFramebuffer[e]);else t.deleteFramebuffer(n.__webglFramebuffer);if(n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&t.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer)for(let e=0;e<n.__webglColorRenderbuffer.length;e++)n.__webglColorRenderbuffer[e]&&t.deleteRenderbuffer(n.__webglColorRenderbuffer[e]);n.__webglDepthRenderbuffer&&t.deleteRenderbuffer(n.__webglDepthRenderbuffer)}const r=e.textures;for(let s=0,o=r.length;s<o;s++){const e=i.get(r[s]);e.__webglTexture&&(t.deleteTexture(e.__webglTexture),a.memory.textures--),i.remove(r[s])}i.remove(e)}let A=0;function R(){A=0}function z(){const t=A;return t>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+r.maxTextures),A+=1,t}function C(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}function P(e,r){const s=i.get(e);if(e.isVideoTexture&&tt(e),!1===e.isRenderTargetTexture&&e.version>0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void B(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}function k(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?B(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)}function D(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?B(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)}function I(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?F(s,e,r):n.bindTexture(t.TEXTURE_CUBE_MAP,s.__webglTexture,t.TEXTURE0+r)}const L={[Ti]:t.REPEAT,[Mi]:t.CLAMP_TO_EDGE,[Ei]:t.MIRRORED_REPEAT},j={[Ai]:t.NEAREST,[Ri]:t.NEAREST_MIPMAP_NEAREST,[zi]:t.NEAREST_MIPMAP_LINEAR,[Ci]:t.LINEAR,[Pi]:t.LINEAR_MIPMAP_NEAREST,[ki]:t.LINEAR_MIPMAP_LINEAR},N={[Zr]:t.NEVER,[ss]:t.ALWAYS,[Qr]:t.LESS,[es]:t.LEQUAL,[ts]:t.EQUAL,[rs]:t.GEQUAL,[ns]:t.GREATER,[is]:t.NOTEQUAL};function O(n,s){if(s.type!==Ui||!1!==e.has("OES_texture_float_linear")||s.magFilter!==Ci&&s.magFilter!==Pi&&s.magFilter!==zi&&s.magFilter!==ki&&s.minFilter!==Ci&&s.minFilter!==Pi&&s.minFilter!==zi&&s.minFilter!==ki||console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),t.texParameteri(n,t.TEXTURE_WRAP_S,L[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,L[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,L[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,j[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,j[s.minFilter]),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,N[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){if(s.magFilter===Ai)return;if(s.minFilter!==zi&&s.minFilter!==ki)return;if(s.type===Ui&&!1===e.has("OES_texture_float_linear"))return;if(s.anisotropy>1||i.get(s).__currentAnisotropy){const a=e.get("EXT_texture_filter_anisotropic");t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy}}}function U(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",w));const r=n.source;let s=d.get(r);void 0===s&&(s={},d.set(r,s));const o=C(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&M(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function B(e,a,o){let l=t.TEXTURE_2D;(a.isDataArrayTexture||a.isCompressedArrayTexture)&&(l=t.TEXTURE_2D_ARRAY),a.isData3DTexture&&(l=t.TEXTURE_3D);const h=U(e,a),c=a.source;n.bindTexture(l,e.__webglTexture,t.TEXTURE0+o);const u=i.get(c);if(c.version!==u.__version||!0===h){n.activeTexture(t.TEXTURE0+o);const e=Is.getPrimaries(Is.workingColorSpace),i=a.colorSpace===Gr?null:Is.getPrimaries(a.colorSpace),d=a.colorSpace===Gr||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let f=g(a.image,!1,r.maxTextureSize);f=et(a,f);const p=s.convert(a.format,a.colorSpace),v=s.convert(a.type);let w,S=y(a.internalFormat,p,v,a.colorSpace,a.isVideoTexture);O(l,a);const T=a.mipmaps,M=!0!==a.isVideoTexture,E=void 0===u.__version||!0===h,A=c.dataReady,R=x(a,f);if(a.isDepthTexture)S=b(a.format===$i,a.type),E&&(M?n.texStorage2D(t.TEXTURE_2D,1,S,f.width,f.height):n.texImage2D(t.TEXTURE_2D,0,S,f.width,f.height,0,p,v,null));else if(a.isDataTexture)if(T.length>0){M&&E&&n.texStorage2D(t.TEXTURE_2D,R,S,T[0].width,T[0].height);for(let e=0,i=T.length;e<i;e++)w=T[e],M?A&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,w.width,w.height,p,v,w.data):n.texImage2D(t.TEXTURE_2D,e,S,w.width,w.height,0,p,v,w.data);a.generateMipmaps=!1}else M?(E&&n.texStorage2D(t.TEXTURE_2D,R,S,f.width,f.height),A&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,f.width,f.height,p,v,f.data)):n.texImage2D(t.TEXTURE_2D,0,S,f.width,f.height,0,p,v,f.data);else if(a.isCompressedTexture)if(a.isCompressedArrayTexture){M&&E&&n.texStorage3D(t.TEXTURE_2D_ARRAY,R,S,T[0].width,T[0].height,f.depth);for(let e=0,i=T.length;e<i;e++)if(w=T[e],a.format!==Xi)if(null!==p)if(M){if(A)if(a.layerUpdates.size>0){const i=uh(w.width,w.height,a.format,a.type);for(const r of a.layerUpdates){const s=w.data.subarray(r*i/w.data.BYTES_PER_ELEMENT,(r+1)*i/w.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,r,w.width,w.height,1,p,s)}a.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,w.width,w.height,f.depth,p,w.data)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,e,S,w.width,w.height,f.depth,0,w.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else M?A&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,w.width,w.height,f.depth,p,v,w.data):n.texImage3D(t.TEXTURE_2D_ARRAY,e,S,w.width,w.height,f.depth,0,p,v,w.data)}else{M&&E&&n.texStorage2D(t.TEXTURE_2D,R,S,T[0].width,T[0].height);for(let e=0,i=T.length;e<i;e++)w=T[e],a.format!==Xi?null!==p?M?A&&n.compressedTexSubImage2D(t.TEXTURE_2D,e,0,0,w.width,w.height,p,w.data):n.compressedTexImage2D(t.TEXTURE_2D,e,S,w.width,w.height,0,w.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):M?A&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,w.width,w.height,p,v,w.data):n.texImage2D(t.TEXTURE_2D,e,S,w.width,w.height,0,p,v,w.data)}else if(a.isDataArrayTexture)if(M){if(E&&n.texStorage3D(t.TEXTURE_2D_ARRAY,R,S,f.width,f.height,f.depth),A)if(a.layerUpdates.size>0){const e=uh(f.width,f.height,a.format,a.type);for(const i of a.layerUpdates){const r=f.data.subarray(i*e/f.data.BYTES_PER_ELEMENT,(i+1)*e/f.data.BYTES_PER_ELEMENT);n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,i,f.width,f.height,1,p,v,r)}a.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,f.width,f.height,f.depth,p,v,f.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,S,f.width,f.height,f.depth,0,p,v,f.data);else if(a.isData3DTexture)M?(E&&n.texStorage3D(t.TEXTURE_3D,R,S,f.width,f.height,f.depth),A&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,f.width,f.height,f.depth,p,v,f.data)):n.texImage3D(t.TEXTURE_3D,0,S,f.width,f.height,f.depth,0,p,v,f.data);else if(a.isFramebufferTexture){if(E)if(M)n.texStorage2D(t.TEXTURE_2D,R,S,f.width,f.height);else{let e=f.width,i=f.height;for(let r=0;r<R;r++)n.texImage2D(t.TEXTURE_2D,r,S,e,i,0,p,v,null),e>>=1,i>>=1}}else if(T.length>0){if(M&&E){const e=nt(T[0]);n.texStorage2D(t.TEXTURE_2D,R,S,e.width,e.height)}for(let e=0,i=T.length;e<i;e++)w=T[e],M?A&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,p,v,w):n.texImage2D(t.TEXTURE_2D,e,S,p,v,w);a.generateMipmaps=!1}else if(M){if(E){const e=nt(f);n.texStorage2D(t.TEXTURE_2D,R,S,e.width,e.height)}A&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,p,v,f)}else n.texImage2D(t.TEXTURE_2D,0,S,p,v,f);m(a)&&_(l),u.__version=c.version,a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function F(e,a,o){if(6!==a.image.length)return;const l=U(e,a),h=a.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+o);const c=i.get(h);if(h.version!==c.__version||!0===l){n.activeTexture(t.TEXTURE0+o);const e=Is.getPrimaries(Is.workingColorSpace),i=a.colorSpace===Gr?null:Is.getPrimaries(a.colorSpace),u=a.colorSpace===Gr||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,u);const d=a.isCompressedTexture||a.image[0].isCompressedTexture,f=a.image[0]&&a.image[0].isDataTexture,p=[];for(let t=0;t<6;t++)p[t]=d||f?f?a.image[t].image:a.image[t]:g(a.image[t],!0,r.maxCubemapSize),p[t]=et(a,p[t]);const v=p[0],b=s.convert(a.format,a.colorSpace),w=s.convert(a.type),S=y(a.internalFormat,b,w,a.colorSpace),T=!0!==a.isVideoTexture,M=void 0===c.__version||!0===l,E=h.dataReady;let A,R=x(a,v);if(O(t.TEXTURE_CUBE_MAP,a),d){T&&M&&n.texStorage2D(t.TEXTURE_CUBE_MAP,R,S,v.width,v.height);for(let e=0;e<6;e++){A=p[e].mipmaps;for(let i=0;i<A.length;i++){const r=A[i];a.format!==Xi?null!==b?T?E&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,b,r.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,S,r.width,r.height,0,r.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,b,w,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,S,r.width,r.height,0,b,w,r.data)}}}else{if(A=a.mipmaps,T&&M){A.length>0&&R++;const e=nt(p[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,R,S,e.width,e.height)}for(let e=0;e<6;e++)if(f){T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,p[e].width,p[e].height,b,w,p[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,S,p[e].width,p[e].height,0,b,w,p[e].data);for(let i=0;i<A.length;i++){const r=A[i],s=r.image[e].image;T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,s.width,s.height,b,w,s.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,S,s.width,s.height,0,b,w,s.data)}}else{T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,b,w,p[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,S,b,w,p[e]);for(let i=0;i<A.length;i++){const r=A[i];T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,b,w,r.image[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,S,b,w,r.image[e])}}}m(a)&&_(t.TEXTURE_CUBE_MAP),c.__version=h.version,a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function H(e,r,a,l,h,c){const u=s.convert(a.format,a.colorSpace),d=s.convert(a.type),f=y(a.internalFormat,u,d,a.colorSpace),p=i.get(r),g=i.get(a);if(g.__renderTarget=r,!p.__hasExternalTextures){const e=Math.max(1,r.width>>c),i=Math.max(1,r.height>>c);h===t.TEXTURE_3D||h===t.TEXTURE_2D_ARRAY?n.texImage3D(h,c,f,e,i,r.depth,0,u,d,null):n.texImage2D(h,c,f,e,i,0,u,d,null)}n.bindFramebuffer(t.FRAMEBUFFER,e),Q(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,l,h,g.__webglTexture,0,Z(r)):(h===t.TEXTURE_2D||h>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&h<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,l,h,g.__webglTexture,c),n.bindFramebuffer(t.FRAMEBUFFER,null)}function q(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer){const r=n.depthTexture,s=r&&r.isDepthTexture?r.type:null,a=b(n.stencilBuffer,s),l=n.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,h=Z(n),c=Q(n);c?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,h,a,n.width,n.height):i?t.renderbufferStorageMultisample(t.RENDERBUFFER,h,a,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,a,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,l,t.RENDERBUFFER,e)}else{const e=n.textures;for(let r=0;r<e.length;r++){const a=e[r],l=s.convert(a.format,a.colorSpace),h=s.convert(a.type),c=y(a.internalFormat,l,h,a.colorSpace),u=Z(n);i&&!1===Q(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,u,c,n.width,n.height):Q(n)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,u,c,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,c,n.width,n.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function V(e,r){const s=r&&r.isWebGLCubeRenderTarget;if(s)throw new Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(t.FRAMEBUFFER,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");const a=i.get(r.depthTexture);a.__renderTarget=r,a.__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),P(r.depthTexture,0);const l=a.__webglTexture,h=Z(r);if(r.depthTexture.format===Ki)Q(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,l,0,h):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,l,0);else{if(r.depthTexture.format!==$i)throw new Error("Unknown depthTexture format");Q(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,l,0,h):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,l,0)}}function G(e){const r=i.get(e),s=!0===e.isWebGLCubeRenderTarget;if(r.__boundDepthTexture!==e.depthTexture){const t=e.depthTexture;if(r.__depthDisposeCallback&&r.__depthDisposeCallback(),t){const e=()=>{delete r.__boundDepthTexture,delete r.__depthDisposeCallback,t.removeEventListener("dispose",e)};t.addEventListener("dispose",e),r.__depthDisposeCallback=e}r.__boundDepthTexture=t}if(e.depthTexture&&!r.__autoAllocateDepthBuffer){if(s)throw new Error("target.depthTexture not supported in Cube render targets");V(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)if(n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer[i]),void 0===r.__webglDepthbuffer[i])r.__webglDepthbuffer[i]=t.createRenderbuffer(),q(r.__webglDepthbuffer[i],e,!1);else{const n=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,s=r.__webglDepthbuffer[i];t.bindRenderbuffer(t.RENDERBUFFER,s),t.framebufferRenderbuffer(t.FRAMEBUFFER,n,t.RENDERBUFFER,s)}}else if(n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer),void 0===r.__webglDepthbuffer)r.__webglDepthbuffer=t.createRenderbuffer(),q(r.__webglDepthbuffer,e,!1);else{const n=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,i=r.__webglDepthbuffer;t.bindRenderbuffer(t.RENDERBUFFER,i),t.framebufferRenderbuffer(t.FRAMEBUFFER,n,t.RENDERBUFFER,i)}n.bindFramebuffer(t.FRAMEBUFFER,null)}function W(e,n,r){const s=i.get(e);void 0!==n&&H(s.__webglFramebuffer,e,e.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0),void 0!==r&&G(e)}function X(e){const r=e.texture,o=i.get(e),l=i.get(r);e.addEventListener("dispose",S);const h=e.textures,c=!0===e.isWebGLCubeRenderTarget,u=h.length>1;if(u||(void 0===l.__webglTexture&&(l.__webglTexture=t.createTexture()),l.__version=r.version,a.memory.textures++),c){o.__webglFramebuffer=[];for(let e=0;e<6;e++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[e]=[];for(let n=0;n<r.mipmaps.length;n++)o.__webglFramebuffer[e][n]=t.createFramebuffer()}else o.__webglFramebuffer[e]=t.createFramebuffer()}else{if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer=[];for(let e=0;e<r.mipmaps.length;e++)o.__webglFramebuffer[e]=t.createFramebuffer()}else o.__webglFramebuffer=t.createFramebuffer();if(u)for(let e=0,n=h.length;e<n;e++){const n=i.get(h[e]);void 0===n.__webglTexture&&(n.__webglTexture=t.createTexture(),a.memory.textures++)}if(e.samples>0&&!1===Q(e)){o.__webglMultisampledFramebuffer=t.createFramebuffer(),o.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n<h.length;n++){const i=h[n];o.__webglColorRenderbuffer[n]=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,o.__webglColorRenderbuffer[n]);const r=s.convert(i.format,i.colorSpace),a=s.convert(i.type),l=y(i.internalFormat,r,a,i.colorSpace,!0===e.isXRRenderTarget),c=Z(e);t.renderbufferStorageMultisample(t.RENDERBUFFER,c,l,e.width,e.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+n,t.RENDERBUFFER,o.__webglColorRenderbuffer[n])}t.bindRenderbuffer(t.RENDERBUFFER,null),e.depthBuffer&&(o.__webglDepthRenderbuffer=t.createRenderbuffer(),q(o.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(c){n.bindTexture(t.TEXTURE_CUBE_MAP,l.__webglTexture),O(t.TEXTURE_CUBE_MAP,r);for(let n=0;n<6;n++)if(r.mipmaps&&r.mipmaps.length>0)for(let i=0;i<r.mipmaps.length;i++)H(o.__webglFramebuffer[n][i],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,i);else H(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,0);m(r)&&_(t.TEXTURE_CUBE_MAP),n.unbindTexture()}else if(u){for(let r=0,s=h.length;r<s;r++){const s=h[r],a=i.get(s);n.bindTexture(t.TEXTURE_2D,a.__webglTexture),O(t.TEXTURE_2D,s),H(o.__webglFramebuffer,e,s,t.COLOR_ATTACHMENT0+r,t.TEXTURE_2D,0),m(s)&&_(t.TEXTURE_2D)}n.unbindTexture()}else{let i=t.TEXTURE_2D;if((e.isWebGL3DRenderTarget||e.isWebGLArrayRenderTarget)&&(i=e.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY),n.bindTexture(i,l.__webglTexture),O(i,r),r.mipmaps&&r.mipmaps.length>0)for(let n=0;n<r.mipmaps.length;n++)H(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,i,n);else H(o.__webglFramebuffer,e,r,t.COLOR_ATTACHMENT0,i,0);m(r)&&_(i),n.unbindTexture()}e.depthBuffer&&G(e)}function J(t){const e=t.textures;for(let r=0,s=e.length;r<s;r++){const s=e[r];if(m(s)){const e=v(t),r=i.get(s).__webglTexture;n.bindTexture(e,r),_(e),n.unbindTexture()}}}const Y=[],K=[];function $(e){if(e.samples>0)if(!1===Q(e)){const r=e.textures,s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const h=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,c=i.get(e),u=r.length>1;if(u)for(let e=0;e<r.length;e++)n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,null),n.bindFramebuffer(t.FRAMEBUFFER,c.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,null,0);n.bindFramebuffer(t.READ_FRAMEBUFFER,c.__webglMultisampledFramebuffer),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,c.__webglFramebuffer);for(let n=0;n<r.length;n++){if(e.resolveDepthBuffer&&(e.depthBuffer&&(o|=t.DEPTH_BUFFER_BIT),e.stencilBuffer&&e.resolveStencilBuffer&&(o|=t.STENCIL_BUFFER_BIT)),u){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,c.__webglColorRenderbuffer[n]);const e=i.get(r[n]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0)}t.blitFramebuffer(0,0,s,a,0,0,s,a,o,t.NEAREST),!0===l&&(Y.length=0,K.length=0,Y.push(t.COLOR_ATTACHMENT0+n),e.depthBuffer&&!1===e.resolveDepthBuffer&&(Y.push(h),K.push(h),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,K)),t.invalidateFramebuffer(t.READ_FRAMEBUFFER,Y))}if(n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),u)for(let e=0;e<r.length;e++){n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,c.__webglColorRenderbuffer[e]);const s=i.get(r[e]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,c.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,s,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,c.__webglMultisampledFramebuffer)}else if(e.depthBuffer&&!1===e.resolveDepthBuffer&&l){const n=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[n])}}function Z(t){return Math.min(r.maxSamples,t.samples)}function Q(t){const n=i.get(t);return t.samples>0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function tt(t){const e=a.render.frame;c.get(t)!==e&&(c.set(t,e),t.update())}function et(t,e){const n=t.colorSpace,i=t.format,r=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||n!==Xr&&n!==Gr&&(Is.getTransfer(n)===Yr?i===Xi&&r===Di||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),e}function nt(t){return"undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement?(h.width=t.naturalWidth||t.width,h.height=t.naturalHeight||t.height):"undefined"!==typeof VideoFrame&&t instanceof VideoFrame?(h.width=t.displayWidth,h.height=t.displayHeight):(h.width=t.width,h.height=t.height),h}this.allocateTextureUnit=z,this.resetTextureUnits=R,this.setTexture2D=P,this.setTexture2DArray=k,this.setTexture3D=D,this.setTextureCube=I,this.rebindTextures=W,this.setupRenderTarget=X,this.updateRenderTargetMipmap=J,this.updateMultisampleRenderTarget=$,this.setupDepthRenderbuffer=G,this.setupFrameBufferTexture=H,this.useMultisampledRTT=Q}function Bp(t,e){function n(n,i=Gr){let r;const s=Is.getTransfer(i);if(n===Di)return t.UNSIGNED_BYTE;if(n===Fi)return t.UNSIGNED_SHORT_4_4_4_4;if(n===Hi)return t.UNSIGNED_SHORT_5_5_5_1;if(n===Vi)return t.UNSIGNED_INT_5_9_9_9_REV;if(n===Ii)return t.BYTE;if(n===Li)return t.SHORT;if(n===ji)return t.UNSIGNED_SHORT;if(n===Ni)return t.INT;if(n===Oi)return t.UNSIGNED_INT;if(n===Ui)return t.FLOAT;if(n===Bi)return t.HALF_FLOAT;if(n===Gi)return t.ALPHA;if(n===Wi)return t.RGB;if(n===Xi)return t.RGBA;if(n===Ji)return t.LUMINANCE;if(n===Yi)return t.LUMINANCE_ALPHA;if(n===Ki)return t.DEPTH_COMPONENT;if(n===$i)return t.DEPTH_STENCIL;if(n===Zi)return t.RED;if(n===Qi)return t.RED_INTEGER;if(n===tr)return t.RG;if(n===er)return t.RG_INTEGER;if(n===nr)return t.RGBA_INTEGER;if(n===ir||n===rr||n===sr||n===ar)if(s===Yr){if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),null===r)return null;if(n===ir)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===rr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===sr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===ar)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(r=e.get("WEBGL_compressed_texture_s3tc"),null===r)return null;if(n===ir)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===rr)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===sr)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===ar)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===or||n===lr||n===hr||n===cr){if(r=e.get("WEBGL_compressed_texture_pvrtc"),null===r)return null;if(n===or)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===lr)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===hr)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===cr)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===ur||n===dr||n===fr){if(r=e.get("WEBGL_compressed_texture_etc"),null===r)return null;if(n===ur||n===dr)return s===Yr?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===fr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}if(n===pr||n===gr||n===mr||n===_r||n===vr||n===yr||n===br||n===xr||n===wr||n===Sr||n===Tr||n===Mr||n===Er||n===Ar){if(r=e.get("WEBGL_compressed_texture_astc"),null===r)return null;if(n===pr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===gr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===mr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===_r)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===vr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===yr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===br)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===xr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===wr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===Sr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Tr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===Mr)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Er)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Ar)return s===Yr?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}if(n===Rr||n===zr||n===Cr){if(r=e.get("EXT_texture_compression_bptc"),null===r)return null;if(n===Rr)return s===Yr?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===zr)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===Cr)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}if(n===Pr||n===kr||n===Dr||n===Ir){if(r=e.get("EXT_texture_compression_rgtc"),null===r)return null;if(n===Rr)return r.COMPRESSED_RED_RGTC1_EXT;if(n===kr)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Dr)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===Ir)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}return n===qi?t.UNSIGNED_INT_24_8:void 0!==t[n]?t[n]:null}return{convert:n}}const Fp="\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}",Hp="\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}";class qp{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(null===this.texture){const i=new qs,r=t.properties.get(i);r.__webglTexture=e.texture,e.depthNear===n.depthNear&&e.depthFar===n.depthFar||(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}getMesh(t){if(null!==this.texture&&null===this.mesh){const e=t.cameras[0].viewport,n=new ol({vertexShader:Fp,fragmentShader:Hp,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new Ko(new Pl(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class Vp extends cs{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,h=null,c=null,u=null,d=null,f=null;const p=new qp,g=e.getContextAttributes();let m=null,_=null;const v=[],y=[],b=new bs;let x=null;const w=new dl;w.viewport=new Vs;const S=new dl;S.viewport=new Vs;const T=[w,S],M=new Zl;let E=null,A=null;function R(t){const e=y.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&(n.update(t.inputSource,t.frame,l||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function z(){i.removeEventListener("select",R),i.removeEventListener("selectstart",R),i.removeEventListener("selectend",R),i.removeEventListener("squeeze",R),i.removeEventListener("squeezestart",R),i.removeEventListener("squeezeend",R),i.removeEventListener("end",z),i.removeEventListener("inputsourceschange",C);for(let t=0;t<v.length;t++){const e=y[t];null!==e&&(y[t]=null,v[t].disconnect(e))}E=null,A=null,p.reset(),t.setRenderTarget(m),d=null,u=null,c=null,i=null,_=null,O.stop(),n.isPresenting=!1,t.setPixelRatio(x),t.setSize(b.width,b.height,!1),n.dispatchEvent({type:"sessionend"})}function C(t){for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=y.indexOf(n);i>=0&&(y[i]=null,v[i].disconnect(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e];let i=y.indexOf(n);if(-1===i){for(let t=0;t<v.length;t++){if(t>=y.length){y.push(n),i=t;break}if(null===y[t]){y[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new bl,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new bl,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new bl,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return c},this.getFrame=function(){return f},this.getSession=function(){return i},this.setSession=async function(h){if(i=h,null!==i){m=t.getRenderTarget(),i.addEventListener("select",R),i.addEventListener("selectstart",R),i.addEventListener("selectend",R),i.addEventListener("squeeze",R),i.addEventListener("squeezestart",R),i.addEventListener("squeezeend",R),i.addEventListener("end",z),i.addEventListener("inputsourceschange",C),!0!==g.xrCompatible&&await e.makeXRCompatible(),x=t.getPixelRatio(),t.getSize(b);const h="undefined"!==typeof XRWebGLBinding&&"createProjectionLayer"in XRWebGLBinding.prototype;if(h){let n=null,s=null,a=null;g.depth&&(a=g.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=g.stencil?$i:Ki,s=g.stencil?qi:Oi);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};c=new XRWebGLBinding(i,e),u=c.createProjectionLayer(o),i.updateRenderState({layers:[u]}),t.setPixelRatio(1),t.setSize(u.textureWidth,u.textureHeight,!1),_=new Ws(u.textureWidth,u.textureHeight,{format:Xi,type:Di,depthTexture:new Cl(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:g.stencil,colorSpace:t.outputColorSpace,samples:g.antialias?4:0,resolveDepthBuffer:!1===u.ignoreDepthValues})}else{const n={antialias:g.antialias,alpha:!0,depth:g.depth,stencil:g.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),t.setPixelRatio(1),t.setSize(d.framebufferWidth,d.framebufferHeight,!1),_=new Ws(d.framebufferWidth,d.framebufferHeight,{format:Xi,type:Di,colorSpace:t.outputColorSpace,stencilBuffer:g.stencil})}_.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),O.setContext(i),O.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode},this.getDepthTexture=function(){return p.getDepthTexture()};const P=new Ks,k=new Ks;function D(t,e,n){P.setFromMatrixPosition(e.matrixWorld),k.setFromMatrixPosition(n.matrixWorld);const i=P.distanceTo(k),r=e.projectionMatrix.elements,s=n.projectionMatrix.elements,a=r[14]/(r[10]-1),o=r[14]/(r[10]+1),l=(r[9]+1)/r[5],h=(r[9]-1)/r[5],c=(r[8]-1)/r[0],u=(s[8]+1)/s[0],d=a*c,f=a*u,p=i/(-c+u),g=p*-c;if(e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(g),t.translateZ(p),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert(),-1===r[10])t.projectionMatrix.copy(e.projectionMatrix),t.projectionMatrixInverse.copy(e.projectionMatrixInverse);else{const e=a+p,n=o+p,r=d-g,s=f+(i-g),c=l*o/n*e,u=h*o/n*e;t.projectionMatrix.makePerspective(r,s,c,u,e,n),t.projectionMatrixInverse.copy(t.projectionMatrix).invert()}}function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}function L(t,e,n){null===n?t.matrix.copy(e.matrixWorld):(t.matrix.copy(n.matrixWorld),t.matrix.invert(),t.matrix.multiply(e.matrixWorld)),t.matrix.decompose(t.position,t.quaternion,t.scale),t.updateMatrixWorld(!0),t.projectionMatrix.copy(e.projectionMatrix),t.projectionMatrixInverse.copy(e.projectionMatrixInverse),t.isPerspectiveCamera&&(t.fov=2*fs*Math.atan(1/t.projectionMatrix.elements[5]),t.zoom=1)}this.updateCamera=function(t){if(null===i)return;let e=t.near,n=t.far;null!==p.texture&&(p.depthNear>0&&(e=p.depthNear),p.depthFar>0&&(n=p.depthFar)),M.near=S.near=w.near=e,M.far=S.far=w.far=n,E===M.near&&A===M.far||(i.updateRenderState({depthNear:M.near,depthFar:M.far}),E=M.near,A=M.far),w.layers.mask=2|t.layers.mask,S.layers.mask=4|t.layers.mask,M.layers.mask=w.layers.mask|S.layers.mask;const r=t.parent,s=M.cameras;I(M,r);for(let i=0;i<s.length;i++)I(s[i],r);2===s.length?D(M,w,S):M.projectionMatrix.copy(w.projectionMatrix),L(t,M,r)},this.getCamera=function(){return M},this.getFoveation=function(){if(null!==u||null!==d)return o},this.setFoveation=function(t){o=t,null!==u&&(u.fixedFoveation=t),null!==d&&void 0!==d.fixedFoveation&&(d.fixedFoveation=t)},this.hasDepthSensing=function(){return null!==p.texture},this.getDepthSensingMesh=function(){return p.getMesh(M)};let j=null;function N(e,r){if(h=r.getViewerPose(l||s),f=r,null!==h){const e=h.views;null!==d&&(t.setRenderTargetFramebuffer(_,d.framebuffer),t.setRenderTarget(_));let n=!1;e.length!==M.cameras.length&&(M.cameras.length=0,n=!0);for(let i=0;i<e.length;i++){const r=e[i];let s=null;if(null!==d)s=d.getViewport(r);else{const e=c.getViewSubImage(u,r);s=e.viewport,0===i&&(t.setRenderTargetTextures(_,e.colorTexture,u.ignoreDepthValues?void 0:e.depthStencilTexture),t.setRenderTarget(_))}let a=T[i];void 0===a&&(a=new dl,a.layers.enable(i),a.viewport=new Vs,T[i]=a),a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.quaternion,a.scale),a.projectionMatrix.fromArray(r.projectionMatrix),a.projectionMatrixInverse.copy(a.projectionMatrix).invert(),a.viewport.set(s.x,s.y,s.width,s.height),0===i&&(M.matrix.copy(a.matrix),M.matrix.decompose(M.position,M.quaternion,M.scale)),!0===n&&M.cameras.push(a)}const r=i.enabledFeatures,s=r&&r.includes("depth-sensing")&&"gpu-optimized"==i.depthUsage;if(s&&c){const n=c.getDepthInformation(e[0]);n&&n.isValid&&n.texture&&p.init(t,n,i.renderState)}}for(let t=0;t<v.length;t++){const e=y[t],n=v[t];null!==e&&void 0!==n&&n.update(e,r,l||s)}j&&j(e,r),r.detectedPlanes&&n.dispatchEvent({type:"planesdetected",data:r}),f=null}const O=new fh;O.setAnimationLoop(N),this.setAnimationLoop=function(t){j=t},this.dispose=function(){}}}const Gp=new ja,Wp=new Ea;function Xp(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(e,n){n.color.getRGB(e.fogColor.value,il(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)}function r(t,e,n,i,r){e.isMeshBasicMaterial||e.isMeshLambertMaterial?s(t,e):e.isMeshToonMaterial?(s(t,e),u(t,e)):e.isMeshPhongMaterial?(s(t,e),c(t,e)):e.isMeshStandardMaterial?(s(t,e),d(t,e),e.isMeshPhysicalMaterial&&f(t,e,r)):e.isMeshMatcapMaterial?(s(t,e),p(t,e)):e.isMeshDepthMaterial?s(t,e):e.isMeshDistanceMaterial?(s(t,e),g(t,e)):e.isMeshNormalMaterial?s(t,e):e.isLineBasicMaterial?(a(t,e),e.isLineDashedMaterial&&o(t,e)):e.isPointsMaterial?l(t,e,n,i):e.isSpriteMaterial?h(t,e):e.isShadowMaterial?(t.color.value.copy(e.color),t.opacity.value=e.opacity):e.isShaderMaterial&&(e.uniformsNeedUpdate=!1)}function s(t,i){t.opacity.value=i.opacity,i.color&&t.diffuse.value.copy(i.color),i.emissive&&t.emissive.value.copy(i.emissive).multiplyScalar(i.emissiveIntensity),i.map&&(t.map.value=i.map,n(i.map,t.mapTransform)),i.alphaMap&&(t.alphaMap.value=i.alphaMap,n(i.alphaMap,t.alphaMapTransform)),i.bumpMap&&(t.bumpMap.value=i.bumpMap,n(i.bumpMap,t.bumpMapTransform),t.bumpScale.value=i.bumpScale,i.side===Mn&&(t.bumpScale.value*=-1)),i.normalMap&&(t.normalMap.value=i.normalMap,n(i.normalMap,t.normalMapTransform),t.normalScale.value.copy(i.normalScale),i.side===Mn&&t.normalScale.value.negate()),i.displacementMap&&(t.displacementMap.value=i.displacementMap,n(i.displacementMap,t.displacementMapTransform),t.displacementScale.value=i.displacementScale,t.displacementBias.value=i.displacementBias),i.emissiveMap&&(t.emissiveMap.value=i.emissiveMap,n(i.emissiveMap,t.emissiveMapTransform)),i.specularMap&&(t.specularMap.value=i.specularMap,n(i.specularMap,t.specularMapTransform)),i.alphaTest>0&&(t.alphaTest.value=i.alphaTest);const r=e.get(i),s=r.envMap,a=r.envMapRotation;s&&(t.envMap.value=s,Gp.copy(a),Gp.x*=-1,Gp.y*=-1,Gp.z*=-1,s.isCubeTexture&&!1===s.isRenderTargetTexture&&(Gp.y*=-1,Gp.z*=-1),t.envMapRotation.value.setFromMatrix4(Wp.makeRotationFromEuler(Gp)),t.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,t.reflectivity.value=i.reflectivity,t.ior.value=i.ior,t.refractionRatio.value=i.refractionRatio),i.lightMap&&(t.lightMap.value=i.lightMap,t.lightMapIntensity.value=i.lightMapIntensity,n(i.lightMap,t.lightMapTransform)),i.aoMap&&(t.aoMap.value=i.aoMap,t.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,t.aoMapTransform))}function a(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}function o(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}function l(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform)),e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform)),e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}function h(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform)),e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform)),e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}function c(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}function u(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}function d(t,e){t.metalness.value=e.metalness,e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap,n(e.metalnessMap,t.metalnessMapTransform)),t.roughness.value=e.roughness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap,n(e.roughnessMap,t.roughnessMapTransform)),e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}function f(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform))),e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===Mn&&t.clearcoatNormalScale.value.negate())),e.dispersion>0&&(t.dispersion.value=e.dispersion),e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform))),e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor)),e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap,n(e.anisotropyMap,t.anisotropyMapTransform))),t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform)),e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}function p(t,e){e.matcap&&(t.matcap.value=e.matcap)}function g(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function Jp(t,e,n,i){let r={},s={},a=[];const o=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function l(t,e){const n=e.program;i.uniformBlockBinding(t,n)}function h(t,n){let a=r[t.id];void 0===a&&(p(t),a=c(t),r[t.id]=a,t.addEventListener("dispose",m));const o=n.program;i.updateUBOMapping(t,o);const l=e.render.frame;s[t.id]!==l&&(d(t),s[t.id]=l)}function c(e){const n=u();e.__bindingPointIndex=n;const i=t.createBuffer(),r=e.__size,s=e.usage;return t.bindBuffer(t.UNIFORM_BUFFER,i),t.bufferData(t.UNIFORM_BUFFER,r,s),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,n,i),i}function u(){for(let t=0;t<o;t++)if(-1===a.indexOf(t))return a.push(t),t;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function d(e){const n=r[e.id],i=e.uniforms,s=e.__cache;t.bindBuffer(t.UNIFORM_BUFFER,n);for(let r=0,a=i.length;r<a;r++){const e=Array.isArray(i[r])?i[r]:[i[r]];for(let n=0,i=e.length;n<i;n++){const i=e[n];if(!0===f(i,r,n,s)){const e=i.__offset,n=Array.isArray(i.value)?i.value:[i.value];let r=0;for(let s=0;s<n.length;s++){const a=n[s],o=g(a);"number"===typeof a||"boolean"===typeof a?(i.__data[0]=a,t.bufferSubData(t.UNIFORM_BUFFER,e+r,i.__data)):a.isMatrix3?(i.__data[0]=a.elements[0],i.__data[1]=a.elements[1],i.__data[2]=a.elements[2],i.__data[3]=0,i.__data[4]=a.elements[3],i.__data[5]=a.elements[4],i.__data[6]=a.elements[5],i.__data[7]=0,i.__data[8]=a.elements[6],i.__data[9]=a.elements[7],i.__data[10]=a.elements[8],i.__data[11]=0):(a.toArray(i.__data,r),r+=o.storage/Float32Array.BYTES_PER_ELEMENT)}t.bufferSubData(t.UNIFORM_BUFFER,e,i.__data)}}}t.bindBuffer(t.UNIFORM_BUFFER,null)}function f(t,e,n,i){const r=t.value,s=e+"_"+n;if(void 0===i[s])return i[s]="number"===typeof r||"boolean"===typeof r?r:r.clone(),!0;{const t=i[s];if("number"===typeof r||"boolean"===typeof r){if(t!==r)return i[s]=r,!0}else if(!1===t.equals(r))return t.copy(r),!0}return!1}function p(t){const e=t.uniforms;let n=0;const i=16;for(let s=0,a=e.length;s<a;s++){const t=Array.isArray(e[s])?e[s]:[e[s]];for(let e=0,r=t.length;e<r;e++){const r=t[e],s=Array.isArray(r.value)?r.value:[r.value];for(let t=0,e=s.length;t<e;t++){const e=s[t],a=g(e),o=n%i,l=o%a.boundary,h=o+l;n+=l,0!==h&&i-h<a.storage&&(n+=i-h),r.__data=new Float32Array(a.storage/Float32Array.BYTES_PER_ELEMENT),r.__offset=n,n+=a.storage}}}const r=n%i;return r>0&&(n+=i-r),t.__size=n,t.__cache={},this}function g(t){const e={boundary:0,storage:0};return"number"===typeof t||"boolean"===typeof t?(e.boundary=4,e.storage=4):t.isVector2?(e.boundary=8,e.storage=8):t.isVector3||t.isColor?(e.boundary=16,e.storage=12):t.isVector4?(e.boundary=16,e.storage=16):t.isMatrix3?(e.boundary=48,e.storage=48):t.isMatrix4?(e.boundary=64,e.storage=64):t.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",t),e}function m(e){const n=e.target;n.removeEventListener("dispose",m);const i=a.indexOf(n.__bindingPointIndex);a.splice(i,1),t.deleteBuffer(r[n.id]),delete r[n.id],delete s[n.id]}function _(){for(const e in r)t.deleteBuffer(r[e]);a=[],r={},s={}}return{bind:l,update:h,dispose:_}}class Yp{constructor(t={}){const{canvas:e=Ms(),context:n=null,depth:i=!0,stencil:r=!1,alpha:s=!1,antialias:a=!1,premultipliedAlpha:o=!0,preserveDrawingBuffer:l=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:c=!1,reverseDepthBuffer:u=!1}=t;let d;if(this.isWebGLRenderer=!0,null!==n){if("undefined"!==typeof WebGLRenderingContext&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");d=n.getContextAttributes().alpha}else d=s;const f=new Uint32Array(4),p=new Int32Array(4);let g=null,m=null;const _=[],v=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Wr,this.toneMapping=ci,this.toneMappingExposure=1;const y=this;let b=!1,x=0,w=0,S=null,T=-1,M=null;const E=new Vs,A=new Vs;let R=null;const z=new yo(0);let C=0,P=e.width,k=e.height,D=1,I=null,L=null;const j=new Vs(0,0,P,k),N=new Vs(0,0,P,k);let O=!1;const U=new Rl;let B=!1,F=!1;this.transmissionResolutionScale=1;const H=new Ea,q=new Ea,V=new Ks,G=new Vs,W={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let X=!1;function J(){return null===S?D:1}let Y,K,$,Z,Q,tt,et,nt,it,rt,st,at,ot,lt,ht,ct,ut,dt,ft,pt,gt,mt,_t,vt,yt=n;function bt(t,n){return e.getContext(t,n)}try{const t={alpha:!0,depth:i,stencil:r,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:l,powerPreference:h,failIfMajorPerformanceCaveat:c};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${_n}`),e.addEventListener("webglcontextlost",St,!1),e.addEventListener("webglcontextrestored",Tt,!1),e.addEventListener("webglcontextcreationerror",Mt,!1),null===yt){const e="webgl2";if(yt=bt(e,t),null===yt)throw bt(e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Yt){throw console.error("THREE.WebGLRenderer: "+Yt.message),Yt}function xt(){Y=new Ad(yt),Y.init(),mt=new Bp(yt,Y),K=new id(yt,Y,t,mt),$=new Op(yt,Y),K.reverseDepthBuffer&&u&&$.buffers.depth.setReversed(!0),Z=new Cd(yt),Q=new wp,tt=new Up(yt,Y,$,Q,K,mt,Z),et=new sd(y),nt=new Ed(y),it=new ph(yt),_t=new ed(yt,it),rt=new Rd(yt,it,Z,_t),st=new kd(yt,rt,it,Z),ft=new Pd(yt,K,tt),ct=new rd(Q),at=new xp(y,et,nt,Y,K,_t,ct),ot=new Xp(y,Q),lt=new Ep,ht=new Dp(Y),dt=new td(y,et,nt,$,st,d,o),ut=new jp(y,st,K),vt=new Jp(yt,Z,K,$),pt=new nd(yt,Y,Z),gt=new zd(yt,Y,Z),Z.programs=at.programs,y.capabilities=K,y.extensions=Y,y.properties=Q,y.renderLists=lt,y.shadowMap=ut,y.state=$,y.info=Z}xt();const wt=new Vp(y,yt);function St(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),b=!0}function Tt(){console.log("THREE.WebGLRenderer: Context Restored."),b=!1;const t=Z.autoReset,e=ut.enabled,n=ut.autoUpdate,i=ut.needsUpdate,r=ut.type;xt(),Z.autoReset=t,ut.enabled=e,ut.autoUpdate=n,ut.needsUpdate=i,ut.type=r}function Mt(t){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",t.statusMessage)}function Et(t){const e=t.target;e.removeEventListener("dispose",Et),At(e)}function At(t){Rt(t),Q.remove(t)}function Rt(t){const e=Q.get(t).programs;void 0!==e&&(e.forEach((function(t){at.releaseProgram(t)})),t.isShaderMaterial&&at.releaseShaderCache(t))}function zt(t,e,n){!0===t.transparent&&t.side===En&&!1===t.forceSinglePass?(t.side=Mn,t.needsUpdate=!0,Bt(t,e,n),t.side=Tn,t.needsUpdate=!0,Bt(t,e,n),t.side=En):Bt(t,e,n)}this.xr=wt,this.getContext=function(){return yt},this.getContextAttributes=function(){return yt.getContextAttributes()},this.forceContextLoss=function(){const t=Y.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){const t=Y.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return D},this.setPixelRatio=function(t){void 0!==t&&(D=t,this.setSize(P,k,!1))},this.getSize=function(t){return t.set(P,k)},this.setSize=function(t,n,i=!0){wt.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(P=t,k=n,e.width=Math.floor(t*D),e.height=Math.floor(n*D),!0===i&&(e.style.width=t+"px",e.style.height=n+"px"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(P*D,k*D).floor()},this.setDrawingBufferSize=function(t,n,i){P=t,k=n,D=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(E)},this.getViewport=function(t){return t.copy(j)},this.setViewport=function(t,e,n,i){t.isVector4?j.set(t.x,t.y,t.z,t.w):j.set(t,e,n,i),$.viewport(E.copy(j).multiplyScalar(D).round())},this.getScissor=function(t){return t.copy(N)},this.setScissor=function(t,e,n,i){t.isVector4?N.set(t.x,t.y,t.z,t.w):N.set(t,e,n,i),$.scissor(A.copy(N).multiplyScalar(D).round())},this.getScissorTest=function(){return O},this.setScissorTest=function(t){$.setScissorTest(O=t)},this.setOpaqueSort=function(t){I=t},this.setTransparentSort=function(t){L=t},this.getClearColor=function(t){return t.copy(dt.getClearColor())},this.setClearColor=function(){dt.setClearColor.apply(dt,arguments)},this.getClearAlpha=function(){return dt.getClearAlpha()},this.setClearAlpha=function(){dt.setClearAlpha.apply(dt,arguments)},this.clear=function(t=!0,e=!0,n=!0){let i=0;if(t){let t=!1;if(null!==S){const e=S.texture.format;t=e===nr||e===er||e===Qi}if(t){const t=S.texture.type,e=t===Di||t===Oi||t===ji||t===qi||t===Fi||t===Hi,n=dt.getClearColor(),i=dt.getClearAlpha(),r=n.r,s=n.g,a=n.b;e?(f[0]=r,f[1]=s,f[2]=a,f[3]=i,yt.clearBufferuiv(yt.COLOR,0,f)):(p[0]=r,p[1]=s,p[2]=a,p[3]=i,yt.clearBufferiv(yt.COLOR,0,p))}else i|=yt.COLOR_BUFFER_BIT}e&&(i|=yt.DEPTH_BUFFER_BIT),n&&(i|=yt.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),yt.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",St,!1),e.removeEventListener("webglcontextrestored",Tt,!1),e.removeEventListener("webglcontextcreationerror",Mt,!1),dt.dispose(),lt.dispose(),ht.dispose(),Q.dispose(),et.dispose(),nt.dispose(),st.dispose(),_t.dispose(),vt.dispose(),at.dispose(),wt.dispose(),wt.removeEventListener("sessionstart",kt),wt.removeEventListener("sessionend",Dt),It.stop()},this.renderBufferDirect=function(t,e,n,i,r,s){null===e&&(e=W);const a=r.isMesh&&r.matrixWorld.determinant()<0,o=qt(t,e,n,i,r);$.setMaterial(i,a);let l=n.index,h=1;if(!0===i.wireframe){if(l=rt.getWireframeAttribute(n),void 0===l)return;h=2}const c=n.drawRange,u=n.attributes.position;let d=c.start*h,f=(c.start+c.count)*h;null!==s&&(d=Math.max(d,s.start*h),f=Math.min(f,(s.start+s.count)*h)),null!==l?(d=Math.max(d,0),f=Math.min(f,l.count)):void 0!==u&&null!==u&&(d=Math.max(d,0),f=Math.min(f,u.count));const p=f-d;if(p<0||p===1/0)return;let g;_t.setup(r,i,o,n,l);let m=pt;if(null!==l&&(g=it.get(l),m=gt,m.setIndex(g)),r.isMesh)!0===i.wireframe?($.setLineWidth(i.wireframeLinewidth*J()),m.setMode(yt.LINES)):m.setMode(yt.TRIANGLES);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),$.setLineWidth(t*J()),r.isLineSegments?m.setMode(yt.LINES):r.isLineLoop?m.setMode(yt.LINE_LOOP):m.setMode(yt.LINE_STRIP)}else r.isPoints?m.setMode(yt.POINTS):r.isSprite&&m.setMode(yt.TRIANGLES);if(r.isBatchedMesh)if(null!==r._multiDrawInstances)m.renderMultiDrawInstances(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount,r._multiDrawInstances);else if(Y.get("WEBGL_multi_draw"))m.renderMultiDraw(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount);else{const t=r._multiDrawStarts,e=r._multiDrawCounts,n=r._multiDrawCount,s=l?it.get(l).bytesPerElement:1,a=Q.get(i).currentProgram.getUniforms();for(let i=0;i<n;i++)a.setValue(yt,"_gl_DrawID",i),m.render(t[i]/s,e[i])}else if(r.isInstancedMesh)m.renderInstances(d,p,r.count);else if(n.isInstancedBufferGeometry){const t=void 0!==n._maxInstanceCount?n._maxInstanceCount:1/0,e=Math.min(n.instanceCount,t);m.renderInstances(d,p,e)}else m.render(d,p)},this.compile=function(t,e,n=null){null===n&&(n=t),m=ht.get(n),m.init(e),v.push(m),n.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))})),t!==n&&t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))})),m.setupLights();const i=new Set;return t.traverse((function(t){if(!(t.isMesh||t.isPoints||t.isLine||t.isSprite))return;const e=t.material;if(e)if(Array.isArray(e))for(let r=0;r<e.length;r++){const s=e[r];zt(s,n,t),i.add(s)}else zt(e,n,t),i.add(e)})),v.pop(),m=null,i},this.compileAsync=function(t,e,n=null){const i=this.compile(t,e,n);return new Promise((e=>{function n(){i.forEach((function(t){const e=Q.get(t),n=e.currentProgram;n.isReady()&&i.delete(t)})),0!==i.size?setTimeout(n,10):e(t)}null!==Y.get("KHR_parallel_shader_compile")?n():setTimeout(n,10)}))};let Ct=null;function Pt(t){Ct&&Ct(t)}function kt(){It.stop()}function Dt(){It.start()}const It=new fh;function Lt(t,e,n,i){if(!1===t.visible)return;const r=t.layers.test(e.layers);if(r)if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)m.pushLight(t),t.castShadow&&m.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||U.intersectsSprite(t)){i&&G.setFromMatrixPosition(t.matrixWorld).applyMatrix4(q);const e=st.update(t),r=t.material;r.visible&&g.push(t,e,r,n,G.z,null)}}else if((t.isMesh||t.isLine||t.isPoints)&&(!t.frustumCulled||U.intersectsObject(t))){const e=st.update(t),r=t.material;if(i&&(void 0!==t.boundingSphere?(null===t.boundingSphere&&t.computeBoundingSphere(),G.copy(t.boundingSphere.center)):(null===e.boundingSphere&&e.computeBoundingSphere(),G.copy(e.boundingSphere.center)),G.applyMatrix4(t.matrixWorld).applyMatrix4(q)),Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s],o=r[a.materialIndex];o&&o.visible&&g.push(t,e,o,n,G.z,a)}}else r.visible&&g.push(t,e,r,n,G.z,null)}const s=t.children;for(let a=0,o=s.length;a<o;a++)Lt(s[a],e,n,i)}function jt(t,e,n,i){const r=t.opaque,s=t.transmissive,a=t.transparent;m.setupLightsView(n),!0===B&&ct.setGlobalState(y.clippingPlanes,n),i&&$.viewport(E.copy(i)),r.length>0&&Ot(r,e,n),s.length>0&&Ot(s,e,n),a.length>0&&Ot(a,e,n),$.buffers.depth.setTest(!0),$.buffers.depth.setMask(!0),$.buffers.color.setMask(!0),$.setPolygonOffset(!1)}function Nt(t,e,n,i){const s=!0===n.isScene?n.overrideMaterial:null;if(null!==s)return;void 0===m.state.transmissionRenderTarget[i.id]&&(m.state.transmissionRenderTarget[i.id]=new Ws(1,1,{generateMipmaps:!0,type:Y.has("EXT_color_buffer_half_float")||Y.has("EXT_color_buffer_float")?Bi:Di,minFilter:ki,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Is.workingColorSpace}));const a=m.state.transmissionRenderTarget[i.id],o=i.viewport||E;a.setSize(o.z*y.transmissionResolutionScale,o.w*y.transmissionResolutionScale);const l=y.getRenderTarget();y.setRenderTarget(a),y.getClearColor(z),C=y.getClearAlpha(),C<1&&y.setClearColor(16777215,.5),y.clear(),X&&dt.render(n);const h=y.toneMapping;y.toneMapping=ci;const c=i.viewport;if(void 0!==i.viewport&&(i.viewport=void 0),m.setupLightsView(i),!0===B&&ct.setGlobalState(y.clippingPlanes,i),Ot(t,n,i),tt.updateMultisampleRenderTarget(a),tt.updateRenderTargetMipmap(a),!1===Y.has("WEBGL_multisampled_render_to_texture")){let t=!1;for(let r=0,s=e.length;r<s;r++){const s=e[r],a=s.object,o=s.geometry,l=s.material,h=s.group;if(l.side===En&&a.layers.test(i.layers)){const e=l.side;l.side=Mn,l.needsUpdate=!0,Ut(a,n,i,o,l,h),l.side=e,l.needsUpdate=!0,t=!0}}!0===t&&(tt.updateMultisampleRenderTarget(a),tt.updateRenderTargetMipmap(a))}y.setRenderTarget(l),y.setClearColor(z,C),void 0!==c&&(i.viewport=c),y.toneMapping=h}function Ot(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=s.object,o=s.geometry,l=null===i?s.material:i,h=s.group;a.layers.test(n.layers)&&Ut(a,e,n,o,l,h)}}function Ut(t,e,n,i,r,s){t.onBeforeRender(y,e,n,i,r,s),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),r.onBeforeRender(y,e,n,i,t,s),!0===r.transparent&&r.side===En&&!1===r.forceSinglePass?(r.side=Mn,r.needsUpdate=!0,y.renderBufferDirect(n,e,i,r,t,s),r.side=Tn,r.needsUpdate=!0,y.renderBufferDirect(n,e,i,r,t,s),r.side=En):y.renderBufferDirect(n,e,i,r,t,s),t.onAfterRender(y,e,n,i,r,s)}function Bt(t,e,n){!0!==e.isScene&&(e=W);const i=Q.get(t),r=m.state.lights,s=m.state.shadowsArray,a=r.state.version,o=at.getParameters(t,r.state,s,e,n),l=at.getProgramCacheKey(o);let h=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=(t.isMeshStandardMaterial?nt:et).get(t.envMap||i.environment),i.envMapRotation=null!==i.environment&&null===t.envMap?e.environmentRotation:t.envMapRotation,void 0===h&&(t.addEventListener("dispose",Et),h=new Map,i.programs=h);let c=h.get(l);if(void 0!==c){if(i.currentProgram===c&&i.lightsStateVersion===a)return Ht(t,o),c}else o.uniforms=at.getUniforms(t),t.onBeforeCompile(o,y),c=at.acquireProgram(o,l),h.set(l,c),i.uniforms=o.uniforms;const u=i.uniforms;return(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=ct.uniform),Ht(t,o),i.needsLights=Gt(t),i.lightsStateVersion=a,i.needsLights&&(u.ambientLightColor.value=r.state.ambient,u.lightProbe.value=r.state.probe,u.directionalLights.value=r.state.directional,u.directionalLightShadows.value=r.state.directionalShadow,u.spotLights.value=r.state.spot,u.spotLightShadows.value=r.state.spotShadow,u.rectAreaLights.value=r.state.rectArea,u.ltc_1.value=r.state.rectAreaLTC1,u.ltc_2.value=r.state.rectAreaLTC2,u.pointLights.value=r.state.point,u.pointLightShadows.value=r.state.pointShadow,u.hemisphereLights.value=r.state.hemi,u.directionalShadowMap.value=r.state.directionalShadowMap,u.directionalShadowMatrix.value=r.state.directionalShadowMatrix,u.spotShadowMap.value=r.state.spotShadowMap,u.spotLightMatrix.value=r.state.spotLightMatrix,u.spotLightMap.value=r.state.spotLightMap,u.pointShadowMap.value=r.state.pointShadowMap,u.pointShadowMatrix.value=r.state.pointShadowMatrix),i.currentProgram=c,i.uniformsList=null,c}function Ft(t){if(null===t.uniformsList){const e=t.currentProgram.getUniforms();t.uniformsList=Bf.seqWithValue(e.seq,t.uniforms)}return t.uniformsList}function Ht(t,e){const n=Q.get(t);n.outputColorSpace=e.outputColorSpace,n.batching=e.batching,n.batchingColor=e.batchingColor,n.instancing=e.instancing,n.instancingColor=e.instancingColor,n.instancingMorph=e.instancingMorph,n.skinning=e.skinning,n.morphTargets=e.morphTargets,n.morphNormals=e.morphNormals,n.morphColors=e.morphColors,n.morphTargetsCount=e.morphTargetsCount,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas,n.vertexTangents=e.vertexTangents,n.toneMapping=e.toneMapping}function qt(t,e,n,i,r){!0!==e.isScene&&(e=W),tt.resetTextureUnits();const s=e.fog,a=i.isMeshStandardMaterial?e.environment:null,o=null===S?y.outputColorSpace:!0===S.isXRRenderTarget?S.texture.colorSpace:Xr,l=(i.isMeshStandardMaterial?nt:et).get(i.envMap||a),h=!0===i.vertexColors&&!!n.attributes.color&&4===n.attributes.color.itemSize,c=!!n.attributes.tangent&&(!!i.normalMap||i.anisotropy>0),u=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,f=!!n.morphAttributes.color;let p=ci;i.toneMapped&&(null!==S&&!0!==S.isXRRenderTarget||(p=y.toneMapping));const g=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,_=void 0!==g?g.length:0,v=Q.get(i),b=m.state.lights;if(!0===B&&(!0===F||t!==M)){const e=t===M&&i.id===T;ct.setState(i,t,e)}let x=!1;i.version===v.__version?v.needsLights&&v.lightsStateVersion!==b.state.version||v.outputColorSpace!==o||r.isBatchedMesh&&!1===v.batching?x=!0:r.isBatchedMesh||!0!==v.batching?r.isBatchedMesh&&!0===v.batchingColor&&null===r.colorTexture||r.isBatchedMesh&&!1===v.batchingColor&&null!==r.colorTexture||r.isInstancedMesh&&!1===v.instancing?x=!0:r.isInstancedMesh||!0!==v.instancing?r.isSkinnedMesh&&!1===v.skinning?x=!0:r.isSkinnedMesh||!0!==v.skinning?r.isInstancedMesh&&!0===v.instancingColor&&null===r.instanceColor||r.isInstancedMesh&&!1===v.instancingColor&&null!==r.instanceColor||r.isInstancedMesh&&!0===v.instancingMorph&&null===r.morphTexture||r.isInstancedMesh&&!1===v.instancingMorph&&null!==r.morphTexture||v.envMap!==l||!0===i.fog&&v.fog!==s?x=!0:void 0===v.numClippingPlanes||v.numClippingPlanes===ct.numPlanes&&v.numIntersection===ct.numIntersection?(v.vertexAlphas!==h||v.vertexTangents!==c||v.morphTargets!==u||v.morphNormals!==d||v.morphColors!==f||v.toneMapping!==p||v.morphTargetsCount!==_)&&(x=!0):x=!0:x=!0:x=!0:x=!0:(x=!0,v.__version=i.version);let w=v.currentProgram;!0===x&&(w=Bt(i,e,r));let E=!1,A=!1,R=!1;const z=w.getUniforms(),C=v.uniforms;if($.useProgram(w.program)&&(E=!0,A=!0,R=!0),i.id!==T&&(T=i.id,A=!0),E||M!==t){const e=$.buffers.depth.getReversed();e?(H.copy(t.projectionMatrix),zs(H),Cs(H),z.setValue(yt,"projectionMatrix",H)):z.setValue(yt,"projectionMatrix",t.projectionMatrix),z.setValue(yt,"viewMatrix",t.matrixWorldInverse);const n=z.map.cameraPosition;void 0!==n&&n.setValue(yt,V.setFromMatrixPosition(t.matrixWorld)),K.logarithmicDepthBuffer&&z.setValue(yt,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&z.setValue(yt,"isOrthographic",!0===t.isOrthographicCamera),M!==t&&(M=t,A=!0,R=!0)}if(r.isSkinnedMesh){z.setOptional(yt,r,"bindMatrix"),z.setOptional(yt,r,"bindMatrixInverse");const t=r.skeleton;t&&(null===t.boneTexture&&t.computeBoneTexture(),z.setValue(yt,"boneTexture",t.boneTexture,tt))}r.isBatchedMesh&&(z.setOptional(yt,r,"batchingTexture"),z.setValue(yt,"batchingTexture",r._matricesTexture,tt),z.setOptional(yt,r,"batchingIdTexture"),z.setValue(yt,"batchingIdTexture",r._indirectTexture,tt),z.setOptional(yt,r,"batchingColorTexture"),null!==r._colorsTexture&&z.setValue(yt,"batchingColorTexture",r._colorsTexture,tt));const P=n.morphAttributes;if(void 0===P.position&&void 0===P.normal&&void 0===P.color||ft.update(r,n,w),(A||v.receiveShadow!==r.receiveShadow)&&(v.receiveShadow=r.receiveShadow,z.setValue(yt,"receiveShadow",r.receiveShadow)),i.isMeshGouraudMaterial&&null!==i.envMap&&(C.envMap.value=l,C.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1),i.isMeshStandardMaterial&&null===i.envMap&&null!==e.environment&&(C.envMapIntensity.value=e.environmentIntensity),A&&(z.setValue(yt,"toneMappingExposure",y.toneMappingExposure),v.needsLights&&Vt(C,R),s&&!0===i.fog&&ot.refreshFogUniforms(C,s),ot.refreshMaterialUniforms(C,i,D,k,m.state.transmissionRenderTarget[t.id]),Bf.upload(yt,Ft(v),C,tt)),i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(Bf.upload(yt,Ft(v),C,tt),i.uniformsNeedUpdate=!1),i.isSpriteMaterial&&z.setValue(yt,"center",r.center),z.setValue(yt,"modelViewMatrix",r.modelViewMatrix),z.setValue(yt,"normalMatrix",r.normalMatrix),z.setValue(yt,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e<n;e++){const n=t[e];vt.update(n,w),vt.bind(n,w)}}return w}function Vt(t,e){t.ambientLightColor.needsUpdate=e,t.lightProbe.needsUpdate=e,t.directionalLights.needsUpdate=e,t.directionalLightShadows.needsUpdate=e,t.pointLights.needsUpdate=e,t.pointLightShadows.needsUpdate=e,t.spotLights.needsUpdate=e,t.spotLightShadows.needsUpdate=e,t.rectAreaLights.needsUpdate=e,t.hemisphereLights.needsUpdate=e}function Gt(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}It.setAnimationLoop(Pt),"undefined"!==typeof self&&It.setContext(self),this.setAnimationLoop=function(t){Ct=t,wt.setAnimationLoop(t),null===t?It.stop():It.start()},wt.addEventListener("sessionstart",kt),wt.addEventListener("sessionend",Dt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===b)return;if(!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===e.parent&&!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),!0===wt.enabled&&!0===wt.isPresenting&&(!0===wt.cameraAutoUpdate&&wt.updateCamera(e),e=wt.getCamera()),!0===t.isScene&&t.onBeforeRender(y,t,e,S),m=ht.get(t,v.length),m.init(e),v.push(m),q.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),U.setFromProjectionMatrix(q),F=this.localClippingEnabled,B=ct.init(this.clippingPlanes,F),g=lt.get(t,_.length),g.init(),_.push(g),!0===wt.enabled&&!0===wt.isPresenting){const t=y.xr.getDepthSensingMesh();null!==t&&Lt(t,e,-1/0,y.sortObjects)}Lt(t,e,0,y.sortObjects),g.finish(),!0===y.sortObjects&&g.sort(I,L),X=!1===wt.enabled||!1===wt.isPresenting||!1===wt.hasDepthSensing(),X&&dt.addToRenderList(g,t),this.info.render.frame++,!0===B&&ct.beginShadows();const n=m.state.shadowsArray;ut.render(n,t,e),!0===B&&ct.endShadows(),!0===this.info.autoReset&&this.info.reset();const i=g.opaque,r=g.transmissive;if(m.setupLights(),e.isArrayCamera){const n=e.cameras;if(r.length>0)for(let e=0,s=n.length;e<s;e++){const s=n[e];Nt(i,r,t,s)}X&&dt.render(t);for(let e=0,i=n.length;e<i;e++){const i=n[e];jt(g,t,i,i.viewport)}}else r.length>0&&Nt(i,r,t,e),X&&dt.render(t),jt(g,t,e);null!==S&&0===w&&(tt.updateMultisampleRenderTarget(S),tt.updateRenderTargetMipmap(S)),!0===t.isScene&&t.onAfterRender(y,t,e),_t.resetDefaultState(),T=-1,M=null,v.pop(),v.length>0?(m=v[v.length-1],!0===B&&ct.setGlobalState(y.clippingPlanes,m.state.camera)):m=null,_.pop(),g=_.length>0?_[_.length-1]:null},this.getActiveCubeFace=function(){return x},this.getActiveMipmapLevel=function(){return w},this.getRenderTarget=function(){return S},this.setRenderTargetTextures=function(t,e,n){Q.get(t.texture).__webglTexture=e,Q.get(t.depthTexture).__webglTexture=n;const i=Q.get(t);i.__hasExternalTextures=!0,i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===Y.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(t,e){const n=Q.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e};const Wt=yt.createFramebuffer();this.setRenderTarget=function(t,e=0,n=0){S=t,x=e,w=n;let i=!0,r=null,s=!1,a=!1;if(t){const o=Q.get(t);if(void 0!==o.__useDefaultFramebuffer)$.bindFramebuffer(yt.FRAMEBUFFER,null),i=!1;else if(void 0===o.__webglFramebuffer)tt.setupRenderTarget(t);else if(o.__hasExternalTextures)tt.rebindTextures(t,Q.get(t.texture).__webglTexture,Q.get(t.depthTexture).__webglTexture);else if(t.depthBuffer){const e=t.depthTexture;if(o.__boundDepthTexture!==e){if(null!==e&&Q.has(e)&&(t.width!==e.image.width||t.height!==e.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");tt.setupDepthRenderbuffer(t)}}const l=t.texture;(l.isData3DTexture||l.isDataArrayTexture||l.isCompressedArrayTexture)&&(a=!0);const h=Q.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=Array.isArray(h[e])?h[e][n]:h[e],s=!0):r=t.samples>0&&!1===tt.useMultisampledRTT(t)?Q.get(t).__webglMultisampledFramebuffer:Array.isArray(h)?h[n]:h,E.copy(t.viewport),A.copy(t.scissor),R=t.scissorTest}else E.copy(j).multiplyScalar(D).floor(),A.copy(N).multiplyScalar(D).floor(),R=O;0!==n&&(r=Wt);const o=$.bindFramebuffer(yt.FRAMEBUFFER,r);if(o&&i&&$.drawBuffers(t,r),$.viewport(E),$.scissor(A),$.setScissorTest(R),s){const i=Q.get(t.texture);yt.framebufferTexture2D(yt.FRAMEBUFFER,yt.COLOR_ATTACHMENT0,yt.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=Q.get(t.texture),r=e;yt.framebufferTextureLayer(yt.FRAMEBUFFER,yt.COLOR_ATTACHMENT0,i.__webglTexture,n,r)}else if(null!==t&&0!==n){const e=Q.get(t.texture);yt.framebufferTexture2D(yt.FRAMEBUFFER,yt.COLOR_ATTACHMENT0,yt.TEXTURE_2D,e.__webglTexture,n)}T=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){$.bindFramebuffer(yt.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,l=a.type;if(!K.textureFormatReadable(o))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!K.textureTypeReadable(l))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&yt.readPixels(e,n,i,r,mt.convert(o),mt.convert(l),s)}finally{const t=null!==S?Q.get(S).__webglFramebuffer:null;$.bindFramebuffer(yt.FRAMEBUFFER,t)}}},this.readRenderTargetPixelsAsync=async function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){const a=t.texture,l=a.format,h=a.type;if(!K.textureFormatReadable(l))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!K.textureTypeReadable(h))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r){$.bindFramebuffer(yt.FRAMEBUFFER,o);const t=yt.createBuffer();yt.bindBuffer(yt.PIXEL_PACK_BUFFER,t),yt.bufferData(yt.PIXEL_PACK_BUFFER,s.byteLength,yt.STREAM_READ),yt.readPixels(e,n,i,r,mt.convert(l),mt.convert(h),0);const a=null!==S?Q.get(S).__webglFramebuffer:null;$.bindFramebuffer(yt.FRAMEBUFFER,a);const c=yt.fenceSync(yt.SYNC_GPU_COMMANDS_COMPLETE,0);return yt.flush(),await Rs(yt,c,4),yt.bindBuffer(yt.PIXEL_PACK_BUFFER,t),yt.getBufferSubData(yt.PIXEL_PACK_BUFFER,0,s),yt.deleteBuffer(t),yt.deleteSync(c),s}throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(t,e=null,n=0){!0!==t.isTexture&&(As("WebGLRenderer: copyFramebufferToTexture function signature has changed."),e=arguments[0]||null,t=arguments[1]);const i=Math.pow(2,-n),r=Math.floor(t.image.width*i),s=Math.floor(t.image.height*i),a=null!==e?e.x:0,o=null!==e?e.y:0;tt.setTexture2D(t,0),yt.copyTexSubImage2D(yt.TEXTURE_2D,n,0,0,a,o,r,s),$.unbindTexture()};const Xt=yt.createFramebuffer(),Jt=yt.createFramebuffer();this.copyTextureToTexture=function(t,e,n=null,i=null,r=0,s=null){let a,o,l,h,c,u,d,f,p;!0!==t.isTexture&&(As("WebGLRenderer: copyTextureToTexture function signature has changed."),i=arguments[0]||null,t=arguments[1],e=arguments[2],s=arguments[3]||0,n=null),null===s&&(0!==r?(As("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),s=r,r=0):s=0);const g=t.isCompressedTexture?t.mipmaps[s]:t.image;if(null!==n)a=n.max.x-n.min.x,o=n.max.y-n.min.y,l=n.isBox3?n.max.z-n.min.z:1,h=n.min.x,c=n.min.y,u=n.isBox3?n.min.z:0;else{const e=Math.pow(2,-r);a=Math.floor(g.width*e),o=Math.floor(g.height*e),l=t.isDataArrayTexture?g.depth:t.isData3DTexture?Math.floor(g.depth*e):1,h=0,c=0,u=0}null!==i?(d=i.x,f=i.y,p=i.z):(d=0,f=0,p=0);const m=mt.convert(e.format),_=mt.convert(e.type);let v;e.isData3DTexture?(tt.setTexture3D(e,0),v=yt.TEXTURE_3D):e.isDataArrayTexture||e.isCompressedArrayTexture?(tt.setTexture2DArray(e,0),v=yt.TEXTURE_2D_ARRAY):(tt.setTexture2D(e,0),v=yt.TEXTURE_2D),yt.pixelStorei(yt.UNPACK_FLIP_Y_WEBGL,e.flipY),yt.pixelStorei(yt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha),yt.pixelStorei(yt.UNPACK_ALIGNMENT,e.unpackAlignment);const y=yt.getParameter(yt.UNPACK_ROW_LENGTH),b=yt.getParameter(yt.UNPACK_IMAGE_HEIGHT),x=yt.getParameter(yt.UNPACK_SKIP_PIXELS),w=yt.getParameter(yt.UNPACK_SKIP_ROWS),S=yt.getParameter(yt.UNPACK_SKIP_IMAGES);yt.pixelStorei(yt.UNPACK_ROW_LENGTH,g.width),yt.pixelStorei(yt.UNPACK_IMAGE_HEIGHT,g.height),yt.pixelStorei(yt.UNPACK_SKIP_PIXELS,h),yt.pixelStorei(yt.UNPACK_SKIP_ROWS,c),yt.pixelStorei(yt.UNPACK_SKIP_IMAGES,u);const T=t.isDataArrayTexture||t.isData3DTexture,M=e.isDataArrayTexture||e.isData3DTexture;if(t.isDepthTexture){const n=Q.get(t),i=Q.get(e),g=Q.get(n.__renderTarget),m=Q.get(i.__renderTarget);$.bindFramebuffer(yt.READ_FRAMEBUFFER,g.__webglFramebuffer),$.bindFramebuffer(yt.DRAW_FRAMEBUFFER,m.__webglFramebuffer);for(let _=0;_<l;_++)T&&(yt.framebufferTextureLayer(yt.READ_FRAMEBUFFER,yt.COLOR_ATTACHMENT0,Q.get(t).__webglTexture,r,u+_),yt.framebufferTextureLayer(yt.DRAW_FRAMEBUFFER,yt.COLOR_ATTACHMENT0,Q.get(e).__webglTexture,s,p+_)),yt.blitFramebuffer(h,c,a,o,d,f,a,o,yt.DEPTH_BUFFER_BIT,yt.NEAREST);$.bindFramebuffer(yt.READ_FRAMEBUFFER,null),$.bindFramebuffer(yt.DRAW_FRAMEBUFFER,null)}else if(0!==r||t.isRenderTargetTexture||Q.has(t)){const n=Q.get(t),i=Q.get(e);$.bindFramebuffer(yt.READ_FRAMEBUFFER,Xt),$.bindFramebuffer(yt.DRAW_FRAMEBUFFER,Jt);for(let t=0;t<l;t++)T?yt.framebufferTextureLayer(yt.READ_FRAMEBUFFER,yt.COLOR_ATTACHMENT0,n.__webglTexture,r,u+t):yt.framebufferTexture2D(yt.READ_FRAMEBUFFER,yt.COLOR_ATTACHMENT0,yt.TEXTURE_2D,n.__webglTexture,r),M?yt.framebufferTextureLayer(yt.DRAW_FRAMEBUFFER,yt.COLOR_ATTACHMENT0,i.__webglTexture,s,p+t):yt.framebufferTexture2D(yt.DRAW_FRAMEBUFFER,yt.COLOR_ATTACHMENT0,yt.TEXTURE_2D,i.__webglTexture,s),0!==r?yt.blitFramebuffer(h,c,a,o,d,f,a,o,yt.COLOR_BUFFER_BIT,yt.NEAREST):M?yt.copyTexSubImage3D(v,s,d,f,p+t,h,c,a,o):yt.copyTexSubImage2D(v,s,d,f,h,c,a,o);$.bindFramebuffer(yt.READ_FRAMEBUFFER,null),$.bindFramebuffer(yt.DRAW_FRAMEBUFFER,null)}else M?t.isDataTexture||t.isData3DTexture?yt.texSubImage3D(v,s,d,f,p,a,o,l,m,_,g.data):e.isCompressedArrayTexture?yt.compressedTexSubImage3D(v,s,d,f,p,a,o,l,m,g.data):yt.texSubImage3D(v,s,d,f,p,a,o,l,m,_,g):t.isDataTexture?yt.texSubImage2D(yt.TEXTURE_2D,s,d,f,a,o,m,_,g.data):t.isCompressedTexture?yt.compressedTexSubImage2D(yt.TEXTURE_2D,s,d,f,g.width,g.height,m,g.data):yt.texSubImage2D(yt.TEXTURE_2D,s,d,f,a,o,m,_,g);yt.pixelStorei(yt.UNPACK_ROW_LENGTH,y),yt.pixelStorei(yt.UNPACK_IMAGE_HEIGHT,b),yt.pixelStorei(yt.UNPACK_SKIP_PIXELS,x),yt.pixelStorei(yt.UNPACK_SKIP_ROWS,w),yt.pixelStorei(yt.UNPACK_SKIP_IMAGES,S),0===s&&e.generateMipmaps&&yt.generateMipmap(v),$.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n=null,i=null,r=0){return!0!==t.isTexture&&(As("WebGLRenderer: copyTextureToTexture3D function signature has changed."),n=arguments[0]||null,i=arguments[1]||null,t=arguments[2],e=arguments[3],r=arguments[4]||0),As('WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use "copyTextureToTexture" instead.'),this.copyTextureToTexture(t,e,n,i,r)},this.initRenderTarget=function(t){void 0===Q.get(t).__webglFramebuffer&&tt.setupRenderTarget(t)},this.initTexture=function(t){t.isCubeTexture?tt.setTextureCube(t,0):t.isData3DTexture?tt.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?tt.setTexture2DArray(t,0):tt.setTexture2D(t,0),$.unbindTexture()},this.resetState=function(){x=0,w=0,S=null,$.reset(),_t.reset()},"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ls}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorspace=Is._getDrawingBufferColorSpace(t),e.unpackColorSpace=Is._getUnpackColorSpace()}}new $l(-1,1,1,-1,0,1);class Kp extends Oo{constructor(){super(),this.setAttribute("position",new Co([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Co([0,2,0,0,2,0],2))}}new Kp;function $p(t,e){this.name=t,this.message=e,this.stack=(new Error).stack}function Zp(){var t={constraints:{audio:!0,video:{width:{ideal:320,max:576}}},publish:async function(e,n){if(-1===e.indexOf("/whip/"))throw new Error(`invalid WHIP url ${e}`);if(n?.videoOnly&&n?.audioOnly)throw new Error("The videoOnly and audioOnly in options can't be true at the same time");if(n?.videoOnly?t.constraints.audio=!1:t.pc.addTransceiver("audio",{direction:"sendonly"}),n?.audioOnly?t.constraints.video=!1:t.pc.addTransceiver("video",{direction:"sendonly"}),!navigator.mediaDevices&&"http:"===window.location.protocol&&"localhost"!==window.location.hostname)throw new $p("HttpsRequiredError","Please use HTTPS or localhost to publish, read https://github.com/ossrs/srs/issues/2762#issuecomment-983147576");var i=await navigator.mediaDevices.getUserMedia(t.constraints);i.getTracks().forEach((function(e){t.pc.addTrack(e),t.ontrack&&t.ontrack({track:e})}));var r=await t.pc.createOffer();await t.pc.setLocalDescription(r);const s=await new Promise((function(t,n){console.log(`Generated offer: ${r.sdp}`);const i=new XMLHttpRequest;i.onload=function(){if(i.readyState!==i.DONE)return;if(200!==i.status&&201!==i.status)return n(i);const e=i.responseText;return console.log("Got answer: ",e),e.code?n(i):t(e)},i.open("POST",e,!0),i.setRequestHeader("Content-type","application/sdp"),i.send(r.sdp)}));return await t.pc.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:s})),t.__internal.parseId(e,r.sdp,s)},play:async function(e,n){if(-1===e.indexOf("/whip-play/")&&-1===e.indexOf("/whep/"))throw new Error(`invalid WHEP url ${e}`);if(n?.videoOnly&&n?.audioOnly)throw new Error("The videoOnly and audioOnly in options can't be true at the same time");n?.videoOnly||t.pc.addTransceiver("audio",{direction:"recvonly"}),n?.audioOnly||t.pc.addTransceiver("video",{direction:"recvonly"});var i=await t.pc.createOffer();await t.pc.setLocalDescription(i);const r=await new Promise((function(t,n){const r=new XMLHttpRequest;r.onload=function(){if(r.readyState!==r.DONE)return;if(200!==r.status&&201!==r.status)return n(r);const e=r.responseText;return e.code?n(r):t(e)},r.open("POST",e,!0),r.setRequestHeader("Content-type","application/sdp"),r.send(i.sdp)}));return await t.pc.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:r})),t.__internal.parseId(e,i.sdp,r)},close:function(){t.pc&&t.pc.close(),t.pc=null},ontrack:function(e){t.stream.addTrack(e.track)}};return t.pc=new RTCPeerConnection(null),t.stream=new MediaStream,t.__internal={parseId:(t,e,n)=>{let i=e.substr(e.indexOf("a=ice-ufrag:")+12);i=i.substr(0,i.indexOf("\n")-1)+":",i+=n.substr(n.indexOf("a=ice-ufrag:")+12),i=i.substr(0,i.indexOf("\n"));const r=document.createElement("a");return r.href=t,{sessionid:i,simulator:r.protocol+"//"+r.host+"/rtc/v1/nack/"}}},t.pc.ontrack=function(e){t.ontrack&&t.ontrack(e)},t}$p.prototype=Object.create(Error.prototype),$p.prototype.constructor=$p;class Qp{constructor(t){const e={src:"",autoplay:!0,loop:!0,canvas:null,width:720,height:640,isRealTime:!1,onError:function(){},onPlay:function(){}};this.options={...e,...t},this.webrtcPlayer=null,this.initVideo(),this.initThreeJS()}initVideo(){const{onPlay:t,onError:e,loop:n,autoplay:i,src:r,isRealTime:s}=this.options,a=document.createElement("video");a.id="rendered-video",a.autoplay=!1,a.muted=!0,a.loop=n,a.setAttribute("x-webkit-airplay","true"),a.setAttribute("webkit-playsinline","true"),a.setAttribute("playsinline","true"),a.style.display="none",a.crossOrigin="anonymous",console.log("src=====",r),s?(this.webrtcPlayer=new Zp,a.srcObject=this.webrtcPlayer.stream,this.webrtcPlayer.play(r,{videoOnly:!1,audioOnly:!1}).then((function(e){a.play().then((()=>{t&&t()})).catch((e=>{t&&t()}))}))):(a.src=r,a.addEventListener("canplay",(()=>{this.playing=!0,t&&t()})),a.addEventListener("error",(()=>{e&&e()}))),document.body.appendChild(a),this.video=a}initThreeJS(){this.scene=new xl,this.camera=new dl(75,this.options.width/this.options.height,.1,1e3),this.camera.position.z=5,this.width=this.options.width,this.height=this.options.height,this.renderer=new Yp({canvas:this.options.canvas,alpha:!0,antialias:!0}),this.renderer.setSize(this.options.width,this.options.height),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setClearColor(0,0),this.renderer.domElement.addEventListener("webglcontextlost",this.handleContextLost.bind(this),!1),this.renderer.domElement.addEventListener("webglcontextrestored",this.handleContextRestored.bind(this),!1),this.renderer.domElement.addEventListener("click",(()=>{this.play()})),this.videoTexture=new zl(this.video),this.videoTexture.minFilter=Ci,this.videoTexture.magFilter=Ci,this.videoTexture.wrapS=Mi,this.videoTexture.wrapT=Mi,this.videoTexture.format=Wi,this.videoTexture.generateMipmaps=!1,this.materials=[this.createMat1()];const t=new Pl(2,2);this.mesh=new Ko(t,this.materials[0]),this.scene.add(this.mesh),this.animate(),Is.enabled=!0,Is.workingColorSpace=Wr,this.curSize=new bs,this.renderer.getSize(this.curSize)}setCanvasSize(t,e){this.renderer.setSize(t,e),this.width=t,this.height=e}showAlpha(t){this.mesh.material.uniforms.showAlpha.value=t,this.mesh.material.needsUpdate=!0}setKeyColor(t){t instanceof yo?this.mesh.material.uniforms.keyColor.value=t:"string"===typeof t?this.mesh.material.uniforms.keyColor.value.set(t):console.error("Invalid color format. Use THREE.Color or hex string.")}setCutoff(t){this.mesh.material.uniforms.colorCutoff.value=Math.max(0,Math.min(1,t)),this.mesh.material.needsUpdate=!0}setFeathering(t){this.mesh.material.uniforms.colorFeathering.value=Math.max(0,Math.min(1,t)),this.mesh.material.needsUpdate=!0}setMaskFeathering(t){this.mesh.material.uniforms.maskFeathering.value=Math.max(0,Math.min(1,t)),this.mesh.material.needsUpdate=!0}setSharpening(t){this.mesh.material.uniforms.sharpening.value=Math.max(0,Math.min(1,t)),this.mesh.material.needsUpdate=!0}setDespillStrength(t){this.mesh.material.uniforms.despillStrength.value=Math.max(0,Math.min(1,t)),this.mesh.material.needsUpdate=!0}setDespillLuminanceAdd(t){this.mesh.material.uniforms.despillLuminanceAdd.value=Math.max(0,Math.min(1,t)),this.mesh.material.needsUpdate=!0}setZoom(t){this.mesh.material.uniforms.zoom.value=Math.max(.1,t)}setOffset(t,e){this.renderer.getSize(this.curSize);let n=t/this.curSize.x*2,i=e/this.curSize.y*2;this.mesh.material.uniforms.offset.value.set(n,i)}createMat1(){return new ol({uniforms:{zoom:{value:1},offset:{value:new bs(0,0)},tDiffuse:{value:this.videoTexture},keyColor:{value:new yo(.4274,.917647,.454901)},tintColor:{value:new yo(1,1,1)},texWidth:{value:1080},texHeight:{value:1920},colorCutoff:{value:.1},colorFeathering:{value:.2},maskFeathering:{value:1},sharpening:{value:.1},despillStrength:{value:0},despillLuminanceAdd:{value:0},basexscale:{value:1},baseyscale:{value:1}},vertexShader:"\n uniform float zoom; \n uniform vec2 offset; \n uniform float basexscale;\n uniform float baseyscale;\n varying vec2 vUv; \n\n void main(void) {\n vec2 scaledPosition = vec2(position.x * zoom * basexscale, position.y * zoom * baseyscale);\n scaledPosition += offset;\n gl_Position = vec4( scaledPosition, 0.0, 1.0);\n vUv = uv;\n }\n ",fragmentShader:"\n uniform sampler2D tDiffuse;\n uniform vec3 keyColor;\n uniform vec3 tintColor;\n uniform float colorCutoff;\n uniform float colorFeathering;\n uniform float maskFeathering;\n uniform float sharpening;\n uniform float despillStrength;\n uniform float despillLuminanceAdd;\n uniform float texWidth;\n uniform float texHeight;\n \n varying vec2 vUv;\n \n // 颜色空间转换函数\n float rgb2y(vec3 c) {\n return (0.299*c.r + 0.587*c.g + 0.114*c.b);\n }\n \n float rgb2cb(vec3 c) {\n return (0.5 + -0.168736*c.r - 0.331264*c.g + 0.5*c.b);\n }\n \n float rgb2cr(vec3 c) {\n return (0.5 + 0.5*c.r - 0.418688*c.g - 0.081312*c.b);\n }\n \n // 计算颜色相似度\n float colorclose(float Cb_p, float Cr_p, float Cb_key, float Cr_key, float tola, float tolb) {\n float temp = (Cb_key-Cb_p)*(Cb_key-Cb_p)+(Cr_key-Cr_p)*(Cr_key-Cr_p);\n float tola2 = tola*tola;\n float tolb2 = tolb*tolb;\n if (temp < tola2) return 0.0;\n if (temp < tolb2) return (temp-tola2)/(tolb2-tola2);\n return 1.0;\n }\n \n // 采样并计算遮罩值\n float maskedTex2D(sampler2D tex, vec2 uv) {\n vec4 color = texture2D(tex, uv);\n \n // 转换为YCrCb颜色空间进行比较\n float key_cb = rgb2cb(keyColor);\n float key_cr = rgb2cr(keyColor);\n float pix_cb = rgb2cb(color.rgb);\n float pix_cr = rgb2cr(color.rgb);\n \n return colorclose(pix_cb, pix_cr, key_cb, key_cr, colorCutoff, colorFeathering);\n }\n \n void main() {\n // 计算像素尺寸\n vec2 pixelWidth = vec2(1.0 / texWidth, 0.0);\n vec2 pixelHeight = vec2(0.0, 1.0 / texHeight);\n \n // 原始颜色\n vec4 color = texture2D(tDiffuse, vUv);\n \n // 未羽化的遮罩\n float mask = maskedTex2D(tDiffuse, vUv);\n \n // 羽化和模糊处理\n float c = mask;\n float r = maskedTex2D(tDiffuse, vUv + pixelWidth);\n float l = maskedTex2D(tDiffuse, vUv - pixelWidth);\n float d = maskedTex2D(tDiffuse, vUv + pixelHeight);\n float u = maskedTex2D(tDiffuse, vUv - pixelHeight);\n float rd = maskedTex2D(tDiffuse, vUv + pixelWidth + pixelHeight) * 0.707;\n float dl = maskedTex2D(tDiffuse, vUv - pixelWidth + pixelHeight) * 0.707;\n float lu = maskedTex2D(tDiffuse, vUv - pixelHeight - pixelWidth) * 0.707;\n float ur = maskedTex2D(tDiffuse, vUv + pixelWidth - pixelHeight) * 0.707;\n \n // 计算模糊后的遮罩\n float blurContribution = (r + l + d + u + rd + dl + lu + ur + c) * 0.12774655;\n float smoothedMask = smoothstep(sharpening, 1.0, mix(c, blurContribution, maskFeathering));\n vec4 result = color * smoothedMask;\n \n // 去色溢处理\n float v = (2.0*result.b + result.r) / 4.0;\n if(result.g > v) result.g = mix(result.g, v, despillStrength);\n \n vec4 dif = (color - result);\n float desaturatedDif = rgb2y(dif.xyz);\n result += mix(0.0, desaturatedDif, despillLuminanceAdd);\n \n // 应用色调并设置最终透明度\n vec4 retColor = vec4(result.xyz, smoothedMask) * vec4(tintColor, 1.0);\n \n gl_FragColor = vec4(retColor.rgb, retColor.a);\n }\n ",transparent:!1,premultipliedAlpha:!1})}handleContextLost(t){t.preventDefault(),this.pause(),console.warn("WebGL context lost")}handleContextRestored(){console.log("WebGL context restored"),this.initThreeJS(),this.options.autoplay&&this.play()}updateBaseScale(){if(this.mesh&&this.mesh.material){var t=.5625;this.width/this.height<t?(this.mesh.material.uniforms.basexscale.value=1,this.mesh.material.uniforms.baseyscale.value=1920*this.width/1080/this.height):(this.mesh.material.uniforms.basexscale.value=1080*this.height/1920/this.width,this.mesh.material.uniforms.baseyscale.value=1)}}animate(){if(this.playing){var t=this.renderer;this.updateBaseScale(),t.setRenderTarget(null),t.render(this.mesh,this.camera)}setTimeout((()=>{this.animate()}),1e3/30)}play(){this.playing=!0,this.video.play()}pause(){this.playing=!1,this.video.pause()}setMuted(t){console.log("setMuted ",t),this.video.muted=t}stopRtcStream(){if(this.webrtcPlayer&&(this.webrtcPlayer.close(),this.webrtcPlayer=null,this.video.srcObject)){const t=this.video.srcObject;t instanceof MediaStream&&t.getTracks().forEach((t=>t.stop())),this.video.srcObject=null}}setSource(t,e=!1,n=!0){if(this.pause(),""===t&&this.stopRtcStream(),this.video.src=t,this.video.loop=e,this.webrtcPlayer||(this.webrtcPlayer=new Zp),!n){this.video.src="";const{onPlay:e,onError:n,loop:i,autoplay:r,isRealTime:s}=this.options;this.video.srcObject=this.webrtcPlayer.stream,console.log("src===",t),this.webrtcPlayer.play(t,{videoOnly:!1,audioOnly:!1}).then((function(t){e&&e()}))}this.video.muted=n,this.video.load(),this.options.autoplay&&this.play(),e?this.video.removeEventListener("ended",this.options.onEnded):(this.video.removeEventListener("ended",this.options.onEnded),this.video.addEventListener("ended",this.options.onEnded))}}var tg=Qp;function eg(t){return eg="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eg(t)}function ng(t,e){if("object"!=eg(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=eg(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}function ig(t){var e=ng(t,"string");return"symbol"==eg(e)?e:e+""}function rg(t,e,n){return(e=ig(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}i(8237);var sg=i(3190),ag=i.n(sg);class og{constructor(t){rg(this,"message",null),this.appKey=t.apiKey,this.apiSecret=t.apiSecret,this.speaker=t.tone,this.speed=t.speech_rate,this.volume=t.volume,this.pitch=t.pitch_rate,this.text=t.text,this.audioData=null,this.init()}init(){const t=Math.round((new Date).getTime()/1e3);let e=[];fetch("https://open.mobvoi.com/api/tts/v1",{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:this.text,appkey:this.appKey,signature:ag().MD5(`${this.appKey}+${this.apiSecret}+${t}`).toString(),timestamp:t,speaker:this.speaker,rate:16e3,audio_type:"pcm",speed:this.speed,volume:this.volume,pitch:this.pitch})}).then((t=>{if(!t.ok)throw new Error("网络连接失败");{const n=t.body.getReader(),i=async t=>{const{done:r,value:s}=t;if(r){const t=new Uint8Array(e.reduce(((t,e)=>t+e.byteLength),0));let n=0;e.forEach((e=>{t.set(e,n),n+=e.byteLength})),this.message(t),e=[]}else e.push(s),await n.read().then(i)};n.read().then(i)}}))}}var lg=og;const hg=/^[\uD800-\uDBFF]$/,cg=/^[\uDC00-\uDFFF]$/,ug=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var dg;(function(t){t[t["Unknown"]=1e-13]="Unknown",t[t["Rule"]=1e-12]="Rule",t[t["DICT"]=2e-8]="DICT",t[t["Surname"]=1]="Surname",t[t["Custom"]=1]="Custom"})(dg||(dg={}));const fg={Normal:1,Surname:10,Custom:100};function pg(t){var e;return t.length-((null===(e=t.match(ug))||void 0===e?void 0:e.length)||0)}function gg(t){const e=[];let n=0;while(n<t.length){const i=t[n];hg.test(i)&&cg.test(t[n+1])?(e.push(t.substring(n,n+2)),n+=2):(e.push(i),n+=1)}return e}class mg{constructor(){this.NumberDICT=[],this.StringDICT=new Map}get(t){if(t.length>1)return this.StringDICT.get(t);{const e=t.charCodeAt(0);return this.NumberDICT[e]}}set(t,e){if(t.length>1)this.StringDICT.set(t,e);else{const n=t.charCodeAt(0);this.NumberDICT[n]=e}}clear(){this.NumberDICT=[],this.StringDICT.clear()}}const _g={"bǎng páng pāng":["膀"],"líng":["〇","伶","凌","刢","囹","坽","夌","姈","婈","孁","岺","彾","掕","昤","朎","柃","棂","櫺","欞","泠","淩","澪","灵","燯","爧","狑","玲","琌","瓴","皊","砱","祾","秢","竛","笭","紷","綾","绫","羐","羚","翎","聆","舲","苓","菱","蓤","蔆","蕶","蛉","衑","裬","詅","跉","軨","輘","酃","醽","鈴","錂","铃","閝","陵","零","霊","霗","霛","霝","靈","駖","魿","鯪","鲮","鴒","鸰","鹷","麢","齡","齢","龄","龗","㥄"],"yī":["一","乊","伊","依","医","吚","咿","噫","壱","壹","夁","嫛","嬄","弌","揖","撎","檹","毉","洢","渏","漪","瑿","畩","祎","禕","稦","繄","蛜","衤","譩","辷","郼","醫","銥","铱","鷖","鹥","黟","黳"],"dīng zhēng":["丁"],"kǎo qiǎo yú":["丂"],"qī":["七","倛","僛","凄","嘁","墄","娸","悽","慼","慽","戚","捿","柒","桤","桼","棲","榿","欺","沏","淒","漆","紪","緀","萋","褄","諆","迉","郪","鏚","霋","魌","鶈"],"shàng":["丄","尙","尚","恦","緔","绱"],"xià":["丅","下","乤","圷","夏","夓","懗","梺","疜","睱","罅","鎼","鏬"],"hǎn":["丆","喊","浫","罕","豃","㘎"],"wàn mò":["万"],"zhàng":["丈","仗","墇","嶂","帐","帳","幛","扙","杖","涱","痮","瘬","瘴","瞕","粀","胀","脹","賬","账","障"],"sān":["三","厁","叁","弎","毵","毶","毿","犙","鬖"],"shàng shǎng shang":["上"],"qí jī":["丌","其","奇"],"bù fǒu":["不"],"yǔ yù yú":["与"],"miǎn":["丏","偭","免","冕","勉","勔","喕","娩","愐","汅","沔","湎","睌","緬","缅","腼","葂","靦","鮸","𩾃"],"gài":["丐","乢","匃","匄","戤","概","槩","槪","溉","漑","瓂","葢","鈣","钙","𬮿"],"chǒu":["丑","丒","侴","吜","杽","瞅","矁","醜","魗"],"zhuān":["专","叀","嫥","専","專","瑼","甎","砖","磗","磚","蟤","諯","鄟","顓","颛","鱄","䏝"],"qiě jū":["且"],"pī":["丕","伓","伾","噼","坯","岯","憵","批","披","炋","狉","狓","砒","磇","礔","礕","秛","秠","耚","豾","邳","鈚","鉟","銔","錃","錍","霹","駓","髬","魾","𬳵"],"shì":["世","丗","亊","事","仕","侍","冟","势","勢","卋","呩","嗜","噬","士","奭","嬕","室","市","式","弑","弒","恀","恃","戺","拭","揓","是","昰","枾","柿","栻","澨","烒","煶","眂","眎","眡","睗","示","礻","筮","簭","舐","舓","襫","視","视","觢","試","誓","諡","謚","试","谥","貰","贳","軾","轼","逝","遾","釈","释","釋","鈰","鉃","鉽","铈","飾","餙","餝","饰","鰘","䏡","𬤊"],"qiū":["丘","丠","坵","媝","恘","恷","楸","秋","秌","穐","篍","緧","萩","蘒","蚯","蝵","蟗","蠤","趥","邱","鞦","鞧","鰌","鰍","鳅","鶖","鹙","龝"],"bǐng":["丙","屛","怲","抦","昞","昺","柄","棅","炳","禀","秉","稟","苪","蛃","邴","鈵","陃","鞆","餅","餠","饼"],"yè":["业","亱","僷","墷","夜","嶪","嶫","抴","捙","擛","擪","擫","晔","曄","曅","曗","曳","曵","枼","枽","業","洂","液","澲","烨","燁","爗","璍","皣","瞱","瞸","礏","腋","葉","謁","谒","邺","鄴","鍱","鐷","靥","靨","頁","页","餣","饁","馌","驜","鵺","鸈"],"cóng":["丛","从","叢","婃","孮","従","徔","徖","悰","樷","欉","淙","灇","爜","琮","藂","誴","賨","賩","錝"],"dōng":["东","倲","冬","咚","埬","岽","崬","徚","昸","東","氡","氭","涷","笗","苳","菄","蝀","鮗","鯟","鶇","鶫","鸫","鼕","𬟽"],"sī":["丝","俬","凘","厮","司","咝","嘶","噝","媤","廝","恖","撕","斯","楒","泀","澌","燍","禗","禠","私","糹","絲","緦","纟","缌","罳","蕬","虒","蛳","蜤","螄","蟖","蟴","鉰","銯","鍶","鐁","锶","颸","飔","騦","鷥","鸶","鼶","㟃"],"chéng":["丞","呈","城","埕","堘","塍","塖","宬","峸","惩","懲","成","承","挰","掁","揨","枨","棖","橙","檙","洆","溗","澂","珵","珹","畻","程","窚","筬","絾","脭","荿","誠","诚","郕","酲","鋮","铖","騬","鯎"],"diū":["丟","丢","銩","铥"],"liǎng":["両","两","兩","唡","啢","掚","緉","脼","蜽","裲","魉","魎","𬜯"],"yǒu":["丣","卣","友","梄","湵","牖","禉","羑","聈","苃","莠","蜏","酉","銪","铕","黝"],"yán":["严","厳","啱","喦","嚴","塩","壛","壧","妍","姸","娫","娮","岩","嵒","嵓","巌","巖","巗","延","揅","昖","楌","檐","櫩","欕","沿","炎","炏","狿","琂","盐","碞","筵","簷","莚","蔅","虤","蜒","言","訁","訮","詽","讠","郔","閆","閻","闫","阎","顏","顔","颜","鹽","麣","𫄧"],"bìng":["並","併","倂","傡","垪","摒","栤","病","窉","竝","誁","靐","鮩"],"sàng sāng":["丧"],"gǔn":["丨","惃","滚","滾","磙","緄","绲","蓘","蔉","衮","袞","輥","辊","鮌","鯀","鲧"],"jiū":["丩","勼","啾","揪","揫","朻","究","糾","纠","萛","赳","阄","鬏","鬮","鳩","鸠"],"gè gě":["个","個","各"],"yā":["丫","圧","孲","庘","押","枒","桠","椏","錏","鐚","鴉","鴨","鵶","鸦","鸭"],"pán":["丬","媻","幋","槃","洀","瀊","爿","盘","盤","磐","縏","蒰","蟠","蹒","蹣","鎜","鞶"],"zhōng zhòng":["中"],"jǐ":["丮","妀","己","戟","挤","掎","撠","擠","橶","泲","犱","脊","虮","蟣","魢","鱾","麂"],"jiè":["丯","介","借","唶","堺","屆","届","岕","庎","徣","戒","楐","犗","玠","琾","界","畍","疥","砎","蚧","蛶","衸","褯","誡","诫","鎅","骱","魪"],"fēng":["丰","仹","偑","僼","凨","凬","凮","妦","寷","封","峯","峰","崶","枫","楓","檒","沣","沨","渢","灃","烽","犎","猦","琒","疯","瘋","盽","砜","碸","篈","蘴","蜂","蠭","豐","鄷","酆","鋒","鎽","鏠","锋","霻","靊","飌","麷"],"guàn kuàng":["丱"],"chuàn":["串","汌","玔","賗","釧","钏"],"chǎn":["丳","产","冁","剷","囅","嵼","旵","浐","滻","灛","產","産","簅","蒇","蕆","諂","譂","讇","谄","鏟","铲","閳","闡","阐","骣","𬊤"],"lín":["临","冧","壣","崊","嶙","斴","晽","暽","林","潾","瀶","燐","琳","璘","瞵","碄","磷","粦","粼","繗","翷","臨","轔","辚","遴","邻","鄰","鏻","阾","隣","霖","驎","鱗","鳞","麐","麟","𬴊","𬭸"],"zhuó":["丵","劅","卓","啄","圴","妰","娺","撯","擆","擢","斫","斮","斱","斲","斵","晫","椓","浊","浞","濁","灼","烵","琸","硺","禚","窡","籗","籱","罬","茁","蠗","蠿","諁","諑","謶","诼","酌","鐲","镯","鵫","鷟","䓬","𬸦"],"zhǔ":["丶","主","劯","嘱","囑","宔","帾","拄","渚","濐","煑","煮","燝","瞩","矚","罜","詝","陼","鸀","麈","𬣞"],"bā":["丷","仈","八","叭","哵","夿","岜","巴","捌","朳","玐","疤","笆","粑","羓","芭","蚆","豝","釟"],"wán":["丸","刓","完","岏","抏","捖","汍","烷","玩","琓","笂","紈","纨","翫","芄","貦","頑","顽"],"dān":["丹","勯","匰","単","妉","媅","殚","殫","甔","眈","砃","箪","簞","耼","耽","聃","聸","褝","襌","躭","郸","鄲","酖","頕"],"wèi wéi":["为"],"jǐng dǎn":["丼"],"lì lí":["丽"],"jǔ":["举","弆","挙","擧","椇","榉","榘","櫸","欅","矩","筥","聥","舉","莒","蒟","襷","踽","齟","龃"],"piě":["丿","苤","鐅","𬭯"],"fú":["乀","伏","俘","凫","刜","匐","咈","哹","垘","孚","岪","巿","帗","幅","幞","弗","彿","怫","扶","柫","栿","桴","氟","泭","浮","涪","澓","炥","玸","甶","畉","癁","祓","福","稪","符","箙","紱","紼","絥","綍","绂","绋","罘","罦","翇","艀","芙","芣","苻","茀","茯","菔","葍","虙","蚨","蜉","蝠","袚","袱","襆","襥","諨","豧","踾","輻","辐","郛","鉘","鉜","韍","韨","颫","髴","鮄","鮲","鳧","鳬","鴔","鵩","黻"],"yí jí":["乁"],"yì":["乂","义","亄","亦","亿","伇","伿","佾","俋","億","兿","刈","劓","劮","勚","勩","匇","呓","呭","呹","唈","囈","圛","坄","垼","埸","奕","嫕","嬑","寱","屹","峄","嶧","帟","帠","幆","廙","异","弈","弋","役","忆","怈","怿","悒","意","憶","懌","懿","抑","挹","敡","易","晹","曀","曎","杙","枍","棭","榏","槸","檍","歝","殔","殪","殹","毅","浂","浥","浳","湙","溢","潩","澺","瀷","炈","焲","熠","熤","熼","燚","燡","燱","獈","玴","異","疫","痬","瘗","瘞","瘱","癔","益","瞖","穓","竩","篒","縊","繶","繹","绎","缢","義","羿","翊","翌","翳","翼","耴","肄","肊","膉","臆","艗","艺","芅","苅","萟","蓺","薏","藙","藝","蘙","虉","蜴","螠","衪","袣","裔","裛","褹","襼","訲","訳","詍","詣","誼","譯","議","讛","议","译","诣","谊","豙","豛","豷","貖","贀","跇","轶","逸","邑","鄓","醷","釴","鈠","鎰","鐿","镒","镱","阣","隿","霬","饐","駅","驛","驿","骮","鮨","鶂","鶃","鶍","鷁","鷊","鷧","鷾","鸃","鹝","鹢","黓","齸","𬬩","㑊","𫄷","𬟁"],"nǎi":["乃","倷","奶","嬭","廼","氖","疓","艿","迺","釢"],"wǔ":["乄","五","仵","伍","侮","倵","儛","午","啎","妩","娬","嫵","庑","廡","忤","怃","憮","摀","武","潕","熓","牾","玝","珷","瑦","甒","碔","舞","躌","迕","逜","陚","鵡","鹉","𣲘"],"jiǔ":["久","乆","九","乣","奺","杦","汣","灸","玖","紤","舏","酒","镹","韭","韮"],"tuō zhé":["乇","杔","馲"],"me mó ma yāo":["么"],"zhī":["之","倁","卮","巵","搘","支","栀","梔","椥","榰","汁","泜","疷","祗","祬","秓","稙","綕","肢","胑","胝","脂","芝","蘵","蜘","衼","隻","鳷","鴲","鼅","𦭜"],"wū wù":["乌"],"zhà":["乍","咤","宱","搾","榨","溠","痄","蚱","詐","诈","醡","霅","䃎"],"hū":["乎","乯","匢","匫","呼","唿","嘑","垀","寣","幠","忽","惚","昒","歑","泘","淴","滹","烀","苸","虍","虖","謼","軤","轷","雐"],"fá":["乏","伐","傠","坺","垡","墢","姂","栰","浌","瞂","笩","筏","罚","罰","罸","藅","閥","阀"],"lè yuè yào lào":["乐","樂"],"yín":["乑","吟","噖","嚚","圁","垠","夤","婬","寅","峾","崟","崯","檭","殥","泿","淫","滛","烎","犾","狺","璌","硍","碒","荶","蔩","訔","訚","訡","誾","鄞","鈝","銀","银","霪","鷣","齦"],"pīng":["乒","俜","娉","涄","甹","砯","聠","艵","頩"],"pāng":["乓","滂","胮","膖","雱","霶"],"qiáo":["乔","侨","僑","嫶","憔","桥","槗","樵","橋","櫵","犞","瞧","硚","礄","荍","荞","蕎","藮","譙","趫","鐈","鞒","鞽","顦"],"hǔ":["乕","琥","萀","虎","虝","錿","鯱"],"guāi":["乖"],"chéng shèng":["乗","乘","娍"],"yǐ":["乙","乛","以","倚","偯","嬟","崺","已","庡","扆","攺","敼","旑","旖","檥","矣","礒","笖","舣","艤","苡","苢","蚁","螘","蟻","裿","踦","輢","轙","逘","酏","釔","鈘","鉯","钇","顗","鳦","齮","𫖮","𬺈"],"háo yǐ":["乚"],"niè miē":["乜"],"qǐ":["乞","企","启","唘","啓","啔","啟","婍","屺","杞","棨","玘","盀","綺","绮","芑","諬","起","邔","闙"],"yě":["也","冶","嘢","埜","壄","漜","野"],"xí":["习","喺","媳","嶍","席","椺","檄","漝","習","蓆","袭","襲","覡","觋","謵","趘","郋","鎴","隰","霫","飁","騱","騽","驨","鰼","鳛","𠅤","𫘬"],"xiāng":["乡","厢","廂","忀","楿","欀","湘","瓖","稥","箱","緗","缃","膷","芗","萫","葙","薌","襄","郷","鄉","鄊","鄕","鑲","镶","香","驤","骧","鱜","麘","𬙋"],"shū":["书","倏","倐","儵","叔","姝","尗","抒","掓","摅","攄","書","枢","梳","樞","殊","殳","毹","毺","淑","瀭","焂","疎","疏","紓","綀","纾","舒","菽","蔬","踈","軗","輸","输","鄃","陎","鮛","鵨"],"dǒu":["乧","抖","枓","蚪","鈄","阧","陡"],"shǐ":["乨","使","兘","史","始","宩","屎","榁","矢","笶","豕","鉂","駛","驶"],"jī":["乩","僟","击","刉","刏","剞","叽","唧","喞","嗘","嘰","圾","基","墼","姬","屐","嵆","嵇","撃","擊","朞","机","枅","樭","機","毄","激","犄","玑","璣","畸","畿","癪","矶","磯","积","積","笄","筓","箕","簊","緁","羁","羇","羈","耭","肌","芨","虀","覉","覊","譏","譤","讥","賫","賷","赍","跻","踑","躋","躸","銈","錤","鐖","鑇","鑙","隮","雞","鞿","韲","飢","饑","饥","魕","鳮","鶏","鶺","鷄","鸄","鸡","齎","齏","齑","𬯀","𫓯","𫓹","𫌀"],"náng":["乪","嚢","欜","蠰","饢"],"jiā":["乫","佳","傢","加","嘉","抸","枷","梜","毠","泇","浃","浹","犌","猳","珈","痂","笳","糘","耞","腵","葭","袈","豭","貑","跏","迦","鉫","鎵","镓","鴐","麚","𬂩"],"jù":["乬","倨","倶","具","剧","劇","勮","埧","埾","壉","姖","屦","屨","岠","巨","巪","怇","惧","愳","懅","懼","拒","拠","昛","歫","洰","澽","炬","烥","犋","秬","窭","窶","簴","粔","耟","聚","虡","蚷","詎","讵","豦","距","踞","躆","遽","邭","醵","鉅","鐻","钜","颶","飓","駏","鮔"],"shí":["乭","十","埘","塒","姼","实","実","寔","實","峕","嵵","时","旹","時","榯","湜","溡","炻","祏","竍","蚀","蝕","辻","遈","鉐","飠","饣","鮖","鰣","鲥","鼫","鼭"],"mǎo":["乮","冇","卯","峁","戼","昴","泖","笷","蓩","鉚","铆"],"mǎi":["买","嘪","荬","蕒","買","鷶"],"luàn":["乱","亂","釠"],"rǔ":["乳","擩","汝","肗","辱","鄏"],"xué":["乴","学","學","峃","嶨","斈","泶","澩","燢","穴","茓","袕","踅","鷽","鸴"],"yǎn":["䶮","乵","俨","偃","儼","兖","兗","厣","厴","噞","孍","嵃","巘","巚","弇","愝","戭","扊","抁","掩","揜","曮","椼","檿","沇","渷","演","琰","甗","眼","罨","萒","蝘","衍","褗","躽","遃","郾","隒","顩","魇","魘","鰋","鶠","黡","黤","黬","黭","黶","鼴","鼹","齴","龑","𬸘","𬙂","𪩘"],"fǔ":["乶","俌","俛","俯","府","弣","抚","拊","撫","斧","椨","滏","焤","甫","盙","簠","腐","腑","蜅","輔","辅","郙","釜","釡","阝","頫","鬴","黼","㕮","𫖯"],"shā":["乷","唦","杀","桬","殺","毮","猀","痧","砂","硰","紗","繺","纱","蔱","裟","鎩","铩","閷","髿","魦","鯊","鯋","鲨"],"nǎ":["乸","雫"],"qián":["乹","亁","仱","偂","前","墘","媊","岒","拑","掮","榩","橬","歬","潛","潜","濳","灊","箝","葥","虔","軡","鈐","鉗","銭","錢","鎆","钤","钱","钳","靬","騚","騝","鰬","黔","黚"],"suǒ":["乺","唢","嗩","所","暛","溑","溹","琐","琑","瑣","索","褨","鎖","鎻","鏁","锁"],"yú":["乻","于","亐","伃","余","堣","堬","妤","娛","娯","娱","嬩","崳","嵎","嵛","愚","扵","揄","旟","楡","楰","榆","欤","歈","歟","歶","渔","渝","湡","漁","澞","牏","狳","玗","玙","瑜","璵","盂","睮","窬","竽","籅","羭","腴","臾","舁","舆","艅","茰","萮","萸","蕍","蘛","虞","虶","蝓","螸","衧","褕","覦","觎","諛","謣","谀","踰","輿","轝","逾","邘","酑","鍝","隅","雓","雩","餘","馀","騟","骬","髃","魚","魣","鮽","鯲","鰅","鱼","鷠","鸆","齵"],"zhù":["乼","伫","佇","住","坾","墸","壴","嵀","拀","杼","柱","樦","殶","注","炷","疰","眝","祝","祩","竚","筯","箸","篫","簗","紵","紸","纻","羜","翥","苎","莇","蛀","註","貯","贮","跓","軴","鉒","鋳","鑄","铸","馵","駐","驻"],"zhě":["乽","者","褶","襵","赭","踷","鍺","锗"],"qián gān":["乾"],"zhì luàn":["乿"],"guī":["亀","圭","妫","媯","嫢","嬀","帰","归","摫","椝","槻","槼","櫷","歸","珪","瑰","璝","瓌","皈","瞡","硅","茥","蘬","規","规","邽","郌","閨","闺","騩","鬶","鬹"],"lǐn lìn":["亃"],"jué":["亅","决","刔","劂","匷","厥","噊","孒","孓","崛","崫","嶥","彏","憠","憰","戄","抉","挗","掘","攫","桷","橛","橜","欮","氒","決","灍","焳","熦","爑","爴","爵","獗","玃","玦","玨","珏","瑴","瘚","矍","矡","砄","絕","絶","绝","臄","芵","蕝","蕨","虳","蟨","蟩","觖","觮","觼","訣","譎","诀","谲","貜","赽","趉","蹷","躩","鈌","鐍","鐝","钁","镢","鴂","鴃","鷢","𫘝","㵐","𫔎"],"le liǎo":["了"],"gè mā":["亇"],"yǔ yú":["予","懙"],"zhēng":["争","佂","凧","姃","媜","峥","崝","崢","征","徰","炡","烝","爭","狰","猙","癥","眐","睁","睜","筝","箏","篜","聇","脀","蒸","踭","鉦","錚","鏳","鬇"],"èr":["二","刵","咡","弍","弐","樲","誀","貮","貳","贰","髶"],"chù":["亍","傗","儊","怵","憷","搐","斶","歜","珿","琡","矗","竌","絀","绌","臅","触","觸","豖","鄐","閦","黜"],"kuī":["亏","刲","岿","巋","盔","窥","窺","聧","虧","闚","顝"],"yún":["云","伝","勻","匀","囩","妘","愪","抣","昀","橒","沄","涢","溳","澐","熉","畇","秐","筼","篔","紜","縜","纭","耘","芸","蒷","蕓","郧","鄖","鋆","雲"],"hù":["互","冱","嗀","嚛","婟","嫭","嫮","岵","帍","弖","怙","戶","户","戸","戽","扈","护","昈","槴","沍","沪","滬","熩","瓠","祜","笏","簄","粐","綔","蔰","護","豰","鄠","鍙","頀","鱯","鳠","鳸","鸌","鹱"],"qí":["亓","剘","埼","岐","岓","崎","嵜","愭","掑","斉","斊","旂","旗","棊","棋","檱","櫀","歧","淇","濝","猉","玂","琦","琪","璂","畦","疧","碁","碕","祁","祈","祺","禥","竒","簯","簱","籏","粸","綥","綦","肵","脐","臍","艩","芪","萁","萕","蕲","藄","蘄","蚑","蚚","蛴","蜝","蜞","螧","蠐","褀","軝","鄿","釮","錡","锜","陭","頎","颀","騎","騏","騹","骐","骑","鬐","鬿","鯕","鰭","鲯","鳍","鵸","鶀","麒","麡","𨙸","𬨂","䓫"],"jǐng":["井","儆","刭","剄","坓","宑","幜","憬","暻","殌","汫","汬","澋","璄","璟","璥","穽","肼","蟼","警","阱","頚","頸"],"sì":["亖","佀","価","儩","兕","嗣","四","姒","娰","孠","寺","巳","柶","榹","汜","泗","泤","洍","洠","涘","瀃","牭","祀","禩","竢","笥","耜","肂","肆","蕼","覗","貄","釲","鈶","鈻","飤","飼","饲","駟","騃","驷"],"suì":["亗","嬘","岁","嵗","旞","檖","歲","歳","澻","煫","燧","璲","砕","碎","祟","禭","穂","穗","穟","繀","繐","繸","襚","誶","譢","谇","賥","邃","鐆","鐩","隧","韢","𫟦","𬭼"],"gèn":["亘","亙","揯","搄","茛"],"yà":["亚","亜","俹","冴","劜","圔","圠","埡","娅","婭","揠","氩","氬","犽","砑","稏","聐","襾","覀","訝","讶","迓","齾"],"xiē suò":["些"],"qí zhāi":["亝","齊"],"yā yà":["亞","压","垭","壓","铔"],"jí qì":["亟","焏"],"tóu":["亠","投","頭","骰"],"wáng wú":["亡"],"kàng háng gāng":["亢"],"dà":["亣","眔"],"jiāo":["交","僬","娇","嬌","峧","嶕","嶣","憍","椒","浇","澆","焦","礁","穚","簥","胶","膠","膲","茭","茮","蕉","虠","蛟","蟭","跤","轇","郊","鐎","驕","骄","鮫","鲛","鵁","鷦","鷮","鹪","䴔"],"hài":["亥","嗐","害","氦","餀","饚","駭","駴","骇"],"hēng pēng":["亨"],"mǔ":["亩","姆","峔","拇","母","牡","牳","畂","畆","畒","畝","畞","畮","砪","胟","踇","鉧","𬭁","𧿹"],ye:["亪"],"xiǎng":["享","亯","响","想","晑","蚃","蠁","響","飨","餉","饗","饷","鮝","鯗","鱶","鲞"],"jīng":["京","亰","兢","坕","坙","婛","惊","旌","旍","晶","橸","泾","涇","猄","睛","秔","稉","粳","精","経","經","綡","聙","腈","茎","荆","荊","菁","葏","驚","鯨","鲸","鶁","鶄","麖","麠","鼱","䴖"],"tíng":["亭","停","婷","嵉","庭","廷","楟","榳","筳","聤","莛","葶","蜓","蝏","諪","邒","霆","鼮","䗴"],"liàng":["亮","喨","悢","晾","湸","諒","谅","輌","輛","辆","鍄"],"qīn qìng":["亲","親"],"bó":["亳","仢","侼","僰","博","帛","愽","懪","挬","搏","欂","浡","淿","渤","煿","牔","狛","瓝","礴","秡","箔","簙","糪","胉","脖","膊","舶","艊","萡","葧","袯","襏","襮","謈","踣","郣","鈸","鉑","鋍","鎛","鑮","钹","铂","镈","餺","馎","馛","馞","駁","駮","驳","髆","鵓","鹁"],"yòu":["亴","佑","佦","侑","又","右","哊","唀","囿","姷","宥","峟","幼","狖","祐","蚴","誘","诱","貁","迶","酭","釉","鼬"],"xiè":["亵","伳","偞","偰","僁","卨","卸","噧","塮","夑","媟","屑","屧","廨","徢","懈","暬","械","榍","榭","泻","洩","渫","澥","瀉","瀣","灺","炧","炨","燮","爕","獬","祄","禼","糏","紲","絏","絬","繲","纈","绁","缷","薢","薤","蟹","蠏","褉","褻","謝","谢","躞","邂","靾","韰","齂","齘","齛","齥","𬹼","𤫉"],"dǎn dàn":["亶","馾"],"lián":["亷","劆","匲","匳","嗹","噒","奁","奩","嫾","帘","廉","怜","憐","涟","漣","濂","濓","瀮","熑","燫","簾","籢","籨","縺","翴","联","聨","聫","聮","聯","臁","莲","蓮","薕","螊","蠊","裢","褳","覝","謰","蹥","连","連","鎌","鐮","镰","鬑","鰱","鲢"],"duǒ":["亸","哚","嚲","埵","崜","朵","朶","綞","缍","趓","躱","躲","軃"],"wěi mén":["亹","斖"],"rén":["人","亻","仁","壬","忈","忎","朲","秂","芢","魜","鵀"],"jí":["亼","亽","伋","佶","偮","卙","即","卽","及","叝","吉","堲","塉","姞","嫉","岌","嵴","嶯","彶","忣","急","愱","戢","揤","极","棘","楫","極","槉","檝","殛","汲","湒","潗","疾","瘠","皍","笈","箿","籍","級","级","膌","艥","蒺","蕀","蕺","蝍","螏","襋","觙","谻","踖","蹐","躤","輯","轚","辑","郆","銡","鍓","鏶","集","雧","霵","鹡","㴔"],"wáng":["亾","仼","兦","莣","蚟"],"shén shí":["什"],"lè":["仂","叻","忇","氻","泐","玏","砳","簕","艻","阞","韷","餎","鰳","鱳","鳓"],"dīng":["仃","叮","帄","玎","疔","盯","耵","虰","靪"],"zè":["仄","崱","庂","捑","昃","昗","汄"],"jǐn jìn":["仅","僅","嫤"],"pú pū":["仆"],"chóu qiú":["仇"],"zhǎng":["仉","幥","掌","礃"],"jīn":["今","堻","巾","惍","斤","津","珒","琻","璡","砛","筋","荕","衿","襟","觔","金","釒","釿","钅","鹶","黅","𬬱"],"bīng":["仌","仒","兵","冫","冰","掤","氷","鋲"],"réng":["仍","礽","芿","辸","陾"],"fó":["仏","坲","梻"],"jīn sǎn":["仐"],"lún":["仑","伦","侖","倫","囵","圇","婨","崘","崙","棆","沦","淪","磮","腀","菕","蜦","踚","輪","轮","錀","陯","鯩","𬬭"],"cāng":["仓","仺","倉","凔","嵢","沧","滄","濸","獊","舱","艙","苍","蒼","螥","鸧"],"zǎi zǐ zī":["仔"],"tā":["他","塌","它","榙","溻","牠","祂","褟","趿","遢","闧"],"fù":["付","偩","傅","冨","副","咐","坿","复","妇","婦","媍","嬔","富","復","椱","祔","禣","竎","緮","縛","缚","腹","萯","蕧","蚹","蛗","蝜","蝮","袝","複","覄","覆","訃","詂","讣","負","賦","賻","负","赋","赙","赴","輹","鍑","鍢","阜","附","馥","駙","驸","鮒","鰒","鲋","鳆","㳇"],"xiān":["仙","仚","佡","僊","僲","先","嘕","奾","屳","廯","忺","憸","掀","暹","杴","氙","珗","祆","秈","籼","繊","纎","纖","苮","褼","襳","跹","蹮","躚","酰","鍁","锨","韯","韱","馦","鱻","鶱","𬸣"],"tuō chà duó":["仛"],"hóng":["仜","吰","垬","妅","娂","宏","宖","弘","彋","汯","泓","洪","浤","渱","潂","玒","玜","竑","竤","篊","粠","紘","紭","綋","纮","翃","翝","耾","苰","荭","葒","葓","谹","谼","鈜","鉷","鋐","閎","闳","霐","霟","鞃","魟","鴻","鸿","黉","黌","𫟹","𬭎"],"tóng":["仝","佟","哃","峂","峝","庝","彤","晍","曈","桐","氃","浵","潼","犝","獞","眮","瞳","砼","秱","童","粡","膧","茼","蚒","詷","赨","酮","鉖","鉵","銅","铜","餇","鮦","鲖","𫍣","𦒍"],"rèn":["仞","仭","刃","刄","妊","姙","屻","岃","扨","牣","祍","紉","紝","絍","纫","纴","肕","腍","衽","袵","訒","認","认","讱","軔","轫","鈓","靭","靱","韌","韧","飪","餁","饪"],"qiān":["仟","佥","僉","千","圲","奷","孯","岍","悭","愆","慳","扦","拪","搴","撁","攐","攑","攓","杄","櫏","汘","汧","牵","牽","竏","签","簽","籖","籤","粁","芊","茾","蚈","褰","諐","謙","谦","谸","迁","遷","釺","鈆","鉛","鏲","钎","阡","韆","顅","騫","骞","鬜","鬝","鵮","鹐"],"gǎn hàn":["仠"],"yì gē":["仡"],"dài":["代","侢","叇","垈","埭","岱","帒","带","帯","帶","廗","怠","戴","曃","柋","殆","瀻","玳","瑇","甙","簤","紿","緿","绐","艜","蝳","袋","襶","貣","贷","蹛","軑","軚","軩","轪","迨","霴","靆","鴏","黛","黱"],"lìng líng lǐng":["令"],"chào":["仦","耖","觘"],"cháng zhǎng":["仧","兏","長","长"],"sā":["仨"],"cháng":["仩","偿","償","嘗","嚐","嫦","尝","常","徜","瑺","瓺","甞","肠","腸","膓","苌","萇","镸","鱨","鲿"],"yí":["仪","侇","儀","冝","匜","咦","圯","夷","姨","宐","宜","宧","寲","峓","嶬","嶷","巸","彛","彜","彝","彞","怡","恞","扅","暆","栘","椬","椸","沂","洟","熪","瓵","痍","移","簃","籎","羠","胰","萓","蛦","螔","觺","謻","貽","贻","跠","迻","遺","鏔","頉","頤","頥","顊","颐","饴","鮧","鴺"],"mù":["仫","凩","募","墓","幕","幙","慔","慕","暮","暯","木","楘","毣","沐","炑","牧","狇","目","睦","穆","艒","苜","莯","蚞","鉬","钼","雮","霂"],"men mén":["们"],"fǎn":["仮","反","橎","返"],"chào miǎo":["仯"],"yǎng áng":["仰"],"zhòng":["仲","众","堹","妕","媑","狆","眾","祌","筗","茽","蚛","衆","衶","諥"],"pǐ pí":["仳"],"wò":["仴","偓","卧","媉","幄","握","楃","沃","渥","濣","瓁","瞃","硪","肟","腛","臥","齷","龌"],"jiàn":["件","俴","健","僭","剑","剣","剱","劍","劎","劒","劔","墹","寋","建","徤","擶","旔","楗","毽","洊","涧","澗","牮","珔","瞷","磵","礀","箭","糋","繝","腱","臶","舰","艦","荐","薦","覸","諓","諫","譛","谏","賎","賤","贱","趝","践","踐","踺","轞","鉴","鍳","鍵","鐱","鑑","鑒","鑬","鑳","键","間","餞","饯","𬣡"],"jià jiè jie":["价"],"yǎo fó":["仸"],"rèn rén":["任"],"fèn bīn":["份"],"dī":["仾","低","啲","埞","堤","岻","彽","樀","滴","磾","秪","羝","袛","趆","隄","鞮","䃅"],"fǎng":["仿","倣","旊","昉","昘","瓬","眆","紡","纺","舫","訪","访","髣","鶭"],"zhōng":["伀","刣","妐","幒","彸","忠","柊","汷","泈","炂","盅","籦","終","终","舯","蔠","蜙","螤","螽","衳","衷","蹱","鈡","鍾","鐘","钟","锺","鴤","鼨"],"pèi":["伂","佩","姵","帔","斾","旆","沛","浿","珮","蓜","轡","辔","配","霈","馷"],"diào":["伄","吊","弔","掉","瘹","盄","窎","窵","竨","訋","釣","鈟","銱","鋽","鑃","钓","铞","雿","魡"],"dùn":["伅","潡","炖","燉","盾","砘","碷","踲","逇","遁","遯","鈍","钝"],"wěn":["伆","刎","吻","呅","抆","桽","稳","穏","穩","紊","肳","脗"],"xǐn":["伈"],"kàng":["伉","匟","囥","抗","炕","鈧","钪"],"ài":["伌","僾","塧","壒","嫒","嬡","愛","懓","暧","曖","爱","瑷","璦","皧","瞹","砹","硋","碍","礙","薆","譺","賹","鑀","隘","靉","餲","馤","鱫","鴱"],"jì qí":["伎","薺"],"xiū xǔ":["休"],"jìn yín":["伒"],"dǎn":["伔","刐","撢","玬","瓭","紞","胆","膽","衴","賧","赕","黕","𬘘"],"fū":["伕","呋","娐","孵","尃","怤","懯","敷","旉","玞","砆","稃","筟","糐","綒","肤","膚","荂","荴","衭","趺","跗","邞","鄜","酜","鈇","麩","麬","麱","麸","𫓧"],"tǎng":["伖","傥","儻","埫","戃","曭","爣","矘","躺","鎲","钂","镋"],"yōu":["优","優","呦","嚘","峳","幽","忧","悠","憂","攸","櫌","滺","瀀","纋","羪","耰","逌","鄾","麀"],"huǒ":["伙","夥","火","煷","邩","鈥","钬"],"huì kuài":["会","會","浍","璯"],"yǔ":["伛","俁","俣","偊","傴","匬","噳","圄","圉","宇","寙","屿","嶼","庾","挧","敔","斞","楀","瑀","瘐","祤","禹","穥","窳","羽","與","萭","貐","鄅","頨","麌","齬","龉","㺄"],"cuì":["伜","啛","忰","悴","毳","淬","焠","疩","瘁","竁","粋","粹","紣","綷","翆","翠","脃","脆","脺","膬","膵","臎","萃","襊","顇"],"sǎn":["伞","傘","糤","繖","饊","馓"],"wěi":["伟","伪","偉","偽","僞","儰","娓","寪","屗","崣","嶉","徫","愇","捤","暐","梶","洧","浘","渨","炜","煒","猥","玮","瑋","痿","緯","纬","腲","艉","芛","苇","荱","萎","葦","蒍","蔿","蜼","諉","诿","踓","鍡","韑","韙","韡","韪","頠","颹","骩","骪","骫","鮪","鲔","𫇭","𬀩","𬱟"],"chuán zhuàn":["传","傳"],"chē jū":["伡","俥","车"],"jū chē":["車"],"yá":["伢","厑","厓","堐","岈","崕","崖","涯","漄","牙","玡","琊","睚","笌","芽","蚜","衙","齖"],"qiàn":["伣","俔","倩","儙","刋","壍","嬱","悓","棈","椠","槧","欠","歉","皘","篏","篟","縴","芡","蒨","蔳","輤","𬘬"],"shāng":["伤","傷","商","墒","慯","殇","殤","滳","漡","熵","蔏","螪","觞","觴","謪","鬺"],"chāng":["伥","倀","娼","昌","椙","淐","猖","琩","菖","裮","錩","锠","閶","阊","鯧","鲳","鼚"],"chen cāng":["伧"],"xùn":["伨","侚","卂","噀","巺","巽","徇","愻","殉","殾","汛","潠","狥","蕈","訊","訓","訙","训","讯","迅","迿","逊","遜","鑂","顨","馴","驯"],"xìn":["伩","囟","孞","脪","舋","衅","訫","釁","阠","顖"],"chǐ":["伬","侈","卶","叺","呎","垑","恥","歯","耻","肔","胣","蚇","裭","褫","豉","鉹","齒","齿"],"xián xuán":["伭"],"nú nǔ":["伮"],"bó bǎi":["伯"],"gū gù":["估"],"nǐ":["伱","你","儞","孴","拟","擬","旎","晲","狔","苨","薿","隬"],"nì ní":["伲"],"bàn":["伴","办","半","姅","怑","扮","瓣","秚","絆","绊","辦","鉡","靽"],"xù":["伵","侐","勖","勗","卹","叙","垿","壻","婿","序","恤","敍","敘","旭","昫","朂","槒","欰","殈","汿","沀","洫","溆","漵","潊","烅","烼","煦","獝","珬","盢","瞁","稸","絮","続","緒","緖","續","绪","续","聓","聟","蓄","藚","訹","賉","酗","頊","鱮","㳚"],"zhòu":["伷","僽","冑","呪","咒","咮","宙","昼","晝","甃","皱","皺","籀","籒","籕","粙","紂","縐","纣","绉","胄","荮","葤","詋","酎","駎","驟","骤","㤘","㑇"],"shēn":["伸","侁","兟","呻","堔","妽","娠","屾","峷","扟","敒","曑","柛","氠","深","燊","珅","甡","甧","申","眒","砷","穼","籶","籸","糂","紳","绅","罙","罧","葠","蓡","蔘","薓","裑","訷","詵","诜","身","駪","鯓","鯵","鰺","鲹","鵢","𬳽"],"qū":["伹","佉","匤","呿","坥","屈","岖","岴","嶇","憈","抾","敺","浀","煀","祛","筁","粬","胠","蛆","蛐","袪","覻","詘","诎","趍","躯","軀","阹","駆","駈","驅","驱","髷","魼","鰸","鱋","鶌","麯","麴","麹","黢","㭕","𪨰","䓛"],"sì cì":["伺"],"bēng":["伻","嘣","奟","崩","嵭","閍"],"sì shì":["似"],"jiā qié gā":["伽"],"yǐ chì":["佁"],"diàn tián":["佃","钿"],"hān gàn":["佄"],"mài":["佅","劢","勱","卖","唛","売","脈","衇","賣","迈","邁","霡","霢","麥","麦","鿏"],"dàn":["但","僤","啖","啗","啿","噉","嚪","帎","憺","旦","柦","氮","沊","泹","淡","狚","疍","癚","禫","窞","腅","萏","蓞","蛋","蜑","觛","訑","誕","诞","贉","霮","餤","饏","駳","髧","鴠","𫢸"],"bù":["佈","勏","吥","咘","埗","埠","布","廍","怖","悑","步","歨","歩","瓿","篰","荹","蔀","踄","部","郶","鈈","钚","餢"],"bǐ":["佊","俾","匕","夶","妣","彼","朼","柀","比","毞","沘","疕","秕","笔","筆","粃","聛","舭","貏","鄙"],"zhāo shào":["佋"],"cǐ":["佌","此","泚","皉","𫚖"],"wèi":["位","卫","味","喂","墛","媦","慰","懀","未","渭","煟","熭","犚","猬","畏","緭","罻","胃","苿","菋","藯","蘶","蝟","螱","衛","衞","褽","謂","讆","讏","谓","躗","躛","軎","轊","鏏","霨","餧","餵","饖","魏","鮇","鳚"],"zuǒ":["佐","左","繓"],"yǎng":["佒","傟","养","坱","岟","慃","懩","攁","氧","氱","炴","痒","癢","礢","紻","蝆","軮","養","駚"],"tǐ tī":["体","體"],"zhàn":["佔","偡","嶘","战","戦","戰","栈","桟","棧","湛","站","綻","绽","菚","蘸","虥","虦","譧","轏","驏"],"hé hē hè":["何"],"bì":["佖","咇","哔","嗶","坒","堛","壁","奰","妼","婢","嬖","币","幣","幤","庇","庳","廦","弊","弻","弼","彃","必","怭","愊","愎","敝","斃","梐","毕","毖","毙","湢","滗","滭","潷","煏","熚","狴","獘","獙","珌","璧","畀","畢","疪","痹","痺","皕","睤","碧","筚","箅","箆","篦","篳","粊","綼","縪","繴","罼","腷","苾","荜","萆","萞","蓖","蓽","蔽","薜","蜌","袐","襅","襞","襣","觱","詖","诐","貱","贔","赑","跸","蹕","躃","躄","避","邲","鄨","鄪","鉍","鏎","鐴","铋","閇","閉","閟","闭","陛","韠","飶","饆","馝","駜","驆","髀","魓","鮅","鷝","鷩","鼊"],"tuó":["佗","坨","堶","岮","槖","橐","沱","砣","砤","碢","紽","詑","跎","酡","阤","陀","陁","駝","駞","騨","驒","驝","驼","鮀","鴕","鸵","鼉","鼍","鼧","𬶍"],"shé":["佘","舌","虵","蛥"],"yì dié":["佚","昳","泆","軼"],"fó fú bì bó":["佛"],"zuò zuō":["作"],"gōu":["佝","沟","溝","痀","篝","簼","緱","缑","袧","褠","鈎","鉤","钩","鞲","韝"],"nìng":["佞","侫","倿","寕","泞","澝","濘"],"qú":["佢","劬","戵","斪","欋","欔","氍","淭","灈","爠","璖","璩","癯","磲","籧","絇","胊","臞","菃","葋","蕖","蘧","蟝","蠷","蠼","衐","衢","躣","軥","鑺","鴝","鸜","鸲","鼩"],"yōng yòng":["佣"],"wǎ":["佤","咓","砙","邷"],"kǎ":["佧","垰","胩","裃","鉲"],"bāo":["佨","勹","包","孢","煲","笣","胞","苞","蕔","裦","褒","襃","闁","齙","龅"],"huái huí":["佪"],"gé hè":["佫"],"lǎo":["佬","咾","恅","栳","狫","珯","硓","老","耂","荖","蛯","轑","銠","铑","鮱"],"xiáng":["佭","庠","栙","祥","絴","翔","詳","跭"],"gé":["佮","匌","呄","嗝","塥","愅","挌","搿","槅","櫊","滆","膈","臵","茖","觡","諽","輵","轕","閣","阁","隔","鞷","韐","韚","騔","骼","鮯"],"yáng":["佯","劷","垟","崸","徉","扬","揚","敭","旸","昜","暘","杨","楊","洋","炀","珜","疡","瘍","眻","蛘","諹","輰","鍚","钖","阦","阳","陽","霷","颺","飏","鰑","鴹","鸉"],"bǎi":["佰","捭","摆","擺","栢","百","竡","粨","襬"],"fǎ":["佱","峜","法","灋","砝","鍅"],"mǐng":["佲","凕","姳","慏","酩"],"èr nài":["佴"],"hěn":["佷","很","狠","詪","𬣳"],"huó":["佸","活"],"guǐ":["佹","匦","匭","厬","垝","姽","宄","庋","庪","恑","晷","湀","癸","祪","簋","蛫","蟡","觤","詭","诡","軌","轨","陒","鬼"],"quán":["佺","全","啳","埢","姾","峑","巏","拳","搼","权","楾","権","權","泉","洤","湶","牷","犈","瑔","痊","硂","筌","縓","荃","葲","蜷","蠸","觠","詮","诠","跧","踡","輇","辁","醛","銓","铨","闎","顴","颧","駩","騡","鬈","鰁","鳈","齤"],"tiāo":["佻","庣","旫","祧","聎"],"jiǎo":["佼","儌","孂","挢","搅","撟","撹","攪","敫","敽","敿","晈","暞","曒","灚","燞","狡","璬","皎","皦","絞","纐","绞","腳","臫","蟜","譑","賋","踋","鉸","铰","餃","饺","鱎","龣"],"cì":["佽","刾","庛","朿","栨","次","絘","茦","莿","蛓","螆","賜","赐"],"xíng":["侀","刑","哘","型","娙","形","洐","硎","蛵","邢","郉","鈃","鉶","銒","钘","铏","陉","陘","餳","𫰛"],"tuō":["侂","咃","咜","圫","托","拕","拖","汑","脫","脱","莌","袥","託","讬","飥","饦","魠","鮵"],"kǎn":["侃","偘","冚","坎","惂","砍","莰","輡","轗","顑"],"zhí":["侄","値","值","埴","執","姪","嬂","戠","执","摭","植","樴","淔","漐","直","禃","絷","縶","聀","职","職","膱","蟙","跖","踯","蹠","躑","軄","釞","馽"],"gāi":["侅","垓","姟","峐","晐","畡","祴","荄","該","该","豥","賅","賌","赅","陔"],"lái":["來","俫","倈","崃","崍","庲","来","梾","棶","涞","淶","猍","琜","筙","箂","莱","萊","逨","郲","錸","铼","騋","鯠","鶆","麳"],"kuǎ":["侉","咵","垮","銙"],"gōng":["侊","公","功","匑","匔","塨","宫","宮","工","幊","弓","恭","攻","杛","碽","糼","糿","肱","觥","觵","躬","躳","髸","龔","龚","䢼"],"lì":["例","俐","俪","傈","儮","儷","凓","利","力","励","勵","历","厉","厤","厯","厲","叓","吏","呖","唎","唳","嚦","囇","坜","塛","壢","娳","婯","屴","岦","悧","悷","慄","戾","搮","暦","曆","曞","朸","枥","栃","栗","栛","檪","櫔","櫪","欐","歴","歷","沥","沴","涖","溧","濿","瀝","爏","犡","猁","珕","瑮","瓅","瓑","瓥","疬","痢","癧","盭","睙","砅","砺","砾","磿","礪","礫","礰","禲","秝","立","笠","篥","粒","粝","糲","脷","苈","茘","荔","莅","莉","蒚","蒞","藶","蚸","蛎","蛠","蜧","蝷","蠇","蠣","詈","讈","赲","轢","轣","轹","酈","鉝","隶","隷","雳","靂","靋","鬁","鳨","鴗","鷅","麜","𫵷","𬍛"],"yīn":["侌","凐","喑","噾","囙","因","垔","堙","姻","婣","愔","慇","栶","氤","洇","溵","濦","瘖","禋","秵","筃","絪","緸","茵","蒑","蔭","裀","諲","銦","铟","闉","阥","阴","陰","陻","隂","霒","霠","鞇","音","韾","駰","骃","齗","𬘡","𬤇","𬮱"],"mǐ":["侎","孊","弭","敉","洣","渳","灖","米","粎","羋","脒","芈","葞","蔝","銤"],"zhū":["侏","株","槠","橥","櫧","櫫","洙","潴","瀦","猪","珠","硃","秼","絑","茱","蕏","蛛","蝫","蠩","袾","誅","諸","诛","诸","豬","跦","邾","銖","铢","駯","鮢","鯺","鴸","鼄"],"ān":["侒","偣","媕","安","峖","庵","桉","氨","盦","盫","腤","菴","萻","葊","蓭","誝","諳","谙","鞌","鞍","韽","馣","鮟","鵪","鶕","鹌","𩽾"],"lù":["侓","僇","勎","勠","圥","坴","塶","娽","峍","廘","彔","录","戮","摝","椂","樚","淕","淥","渌","漉","潞","琭","璐","甪","盝","睩","硉","祿","禄","稑","穋","箓","簏","簬","簵","簶","籙","粶","蔍","蕗","虂","螰","賂","赂","趢","路","踛","蹗","輅","轆","辂","辘","逯","醁","錄","録","錴","鏴","陸","騄","騼","鯥","鴼","鵦","鵱","鷺","鹭","鹿","麓","𫘧"],"móu":["侔","劺","恈","眸","蛑","謀","谋","踎","鍪","鴾","麰"],"ér":["侕","儿","児","兒","峏","栭","洏","粫","而","胹","荋","袻","輀","轜","陑","隭","髵","鮞","鲕","鴯","鸸"],"dòng tǒng tóng":["侗"],"chà":["侘","奼","姹","岔","汊","詫","诧"],"chì":["侙","傺","勅","勑","叱","啻","彳","恜","慗","憏","懘","抶","敕","斥","杘","湁","灻","炽","烾","熾","痓","痸","瘛","翄","翅","翤","翨","腟","赤","趩","遫","鉓","雴","飭","饬","鶒","鷘"],"gòng gōng":["供","共"],"zhōu":["侜","周","喌","州","徟","洲","淍","炿","烐","珘","矪","舟","謅","譸","诌","賙","赒","輈","輖","辀","週","郮","銂","霌","駲","騆","鵃","鸼"],"rú":["侞","儒","嚅","如","嬬","孺","帤","曘","桇","渪","濡","筎","茹","蕠","薷","蝡","蠕","袽","襦","邚","醹","銣","铷","顬","颥","鱬","鴑","鴽"],"jiàn cún":["侟"],"xiá":["侠","俠","匣","峡","峽","敮","暇","柙","炠","烚","狎","狭","狹","珨","瑕","硖","硤","碬","祫","筪","縖","翈","舝","舺","蕸","赮","轄","辖","遐","鍜","鎋","陜","陿","霞","騢","魻","鶷","黠"],"lǚ":["侣","侶","儢","吕","呂","屡","屢","履","挔","捛","旅","梠","焒","祣","稆","穭","絽","縷","缕","膂","膐","褛","褸","郘","鋁","铝"],ta:["侤"],"jiǎo yáo":["侥","僥","徺"],"zhēn":["侦","偵","寊","帧","帪","幀","搸","斟","桢","楨","榛","樼","殝","浈","湞","潧","澵","獉","珍","珎","瑧","甄","眞","真","砧","碪","祯","禎","禛","箴","胗","臻","葴","蒖","蓁","薽","貞","贞","轃","遉","酙","針","鉁","錱","鍼","针","鱵"],"cè zè zhāi":["侧","側"],"kuài":["侩","儈","凷","哙","噲","圦","块","塊","巜","廥","快","旝","欳","狯","獪","筷","糩","脍","膾","郐","鄶","鱠","鲙"],"chái":["侪","儕","喍","柴","犲","祡","豺"],"nóng":["侬","儂","农","哝","噥","檂","欁","浓","濃","燶","禯","秾","穠","脓","膿","蕽","襛","譨","農","辳","醲","鬞","𬪩"],"jǐn":["侭","儘","卺","厪","巹","槿","漌","瑾","紧","緊","菫","蓳","謹","谨","錦","锦","饉","馑"],"hóu hòu":["侯","矦"],"jiǒng":["侰","僒","冏","囧","泂","澃","炯","烱","煚","煛","熲","燛","窘","綗","褧","迥","逈","顈","颎","䌹"],"chěng tǐng":["侱"],"zhèn zhēn":["侲","揕"],"zuò":["侳","做","唑","坐","岝","岞","座","祚","糳","胙","葃","葄","蓙","袏","阼"],"qīn":["侵","兓","媇","嵚","嶔","欽","衾","誛","钦","顉","駸","骎","鮼"],"jú":["侷","啹","婅","局","巈","椈","橘","泦","淗","湨","焗","犑","狊","粷","菊","蘜","趜","跼","蹫","輂","郹","閰","駶","驧","鵙","鵴","鶪","鼰","鼳","䴗"],"shù dōu":["侸"],"tǐng":["侹","圢","娗","挺","涏","烶","珽","脡","艇","誔","頲","颋"],"shèn":["侺","愼","慎","昚","涁","渗","滲","瘆","瘮","眘","祳","肾","胂","脤","腎","蜃","蜄","鋠"],"tuì tuó":["侻"],"nán":["侽","喃","娚","抩","暔","枏","柟","楠","男","畘","莮","萳","遖"],"xiāo":["侾","哓","嘵","嚻","囂","婋","宯","宵","庨","彇","揱","枭","枵","梟","櫹","歊","毊","消","潇","瀟","灱","灲","烋","焇","猇","獢","痚","痟","硝","硣","窙","箫","簘","簫","綃","绡","翛","膮","萧","蕭","虈","虓","蟂","蟏","蟰","蠨","踃","逍","銷","销","霄","颵","驍","骁","髇","髐","魈","鴞","鴵","鷍","鸮"],"biàn pián":["便","緶","缏"],"tuǐ":["俀","腿","蹆","骽"],"xì":["係","匸","卌","呬","墍","屃","屓","屭","忥","怬","恄","椞","潝","潟","澙","熂","犔","磶","禊","細","綌","縘","细","绤","舃","舄","蕮","虩","衋","覤","赩","趇","郤","釳","阋","隙","隟","霼","餼","饩","鬩","黖"],"cù":["促","媨","憱","猝","瘄","瘯","簇","縬","脨","蔟","誎","趗","踧","踿","蹙","蹴","蹵","醋","顣","鼀"],"é":["俄","囮","娥","峉","峨","峩","涐","珴","皒","睋","磀","莪","訛","誐","譌","讹","迗","鈋","鋨","锇","頟","額","额","魤","鵝","鵞","鹅"],"qiú":["俅","叴","唒","囚","崷","巯","巰","扏","梂","殏","毬","求","汓","泅","浗","湭","煪","犰","玌","球","璆","皳","盚","紌","絿","肍","芁","莍","虬","虯","蛷","裘","觓","觩","訄","訅","賕","赇","逎","逑","遒","酋","釚","釻","銶","頄","鮂","鯄","鰽","鼽","𨱇"],"xú":["俆","徐","禑"],"guàng kuāng":["俇"],"kù":["俈","喾","嚳","库","庫","廤","瘔","絝","绔","袴","裤","褲","酷"],"wù":["俉","务","務","勿","卼","坞","塢","奦","婺","寤","屼","岉","嵨","忢","悞","悟","悮","戊","扤","晤","杌","溩","焐","熃","物","痦","矹","窹","粅","蘁","誤","误","鋈","阢","隖","雾","霚","霧","靰","騖","骛","鶩","鹜","鼿","齀"],"jùn":["俊","儁","呁","埈","寯","峻","懏","捃","攟","晙","棞","燇","珺","畯","竣","箟","蜠","賐","郡","陖","餕","馂","駿","骏","鵔","鵕","鵘","䐃"],"liáng":["俍","墚","梁","椋","樑","粮","粱","糧","良","輬","辌","𫟅"],"zǔ":["俎","唨","爼","祖","組","组","詛","诅","鎺","阻","靻"],"qiào xiào":["俏"],"yǒng":["俑","勇","勈","咏","埇","塎","嵱","彮","怺","恿","悀","惥","愑","愹","慂","柡","栐","永","泳","湧","甬","蛹","詠","踊","踴","鯒","鲬"],"hùn":["俒","倱","圂","尡","慁","掍","溷","焝","睴","觨","諢","诨"],"jìng":["俓","傹","境","妌","婙","婧","弪","弳","径","徑","敬","曔","桱","梷","浄","瀞","獍","痉","痙","竞","竟","竫","競","竸","胫","脛","莖","誩","踁","迳","逕","鏡","镜","靖","静","靜","鵛"],"sàn":["俕","閐"],"pěi":["俖"],"sú":["俗"],"xī":["俙","僖","兮","凞","卥","厀","吸","唏","唽","嘻","噏","嚱","夕","奚","嬆","嬉","屖","嵠","巇","希","徆","徯","息","悉","悕","惁","惜","昔","晞","晰","晳","曦","析","桸","榽","樨","橀","欷","氥","汐","浠","淅","渓","溪","烯","焁","焈","焟","熄","熈","熙","熹","熺","熻","燨","爔","牺","犀","犠","犧","琋","瘜","皙","睎","瞦","矽","硒","磎","礂","稀","穸","窸","粞","糦","緆","繥","羲","翕","翖","肸","肹","膝","舾","莃","菥","蒠","蜥","螅","蟋","蠵","西","觹","觽","觿","譆","谿","豀","豨","豯","貕","赥","邜","鄎","酅","醯","釸","錫","鏭","鐊","鑴","锡","隵","餏","饎","饻","鯑","鵗","鸂","鼷"],"lǐ":["俚","娌","峢","峲","李","欚","浬","澧","理","礼","禮","粴","裏","裡","豊","逦","邐","醴","鋰","锂","鯉","鱧","鱱","鲤","鳢"],"bǎo":["保","堢","媬","宝","寚","寳","寶","珤","緥","葆","藵","褓","賲","靌","飹","飽","饱","駂","鳵","鴇","鸨"],"yú shù yù":["俞"],"sì qí":["俟"],"xìn shēn":["信"],"xiū":["俢","修","咻","庥","樇","烌","羞","脙","脩","臹","貅","銝","鎀","飍","饈","馐","髤","髹","鮴","鱃","鵂","鸺","䗛"],"dì":["俤","偙","僀","埊","墑","墬","娣","帝","怟","旳","梊","焍","玓","甋","眱","睇","碲","祶","禘","第","締","缔","腣","菂","蒂","蔕","蝃","蝭","螮","諦","谛","踶","递","逓","遞","遰","鉪","𤧛","䗖"],"chóu":["俦","儔","嬦","惆","愁","懤","栦","燽","畴","疇","皗","稠","筹","籌","絒","綢","绸","菗","詶","讎","讐","踌","躊","酧","酬","醻","雔","雠","雦"],"zhì":["俧","偫","儨","制","劕","垁","娡","寘","帙","帜","幟","庢","庤","廌","彘","徏","徝","志","忮","懥","懫","挃","挚","掷","摯","擲","旘","晊","智","栉","桎","梽","櫍","櫛","治","洷","滍","滞","滯","潌","瀄","炙","熫","狾","猘","璏","瓆","痔","痣","礩","祑","秩","秷","稚","稺","穉","窒","紩","緻","置","翐","膣","至","致","芖","蛭","袟","袠","製","覟","觗","觯","觶","誌","豑","豒","貭","質","贄","质","贽","跱","踬","躓","輊","轾","郅","銍","鋕","鑕","铚","锧","陟","隲","雉","駤","騭","騺","驇","骘","鯯","鴙","鷙","鸷","𬃊"],"liǎ liǎng":["俩"],"jiǎn":["俭","倹","儉","减","剪","堿","弿","彅","戩","戬","拣","挸","捡","揀","撿","枧","柬","梘","检","検","檢","減","湕","瀽","瑐","睑","瞼","硷","碱","礆","笕","筧","简","簡","絸","繭","翦","茧","藆","蠒","裥","襇","襉","襺","詃","謇","謭","譾","谫","趼","蹇","鐗","鬋","鰎","鹸","鹻","鹼"],"huò":["俰","咟","嚯","嚿","奯","彠","惑","或","擭","旤","曤","檴","沎","湱","瀖","獲","癨","眓","矐","祸","禍","穫","窢","耯","臛","艧","获","蒦","藿","蠖","謋","貨","货","鍃","鑊","镬","雘","霍","靃","韄","㸌"],"jù jū":["俱","据","鋸","锯"],"xiào":["俲","傚","効","咲","哮","啸","嘋","嘨","嘯","孝","效","斅","斆","歗","涍","熽","笑","詨","誟"],"pái":["俳","徘","牌","犤","猅","簰","簲","輫"],"biào":["俵","鰾","鳔"],"chù tì":["俶"],"fèi":["俷","剕","厞","吠","屝","废","廃","廢","昲","曊","櫠","沸","濷","狒","癈","肺","萉","費","费","鐨","镄","陫","靅","鼣"],"fèng":["俸","凤","奉","湗","焨","煈","賵","赗","鳯","鳳","鴌"],"ǎn":["俺","唵","埯","揞","罯","銨","铵"],"bèi":["俻","倍","偝","偹","備","僃","备","悖","惫","愂","憊","昁","梖","焙","牬","犕","狈","狽","珼","琲","碚","禙","糒","苝","蓓","蛽","褙","貝","贝","軰","輩","辈","邶","郥","鄁","鋇","鐾","钡","鞁","鞴","𬇙"],"yù":["俼","儥","喅","喩","喻","域","堉","妪","嫗","寓","峪","嶎","庽","彧","御","愈","慾","戫","昱","棛","棜","棫","櫲","欎","欝","欲","毓","浴","淯","滪","潏","澦","灪","焴","煜","燏","燠","爩","狱","獄","玉","琙","瘉","癒","砡","硢","硲","礇","礖","礜","禦","秗","稢","稶","篽","籞","籲","粖","緎","罭","聿","肀","艈","芋","芌","茟","蒮","蓣","蓹","蕷","蘌","蜟","蜮","袬","裕","誉","諭","譽","谕","豫","軉","輍","逳","遇","遹","郁","醧","鈺","鋊","錥","鐭","钰","閾","阈","雤","霱","預","预","飫","饇","饫","馭","驈","驭","鬰","鬱","鬻","魊","鱊","鳿","鴥","鴧","鴪","鵒","鷸","鸒","鹆","鹬"],"xīn":["俽","噺","妡","嬜","廞","心","忄","忻","惞","新","昕","杺","欣","歆","炘","盺","薪","訢","辛","邤","鈊","鋅","鑫","锌","馨","馫","䜣","𫷷"],"hǔ chí":["俿"],"jiù":["倃","僦","匓","匛","匶","厩","咎","就","廄","廏","廐","慦","捄","救","旧","柩","柾","桕","欍","殧","疚","臼","舅","舊","鯦","鷲","鹫","麔","齨","㠇"],"yáo":["倄","傜","嗂","垚","堯","姚","媱","尧","尭","峣","嶢","嶤","徭","揺","搖","摇","摿","暚","榣","烑","爻","猺","珧","瑤","瑶","磘","窑","窯","窰","肴","蘨","謠","謡","谣","軺","轺","遙","遥","邎","顤","颻","飖","餆","餚","鰩","鱙","鳐"],"cuì zú":["倅"],"liǎng liǎ":["倆"],"wǎn":["倇","唍","婉","惋","挽","晚","晥","晩","晼","梚","椀","琬","畹","皖","盌","碗","綩","綰","绾","脘","萖","踠","輓","鋔"],"zǒng":["倊","偬","傯","嵸","总","惣","捴","搃","摠","燪","総","緫","縂","總","蓗"],"guān":["倌","关","官","棺","瘝","癏","窤","蒄","関","闗","關","鰥","鱞","鳏"],"tiǎn":["倎","唺","忝","悿","晪","殄","淟","睓","腆","舔","覥","觍","賟","錪","餂"],"mén":["們","扪","捫","璊","菛","虋","鍆","钔","門","閅","门","𫞩"],"dǎo dào":["倒"],"tán tàn":["倓","埮"],"juè jué":["倔"],"chuí":["倕","垂","埀","捶","搥","桘","棰","槌","箠","腄","菙","錘","鎚","锤","陲","顀"],"xìng":["倖","姓","婞","嬹","幸","性","悻","杏","涬","緈","臖","荇","莕","葕"],"péng":["倗","傰","塜","塳","弸","憉","捀","朋","棚","椖","樥","硼","稝","竼","篷","纄","膨","芃","蓬","蘕","蟚","蟛","袶","輣","錋","鑝","韸","韼","騯","髼","鬅","鬔","鵬","鹏"],"tǎng cháng":["倘"],"hòu":["候","厚","后","垕","堠","後","洉","茩","豞","逅","郈","鮜","鱟","鲎","鲘"],"tì":["倜","剃","嚏","嚔","屉","屜","悌","悐","惕","惖","戻","掦","替","朑","歒","殢","涕","瓋","笹","籊","薙","褅","逖","逷","髰","鬀","鬄"],"gàn":["倝","凎","幹","榦","檊","淦","灨","盰","紺","绀","詌","贑","赣","骭","㽏"],"liàng jìng":["倞","靓"],"suī":["倠","哸","夊","滖","濉","眭","睢","芕","荽","荾","虽","雖","鞖"],"chàng chāng":["倡"],"jié":["倢","偼","傑","刦","刧","刼","劫","劼","卩","卪","婕","媫","孑","岊","崨","嵥","嶻","巀","幯","截","捷","掶","擮","昅","杢","杰","桀","桝","楬","楶","榤","洁","滐","潔","狤","睫","礍","竭","節","羯","莭","蓵","蛣","蜐","蠘","蠞","蠽","衱","袺","訐","詰","誱","讦","踕","迼","鉣","鍻","镼","頡","鮚","鲒","㛃"],"kǒng kōng":["倥"],"juàn":["倦","劵","奆","慻","桊","淃","狷","獧","眷","睊","睠","絭","絹","绢","罥","羂","腃","蔨","鄄","餋"],"zōng":["倧","堫","宗","嵏","嵕","惾","朡","棕","椶","熧","猣","磫","緃","翪","腙","葼","蝬","豵","踨","踪","蹤","鍐","鑁","騌","騣","骔","鬃","鬉","鬷","鯮","鯼"],"ní":["倪","坭","埿","尼","屔","怩","淣","猊","籾","聣","蚭","蜺","觬","貎","跜","輗","郳","鈮","铌","霓","馜","鯢","鲵","麑","齯","𫐐","𫠜"],"zhuō":["倬","拙","捉","桌","梲","棁","棳","槕","涿","窧","鐯","䦃"],"wō wēi":["倭"],"luǒ":["倮","剆","曪","瘰","癳","臝","蓏","蠃","裸","躶"],"sōng":["倯","凇","娀","崧","嵩","庺","憽","松","枀","枩","柗","梥","檧","淞","濍","硹","菘","鬆"],"lèng":["倰","堎","愣","睖","踜"],"zì":["倳","剚","字","恣","渍","漬","牸","眥","眦","胔","胾","自","茡","荢"],"bèn":["倴","坌","捹","撪","渀","笨","逩"],"cǎi":["倸","啋","婇","彩","採","棌","毝","睬","綵","跴","踩"],"zhài":["债","債","寨","瘵","砦"],"yē":["倻","吔","噎","擨","暍","椰","歋","潱","蠮"],"shà":["倽","唼","喢","歃","箑","翜","翣","萐","閯","霎"],"qīng":["倾","傾","卿","圊","寈","氢","氫","淸","清","蜻","軽","輕","轻","郬","錆","鑋","靑","青","鯖"],"yīng":["偀","嘤","噟","嚶","婴","媖","嫈","嬰","孆","孾","愥","撄","攖","朠","桜","樱","櫻","渶","煐","珱","瑛","璎","瓔","甇","甖","碤","礯","緓","纓","绬","缨","罂","罃","罌","膺","英","莺","蘡","蝧","蠳","褮","譻","賏","軈","鑍","锳","霙","韺","鴬","鶑","鶧","鶯","鷪","鷹","鸎","鸚","鹦","鹰","䓨"],"chēng chèn":["偁","爯"],"ruǎn":["偄","朊","瑌","瓀","碝","礝","腝","軟","輭","软","阮"],"zhòng tóng":["偅"],"chǔn":["偆","惷","睶","萶","蠢","賰"],"jiǎ jià":["假"],"jì jié":["偈"],"bǐng bìng":["偋"],"ruò":["偌","叒","嵶","弱","楉","焫","爇","箬","篛","蒻","鄀","鰙","鰯","鶸"],"tí":["偍","厗","啼","嗁","崹","漽","瑅","睼","禵","稊","緹","缇","罤","蕛","褆","謕","趧","蹄","蹏","醍","鍗","題","题","騠","鮷","鯷","鳀","鵜","鷤","鹈","𫘨"],"wēi":["偎","危","喴","威","媙","嶶","巍","微","愄","揋","揻","椳","楲","溦","烓","煨","燰","癓","縅","葨","葳","薇","蜲","蝛","覣","詴","逶","隇","隈","霺","鰃","鰄","鳂"],"piān":["偏","囨","媥","楄","犏","篇","翩","鍂"],"yàn":["偐","厌","厭","唁","喭","嚈","嚥","堰","妟","姲","嬊","嬿","宴","彥","彦","敥","晏","暥","曕","曣","滟","灎","灔","灧","灩","焔","焰","焱","熖","燄","牪","猒","砚","硯","艳","艶","艷","覎","觃","觾","諺","讌","讞","谚","谳","豓","豔","贋","贗","赝","軅","酀","酽","醼","釅","雁","餍","饜","騐","験","騴","驗","驠","验","鬳","鳫","鴈","鴳","鷃","鷰","齞"],"tǎng dàng":["偒"],"è":["偔","匎","卾","厄","呝","咢","噩","垩","堊","堮","岋","崿","廅","悪","愕","戹","扼","搤","搹","擜","櫮","歞","歺","湂","琧","砈","砐","硆","腭","苊","萼","蕚","蚅","蝁","覨","諤","讍","谔","豟","軛","軶","轭","遌","遏","遻","鄂","鈪","鍔","鑩","锷","阨","阸","頞","顎","颚","餓","餩","饿","鰐","鰪","鱷","鳄","鶚","鹗","齃","齶","𫫇","𥔲"],"xié":["偕","勰","协","協","嗋","垥","奊","恊","愶","拹","携","撷","擕","擷","攜","斜","旪","熁","燲","綊","緳","縀","缬","翓","胁","脅","脇","脋","膎","蝢","衺","襭","諧","讗","谐","鞋","鞵","龤","㙦"],"chě":["偖","扯","撦"],"shěng":["偗","渻","眚"],"chā":["偛","嗏","扠","挿","插","揷","疀","臿","艖","銟","鍤","锸","餷"],"huáng":["偟","凰","喤","堭","墴","媓","崲","徨","惶","楻","湟","煌","獚","瑝","璜","癀","皇","磺","穔","篁","簧","艎","葟","蝗","蟥","諻","趪","遑","鍠","鐄","锽","隍","韹","餭","騜","鰉","鱑","鳇","鷬","黃","黄","𨱑"],"yǎo":["偠","咬","婹","宎","岆","杳","柼","榚","溔","狕","窅","窈","舀","苭","闄","騕","鷕","齩"],"chǒu qiào":["偢"],"yóu":["偤","尤","庮","怣","沋","油","浟","游","犹","猶","猷","由","疣","秞","肬","莜","莸","蕕","蚰","蝣","訧","輏","輶","逰","遊","邮","郵","鈾","铀","駀","魷","鮋","鱿","鲉","𬨎"],"xū":["偦","墟","媭","嬃","楈","欨","歔","燸","疞","盱","綇","縃","繻","胥","蕦","虗","虚","虛","蝑","裇","訏","許","諝","譃","谞","鑐","需","須","须","顼","驉","鬚","魆","魖","𬣙","𦈡"],"zhā":["偧","哳","抯","挓","揸","摣","樝","渣","皶","觰","譇","齄","齇"],"cī":["偨","疵","蠀","趀","骴","髊","齹"],"bī":["偪","屄","楅","毴","豍","逼","鰏","鲾","鵖"],"xún":["偱","噚","寻","尋","峋","巡","廵","循","恂","揗","攳","旬","杊","栒","桪","樳","洵","浔","潯","燅","燖","珣","璕","畃","紃","荀","蟳","詢","询","鄩","鱏","鱘","鲟","𬘓","𬩽","𬍤","𬊈"],"cāi sī":["偲"],"duān":["偳","媏","端","褍","鍴"],"ǒu":["偶","吘","嘔","耦","腢","蕅","藕","𬉼","𠙶"],"tōu":["偷","偸","鍮"],"zán zá zǎ":["偺"],"lǚ lóu":["偻","僂"],"fèn":["偾","僨","奋","奮","弅","忿","愤","憤","瀵","瞓","秎","粪","糞","膹","鱝","鲼"],"kuǐ guī":["傀"],"sǒu":["傁","叜","叟","嗾","櫢","瞍","薮","藪"],"zhì sī tí":["傂"],"sù":["傃","僳","嗉","塐","塑","夙","嫊","愫","憟","榡","樎","樕","殐","泝","涑","溯","溸","潚","潥","玊","珟","璛","簌","粛","粟","素","縤","肃","肅","膆","蔌","藗","觫","訴","謖","诉","谡","趚","蹜","速","遡","遬","鋉","餗","驌","骕","鱐","鷫","鹔","𫗧"],"xiā":["傄","煆","瞎","虲","谺","颬","鰕"],"yuàn yuán":["傆","媛"],"rǒng":["傇","冗","宂","氄","軵"],"nù":["傉","怒"],"yùn":["傊","孕","恽","惲","愠","慍","枟","腪","蕴","薀","藴","蘊","褞","貟","运","運","郓","鄆","酝","醖","醞","韗","韞","韵","韻","餫"],"gòu jiǎng":["傋"],"mà":["傌","嘜","榪","睰","祃","禡","罵","閁","駡","骂","鬕"],"bàng":["傍","塝","棒","玤","稖","艕","蒡","蜯","謗","谤","鎊","镑"],"diān":["傎","厧","嵮","巅","巓","巔","掂","攧","敁","槇","滇","癫","癲","蹎","顚","顛","颠","齻"],"táng":["傏","唐","啺","坣","堂","塘","搪","棠","榶","溏","漟","煻","瑭","磄","禟","篖","糃","糖","糛","膅","膛","蓎","螗","螳","赯","踼","鄌","醣","鎕","隚","餹","饄","鶶","䣘"],"hào":["傐","哠","恏","昊","昦","晧","暠","暤","暭","曍","浩","淏","澔","灏","灝","皓","皜","皞","皡","皥","耗","聕","薃","號","鄗","顥","颢","鰝"],"xī xì":["傒"],"shān":["傓","删","刪","剼","圸","山","挻","搧","柵","檆","潸","澘","煽","狦","珊","笘","縿","羴","羶","脠","舢","芟","衫","跚","軕","邖","閊","鯅"],"qiàn jiān":["傔"],"què jué":["傕","埆"],"cāng chen":["傖"],"róng":["傛","媶","嫆","嬫","容","峵","嵘","嶸","戎","搈","曧","栄","榕","榮","榵","毧","溶","瀜","烿","熔","狨","瑢","穁","絨","绒","羢","肜","茙","茸","荣","蓉","蝾","融","螎","蠑","褣","鎔","镕","駥"],"tà tàn":["傝"],"suō":["傞","唆","嗍","嗦","娑","摍","桫","梭","睃","簑","簔","羧","莏","蓑","趖","鮻"],"dǎi":["傣","歹"],"zài":["傤","儎","再","在","扗","洅","載","酨"],"gǔ":["傦","古","啒","尳","愲","榖","榾","汩","淈","濲","瀔","牯","皷","皼","盬","瞽","穀","罟","羖","股","脵","臌","薣","蛊","蠱","詁","诂","轂","逧","鈷","钴","餶","馉","鼓","鼔","𦙶"],"bīn":["傧","宾","彬","斌","椕","滨","濒","濱","濵","瀕","繽","缤","虨","豩","豳","賓","賔","邠","鑌","镔","霦","顮"],"chǔ":["储","儲","杵","椘","楚","楮","檚","濋","璴","础","礎","禇","處","齭","齼","𬺓"],"nuó":["傩","儺","挪","梛","橠"],"cān càn":["傪"],"lěi":["傫","儡","厽","垒","塁","壘","壨","櫐","灅","癗","矋","磊","礨","耒","蕌","蕾","藟","蘽","蠝","誄","讄","诔","鑸","鸓"],"cuī":["催","凗","墔","崔","嵟","慛","摧","榱","獕","磪","鏙"],"yōng":["傭","嗈","墉","壅","嫞","庸","廱","慵","拥","擁","滽","灉","牅","痈","癕","癰","臃","邕","郺","鄘","鏞","镛","雍","雝","饔","鱅","鳙","鷛"],"zāo cáo":["傮"],"sǒng":["傱","嵷","怂","悚","愯","慫","竦","耸","聳","駷","㧐"],"ào":["傲","坳","垇","墺","奡","嫯","岙","岰","嶴","懊","擙","澳","鏊","驁","骜"],"qī còu":["傶"],"chuǎng":["傸","磢","闖","闯"],"shǎ":["傻","儍"],"hàn":["傼","垾","悍","憾","扞","捍","撖","撼","旱","晘","暵","汉","涆","漢","瀚","焊","猂","皔","睅","翰","莟","菡","蛿","蜭","螒","譀","輚","釬","銲","鋎","雗","頷","顄","颔","駻","鶾"],"zhāng":["傽","嫜","张","張","彰","慞","暲","樟","漳","獐","璋","章","粻","蔁","蟑","遧","鄣","鏱","餦","騿","鱆","麞"],"yān yàn":["傿","墕","嬮"],"piào biāo":["僄","骠"],"liàn":["僆","堜","媡","恋","戀","楝","殓","殮","湅","潋","澰","瀲","炼","煉","瑓","練","纞","练","萰","錬","鍊","鏈","链","鰊","𬶠"],"màn":["㵘","僈","墁","幔","慢","曼","漫","澷","熳","獌","縵","缦","蔄","蘰","鄤","鏝","镘","𬜬"],"tàn tǎn":["僋"],"yíng":["僌","営","塋","嬴","攍","楹","櫿","溁","溋","滢","潆","濙","濚","濴","瀅","瀛","瀠","瀯","灐","灜","熒","營","瑩","盁","盈","禜","籝","籯","縈","茔","荧","莹","萤","营","萦","萾","蓥","藀","蛍","蝇","蝿","螢","蠅","謍","贏","赢","迎","鎣"],"dòng":["働","冻","凍","动","動","姛","戙","挏","栋","棟","湩","硐","胨","胴","腖","迵","霘","駧"],"zhuàn":["僎","啭","囀","堟","撰","灷","瑑","篆","腞","蒃","襈","譔","饌","馔"],"xiàng":["像","勨","向","嚮","姠","嶑","曏","橡","珦","缿","蟓","衖","襐","象","鐌","項","项","鱌"],"shàn":["僐","善","墠","墡","嬗","擅","敾","椫","樿","歚","汕","灗","疝","磰","繕","缮","膳","蟮","蟺","訕","謆","譱","讪","贍","赡","赸","鄯","鐥","饍","騸","骟","鱓","鱔","鳝","𫮃"],"tuí tuǐ":["僓"],"zǔn":["僔","噂","撙","譐"],"pú":["僕","匍","圤","墣","濮","獛","璞","瞨","穙","莆","菐","菩","葡","蒱","蒲","贌","酺","鏷","镤"],"láo":["僗","劳","労","勞","哰","崂","嶗","憥","朥","浶","牢","痨","癆","窂","簩","醪","鐒","铹","顟","髝","𫭼"],"chǎng":["僘","厰","廠","敞","昶","氅","鋹","𬬮"],"guāng":["僙","光","咣","垙","姯","洸","灮","炗","炚","炛","烡","珖","胱","茪","輄","銧","黆","𨐈"],"liáo":["僚","嘹","嫽","寥","寮","尞","屪","嵺","嶚","嶛","廫","憀","敹","暸","橑","獠","璙","疗","療","竂","簝","繚","缭","聊","膋","膫","藔","蟟","豂","賿","蹘","辽","遼","飉","髎","鷯","鹩"],"dèng":["僜","凳","墱","嶝","櫈","瞪","磴","覴","邓","鄧","隥"],"chán zhàn zhuàn":["僝"],"bō":["僠","嶓","拨","撥","播","波","溊","玻","癶","盋","砵","碆","礡","缽","菠","袰","蹳","鉢","钵","餑","饽","驋","鱍","𬭛"],"huì":["僡","匯","卉","喙","嘒","嚖","圚","嬒","寭","屶","屷","彗","彙","彚","徻","恚","恵","惠","慧","憓","懳","晦","暳","槥","橞","檅","櫘","汇","泋","滙","潓","烩","燴","獩","璤","瞺","硊","秽","穢","篲","絵","繪","绘","翙","翽","荟","蔧","蕙","薈","薉","蟪","詯","誨","諱","譓","譿","讳","诲","賄","贿","鐬","闠","阓","靧","頮","顪","颒","餯","𬤝","𬭬"],"chuǎn":["僢","喘","舛","荈","踳"],"tiě jiàn":["僣"],"sēng":["僧","鬙"],"xiàn":["僩","僴","哯","垷","塪","姭","娊","宪","岘","峴","憲","撊","晛","橌","橺","涀","瀗","献","獻","现","現","県","睍","粯","糮","絤","綫","線","线","缐","羡","羨","腺","臔","臽","苋","莧","誢","豏","鋧","錎","限","陥","陷","霰","餡","馅","麲","鼸","𬀪","𪾢"],"yù jú":["僪"],"è wū":["僫"],"tóng zhuàng":["僮"],"lǐn":["僯","凛","凜","廩","廪","懍","懔","撛","檁","檩","澟","癛","癝"],"gù":["僱","凅","固","堌","崓","崮","故","梏","棝","牿","痼","祻","錮","锢","雇","顧","顾","鯝","鲴"],"jiāng":["僵","壃","姜","橿","殭","江","畕","疅","礓","繮","缰","翞","茳","葁","薑","螀","螿","豇","韁","鱂","鳉"],"mǐn":["僶","冺","刡","勄","悯","惽","愍","慜","憫","抿","敃","敏","敯","泯","潣","皿","笢","笽","簢","蠠","閔","閩","闵","闽","鰵","鳘","黽"],"jìn":["僸","凚","噤","嚍","墐","壗","妗","嬧","搢","晉","晋","枃","殣","浕","浸","溍","濅","濜","烬","煡","燼","琎","瑨","璶","盡","祲","縉","缙","荩","藎","覲","觐","賮","贐","赆","近","进","進","靳","齽"],"jià jie":["價"],"qiào":["僺","峭","帩","撬","殻","窍","竅","誚","诮","躈","陗","鞩","韒","髚"],"pì":["僻","媲","嫓","屁","澼","甓","疈","譬","闢","鷿","鸊","䴙"],"sài":["僿","簺","賽","赛"],"chán tǎn shàn":["儃"],"dāng dàng":["儅","当","闣"],"xuān":["儇","喧","塇","媗","宣","愃","愋","揎","昍","暄","煊","煖","瑄","睻","矎","禤","箮","翧","翾","萱","萲","蓒","蕿","藼","蘐","蝖","蠉","諠","諼","譞","谖","軒","轩","鍹","駽","鰚","𫓶","𫍽"],"dān dàn":["儋","擔","瘅"],"càn":["儏","澯","灿","燦","璨","粲","薒","謲"],"bīn bìn":["儐"],"án àn":["儑"],"tái":["儓","坮","嬯","抬","擡","檯","炱","炲","籉","臺","薹","跆","邰","颱","鮐","鲐"],"lán":["儖","兰","囒","婪","岚","嵐","幱","拦","攔","斓","斕","栏","欄","欗","澜","瀾","灆","灡","燣","燷","璼","篮","籃","籣","繿","葻","蓝","藍","蘫","蘭","褴","襕","襤","襴","襽","譋","讕","谰","躝","鑭","镧","闌","阑","韊","𬒗"],"nǐ yì ài yí":["儗"],"méng":["儚","幪","曚","朦","橗","檬","氋","溕","濛","甍","甿","盟","礞","艨","莔","萌","蕄","虻","蝱","鄳","鄸","霿","靀","顭","饛","鯍","鸏","鹲","𫑡","㠓"],"níng":["儜","凝","咛","嚀","嬣","柠","橣","檸","狞","獰","聍","聹","薴","鑏","鬡","鸋"],"qióng":["儝","卭","宆","惸","憌","桏","橩","焪","焭","煢","熍","琼","瓊","睘","穷","穹","窮","竆","笻","筇","舼","茕","藑","藭","蛩","蛬","赹","跫","邛","銎","䓖"],"liè":["儠","冽","列","劣","劽","埒","埓","姴","峛","巤","挒","捩","栵","洌","浖","烈","烮","煭","犣","猎","猟","獵","聗","脟","茢","蛚","趔","躐","迾","颲","鬛","鬣","鮤","鱲","鴷","䴕","𫚭"],"kuǎng":["儣","夼","懭"],"bào":["儤","勽","報","忁","报","抱","曓","爆","犦","菢","虣","蚫","豹","鉋","鑤","铇","骲","髱","鮑","鲍"],"biāo":["儦","墂","幖","彪","标","標","滮","瀌","熛","爂","猋","瘭","磦","膘","臕","謤","贆","鏢","鑣","镖","镳","颮","颷","飆","飇","飈","飊","飑","飙","飚","驫","骉","髟"],"zǎn":["儧","儹","噆","攅","昝","趱","趲"],"háo":["儫","嗥","嘷","噑","嚎","壕","椃","毜","毫","濠","獆","獔","竓","籇","蚝","蠔","譹","豪"],"qìng":["儬","凊","庆","慶","櫦","濪","碃","磬","罄","靘"],"chèn":["儭","嚫","榇","櫬","疢","衬","襯","讖","谶","趁","趂","齓","齔","龀"],"téng":["儯","幐","滕","漛","疼","籐","籘","縢","腾","藤","虅","螣","誊","謄","邆","駦","騰","驣","鰧","䲢"],"lǒng lóng lòng":["儱"],"chán chàn":["儳"],"ráng xiāng":["儴","勷"],"huì xié":["儶"],"luó":["儸","攞","椤","欏","猡","玀","箩","籮","罗","羅","脶","腡","萝","蘿","螺","覼","逻","邏","鏍","鑼","锣","镙","饠","騾","驘","骡","鸁"],"léi":["儽","嫘","檑","欙","瓃","畾","縲","纍","纝","缧","罍","羸","蔂","蘲","虆","轠","鐳","鑘","镭","雷","靁","鱩","鼺"],"nàng nāng":["儾"],"wù wū":["兀"],"yǔn":["允","喗","夽","抎","殒","殞","狁","磒","荺","賱","鈗","阭","陨","隕","霣","馻","齫","齳"],"zān":["兂","橵","簪","簮","糌","鐕","鐟","鵤"],"yuán":["元","円","原","厡","厵","园","圆","圎","園","圓","垣","塬","媴","嫄","援","榞","榬","橼","櫞","沅","湲","源","溒","爰","猨","猿","笎","緣","縁","缘","羱","茒","薗","蝝","蝯","螈","袁","褤","謜","轅","辕","邍","邧","酛","鈨","鎱","騵","魭","鶢","鶰","黿","鼋","𫘪"],"xiōng":["兄","兇","凶","匂","匈","哅","忷","恟","汹","洶","胷","胸","芎","訩","詾","讻"],"chōng":["充","嘃","忡","憃","憧","摏","沖","浺","珫","罿","翀","舂","艟","茺","衝","蹖","㳘"],"zhào":["兆","垗","旐","曌","枛","櫂","照","燳","狣","瞾","笊","罀","罩","羄","肁","肇","肈","詔","诏","赵","趙","鮡","𬶐"],"duì ruì yuè":["兊","兌","兑"],"kè":["克","刻","勀","勊","堁","娔","客","恪","愙","氪","溘","碦","緙","缂","艐","衉","課","课","錁","锞","騍","骒"],"tù":["兎","兔","堍","迌","鵵"],"dǎng":["党","攩","欓","譡","讜","谠","黨","𣗋"],"dōu":["兜","兠","唗","橷","篼","蔸"],"huǎng":["兤","奛","幌","怳","恍","晄","炾","熀","縨","詤","謊","谎"],"rù":["入","嗕","媷","扖","杁","洳","溽","縟","缛","蓐","褥","鳰"],"nèi":["內","氝","氞","錗"],"yú shù":["兪"],"liù lù":["六"],han:["兯","爳"],"tiān":["兲","天","婖","添","酟","靔","靝","黇"],"xīng xìng":["兴"],"diǎn":["典","嚸","奌","婰","敟","椣","点","碘","蒧","蕇","踮","點"],"zī cí":["兹"],"jiān":["兼","冿","囏","坚","堅","奸","姦","姧","尖","幵","惤","戋","戔","搛","椾","樫","櫼","歼","殱","殲","湔","瀐","瀸","煎","熞","熸","牋","瑊","睷","礛","礷","笺","箋","緘","縑","缄","缣","肩","艰","艱","菅","菺","葌","蒹","蔪","蕑","蕳","虃","譼","豜","鑯","雃","鞯","韀","韉","餰","馢","鰔","鰜","鰹","鲣","鳒","鵑","鵳","鶼","鹣","麉"],"shòu":["兽","受","售","壽","夀","寿","授","狩","獣","獸","痩","瘦","綬","绶","膄"],"jì":["兾","冀","剂","剤","劑","勣","坖","垍","塈","妓","季","寂","寄","廭","彑","徛","忌","悸","惎","懻","技","旡","既","旣","暨","暩","曁","梞","檕","檵","洎","漃","漈","瀱","痵","癠","禝","稩","稷","穄","穊","穧","紀","継","績","繋","繼","继","绩","罽","臮","芰","茍","茤","葪","蓟","蔇","薊","蘎","蘮","蘻","裚","襀","覬","觊","計","記","誋","计","记","跡","跽","蹟","迹","际","際","霁","霽","驥","骥","髻","鬾","魝","魥","鯚","鯽","鰶","鰿","鱀","鱭","鲚","鲫","鵋","鷑","齌","𪟝","𬶨","𬶭"],"jiōng":["冂","冋","坰","埛","扃","蘏","蘔","駉","駫","𬳶"],"mào":["冃","冐","媢","帽","愗","懋","暓","柕","楙","毷","瑁","皃","眊","瞀","耄","茂","萺","蝐","袤","覒","貌","貿","贸","鄚","鄮"],"rǎn":["冄","冉","姌","媣","染","珃","苒","蒅","䎃"],"nèi nà":["内"],"gāng":["冈","冮","刚","剛","堈","堽","岡","掆","摃","棡","牨","犅","疘","綱","纲","缸","罁","罡","肛","釭","鎠","㭎"],"cè":["冊","册","厕","厠","夨","廁","恻","惻","憡","敇","测","測","笧","策","筞","筴","箣","荝","萗","萴","蓛"],"guǎ":["冎","剐","剮","叧","寡"],"mào mò":["冒"],"gòu":["冓","啂","坸","垢","够","夠","媾","彀","搆","撀","构","構","煹","覯","觏","訽","詬","诟","購","购","遘","雊"],"xǔ":["冔","喣","暊","栩","珝","盨","糈","詡","諿","诩","鄦","醑"],"mì":["冖","冪","嘧","塓","宻","密","峚","幂","幎","幦","怽","榓","樒","櫁","汨","淧","滵","漞","濗","熐","羃","蔤","蜜","覓","覔","覛","觅","謐","谧","鼏"],"yóu yín":["冘"],"xiě":["写","冩","藛"],"jūn":["军","君","均","桾","汮","皲","皸","皹","碅","莙","蚐","袀","覠","軍","鈞","銁","銞","鍕","钧","頵","鮶","鲪","麏"],"mí":["冞","擟","瀰","爢","猕","獼","祢","禰","縻","蒾","藌","蘪","蘼","袮","詸","謎","迷","醚","醾","醿","釄","镾","鸍","麊","麋","麛"],"guān guàn":["冠","覌","観","觀","观"],"měng":["冡","勐","懵","掹","猛","獴","艋","蜢","蠓","錳","锰","鯭","鼆"],"zhǒng":["冢","塚","尰","歱","煄","瘇","肿","腫","踵"],"zuì":["冣","嶵","晬","最","栬","槜","檇","檌","祽","絊","罪","蕞","辠","酔","酻","醉","錊"],"yuān":["冤","剈","囦","嬽","寃","棩","淵","渁","渆","渊","渕","灁","眢","肙","葾","蒬","蜎","蜵","駌","鳶","鴛","鵷","鸢","鸳","鹓","鼘","鼝"],"míng":["冥","名","明","暝","朙","榠","洺","溟","猽","眀","眳","瞑","茗","螟","覭","詺","鄍","銘","铭","鳴","鸣"],"kòu":["冦","叩","宼","寇","扣","敂","滱","窛","筘","簆","蔲","蔻","釦","鷇"],"tài":["冭","太","夳","忲","态","態","汰","汱","泰","溙","肽","舦","酞","鈦","钛"],"féng píng":["冯","馮"],"chōng chòng":["冲"],"kuàng":["况","圹","壙","岲","懬","旷","昿","曠","框","況","爌","眖","眶","矿","砿","礦","穬","絋","絖","纊","纩","貺","贶","軦","邝","鄺","鉱","鋛","鑛","黋"],"lěng":["冷"],"pàn":["冸","判","叛","沜","泮","溿","炍","牉","畔","盼","聁","袢","襻","詊","鋬","鑻","頖","鵥"],"fā":["冹","彂","沷","発","發"],"xiǎn":["冼","尟","尠","崄","嶮","幰","攇","显","櫶","毨","灦","烍","燹","狝","猃","獫","獮","玁","禒","筅","箲","藓","蘚","蚬","蜆","譣","赻","跣","鍌","险","険","險","韅","顕","顯","㬎"],"qià":["冾","圶","帢","恰","殎","洽","硈","胢","髂"],"jìng chēng":["净","凈","淨"],"sōu":["凁","嗖","廀","廋","捜","搜","摉","溲","獀","艘","蒐","螋","鄋","醙","鎪","锼","颼","飕","餿","馊","騪"],"měi":["凂","媄","媺","嬍","嵄","挴","毎","每","浼","渼","燘","美","躾","鎂","镁","黣"],"tú":["凃","図","图","圖","圗","塗","屠","峹","嵞","庩","廜","徒","悇","揬","涂","瘏","筡","腯","荼","蒤","跿","途","酴","鈯","鍎","馟","駼","鵌","鶟","鷋","鷵","𬳿"],"zhǔn":["准","凖","埻","準","𬘯"],"liáng liàng":["凉","涼","量"],"diāo":["凋","刁","刟","叼","奝","弴","彫","汈","琱","碉","簓","虭","蛁","貂","錭","雕","鮉","鯛","鲷","鵰","鼦"],"còu":["凑","湊","腠","輳","辏"],"ái":["凒","啀","嘊","捱","溰","癌","皑","皚"],"duó":["凙","剫","夺","奪","痥","踱","鈬","鐸","铎"],"dú":["凟","匵","嬻","椟","櫝","殰","涜","牍","牘","犊","犢","独","獨","瓄","皾","裻","読","讀","讟","豄","贕","錖","鑟","韇","韣","韥","騳","髑","黩","黷"],"jǐ jī":["几"],"fán":["凡","凢","凣","匥","墦","杋","柉","棥","樊","瀿","烦","煩","燔","璠","矾","礬","笲","籵","緐","羳","舤","舧","薠","蘩","蠜","襎","蹯","釩","鐇","鐢","钒","鷭","𫔍","𬸪"],"jū":["凥","匊","娵","婮","居","崌","抅","挶","掬","梮","椐","檋","毩","毱","泃","涺","狙","琚","疽","砠","罝","腒","艍","蜛","裾","諊","跔","踘","躹","陱","雎","鞠","鞫","駒","驹","鮈","鴡","鶋","𬶋"],"chù chǔ":["処","处"],"zhǐ":["凪","劧","咫","址","坧","帋","恉","扺","指","旨","枳","止","汦","沚","洔","淽","疻","砋","祉","秖","紙","纸","芷","藢","衹","襧","訨","趾","軹","轵","酯","阯","黹"],"píng":["凭","凴","呯","坪","塀","岼","帡","帲","幈","平","慿","憑","枰","洴","焩","玶","瓶","甁","竮","箳","簈","缾","荓","萍","蓱","蚲","蛢","評","评","軿","輧","郱","鮃","鲆"],"kǎi":["凯","凱","剀","剴","垲","塏","恺","愷","慨","暟","蒈","輆","鍇","鎧","铠","锴","闓","闿","颽"],"gān":["凲","坩","尲","尴","尶","尷","柑","泔","漧","玕","甘","疳","矸","竿","筸","粓","肝","苷","迀","酐","魐"],"kǎn qiǎn":["凵"],"tū":["凸","堗","嶀","捸","涋","湥","痜","禿","秃","突","葖","鋵","鵚","鼵","㻬"],"āo wā":["凹"],"chū":["出","初","岀","摴","榋","樗","貙","齣","䢺","䝙"],"dàng":["凼","圵","垱","壋","档","檔","氹","璗","瓽","盪","瞊","砀","碭","礑","簜","荡","菪","蕩","蘯","趤","逿","雼","𬍡"],"hán":["函","凾","含","圅","娢","寒","崡","晗","梒","浛","涵","澏","焓","琀","甝","筨","蜬","邗","邯","鋡","韓","韩"],"záo":["凿","鑿"],"dāo":["刀","刂","忉","氘","舠","螩","釖","魛","鱽"],"chuāng":["刅","摐","牎","牕","疮","瘡","窓","窗","窻"],"fēn fèn":["分"],"qiè qiē":["切"],"kān":["刊","勘","堪","戡","栞","龕","龛"],"cǔn":["刌","忖"],"chú":["刍","厨","幮","廚","橱","櫉","櫥","滁","犓","篨","耡","芻","蒢","蒭","蜍","蟵","豠","趎","蹰","躇","躕","鉏","鋤","锄","除","雏","雛","鶵"],"huà huá":["划"],"lí":["刕","剓","剺","劙","厘","喱","嚟","囄","嫠","孷","廲","悡","梨","梸","棃","漓","灕","犁","犂","狸","琍","璃","瓈","盠","睝","离","穲","竰","筣","篱","籬","糎","縭","缡","罹","艃","荲","菞","蓠","蔾","藜","蘺","蜊","蟍","蟸","蠫","褵","謧","貍","醨","鋫","錅","鏫","鑗","離","驪","骊","鯏","鯬","鱺","鲡","鵹","鸝","鹂","黎","黧","㰀"],"yuè":["刖","嬳","岄","岳","嶽","恱","悅","悦","戉","抈","捳","月","樾","瀹","爚","玥","礿","禴","篗","籆","籥","籰","粤","粵","蘥","蚎","蚏","説","越","跀","跃","躍","軏","鈅","鉞","鑰","钺","閱","閲","阅","鸑","鸙","黦","龠","𫐄","𬸚"],"liú":["刘","劉","嚠","媹","嵧","旈","旒","榴","橊","流","浏","瀏","琉","瑠","瑬","璢","畄","留","畱","疁","瘤","癅","硫","蒥","蓅","蟉","裗","鎏","鏐","鐂","镠","飀","飅","飗","駠","駵","騮","驑","骝","鰡","鶹","鹠","麍"],"zé":["则","則","啧","嘖","嫧","帻","幘","択","樍","歵","沢","泎","溭","皟","瞔","矠","礋","箦","簀","舴","蔶","蠌","襗","謮","賾","赜","迮","鸅","齚","齰"],"chuàng chuāng":["创","創"],"qù":["刞","厺","去","閴","闃","阒","麮","鼁"],"bié biè":["別","别"],"páo bào":["刨"],"chǎn chàn":["刬","剗","幝"],"guā":["刮","劀","桰","歄","煱","瓜","胍","踻","颪","颳","騧","鴰","鸹"],"gēng":["刯","庚","椩","浭","焿","畊","絚","羮","羹","耕","菮","賡","赓","鶊","鹒"],"dào":["到","噵","悼","椡","檤","燾","瓙","盗","盜","稲","稻","纛","翿","艔","菿","衜","衟","軇","道"],"chuàng":["刱","剏","剙","怆","愴"],"kū":["刳","哭","圐","堀","枯","桍","矻","窟","跍","郀","骷","鮬"],"duò":["刴","剁","墯","尮","惰","憜","挅","桗","舵","跥","跺","陊","陏","飿","饳","鵽"],"shuā shuà":["刷"],"quàn xuàn":["券"],"chà shā":["刹","剎"],"cì cī":["刺"],"guì":["刽","刿","劊","劌","撌","攰","昋","桂","椢","槶","樻","櫃","猤","禬","筀","蓕","襘","貴","贵","跪","鐀","鑎","鞼","鱖","鱥"],"lóu":["剅","娄","婁","廔","楼","樓","溇","漊","熡","耧","耬","艛","蒌","蔞","蝼","螻","謱","軁","遱","鞻","髅","髏","𪣻"],"cuò":["剉","剒","厝","夎","挫","措","棤","莝","莡","蓌","逪","銼","錯","锉","错"],"xiāo xuē":["削"],"kēi kè":["剋","尅"],"là lá":["剌"],"tī":["剔","梯","踢","銻","锑","鷈","鷉","䏲","䴘"],"pōu":["剖"],"wān":["剜","塆","壪","帵","弯","彎","湾","潫","灣","睕","蜿","豌"],"bāo bō":["剝","剥"],"duō":["剟","咄","哆","嚉","多","夛","掇","毲","畓","裰","㙍"],"qíng":["剠","勍","夝","情","擎","晴","暒","棾","樈","檠","氰","甠","硘","葝","黥"],"yǎn shàn":["剡"],"dū zhuó":["剢"],"yān":["剦","嫣","崦","嶖","恹","懕","懨","樮","淊","淹","漹","烟","焉","焑","煙","珚","篶","胭","臙","菸","鄢","醃","閹","阉","黫"],"huō":["剨","劐","吙","攉","秴","耠","锪","騞","𬴃"],"shèng":["剩","剰","勝","圣","墭","嵊","晠","榺","橳","琞","聖","蕂","貹","賸"],"duān zhì":["剬"],"wū":["剭","呜","嗚","圬","屋","巫","弙","杇","歍","汙","汚","污","洿","烏","窏","箼","螐","誈","誣","诬","邬","鄔","鎢","钨","鰞","鴮"],"gē":["割","哥","圪","彁","戈","戓","戨","歌","滒","犵","肐","袼","謌","鎶","鴚","鴿","鸽"],"dá zhá":["剳"],"chuán":["剶","暷","椽","篅","舡","舩","船","輲","遄"],"tuán zhuān":["剸","漙","篿"],"lù jiū":["剹"],"pēng":["剻","匉","嘭","怦","恲","抨","梈","烹","砰","軯","駍"],"piāo":["剽","勡","慓","旚","犥","翲","螵","飃","飄","飘","魒"],"kōu":["剾","彄","抠","摳","眍","瞘","芤","𫸩"],"jiǎo chāo":["剿","劋","勦","摷"],"qiāo":["劁","勪","墝","幧","敲","橇","毃","燆","硗","磽","繑","趬","跷","踍","蹺","蹻","郻","鄡","鄥","鍫","鍬","鐰","锹","頝"],"huá huà":["劃"],"zhā zhá":["劄"],"pī pǐ":["劈","悂"],"tāng":["劏","嘡","羰","薚","蝪","蹚","鞺","鼞"],"chán":["劖","嚵","壥","婵","嬋","巉","廛","棎","毚","湹","潹","潺","澶","瀍","瀺","煘","獑","磛","緾","纏","纒","缠","艬","蝉","蟐","蟬","蟾","誗","讒","谗","躔","鄽","酁","鋋","鑱","镵","饞","馋"],"zuān":["劗","躜","躦","鉆","鑚"],"mó":["劘","嫫","嬤","嬷","尛","摹","擵","橅","糢","膜","藦","蘑","謨","謩","谟","饃","饝","馍","髍","魔","魹"],"zhú":["劚","斸","曯","欘","灟","炢","烛","燭","爥","瘃","竹","笁","笜","舳","茿","蓫","蠋","蠾","躅","逐","逫","钃","鱁"],"quàn":["劝","勧","勸","牶","韏"],"jìn jìng":["劤","劲","勁"],"kēng":["劥","坑","牼","硁","硜","誙","銵","鍞","鏗","铿","阬"],"xié liè":["劦"],"zhù chú":["助"],"nǔ":["努","弩","砮","胬"],"shào":["劭","卲","哨","潲","紹","綤","绍","袑","邵"],"miǎo":["劰","杪","淼","渺","眇","秒","篎","緲","缈","藐","邈"],"kǒu":["劶","口"],"wā":["劸","娲","媧","屲","挖","攨","洼","溛","漥","瓾","畖","穵","窊","窪","蛙","韈","鼃"],"kuāng":["劻","匡","匩","哐","恇","洭","筐","筺","誆","诓","軭","邼"],"hé":["劾","咊","啝","姀","峆","敆","曷","柇","楁","毼","河","涸","渮","澕","熆","皬","盇","盉","盍","盒","禾","篕","籺","粭","翮","菏","萂","覈","訸","詥","郃","釛","鉌","鑉","閡","闔","阂","阖","鞨","頜","餄","饸","魺","鹖","麧","齕","龁","龢","𬌗"],"gào":["勂","吿","告","峼","祮","祰","禞","筶","誥","诰","郜","鋯","锆"],"bó bèi":["勃"],"láng":["勆","嫏","廊","斏","桹","榔","樃","欴","狼","琅","瑯","硠","稂","艆","蓈","蜋","螂","躴","郒","郞","鋃","鎯","锒"],"xūn":["勋","勛","勲","勳","嚑","坃","埙","塤","壎","壦","曛","燻","獯","矄","纁","臐","薫","薰","蘍","醺","𫄸"],"juàn juān":["勌","瓹"],"lè lēi":["勒"],"kài":["勓","炌","烗","鎎"],"wěng yǎng":["勜"],"qín":["勤","嗪","噙","嶜","庈","懃","懄","捦","擒","斳","檎","澿","珡","琴","琹","瘽","禽","秦","耹","芩","芹","菦","螓","蠄","鈙","鈫","雂","靲","鳹","鵭"],"jiàng":["勥","匞","匠","嵹","弜","弶","摾","櫤","洚","滰","犟","糡","糨","絳","绛","謽","酱","醤","醬"],"fān":["勫","嬏","帆","幡","忛","憣","旙","旛","繙","翻","藩","轓","颿","飜","鱕"],"juān":["勬","姢","娟","捐","涓","蠲","裐","鎸","鐫","镌","鹃"],"tóng dòng":["勭","烔","燑","狪"],"lǜ":["勴","垏","嵂","律","慮","氯","滤","濾","爈","箻","綠","繂","膟","葎","虑","鑢"],"chè":["勶","坼","彻","徹","掣","撤","澈","烢","爡","瞮","硩","聅","迠","頙","㬚"],"sháo":["勺","玿","韶"],"gōu gòu":["勾"],"cōng":["匆","囪","囱","忩","怱","悤","暰","樬","漗","瑽","璁","瞛","篵","繱","聡","聦","聪","聰","苁","茐","葱","蓯","蔥","蟌","鍯","鏓","鏦","騘","驄","骢"],"táo yáo":["匋","陶"],"páo":["匏","咆","垉","庖","爮","狍","袍","褜","軳","鞄","麅"],"dá":["匒","妲","怛","炟","燵","畣","笪","羍","荙","薘","蟽","詚","达","迏","迖","迚","逹","達","鐽","靼","鞑","韃","龖","龘","𫟼"],"huà huā":["化"],"běi bèi":["北"],"nǎo":["匘","垴","堖","嫐","恼","悩","惱","瑙","碯","脑","脳","腦"],"chí shi":["匙"],"fāng":["匚","堏","方","淓","牥","芳","邡","鈁","錺","钫","鴋"],"zā":["匝","咂","帀","沞","臜","臢","迊","鉔","魳"],"qiè":["匧","厒","妾","怯","悏","惬","愜","挈","穕","窃","竊","笡","箧","篋","籡","踥","鍥","锲","鯜"],"zāng cáng":["匨"],"fěi":["匪","奜","悱","棐","榧","篚","翡","蕜","誹","诽"],"kuì guì":["匮","匱"],"suǎn":["匴"],"pǐ":["匹","噽","嚭","圮","庀","痞","癖","脴","苉","銢","鴄"],"qū ōu":["区","區"],"kē qià":["匼"],"yǎn yàn":["匽","棪"],"biǎn":["匾","惼","揙","碥","稨","窆","藊","褊","貶","贬","鴘"],"nì":["匿","堄","嫟","嬺","惄","愵","昵","暱","氼","眤","睨","縌","胒","腻","膩","逆","𨺙"],"niàn":["卄","唸","埝","廿","念","惗","艌"],"sà":["卅","櫒","脎","萨","蕯","薩","鈒","隡","颯","飒","馺"],"zú":["卆","哫","崪","族","箤","足","踤","镞"],"shēng":["升","呏","声","斘","昇","曻","枡","殅","泩","湦","焺","牲","珄","生","甥","竔","笙","聲","鉎","鍟","阩","陞","陹","鵿","鼪"],"wàn":["卍","卐","忨","杤","瞣","脕","腕","萬","蟃","贎","輐","錽","𬇕"],"huá huà huā":["华","華"],"bēi":["卑","悲","揹","杯","桮","盃","碑","藣","鵯","鹎"],"zú cù":["卒"],"dān shàn chán":["单","單"],"nán nā":["南"],"shuài lǜ":["卛"],"bǔ bo pú":["卜"],"kuàng guàn":["卝"],"biàn":["卞","变","変","峅","弁","徧","忭","抃","昪","汳","汴","玣","艑","苄","覍","諚","變","辡","辧","辨","辩","辫","辮","辯","遍","釆","𨚕"],"bǔ":["卟","哺","捕","补","補","鸔","𬷕"],"zhàn zhān":["占","覱"],"kǎ qiǎ":["卡"],"lú":["卢","嚧","垆","壚","庐","廬","曥","枦","栌","櫨","泸","瀘","炉","爐","獹","玈","瓐","盧","矑","籚","纑","罏","胪","臚","舮","舻","艫","芦","蘆","蠦","轤","轳","鈩","鑪","顱","颅","馿","髗","魲","鱸","鲈","鸕","鸬","黸","𬬻"],"lǔ":["卤","塷","掳","擄","樐","橹","櫓","氌","滷","澛","瀂","硵","磠","穞","艣","艪","蓾","虏","虜","鏀","鐪","鑥","镥","魯","鲁","鹵"],"guà":["卦","啩","挂","掛","罣","褂","詿","诖"],"áng yǎng":["卬"],"yìn":["印","垽","堷","廕","慭","憖","憗","懚","洕","湚","猌","癊","胤","茚","酳","鮣","䲟"],"què":["却","卻","塙","崅","悫","愨","慤","搉","榷","燩","琷","皵","确","確","礭","闋","阕","鵲","鹊","𬒈"],"luǎn":["卵"],"juàn juǎn":["卷","巻"],"chǎng ān hàn":["厂"],"wěi yán":["厃"],"tīng":["厅","厛","听","庁","廰","廳","汀","烃","烴","綎","耓","聴","聼","聽","鞓","𬘩"],"zhé zhái":["厇"],"hàn àn":["厈","屽"],"yǎ":["厊","唖","庌","痖","瘂","蕥"],"shè":["厍","厙","弽","慑","慴","懾","摂","欇","涉","涻","渉","滠","灄","社","舎","蔎","蠂","設","设","赦","騇","麝"],"dǐ":["厎","呧","坘","弤","抵","拞","掋","牴","砥","菧","觝","詆","诋","軧","邸","阺","骶","鯳"],"zhǎ zhǎi":["厏"],"páng":["厐","嫎","庞","徬","舽","螃","逄","鰟","鳑","龎","龐"],"zhì shī":["厔"],"máng":["厖","吂","哤","娏","忙","恾","杗","杧","汒","浝","牻","痝","盲","硭","笀","芒","茫","蘉","邙","釯","鋩","铓","駹"],"zuī":["厜","樶","纗","蟕"],"shà xià":["厦","廈"],"áo":["厫","嗷","嗸","廒","敖","滶","獒","獓","璈","翱","翶","翺","聱","蔜","螯","謷","謸","遨","鏖","隞","鰲","鳌","鷔","鼇"],"lán qiān":["厱"],"sī mǒu":["厶"],"gōng hóng":["厷"],"lín miǎo":["厸"],"qiú róu":["厹"],"dū":["厾","嘟","督","醏"],"xiàn xuán":["县","縣"],"cān shēn cēn sān":["参","參","叄","叅"],"ài yǐ":["叆"],"chā chà chǎ chá":["叉"],"shuāng":["双","孀","孇","欆","礵","艭","雙","霜","騻","驦","骦","鷞","鸘","鹴"],"shōu":["収","收"],"guái":["叏"],"bá":["叐","妭","抜","拔","炦","癹","胈","茇","菝","詙","跋","軷","魃","鼥"],"fā fà":["发"],"zhuó yǐ lì jué":["叕"],"qǔ":["取","娶","竬","蝺","詓","齲","龋"],"jiǎ xiá":["叚","徦"],"wèi yù":["叞","尉","蔚"],"dié":["叠","垤","堞","峌","幉","恎","惵","戜","曡","殜","氎","牃","牒","瓞","畳","疂","疉","疊","碟","絰","绖","耊","耋","胅","艓","苵","蜨","蝶","褋","詄","諜","谍","跮","蹀","迭","镻","鰈","鲽","鴩","𫶇"],"ruì":["叡","枘","汭","瑞","睿","芮","蚋","蜹","銳","鋭","锐"],"jù gōu":["句"],"lìng":["另","呤","炩","蘦"],"dāo dáo tāo":["叨"],"zhī zhǐ":["只"],"jiào":["叫","呌","嘂","嘦","噍","嬓","斍","斠","滘","漖","獥","珓","皭","窖","藠","訆","譥","趭","較","轎","轿","较","酵","醮","釂"],"zhào shào":["召"],"kě kè":["可"],"tái tāi":["台","苔"],"pǒ":["叵","尀","笸","箥","鉕","钷","駊"],"yè xié":["叶"],"hào háo":["号"],"tàn":["叹","嘆","探","歎","湠","炭","碳","舕"],"hōng hóng":["叿"],"miē":["吀","咩","哶","孭"],"xū yū yù":["吁"],"chī":["吃","哧","喫","嗤","噄","妛","媸","彨","彲","摛","攡","殦","瓻","痴","癡","眵","瞝","笞","粚","胵","蚩","螭","訵","魑","鴟","鵄","鸱","黐","齝","𫄨"],"xuān sòng":["吅"],"yāo":["吆","喓","夭","妖","幺","楆","殀","祅","腰","葽","訞","邀","鴁","鴢","㙘"],"zǐ":["吇","姉","姊","子","杍","梓","榟","橴","滓","矷","秭","笫","籽","紫","耔","虸","訿","釨"],"hé gě":["合","鲄"],"cùn dòu":["吋"],"tóng tòng":["同"],"tǔ tù":["吐","唋"],"zhà zhā":["吒","奓"],"xià hè":["吓"],"ā yā":["吖"],"ma má mǎ":["吗"],"lìn":["吝","恡","悋","橉","焛","甐","膦","蔺","藺","賃","赁","蹸","躏","躙","躪","轥","閵"],"tūn":["吞","暾","朜","焞"],"bǐ pǐ":["吡"],"qìn":["吢","吣","唚","抋","揿","搇","撳","沁","瀙","菣","藽"],"jiè gè":["吤"],"fǒu pǐ":["否"],"ba bā":["吧"],"dūn":["吨","噸","墩","墪","惇","撉","撴","犜","獤","礅","蜳","蹾","驐"],"fēn":["吩","帉","昐","朆","梤","棻","氛","竕","紛","纷","翂","芬","衯","訜","躮","酚","鈖","雰","餴","饙","馚"],"é huā":["吪"],"kēng háng":["吭","妔"],"shǔn":["吮"],"zhī zī":["吱"],"yǐn shěn":["吲"],"wú":["吳","吴","呉","墲","峿","梧","橆","毋","洖","浯","無","珸","璑","祦","芜","茣","莁","蕪","蜈","蟱","譕","郚","鋙","铻","鯃","鵐","鷡","鹀","鼯"],"chǎo chāo":["吵"],"nà nè":["吶"],"xuè chuò jué":["吷"],"chuī":["吹","炊","龡"],"dōu rú":["吺"],"hǒu":["吼","犼"],"hōng hǒu ōu":["吽"],"wú yù":["吾"],"ya yā":["呀"],"è e":["呃"],"dāi":["呆","懛","獃"],"mèn qǐ":["呇"],"hōng":["呍","嚝","揈","灴","烘","焢","硡","薨","訇","谾","軣","輷","轟","轰","鍧"],"nà":["呐","捺","笝","納","纳","肭","蒳","衲","豽","貀","軜","郍","鈉","钠","靹","魶"],"tūn tiān":["呑"],"fǔ ḿ":["呒","嘸"],"dāi tǎi":["呔"],"ǒu ōu òu":["呕"],"bài bei":["呗"],"yuán yún yùn":["员","員"],"guō":["呙","啯","嘓","埚","堝","墎","崞","彉","彍","懖","猓","瘑","聒","蝈","蟈","郭","鈛","鍋","锅"],"huá qì":["呚"],"qiàng qiāng":["呛","跄"],"shī":["呞","失","尸","屍","师","師","施","浉","湤","湿","溮","溼","濕","狮","獅","瑡","絁","葹","蒒","蓍","虱","蝨","褷","襹","詩","诗","邿","釃","鉇","鍦","鯴","鰤","鲺","鳲","鳾","鶳","鸤","䴓","𫚕"],"juǎn":["呟","埍","臇","菤","錈","锩"],"pěn":["呠","翸"],"wěn mǐn":["呡"],"ne ní":["呢"],"ḿ m̀ móu":["呣"],"rán":["呥","嘫","然","燃","繎","肰","蚦","蚺","衻","袇","袡","髥","髯"],"tiè chè":["呫"],"qì zhī":["呮"],"zǐ cī":["呰"],"guā gū guǎ":["呱"],"cī zī":["呲"],"hǒu xǔ gòu":["呴"],"hē ā á ǎ à a":["呵"],"náo":["呶","夒","峱","嶩","巎","挠","撓","猱","硇","蛲","蟯","詉","譊","鐃","铙"],"xiā gā":["呷"],"pēi":["呸","怌","肧","胚","衃","醅"],"háo xiāo":["呺"],"mìng":["命","掵"],"dá dàn":["呾"],"zuǐ jǔ":["咀"],"xián gān":["咁"],"pǒu":["咅","哣","犃"],"yǎng yāng":["咉"],"zǎ zé zhā":["咋"],"hé hè huó huò hú":["和"],"hāi":["咍"],"dā":["咑","哒","噠","墶","搭","撘","耷","褡","鎝","𨱏"],"kǎ kā":["咔"],"gū":["咕","唂","唃","姑","嫴","孤","巬","巭","柧","橭","沽","泒","稒","笟","箍","箛","篐","罛","苽","菇","菰","蓇","觚","軱","軲","轱","辜","酤","鈲","鮕","鴣","鸪"],"kā gā":["咖"],zuo:["咗"],"lóng":["咙","嚨","嶐","巃","巄","昽","曨","朧","栊","槞","櫳","湰","滝","漋","爖","珑","瓏","癃","眬","矓","砻","礱","礲","窿","竜","聋","聾","胧","茏","蘢","蠪","蠬","襱","豅","鏧","鑨","霳","靇","驡","鸗","龍","龒","龙"],"xiàn xián":["咞"],"qì":["咠","唭","噐","器","夡","弃","憇","憩","暣","棄","欫","气","気","氣","汔","汽","泣","湆","湇","炁","甈","盵","矵","碛","碶","磜","磧","罊","芞","葺","藒","蟿","訖","讫","迄","鐑"],"xì dié":["咥"],"liē liě lié lie":["咧"],"zī":["咨","嗞","姕","姿","孜","孳","孶","崰","嵫","栥","椔","淄","湽","滋","澬","玆","禌","秶","粢","紎","緇","緕","纃","缁","茊","茲","葘","諮","谘","貲","資","赀","资","赼","趑","趦","輜","輺","辎","鄑","鈭","錙","鍿","鎡","锱","镃","頾","頿","髭","鯔","鰦","鲻","鶅","鼒","齍","齜","龇"],"mī":["咪"],"jī xī qià":["咭"],"gē luò kǎ lo":["咯"],"shù xún":["咰"],"zán zá zǎ zan":["咱"],"hāi ké":["咳"],"huī":["咴","噅","噕","婎","媈","幑","徽","恢","拻","挥","揮","晖","暉","楎","洃","瀈","灰","灳","烣","睳","禈","翚","翬","蘳","袆","褘","詼","诙","豗","輝","辉","鰴","麾","㧑"],"huài shì":["咶"],"táo":["咷","啕","桃","檮","洮","淘","祹","綯","绹","萄","蜪","裪","迯","逃","醄","鋾","鞀","鞉","饀","駣","騊","鼗","𫘦"],"xián":["咸","啣","娴","娹","婱","嫌","嫺","嫻","弦","挦","撏","涎","湺","澖","甉","痫","癇","癎","絃","胘","舷","藖","蚿","蛝","衔","衘","誸","諴","賢","贒","贤","輱","醎","銜","鑦","閑","闲","鷳","鷴","鷼","鹇","鹹","麙","𫍯"],"è àn":["咹"],"xuān xuǎn":["咺","烜"],"wāi hé wǒ guǎ guō":["咼"],"yàn yè yān":["咽"],"āi":["哀","哎","埃","溾","銰","鎄","锿"],"pǐn":["品","榀"],"shěn":["哂","婶","嬸","审","宷","審","弞","曋","渖","瀋","瞫","矤","矧","覾","訠","諗","讅","谂","谉","邥","頣","魫"],"hǒng hōng hòng":["哄"],"wā wa":["哇"],"hā hǎ hà":["哈"],"zāi":["哉","栽","渽","溨","災","灾","烖","睵","賳"],"dì diè":["哋"],"pài":["哌","沠","派","渒","湃","蒎","鎃"],"gén hěn":["哏"],"yǎ yā":["哑","雅"],"yuě huì":["哕","噦"],"nián":["哖","年","秊","秥","鮎","鯰","鲇","鲶","鵇","黏"],"huá huā":["哗","嘩"],"jì jiē zhāi":["哜","嚌"],"mōu":["哞"],"yō yo":["哟","喲"],"lòng":["哢","梇","贚"],"ò ó é":["哦"],"lī lǐ li":["哩"],"nǎ na nǎi né něi":["哪"],"hè":["哬","垎","壑","寉","惒","焃","煂","燺","爀","癋","碋","翯","褐","謞","賀","贺","赫","靍","靎","靏","鶴","鸖","鹤"],"bō pò bā":["哱"],"zhé":["哲","啠","喆","嚞","埑","悊","摺","晢","晣","歽","矺","砓","磔","籷","粍","虴","蛰","蟄","袩","詟","謫","謺","讁","讋","谪","輒","輙","轍","辄","辙","鮿"],"liàng láng":["哴"],"liè lǜ":["哷"],"hān":["哻","憨","蚶","谽","酣","頇","顸","馠","魽","鼾"],"hēng hng":["哼"],"gěng":["哽","埂","峺","挭","梗","綆","绠","耿","莄","郠","骾","鯁","鲠","𬒔"],"chuò yuè":["哾"],"gě jiā":["哿"],"bei bài":["唄"],"hán hàn":["唅"],"chún":["唇","浱","湻","滣","漘","犉","純","纯","脣","莼","蒓","蓴","醇","醕","錞","陙","鯙","鶉","鹑","𬭚"],"ài āi":["唉"],"jiá qiǎn":["唊"],"yán dàn xián":["唌"],"chē":["唓","砗","硨","莗","蛼"],"wú ńg ń":["唔"],"zào":["唕","唣","噪","慥","梍","灶","煰","燥","皁","皂","竃","竈","簉","艁","譟","趮","躁","造","𥖨"],"dí":["唙","啇","嘀","嚁","嫡","廸","敌","敵","梑","涤","滌","狄","笛","籴","糴","苖","荻","蔋","蔐","藡","覿","觌","豴","迪","靮","頔","馰","髢","鸐","𬱖"],"gòng hǒng gǒng":["唝","嗊"],"dóu":["唞"],"lào láo":["唠","嘮","憦"],"huàn":["唤","喚","奂","奐","宦","嵈","幻","患","愌","换","換","擐","攌","梙","槵","浣","涣","渙","漶","澣","烉","焕","煥","瑍","痪","瘓","睆","肒","藧","豢","轘","逭","鯇","鯶","鰀","鲩"],"léng":["唥","塄","楞","碐","薐"],"wō wěi":["唩"],"fěng":["唪","覂","諷","讽"],"yín jìn":["唫"],"hǔ xià":["唬"],"wéi":["唯","围","圍","壝","峗","峞","嵬","帏","帷","幃","惟","桅","沩","洈","涠","湋","溈","潍","潙","潿","濰","犩","矀","維","维","蓶","覹","违","違","鄬","醀","鍏","闈","闱","韋","韦","鮠","𣲗","𬶏"],"shuā":["唰"],"chàng":["唱","怅","悵","暢","焻","畅","畼","誯","韔","鬯"],"ér wā":["唲"],"qiàng":["唴","炝","熗","羻"],"yō":["唷"],"yū":["唹","淤","瘀","盓","箊","紆","纡","込","迂","迃","陓"],"lài":["唻","濑","瀨","瀬","癞","癩","睐","睞","籁","籟","藾","賚","賴","赉","赖","頼","顂","鵣"],"tuò":["唾","嶞","柝","毤","毻","箨","籜","萚","蘀","跅"],"zhōu zhāo tiào":["啁"],"kěn":["啃","垦","墾","恳","懇","肎","肯","肻","豤","錹"],"zhuó zhào":["啅","濯"],"hēng hèng":["啈","悙"],"lín lán":["啉"],"a ā á ǎ à":["啊"],"qiāng":["啌","嗴","嶈","戕","摤","斨","枪","槍","溬","牄","猐","獇","羌","羗","腔","蜣","謒","鏘","锖","锵"],"tūn zhūn xiāng duǐ":["啍"],"wèn":["問","妏","揾","搵","璺","问","顐"],"cuì qi":["啐"],"dié shà jié tì":["啑"],"yuē wā":["啘"],"zǐ cǐ":["啙"],"bǐ tú":["啚"],"chuò chuài":["啜"],"yǎ yā è":["啞"],"fēi":["啡","婓","婔","扉","暃","渄","猆","緋","绯","裶","霏","非","靟","飛","飝","飞","餥","馡","騑","騛","鯡","鲱","𬴂"],"pí":["啤","壀","枇","毗","毘","焷","琵","疲","皮","篺","罴","羆","脾","腗","膍","蚍","蚽","蜱","螷","蠯","豼","貔","郫","鈹","阰","陴","隦","魮","鮍","鲏","鵧","鼙"],"shá":["啥"],"lā la":["啦"],"yīng qíng":["啨"],"pā":["啪","妑","舥","葩","趴"],"zhě shì":["啫"],"sè":["啬","嗇","懎","擌","栜","歮","涩","渋","澀","澁","濇","濏","瀒","瑟","璱","瘷","穑","穡","穯","繬","譅","轖","銫","鏼","铯","飋"],"niè":["啮","嗫","噛","嚙","囁","囓","圼","孼","孽","嵲","嶭","巕","帇","敜","枿","槷","櫱","涅","湼","痆","篞","籋","糱","糵","聂","聶","臬","臲","蘖","蠥","讘","踂","踗","踙","蹑","躡","錜","鎳","鑈","鑷","钀","镊","镍","闑","陧","隉","顳","颞","齧","𫔶"],"luō luó luo":["啰","囉"],"tān chǎn tuō":["啴"],bo:["啵","蔔"],"dìng":["啶","定","椗","矴","碇","碠","磸","聢","腚","萣","蝊","訂","订","錠","锭","顁","飣","饤"],"lāng":["啷"],"án ān":["啽"],"kā":["喀","擖"],"yóng yú":["喁"],"lā lá lǎ":["喇"],"jiē":["喈","喼","嗟","堦","媘","接","掲","擑","湝","煯","疖","痎","癤","皆","秸","稭","脻","蝔","街","謯","阶","階","鞂","鶛"],"hóu":["喉","帿","猴","瘊","睺","篌","糇","翭","葔","鄇","鍭","餱","骺","鯸","𬭤"],"dié zhá":["喋"],"wāi":["喎","歪","竵"],"nuò rě":["喏"],"xù huò guó":["喐"],"zán":["喒"],"wō ō":["喔"],"hú":["喖","嘝","囫","壶","壷","壺","媩","弧","搰","斛","楜","槲","湖","瀫","焀","煳","狐","猢","瑚","瓳","箶","絗","縠","胡","葫","蔛","蝴","螜","衚","觳","醐","鍸","頶","餬","鬍","魱","鰗","鵠","鶘","鶦","鹕"],"huàn yuán xuǎn hé":["喛"],"xǐ":["喜","囍","壐","屣","徙","憙","枲","橲","歖","漇","玺","璽","矖","禧","縰","葈","葸","蓰","蟢","謑","蹝","躧","鈢","鉨","鉩","鱚","𬭳","𬶮"],"hē hè yè":["喝"],"kuì":["喟","嘳","媿","嬇","愦","愧","憒","篑","簣","籄","聩","聭","聵","膭","蕢","謉","餽","饋","馈"],"zhǒng chuáng":["喠"],"wéi wèi":["喡","為","爲"],"duó zhà":["喥"],"sāng sàng":["喪"],"qiáo jiāo":["喬"],"pèn bēn":["喯"],"cān sūn qī":["喰"],"zhā chā":["喳"],"miāo":["喵"],"pēn pèn":["喷"],"kuí":["喹","夔","奎","巙","戣","揆","晆","暌","楏","楑","櫆","犪","睽","葵","藈","蘷","虁","蝰","躨","逵","鄈","鍨","鍷","頯","馗","騤","骙","魁"],"lou lóu":["喽"],"zào qiāo":["喿"],"hè xiāo xiào hù":["嗃"],"á shà":["嗄"],"xiù":["嗅","岫","峀","溴","珛","琇","璓","秀","綉","繍","繡","绣","螑","袖","褎","褏","銹","鏥","鏽","锈","齅"],"qiāng qiàng":["嗆","戗","戧","蹌","蹡"],"ài yì":["嗌","艾"],"má mǎ ma":["嗎"],"kè kē":["嗑"],"dā tà":["嗒","鎉"],"sǎng":["嗓","搡","磉","褬","鎟","顙","颡"],"chēn":["嗔","抻","琛","瞋","諃","謓","賝","郴","𬘭"],"wā gǔ":["嗗"],"pǎng bēng":["嗙"],"xián qiǎn qiān":["嗛"],"lào":["嗠","嫪","橯","涝","澇","耢","耮","躼","軂","酪"],"wēng":["嗡","翁","聬","螉","鎓","鶲","鹟","𬭩"],"wà":["嗢","腽","膃","袜","襪","韤"],"hēi hāi":["嗨"],"hē":["嗬","欱","蠚","訶","诃"],zi:["嗭"],"sǎi":["嗮"],"ǹg ńg ňg":["嗯"],"gě":["嗰","舸"],"ná":["嗱","拏","拿","鎿","镎"],"diǎ":["嗲"],"ài ǎi āi":["嗳"],"tōng":["嗵","樋","炵","蓪"],"zuī suī":["嗺"],"zhē zhè zhù zhe":["嗻"],"mò":["嗼","圽","塻","墨","妺","嫼","寞","帞","昩","末","枺","歿","殁","沫","漠","爅","獏","瘼","皌","眽","眿","瞐","瞙","砞","礳","秣","絈","纆","耱","茉","莈","蓦","蛨","蟔","貃","貊","貘","銆","鏌","镆","陌","靺","驀","魩","默","黙","𬙊"],"sòu":["嗽","瘶"],"tǎn":["嗿","坦","忐","憳","憻","暺","毯","璮","菼","袒","襢","醓","鉭","钽"],"jiào dǎo":["嘄"],"kǎi gě":["嘅"],"shān càn":["嘇"],"cáo":["嘈","嶆","曹","曺","槽","漕","艚","蓸","螬","褿","鏪","𥕢"],"piào":["嘌","徱","蔈","驃"],"lóu lou":["嘍"],"gǎ":["尕","玍"],"gǔ jiǎ":["嘏"],"jiāo xiāo":["嘐"],"xū shī":["嘘","噓"],"pó":["嘙","嚩","婆","櫇","皤","鄱"],"dē dēi":["嘚"],"ma má":["嘛"],"lē lei":["嘞"],"gā gá gǎ":["嘠"],"sāi":["嘥","噻","毢","腮","顋","鰓"],"zuō chuài":["嘬"],"cháo zhāo":["嘲","朝","鼂"],"zuǐ":["嘴","噿","嶊","璻"],"qiáo qiào":["嘺","翹","谯"],"chù xù shòu":["嘼"],"tān chǎn":["嘽"],"dàn tán":["嘾","弾","彈","惔","澹"],"hēi mò":["嘿"],"ě":["噁","砨","頋","騀","鵈"],"fān bo":["噃"],"chuáng":["噇","床","牀"],"cù zā hé":["噈"],"tūn kuò":["噋"],"cēng chēng":["噌"],"dēng":["噔","嬁","灯","燈","璒","登","竳","簦","艠","豋"],"pū":["噗","扑","撲","攴","攵","潽","炇","陠"],"juē":["噘","屩","屫","撧"],"lū":["噜","嚕","撸","擼","謢"],"zhān":["噡","岾","惉","旃","旜","枬","栴","毡","氈","氊","沾","瞻","薝","蛅","詀","詹","譫","谵","趈","邅","閚","霑","飦","饘","驙","魙","鱣","鸇","鹯","𫗴"],"ō":["噢"],"zhòu zhuó":["噣"],"jiào qiào chī":["噭"],"yuàn":["噮","妴","怨","愿","掾","瑗","禐","苑","衏","裫","褑","院","願"],"ǎi ài āi":["噯"],"yōng yǒng":["噰","澭"],"jué xué":["噱"],"pēn pèn fèn":["噴"],"gá":["噶","尜","釓","錷","钆"],"xīn hěn hèn":["噷"],"dāng":["噹","澢","珰","璫","筜","簹","艡","蟷","裆","襠"],"làn":["嚂","滥","濫","烂","燗","爁","爛","爤","瓓","糷","钄"],"tà":["嚃","嚺","崉","挞","搨","撻","榻","橽","毾","涾","澾","濌","禢","粏","誻","譶","蹋","蹹","躂","躢","遝","錔","闒","闥","闼","阘","鞜","鞳"],"huō huò ǒ":["嚄"],"hāo":["嚆","茠","蒿","薅"],"hè xià":["嚇"],"xiù pì":["嚊"],"zhōu chóu":["嚋","盩","诪"],"mē":["嚒"],"chā cā":["嚓"],"bó pào bào":["嚗"],"me mèi mò":["嚜"],"xié hái":["嚡"],"áo xiāo":["嚣"],"mō":["嚤","摸"],"pín":["嚬","娦","嫔","嬪","玭","矉","薲","蠙","貧","贫","顰","颦","𬞟"],"mè":["嚰","濹"],"rǎng rāng":["嚷"],"lá":["嚹","旯"],"jiáo jué jiào":["嚼"],"chuò":["嚽","娖","擉","歠","涰","磭","踀","輟","辍","辵","辶","酫","鑡","餟","齪","龊"],"huān huàn":["嚾"],"zá cà":["囃"],"chài":["囆","虿","蠆","袃","訍"],"náng nāng":["囊"],"zá zàn cān":["囋"],"sū":["囌","櫯","甦","稣","穌","窣","蘇","蘓","酥","鯂"],"zèng":["囎","熷","甑","贈","赠","鋥","锃"],"zá niè yàn":["囐"],"nāng":["囔"],"luó luō luo":["囖"],"wéi guó":["囗"],"huí":["囘","回","囬","廻","廽","恛","洄","痐","茴","蚘","蛔","蛕","蜖","迴","逥","鮰"],"nín":["囜","您","脌"],"jiǎn nān":["囝"],"nān":["囡"],"tuán":["团","団","團","慱","抟","摶","檲","糰","鏄","鷒","鷻"],"tún dùn":["囤","坉"],"guó":["囯","囶","囻","国","圀","國","帼","幗","慖","摑","漍","聝","腘","膕","蔮","虢","馘","𬇹"],"kùn":["困","涃","睏"],"wéi tōng":["囲"],"qūn":["囷","夋","逡"],"rì":["囸","日","衵","鈤","馹","驲"],"tāi":["囼","孡","胎"],"pǔ":["圃","圑","擈","普","暜","樸","檏","氆","浦","溥","烳","諩","譜","谱","蹼","鐠","镨"],"quān juàn juān":["圈","圏"],"chuí chuán":["圌"],"tuǎn":["圕","畽","疃"],"lüè":["圙","掠","略","畧","稤","鋝","鋢","锊","䂮"],"huán yuán":["圜"],"luán":["圝","圞","奱","娈","孌","孪","孿","峦","巒","挛","攣","曫","栾","欒","滦","灤","癴","癵","羉","脔","臠","虊","銮","鑾","鵉","鸞","鸾"],"tǔ":["土","圡","釷","钍"],"xū wéi":["圩"],"dì de":["地","嶳"],"qiān sú":["圱"],"zhèn":["圳","塦","挋","振","朕","栚","甽","眹","紖","絼","纼","誫","賑","赈","鋴","鎭","鎮","镇","阵","陣","震","鴆","鸩"],"chǎng cháng":["场","場","塲"],"qí yín":["圻"],"jiá":["圿","忦","恝","戞","扴","脥","荚","莢","蛱","蛺","裌","跲","郏","郟","鋏","铗","頬","頰","颊","鴶","鵊"],"zhǐ zhì":["坁"],"bǎn":["坂","岅","昄","板","版","瓪","粄","舨","蝂","鈑","钣","阪","魬"],"qǐn":["坅","寑","寝","寢","昑","梫","笉","螼","赾","鋟","锓"],"méi fén":["坆"],"rǒng kēng":["坈"],"fāng fáng":["坊"],"fèn bèn":["坋"],"tān":["坍","怹","摊","擹","攤","滩","灘","瘫","癱","舑","貪","贪"],"huài pēi pī péi":["坏"],"dì làn":["坔"],"tán":["坛","墰","墵","壇","壜","婒","憛","昙","曇","榃","檀","潭","燂","痰","磹","罈","罎","藫","談","譚","譠","谈","谭","貚","郯","醰","錟","顃"],"bà":["坝","垻","壩","弝","欛","灞","爸","矲","覇","霸","鮁","鲅"],"fén":["坟","墳","妢","岎","幩","枌","棼","汾","焚","燌","燓","羒","羵","蒶","蕡","蚠","蚡","豮","豶","轒","鐼","隫","馩","魵","黂","鼖","鼢","𣸣"],"zhuì":["坠","墜","惴","甀","畷","礈","綴","縋","缀","缒","腏","膇","諈","贅","赘","醊","錣","鑆"],"pō":["坡","岥","泼","溌","潑","釙","鏺","钋","頗","颇","䥽"],"pǎn bàn":["坢"],"kūn":["坤","堃","堒","崐","崑","昆","晜","潉","焜","熴","猑","琨","瑻","菎","蜫","裈","裩","褌","醌","錕","锟","騉","髠","髡","髨","鯤","鲲","鵾","鶤","鹍"],"diàn":["坫","垫","墊","壂","奠","婝","店","惦","扂","橂","殿","淀","澱","玷","琔","电","癜","簟","蜔","鈿","電","靛","驔"],"mù mǔ":["坶"],"kē kě":["坷","軻"],"xuè":["坹","岤","桖","瀥","狘","瞲","謔","谑","趐"],"dǐ chí":["坻","柢"],"lā":["垃","柆","菈","邋"],"lǒng":["垄","垅","壟","壠","拢","攏","竉","陇","隴","𬕂"],"mín":["垊","姄","岷","崏","捪","旻","旼","民","珉","琘","琝","瑉","痻","盿","砇","緍","緡","缗","罠","苠","鈱","錉","鍲","鴖"],"dòng tóng":["垌","峒","洞"],"cí":["垐","嬨","慈","柌","濨","珁","瓷","甆","磁","礠","祠","糍","茨","詞","词","辝","辞","辤","辭","雌","飺","餈","鴜","鶿","鷀","鹚"],"duī":["垖","堆","塠","痽","磓","鐓","鐜","鴭"],"duò duǒ":["垛"],"duǒ duò":["垜","挆"],"chá":["垞","察","嵖","搽","槎","檫","猹","茬","茶","詧","靫","𥻗"],"shǎng":["垧","晌","樉","賞","贘","赏","鋿","鏛","鑜"],"shǒu":["垨","守","手","扌","艏","首"],da:["垯","繨","跶"],"háng":["垳","斻","杭","筕","絎","绗","航","苀","蚢","裄","貥","迒","頏","颃","魧"],"ān ǎn":["垵"],"xīng":["垶","惺","星","曐","煋","猩","瑆","皨","篂","腥","興","觪","觲","謃","騂","骍","鮏","鯹"],"yuàn huán":["垸"],"bāng":["垹","帮","幇","幚","幫","捠","梆","浜","邦","邫","鞤","𠳐"],"póu fú":["垺"],"cén":["埁","岑","涔"],"běng fēng":["埄"],"dì fáng":["埅"],"xiá jiā":["埉"],"mái mán":["埋"],"làng":["埌","崀","浪","蒗","閬","㫰"],"shān yán":["埏"],"qín jīn":["埐"],"pǔ bù":["埔"],"huā":["埖","婲","椛","硴","糀","花","蒊","蘤","誮","錵"],"suì sù":["埣"],"pí pì":["埤"],"qīng zhēng":["埥","鲭"],"wǎn wān":["埦"],"lǔn":["埨","稐","𫭢"],"zhēng chéng":["埩"],"kōng":["埪","崆","箜","躻","錓","鵼"],"cǎi cài":["埰","寀","采"],"chù tòu":["埱"],"běng":["埲","琫","菶","鞛"],"kǎn xiàn":["埳"],"yì shì":["埶","醳"],"péi":["培","毰","裴","裵","賠","赔","錇","锫","阫","陪"],"sào sǎo":["埽"],"jǐn qīn jìn":["堇"],"péng bèng":["堋"],"qiàn zàn jiàn":["堑"],"àn":["堓","屵","岸","按","暗","案","胺","荌","豻","貋","錌","闇","隌","黯"],"duò huī":["堕","墮"],"huán":["堚","寏","寰","峘","桓","洹","澴","獂","环","環","糫","繯","缳","羦","荁","萈","萑","豲","鍰","鐶","锾","镮","闤","阛","雈","鬟","鹮","𬘫","𤩽"],"bǎo bǔ pù":["堡"],"máo móu wǔ":["堥"],"ruán":["堧","壖","撋"],"ài è yè":["堨"],"gèng":["堩","暅"],"méi":["堳","塺","媒","嵋","徾","攗","枚","栂","梅","楣","楳","槑","湄","湈","煤","猸","玫","珻","瑂","眉","睂","禖","脄","脢","腜","苺","莓","葿","郿","酶","鎇","镅","霉","鶥","鹛","黴"],"dǔ":["堵","琽","睹","笃","篤","覩","賭","赌"],"féng":["堸","綘","艂","逢"],"hèng":["堼"],"chūn":["堾","媋","旾","春","暙","杶","椿","槆","橁","櫄","瑃","箺","萅","蝽","輴","鰆","鶞","䲠"],"jiǎng":["塂","奖","奨","奬","桨","槳","獎","耩","膙","蒋","蔣","講","讲","顜"],"huāng":["塃","巟","慌","肓","荒","衁"],"duàn":["塅","断","斷","椴","段","毈","煅","瑖","碫","簖","籪","緞","缎","腶","葮","躖","鍛","锻"],"tǎ":["塔","墖","獭","獺","鮙","鰨","鳎"],"wěng":["塕","奣","嵡","攚","暡","瞈","蓊"],"sāi sài sè":["塞"],"zàng":["塟","弉","臓","臟","葬","蔵","銺"],"tián":["塡","屇","恬","沺","湉","璳","甛","甜","田","畋","畑","碵","磌","胋","闐","阗","鴫","鷆","鷏"],"zhèng":["塣","幁","政","証","諍","證","证","诤","郑","鄭","靕","鴊"],"tián zhèn":["填"],"wēn":["塭","昷","榲","殟","温","溫","瑥","瘟","蕰","豱","輼","轀","辒","鎾","饂","鰛","鰮","鳁"],"liù":["塯","廇","磟","翏","雡","霤","餾","鬸","鷚","鹨"],"hǎi":["塰","海","烸","酼","醢"],"lǎng":["塱","朖","朗","朤","烺","蓢","㮾"],"bèng":["塴","揼","泵","甏","綳","蹦","迸","逬","鏰","镚"],"chén":["塵","宸","尘","忱","敐","敶","晨","曟","栕","樄","沉","煁","瘎","臣","茞","莀","莐","蔯","薼","螴","訦","諶","軙","辰","迧","鈂","陈","陳","霃","鷐","麎"],"ōu qiū":["塸"],"qiàn jiàn":["塹"],"zhuān tuán":["塼"],"shuǎng":["塽","慡","漺","爽","縔","鏯"],"shú":["塾","婌","孰","璹","秫","贖","赎"],"lǒu":["塿","嵝","嶁","甊","篓","簍"],"chí":["墀","弛","持","池","漦","竾","筂","箎","篪","茌","荎","蚳","謘","貾","赿","踟","迟","迡","遅","遟","遲","鍉","馳","驰"],"shù":["墅","庶","庻","怷","恕","戍","束","树","樹","沭","漱","潄","濖","竖","竪","絉","腧","荗","蒁","虪","術","裋","豎","述","鉥","錰","鏣","霔","鶐","𬬸"],"dì zhì":["墆","疐"],"kàn":["墈","崁","瞰","矙","磡","衎","鬫"],"chěn":["墋","夦","硶","碜","磣","贂","趻","踸","鍖"],"zhǐ zhuó":["墌"],"qiǎng":["墏","繈","繦","羥","襁"],"zēng":["増","增","憎","璔","矰","磳","罾","譄","鄫","鱛","䎖"],"qiáng":["墙","墻","嫱","嬙","樯","檣","漒","牆","艢","蔃","蔷","蘠"],"kuài tuí":["墤"],"tuǎn dǒng":["墥"],"qiáo què":["墧"],"zūn dūn":["墫"],"qiāo áo":["墽"],"yì tú":["墿"],"xué bó jué":["壆"],"lǎn":["壈","嬾","孄","孏","懒","懶","揽","擥","攬","榄","欖","浨","漤","灠","纜","缆","罱","覧","覽","览","醂","顲"],"huài":["壊","壞","蘾"],"rǎng":["壌","壤","攘","爙"],"làn xiàn":["壏"],"dǎo":["壔","导","導","岛","島","嶋","嶌","嶹","捣","搗","擣","槝","祷","禂","禱","蹈","陦","隝","隯"],"ruǐ":["壡","桵","橤","繠","蕊","蕋","蘂","蘃"],san:["壭"],"zhuàng":["壮","壯","壵","撞","焋","状","狀"],"ké qiào":["壳","殼"],"kǔn":["壸","壼","悃","捆","梱","硱","祵","稇","稛","綑","裍","閫","閸","阃"],"mǎng":["壾","漭","茻","莽","莾","蠎"],"cún":["壿","存"],"zhǐ zhōng":["夂"],"gǔ yíng":["夃"],"jiàng xiáng":["夅","降"],"páng féng fēng":["夆"],"zhāi":["夈","捚","摘","斋","斎","榸","粂","齋"],"xuàn xiòng":["夐"],"wài":["外","顡"],"wǎn yuàn wān yuān":["夗"],"mǎo wǎn":["夘"],"mèng":["夢","夣","孟","梦","癦","霥"],"dà dài":["大"],"fū fú":["夫","姇","枎","粰"],"guài":["夬","怪","恠"],"yāng":["央","姎","抰","殃","泱","秧","胦","鉠","鍈","雵","鴦","鸯"],"hāng bèn":["夯"],"gǎo":["夰","搞","杲","槀","槁","檺","稁","稾","稿","縞","缟","菒","藁","藳"],"tāo běn":["夲"],"tóu tou":["头"],"yǎn tāo":["夵"],"kuā kuà":["夸","誇"],"jiá jiā gā xiá":["夹"],"huà":["夻","婳","嫿","嬅","崋","摦","杹","枠","桦","槬","樺","澅","画","畫","畵","繣","舙","話","諙","譮","话","黊"],"jiā jiá gā xiá":["夾"],"ēn":["奀","恩","蒽"],"dī tì":["奃"],"yǎn yān":["奄","渰"],"pào":["奅","疱","皰","砲","礟","礮","靤","麭"],"nài":["奈","柰","渿","耐","萘","褦","錼","鼐"],"quān juàn":["奍","弮","棬"],"zòu":["奏","揍"],"qì qiè xiè":["契"],"kāi":["奒","开","揩","鐦","锎","開"],"bēn bèn":["奔","泍"],"tào":["套"],"zàng zhuǎng":["奘"],"běn":["奙","本","楍","畚","翉","苯"],"xùn zhuì":["奞"],"shē":["奢","檨","猞","畭","畲","賒","賖","赊","輋","𪨶"],"hǎ pò tǎi":["奤"],"ào yù":["奥","奧","澚"],"yūn":["奫","氲","氳","蒀","蒕","蝹","贇","赟","𫖳"],"duǒ chě":["奲"],"nǚ rǔ":["女"],"nú":["奴","孥","笯","駑","驽"],"dīng dǐng tiǎn":["奵"],"tā jiě":["她"],"nuán":["奻"],"hǎo hào":["好"],"fàn":["奿","嬎","梵","汎","泛","滼","瀪","犯","畈","盕","笵","範","范","訉","販","贩","軬","輽","飯","飰","饭"],"shuò":["妁","搠","朔","槊","烁","爍","矟","蒴","鎙","鑠","铄"],"fēi pèi":["妃"],"wàng":["妄","忘","旺","望","朢"],"zhuāng":["妆","妝","娤","庄","庒","桩","梉","樁","粧","糚","荘","莊","装","裝"],"mā":["妈","媽"],"fū yōu":["妋"],"hài jiè":["妎"],"dù":["妒","妬","杜","殬","渡","秺","芏","荰","螙","蠧","蠹","鍍","镀","靯","𬭊"],"miào":["妙","庙","庿","廟","玅","竗"],"fǒu pēi pī":["妚"],"yuè jué":["妜"],"niū":["妞"],"nà nàn":["妠"],"tuǒ":["妥","嫷","庹","椭","楕","橢","鬌","鰖","鵎"],"wàn yuán":["妧"],"fáng":["妨","房","肪","防","魴","鲂"],"nī":["妮"],"zhóu":["妯","碡"],"zhāo":["妱","巶","招","昭","釗","鉊","鍣","钊","駋","𬬿"],"nǎi nǐ":["妳"],"tǒu":["妵","敨","紏","蘣","黈"],"xián xuán xù":["妶"],"zhí yì":["妷","秇"],"ē":["妸","妿","婀","屙"],"mèi":["妹","媚","寐","抺","旀","昧","沬","煝","痗","眛","睸","祙","篃","蝞","袂","跊","鬽","魅"],"qī qì":["妻"],"xū xǔ":["姁","稰"],"shān shàn":["姍","姗","苫","釤","钐"],"mán":["姏","慲","樠","蛮","蠻","謾","饅","馒","鬗","鬘","鰻","鳗"],"jiě":["姐","媎","檞","毑","飷"],"wěi wēi":["委"],"pīn":["姘","拼","礗","穦","馪","驞"],"huá huó":["姡"],"jiāo xiáo":["姣"],"gòu dù":["姤"],"lǎo mǔ":["姥"],"nián niàn":["姩"],"zhěn":["姫","屒","弫","抮","昣","枕","畛","疹","眕","稹","縝","縥","缜","聄","萙","袗","裖","覙","診","诊","軫","轸","辴","駗","鬒"],"héng":["姮","恆","恒","烆","珩","胻","蘅","衡","鑅","鴴","鵆","鸻"],"jūn xún":["姰"],"kuā hù":["姱"],"è yà":["姶"],"xiān shēn":["姺"],"wá":["娃"],"ráo rǎo":["娆","嬈"],"shào shāo":["娋"],"xiē":["娎","揳","楔","歇","蝎","蠍"],"wǔ méi mǔ":["娒"],"chuò lài":["娕"],"niáng":["娘","嬢","孃"],"nà nuó":["娜","𦰡"],"pōu bǐ":["娝"],"něi suī":["娞"],"tuì":["娧","煺","蛻","蜕","退","駾"],"mǎn":["娨","屘","満","满","滿","螨","蟎","襔","鏋"],"wú wù yú":["娪"],"xī āi":["娭"],"zhuì shuì":["娷"],"dōng dòng":["娻"],"ǎi ái è":["娾"],"ē ě":["娿"],"mián":["婂","嬵","宀","杣","棉","檰","櫋","眠","矈","矊","矏","綿","緜","绵","芇","蝒"],"pǒu péi bù":["婄"],"biǎo":["婊","脿","表","裱","褾","諘","錶"],"fù fàn":["婏"],"wǒ":["婐","婑","我"],"ní nǐ":["婗","棿"],"quán juàn":["婘","惓"],"hūn":["婚","昏","昬","棔","涽","睧","睯","碈","荤","葷","蔒","轋","閽","阍"],"qiān jǐn":["婜"],"wān wà":["婠"],"lái lài":["婡","徕","徠"],"zhōu chōu":["婤"],"chuò nào":["婥"],"nüè àn":["婩"],"hùn kūn":["婫"],"dàng yáng":["婸"],"nàn":["婻"],"ruò chuò":["婼"],"jiǎ":["婽","岬","斚","斝","榎","槚","檟","玾","甲","胛","鉀","钾"],"tōu yú":["婾","媮"],"yù yú":["媀"],"wéi wěi":["媁"],"dì tí":["媂","珶","苐"],"róu":["媃","揉","柔","渘","煣","瑈","瓇","禸","粈","糅","脜","腬","葇","蝚","蹂","輮","鍒","鞣","騥","鰇","鶔","𫐓"],"ruǎn nèn":["媆"],"miáo":["媌","嫹","描","瞄","苗","鶓","鹋"],"yí pèi":["媐"],"mián miǎn":["媔"],"tí shì":["媞","惿"],"duò tuó":["媠","沲"],"ǎo":["媪","媼","艹","芺","袄","襖","镺"],"chú zòu":["媰"],"yìng":["媵","映","暎","硬","膡","鱦"],"qín shēn":["嫀"],"jià":["嫁","幏","架","榢","稼","駕","驾"],"sǎo":["嫂"],"zhēn zhěn":["嫃"],"jiē suǒ":["嫅"],"míng mǐng":["嫇"],"niǎo":["嫋","嬝","嬲","茑","蔦","袅","裊","褭","鸟"],"tāo":["嫍","幍","弢","慆","掏","搯","槄","涛","滔","濤","瑫","絛","縚","縧","绦","詜","謟","轁","鞱","韜","韬","飸","饕"],"biáo":["嫑"],"piáo piāo":["嫖","薸"],"xuán":["嫙","悬","懸","暶","檈","漩","玄","璇","璿","痃","蜁","𫠊"],"màn mān":["嫚"],"kāng":["嫝","嵻","康","慷","槺","漮","砊","穅","糠","躿","鏮","鱇","𡐓","𩾌"],"hān nǎn":["嫨"],"nèn":["嫩","嫰"],"zhē":["嫬","遮"],"mā má":["嫲"],"piè":["嫳"],"zhǎn":["嫸","展","搌","斩","斬","琖","盏","盞","輾","醆","颭","飐"],"xiān yǎn jìn":["嬐"],"liǎn":["嬚","敛","斂","琏","璉","羷","脸","臉","蔹","蘝","蘞","裣","襝","鄻"],"qióng huán xuān":["嬛"],"dǒng":["嬞","懂","箽","董","蕫","諌"],"cān":["嬠","湌","爘","飡","餐","驂","骖"],"tiǎo":["嬥","宨","晀","朓","窱","脁"],"bí":["嬶","荸","鼻"],"liǔ":["嬼","柳","栁","桞","桺","橮","熮","珋","綹","绺","罶","羀","鋶","锍"],"qiān xiān":["孅","欦"],"xié huī":["孈"],"huān quán":["孉"],"lí lì":["孋","麗"],"zhú chuò":["孎"],"kǒng":["孔","恐"],"mā zī":["孖"],"sūn xùn":["孙","孫"],"bèi bó":["孛","誖"],"yòu niū":["孧"],"zhuǎn":["孨","竱","轉"],"hái":["孩","骸"],"nāo":["孬"],"chán càn":["孱"],"bò":["孹","檗","蘗","譒"],"nái":["孻","腉"],"níng nìng":["宁","寍","寗","寜","寧","甯"],"zhái":["宅"],"tū jiā":["宊"],"sòng":["宋","訟","誦","讼","诵","送","鎹","頌","颂","餸"],"ròu":["宍","肉","譳"],"zhūn":["宒","窀","衠","諄","谆","迍"],"mì fú":["宓"],"dàng tàn":["宕"],"wǎn yuān":["宛"],"chǒng":["宠","寵"],"qún":["宭","峮","帬","羣","群","裙","裠"],"zǎi":["宰","崽"],"bǎo shí":["宲"],"jiā jia jie":["家"],"huāng huǎng":["宺"],"kuān":["宽","寛","寬","臗","鑧","髋","髖"],"sù xiǔ xiù":["宿"],"jié zǎn":["寁"],"bìng bǐng":["寎"],"jìn qǐn":["寖"],"lóu jù":["寠"],"xiě xiè":["寫"],"qīn qìn":["寴"],"cùn":["寸","籿"],"duì":["对","対","對","怼","憝","懟","濧","瀩","碓","祋","綐","薱","譈","譵","轛","队","陮"],"lüè luó":["寽"],"shè yè yì":["射"],"jiāng jiàng qiāng":["将"],"jiāng jiàng":["將","浆","漿","畺"],"zūn":["尊","嶟","樽","罇","遵","鐏","鱒","鳟","鶎","鷷","𨱔"],"shù zhù":["尌","澍"],"xiǎo":["小","晓","暁","曉","皛","皢","筱","筿","篠","謏","𫍲"],"jié jí":["尐","诘","鞊"],"shǎo shào":["少"],"ěr":["尒","尓","尔","栮","毦","洱","爾","珥","耳","薾","衈","趰","迩","邇","鉺","铒","餌","饵","駬"],"wāng yóu":["尢"],"wāng":["尣","尩","尪","尫","汪"],"liào":["尥","尦","廖","撂","料","炓","窷","鐐","镣","𪤗"],"méng máng lóng páng":["尨"],"gà":["尬","魀"],"kuì kuǐ":["尯"],"tuí":["尵","弚","穨","蘈","蹪","隤","頹","頺","頽","颓","魋","𬯎"],"yǐn":["尹","嶾","引","朄","檃","檼","櫽","淾","濥","瘾","癮","粌","蘟","蚓","螾","讔","赺","趛","輑","鈏","靷"],"chǐ chě":["尺"],"kāo":["尻","髛"],"jìn jǐn":["尽"],"wěi yǐ":["尾"],"niào suī":["尿"],"céng":["层","層","嶒","驓"],"diǎo":["屌"],"píng bǐng bīng":["屏"],"lòu":["屚","漏","瘘","瘺","瘻","鏤","镂","陋"],"shǔ zhǔ":["属","屬"],"xiè tì":["屟"],"chè cǎo":["屮"],"tún zhūn":["屯"],"nì jǐ":["屰"],"hóng lóng":["屸"],"qǐ kǎi":["岂","豈"],"áng":["岇","昂","昻"],"gǎng gāng":["岗","崗"],"kě":["岢","敤","渇","渴","炣"],"gǒu":["岣","狗","玽","笱","耇","耈","耉","苟","豿"],"tiáo":["岧","岹","樤","祒","笤","芀","萔","蓚","蓨","蜩","迢","鋚","鎥","鞗","髫","鯈","鰷","鲦","齠","龆"],"qū jū":["岨"],"lǐng":["岭","嶺","領","领"],"pò":["岶","敀","洦","湐","烞","珀","破","砶","粕","蒪","魄"],"bā kè":["峇"],"luò":["峈","摞","洛","洜","犖","珞","笿","纙","荦","詻","雒","駱","骆","鵅"],"fù niè":["峊"],"ěn":["峎"],"zhì shì":["峙","崻"],"qiǎ":["峠","跒","酠","鞐"],"qiáo jiào":["峤","癄"],"xié yé":["峫"],"bū":["峬","庯","晡","誧","逋","鈽","錻","钸","餔","鵏"],"chóng":["崇","崈","爞","虫","蝩","蟲","褈","隀"],"zú cuì":["崒","椊"],"líng léng":["崚"],"dòng dōng":["崠"],"xiáo":["崤","洨","淆","訤","誵"],"pí bǐ":["崥","芘"],"zhǎn chán":["崭","嶃","嶄"],"wǎi wēi":["崴"],"yáng dàng":["崵"],"shì dié":["崼"],"yào":["崾","曜","熎","燿","矅","穾","窔","筄","耀","艞","药","葯","薬","藥","袎","覞","詏","讑","靿","鷂","鹞","鼼"],"kān zhàn":["嵁"],"hán dǎng":["嵅"],"qiàn kàn":["嵌"],"wù máo":["嵍"],"kě jié":["嵑","嶱"],"wēi wěi":["嵔"],"kē":["嵙","柯","棵","榼","樖","牁","牱","犐","珂","疴","瞌","磕","礚","科","稞","窠","萪","薖","蚵","蝌","趷","轲","醘","鈳","钶","頦","顆","颗","髁"],"dàng táng":["嵣"],"róng yíng":["嵤","爃"],"ái kǎi":["嵦"],"kāo qiāo":["嵪"],"cuó":["嵯","嵳","痤","矬","蒫","蔖","虘","鹺","鹾"],"qiǎn qīn":["嵰"],"dì dié":["嵽"],"cēn":["嵾"],"dǐng":["嵿","艼","薡","鐤","頂","顶","鼎","鼑"],"áo ào":["嶅"],"pǐ pèi":["嶏"],"jiào qiáo":["嶠","潐"],"jué guì":["嶡","鳜"],"zhān shàn":["嶦","鳣"],"xiè jiè":["嶰"],"guī xī juàn":["嶲"],"rū":["嶿"],"lì liè":["巁","棙","爄","綟"],"xī guī juàn":["巂"],"yíng hōng":["巆"],"yǐng":["巊","廮","影","摬","梬","潁","瘿","癭","矨","穎","郢","鐛","頴","颍","颕","颖"],"chǎo":["巐","炒","煼","眧","麨"],"cuán":["巑","櫕","欑"],"chuān":["巛","川","氚","瑏","穿"],"jīng xíng":["巠"],"cháo":["巢","巣","晁","漅","潮","牊","窲","罺","謿","轈","鄛","鼌"],"qiǎo":["巧","愀","髜"],"gǒng":["巩","廾","拱","拲","栱","汞","珙","輁","鞏"],"chà chā chāi cī":["差"],"xiàng hàng":["巷"],"shuài":["帅","帥","蟀"],"pà":["帊","帕","怕","袙"],"tǎng nú":["帑"],"mò wà":["帓"],"tiē tiě tiè":["帖"],"zhǒu":["帚","晭","疛","睭","箒","肘","菷","鯞"],"juǎn juàn":["帣"],"shuì":["帨","涗","涚","睡","稅","税","裞"],"chóu dào":["帱","幬"],"jiǎn jiān sàn":["帴"],"shà qiè":["帹"],"qí jì":["帺","荠"],"shān qiāo shēn":["幓"],"zhuàng chuáng":["幢"],"chān chàn":["幨"],"miè":["幭","懱","搣","滅","灭","烕","礣","篾","蔑","薎","蠛","衊","鑖","鱴","鴓"],"gān gàn":["干"],"bìng bīng":["并","幷"],"jī jǐ":["幾"],"guǎng ān":["广"],"guǎng":["広","廣","犷","獷"],me:["庅"],"dùn tún":["庉"],"bài tīng":["庍"],"yìng yīng":["应"],"dǐ de":["底"],"dù duó":["度"],"máng méng páng":["庬"],"bìng píng":["庰"],"chěng":["庱","悜","睈","逞","騁","骋"],"jī cuò":["庴"],"qǐng":["庼","廎","檾","漀","苘","請","謦","请","頃","顷"],"guī wěi huì":["廆"],"jǐn qín":["廑"],"kuò":["廓","扩","拡","擴","濶","筈","萿","葀","蛞","闊","阔","霩","鞟","鞹","韕","頢","鬠"],"qiáng sè":["廧","薔"],"yǐn yìn":["廴","隐","隠","隱","飮","飲","饮"],"pò pǎi":["廹","迫"],"nòng lòng":["弄"],"dì tì tuí":["弟"],"jué zhāng":["弡"],"mí mǐ":["弥","彌","靡"],"chāo":["弨","怊","抄","欩","訬","超","鈔","钞"],yi:["弬"],"shāo":["弰","旓","烧","焼","燒","筲","艄","萷","蕱","輎","髾","鮹"],"xuān yuān":["弲"],"qiáng qiǎng jiàng":["強","强"],"tán dàn":["弹","醈"],"biè":["彆"],"qiáng jiàng qiǎng":["彊"],"jì xuě":["彐"],"tuàn":["彖","褖"],"yuē":["彟","曰","曱","矱"],"shān xiǎn":["彡"],"wén":["彣","文","炆","珳","瘒","繧","聞","芠","蚉","蚊","螡","蟁","閺","閿","闅","闦","闻","阌","雯","馼","駇","魰","鳼","鴍","鼤","𫘜"],"péng bāng":["彭"],"piāo piào":["彯"],"zhuó bó":["彴"],"tuǒ yí":["彵"],"páng fǎng":["彷"],"wǎng":["彺","往","徃","惘","枉","棢","網","网","罒","罓","罔","罖","菵","蛧","蝄","誷","輞","辋","魍"],"cú":["徂","殂"],"dài dāi":["待"],"huái":["徊","怀","懐","懷","槐","淮","耲","蘹","褢","褱","踝"],"wā wàng jiā":["徍"],"chěng zhèng":["徎"],"dé děi de":["得"],"cóng zòng":["從"],"shì tǐ":["徥"],"tí chí":["徲","鶗","鶙"],"dé":["徳","德","恴","悳","惪","淂","鍀","锝"],"zhǐ zhēng":["徴","徵"],"bié":["徶","癿","莂","蛂","襒","蹩"],"chōng zhǒng":["徸"],"jiǎo jiào":["徼","笅","筊"],"lòng lǒng":["徿"],"qú jù":["忂","渠","瞿","螶"],"dìng tìng":["忊"],"gǎi":["忋","改"],"rěn":["忍","栠","栣","秹","稔","綛","荏","荵","躵"],"chàn":["忏","懴","懺","硟","羼","韂","顫"],"tè":["忑","慝","特","蟘","鋱","铽"],"tè tēi tuī":["忒"],"gān hàn":["忓","攼"],"yì qì":["忔"],"tài shì":["忕"],"xī liě":["忚"],"yīng yìng":["応","應","譍"],"mǐn wěn mín":["忞","忟"],"sōng zhōng":["忪"],"yù shū":["忬","悆"],"qí shì":["忯","耆"],"tún zhūn dùn":["忳"],"qián qín":["忴","扲"],"hún":["忶","浑","渾","餛","馄","魂","鼲"],"niǔ":["忸","扭","炄","狃","紐","纽","莥","鈕","钮","靵"],"kuáng wǎng":["忹"],"kāng hàng":["忼"],"kài xì":["忾","愾"],"òu":["怄","慪"],"bǎo bào":["怉"],"mín mén":["怋"],"zuò zhà":["怍"],"zěn":["怎"],"yàng":["怏","恙","样","様","樣","漾","羕","詇"],"kòu jù":["怐"],"náo niú":["怓"],"zhēng zhèng":["怔","掙","钲","铮"],"tiē zhān":["怗"],"hù gù":["怘"],"cū jù zū":["怚"],"sī sāi":["思"],"yóu chóu":["怞"],"tū dié":["怢"],"yōu yào":["怮"],"xuàn":["怰","昡","楦","泫","渲","炫","琄","眩","碹","絢","縼","繏","绚","蔙","衒","袨","贙","鉉","鏇","铉","镟","颴"],"xù xuè":["怴"],"bì pī":["怶"],"xī shù":["怸"],"nèn nín":["恁"],"tiāo yáo":["恌"],"xī qī xù":["恓"],"xiào jiǎo":["恔"],"hū kuā":["恗"],"nǜ":["恧","朒","衂","衄"],"hèn":["恨"],"dòng tōng":["恫"],"quán zhuān":["恮"],"è wù ě wū":["恶","惡"],"tòng":["恸","慟","憅","痛","衕"],"yuān juàn":["悁"],"qiāo qiǎo":["悄"],"jiè kè":["悈"],"hào jiào":["悎"],"huǐ":["悔","檓","毀","毁","毇","燬","譭"],"mán mèn":["悗","鞔"],"yī yì":["悘","衣"],"quān":["悛","箞","鐉","𨟠"],"kuī lǐ":["悝"],"yì niàn":["悥"],"mèn mēn":["悶"],"guàn":["悹","悺","惯","慣","掼","摜","樌","欟","泴","涫","潅","灌","爟","瓘","盥","礶","祼","罆","罐","貫","贯","躀","遦","鏆","鑵","鱹","鸛","鹳"],"kōng kǒng":["悾"],"lǔn lùn":["惀"],"guǒ":["惈","果","椁","槨","粿","綶","菓","蜾","裹","褁","輠","餜","馃"],"yuān wǎn":["惌","箢"],"lán lín":["惏"],"yù xù":["惐","淢"],"chuò chuì":["惙"],"hūn mèn":["惛"],"chǎng tǎng":["惝"],"suǒ ruǐ":["惢"],"cǎn":["惨","慘","憯","黪","黲","䅟"],"cán":["惭","慙","慚","残","殘","蚕","蝅","蠶","蠺"],"dàn dá":["惮","憚"],"rě":["惹"],"yú tōu":["愉"],"kài qì":["愒"],"dàng táng shāng yáng":["愓"],"chén xìn dān":["愖"],"kè qià":["愘"],"nuò":["愞","懦","懧","掿","搦","榒","稬","穤","糑","糥","糯","諾","诺","蹃","逽","鍩","锘"],"gǎn":["感","擀","敢","桿","橄","澉","澸","皯","秆","稈","笴","芉","衦","赶","趕","鱤","鳡"],"còng sōng":["愡"],"sāi sī sǐ":["愢"],"gōng gòng hǒng":["愩","慐"],"shuò sù":["愬","洬"],"yáo yào":["愮"],"huàng":["愰","曂","榥","滉","皝","皩","鎤","㿠"],"zhěng":["愸","抍","拯","整","晸"],"cǎo":["愺","艸","草","騲"],"xì xié":["慀"],"cǎo sāo":["慅"],"xù chù":["慉"],"qiè qiàn":["慊"],"cáo cóng":["慒"],"ào áo":["慠"],"lián liǎn":["慩","梿","槤","櫣"],"jìn qín jǐn":["慬"],"dì chì":["慸"],"zhí zhé":["慹"],"lóu lǚ":["慺","鷜"],"còng":["憁","謥"],"zhī zhì":["憄","知","織","织"],"chēng":["憆","摚","撐","撑","晿","柽","棦","橕","檉","泟","浾","琤","瞠","碀","緽","罉","蛏","蟶","赪","赬","鏿","鐣","阷","靗","頳","饓"],"biē":["憋","虌","鱉","鳖","鼈","龞"],"chéng dèng zhèng":["憕"],"xǐ xī":["憘"],"duì dùn tūn":["憞"],"xiāo jiāo":["憢"],"xián xiàn":["憪"],"liáo liǎo":["憭","燎","爎","爒"],"shéng":["憴","縄","繉","繩","绳","譝"],"náo nǎo náng":["憹"],"jǐng jìng":["憼"],"jǐ jiǎo":["憿"],"xuān huān":["懁"],"cǎo sāo sào":["懆"],"mèn":["懑","懣","暪","焖","燜"],"mèng méng měng":["懜"],"ài yì nǐ":["懝"],"méng měng":["懞","瞢","矒"],"qí jī jì":["懠"],"mǒ":["懡"],"lán xiàn":["懢"],"yōu yǒu":["懮"],"liú liǔ":["懰","藰"],"ràng":["懹","譲","讓","让"],"huān":["懽","欢","歓","歡","獾","讙","貛","酄","驩","鴅","鵍"],"nǎn":["戁","揇","湳","煵","腩","蝻","赧"],"mí mó":["戂"],"gàng zhuàng":["戅","戆"],"zhuàng gàng":["戇"],"xū qu":["戌"],"xì hū":["戏","戯","戲"],"jiá gā":["戛"],"zéi":["戝","蠈","賊","贼","鰂","鱡","鲗"],"děng":["戥","等"],"hū xì":["戱"],"chuō":["戳","踔","逴"],"biǎn piān":["扁"],"shǎng jiōng":["扄"],"shàn shān":["扇"],"cái":["才","材","纔","裁","財","财"],"zhā zā zhá":["扎"],"lè lì cái":["扐"],"bā pá":["扒"],"dǎ dá":["打"],"rēng":["扔"],"fǎn fú":["払"],"diǎo dí yuē lì":["扚"],"káng gāng":["扛"],"yū wū":["扜"],"yū wū kū":["扝"],"tuō chǐ yǐ":["扡"],"gǔ jié xì gē":["扢"],"dèn":["扥","扽"],"sǎo sào":["扫","掃"],"rǎo":["扰","擾","隢"],"xī chā qì":["扱"],"bān pān":["扳"],"bā ào":["扷"],"xī zhé":["扸"],"zhì sǔn kǎn":["扻"],"zhǎo":["找","沼","瑵"],"kuáng wǎng zài":["抂"],"hú gǔ":["抇","鹄","鹘"],"bǎ bà":["把"],"dǎn shěn":["抌"],"nè nì ruì nà":["抐"],"zhuā":["抓","檛","簻","膼","髽"],"póu":["抔","裒"],"zhé shé zhē":["折"],"póu pōu fū":["抙","捊"],"pāo":["抛","拋","脬","萢"],"ǎo ào niù":["抝"],"lūn lún":["抡","掄"],"qiǎng qiāng chēng":["抢"],"zhǐ zhǎi":["抧"],"bù pū":["抪","柨"],"yǎo tāo":["抭"],"hē hè qiā":["抲"],"nǐ ní":["抳"],"pī pēi":["抷"],"mǒ mò mā":["抹"],"chōu":["抽","犨","犫","瘳","篘"],"jiā yá":["拁"],"fú bì":["拂","畐","鶝"],"zhǎ":["拃","眨","砟","鮺","鲝"],"dān dàn dǎn":["担"],"chāi cā":["拆"],"niān":["拈","蔫"],"lā lá lǎ là":["拉"],"bàn pàn":["拌"],"pāi":["拍"],"līn":["拎"],"guǎi":["拐","枴","柺"],"tuò tà zhí":["拓"],"ào ǎo niù":["拗"],"jū gōu":["拘"],"pīn pàn fān":["拚"],"bài bái":["拜"],"bài":["拝","敗","稗","粺","薭","贁","败","韛"],"qiá":["拤"],"nǐng níng nìng":["拧"],"zé zhái":["择","擇"],"hén":["拫","痕","鞎"],"kuò guā":["括"],"jié jiá":["拮"],"nǐn":["拰"],"shuān":["拴","栓","閂","闩"],"cún zùn":["拵"],"zā zǎn":["拶","桚"],"kǎo":["拷","攷","栲","烤","考"],"yí chǐ hài":["拸"],"cè sè chuò":["拺"],"zhuài zhuāi yè":["拽"],"shí shè":["拾"],"bāi":["挀","掰"],"kuò guāng":["挄"],"nòng":["挊","挵","齈"],"jiào jiāo":["挍","敎","教"],"kuà kū":["挎"],"ná rú":["挐"],"tiāo tiǎo":["挑"],"dié shè":["挕"],"liě":["挘","毟"],"yà yǎ":["挜","掗"],"wō zhuā":["挝"],"xié jiā":["挟","挾"],"dǎng dàng":["挡","擋"],"zhèng zhēng":["挣","正","症"],"āi ái":["挨"],"tuō shuì":["挩","捝"],"tǐ tì":["挮"],"suō shā":["挱"],"sā shā suō":["挲"],"kēng qiān":["挳","摼"],"bàng péng":["挷"],"ruó ruá":["挼"],"jiǎo kù":["捁"],"wǔ wú":["捂"],"tǒng":["捅","桶","筒","筩","統","綂","统","㛚"],"huò chì":["捇"],"tú shū chá":["捈"],"lǚ luō":["捋"],"shāo shào":["捎","稍"],"niē":["捏","揑"],"shù sǒng sōu":["捒"],"yé yú":["捓"],"jué zhuó":["捔"],"bù pú zhì":["捗"],"zùn":["捘","銌"],"lāo":["捞","撈","粩"],"sǔn":["损","損","榫","笋","筍","箰","鎨","隼"],"wàn wǎn wān yù":["捥"],"pěng":["捧","淎","皏"],"shě":["捨"],"fǔ fù bǔ":["捬"],"dáo":["捯"],"luò luǒ wǒ":["捰"],"juǎn quán":["捲"],"chēn tiǎn":["捵"],"niǎn niē":["捻"],"ruó wěi ré":["捼"],"zuó":["捽","昨","秨","稓","筰","莋","鈼"],"wò xiá":["捾"],"qìng qiàn":["掅"],"póu pǒu":["掊"],"qiā":["掐","葜"],"pái pǎi":["排"],"qiān wàn":["掔"],"yè yē":["掖"],"niè nǐ yì":["掜"],"huò xù":["掝"],"yàn shàn yǎn":["掞"],"zhěng dìng":["掟"],"kòng":["控","鞚"],"tuī":["推","蓷","藬"],"zōu zhōu chōu":["掫"],"tiàn":["掭","舚"],"kèn":["掯","裉","褃"],"pá":["掱","杷","潖","爬","琶","筢"],"guó guāi":["掴"],"dǎn shàn":["掸","撣"],"chān xiān càn shǎn":["掺"],"sāo":["掻","搔","溞","繅","缫","螦","騒","騷","鰠","鱢","鳋"],"pèng":["掽","椪","槰","碰","踫"],"zhēng kēng":["揁"],"jiū yóu":["揂"],"jiān jiǎn":["揃","籛"],"pì chè":["揊"],"sāi zǒng cāi":["揌"],"tí dī dǐ":["提"],"zǒng sōng":["揔"],"huáng yóng":["揘"],"zǎn zuàn":["揝"],"xū jū":["揟"],"ké qiā":["揢"],"chuāi chuǎi chuài tuán zhuī":["揣"],"dì tì":["揥"],"lá là":["揦"],"là":["揧","楋","溂","瓎","瘌","翋","臘","蝋","蝲","蠟","辢","辣","鑞","镴","鬎","鯻","𬶟"],"jiē qì":["揭"],"chòng dǒng":["揰"],"dié shé yè":["揲"],"jiàn qián jiǎn":["揵"],"yé":["揶","爷","爺","瑘","鋣","鎁","铘"],"chān":["搀","摻","攙","裧","襜","覘","觇","辿","鋓"],"gē gé":["搁","擱"],"lǒu lōu":["搂","摟"],"chōu zǒu":["搊"],"chuāi":["搋"],"sūn":["搎","槂","狲","猻","荪","蓀","蕵","薞","飧","飱"],"róng náng nǎng":["搑"],"péng bàng":["搒"],"cuō":["搓","瑳","磋","蹉","遳","醝"],"kē è":["搕"],"nù nuò nòu":["搙"],"lā xié xiàn":["搚"],"qiǔ":["搝","糗"],"xiǎn xiān":["搟"],"jié zhé":["搩"],"pán bān pó":["搫"],"bān":["搬","攽","斑","斒","班","瘢","癍","肦","螁","螌","褩","辬","頒","颁","𨭉"],"zhì nái":["搱"],"wā wǎ wà":["搲"],"huá":["搳","撶","滑","猾","蕐","螖","譁","鏵","铧","驊","骅","鷨"],"qiāng qiǎng chēng":["搶"],"tián shēn":["搷"],"ná nuò":["搻"],"èn":["摁"],"shè niè":["摄","攝"],"bìn":["摈","擯","殡","殯","膑","臏","髌","髕","髩","鬂","鬓","鬢"],"shā sà shǎi":["摋"],"chǎn sùn":["摌"],"jiū liú liáo jiǎo náo":["摎"],"féng pěng":["摓"],"shuāi":["摔"],"dì tú zhí":["摕"],"qì jì chá":["摖"],"sōu sǒng":["摗"],"liǎn liàn":["摙"],"gài xì":["摡"],"hù chū":["摢"],"tàng":["摥","烫","燙","鐋"],"nái zhì":["摨"],"mó mā":["摩"],"jiāng qiàng":["摪"],"áo qiáo":["摮"],"niè chè":["摰"],"mán màn":["摱"],"chàn cán":["摲"],"sè mí sù":["摵"],"biāo biào":["摽"],"juē jué":["撅"],"piē":["撆","暼","氕","瞥"],"piě piē":["撇"],"zǎn zān zēn qián":["撍"],"sā sǎ":["撒"],"hòng":["撔","訌","讧","闀","鬨"],"héng guàng":["撗"],"niǎn":["撚","撵","攆","涊","焾","碾","簐","蹍","蹨","躎","輦","辇"],"chéng zhěng":["撜"],"huī wéi":["撝"],"cāo":["撡","操","糙"],"xiāo sōu":["撨"],"liáo liāo":["撩"],"cuō zuǒ":["撮"],"wěi tuǒ":["撱"],"cuān":["撺","攛","汆","蹿","躥","鑹","镩"],"qiào yāo jī":["撽"],"zhuā wō":["撾"],"lèi léi":["擂"],"nǎng":["擃","攮","曩","灢"],"qíng jǐng":["擏"],"kuǎi":["擓","蒯","㧟"],"pǐ bò":["擗"],"bò bāi":["擘"],"jù jǐ":["據"],"mēng":["擝"],"sǒu sòu":["擞"],"xǐng":["擤","箵","醒"],"cā":["擦"],"níng nǐng nìng":["擰"],"zhì jié":["擳"],"là liè":["擸","爉"],"sòu sǒu":["擻"],"lì luò yuè":["擽"],"tī zhāi zhì":["擿"],"pān":["攀","潘","眅","萠"],"lèi":["攂","泪","涙","淚","禷","类","纇","蘱","酹","銇","錑","頛","頪","類","颣"],"cā sǎ":["攃"],"jùn pèi":["攈"],"lì luò":["攊","躒"],"là lài":["攋","櫴"],"lú luó":["攎"],"zǎn cuán":["攒"],"xiān jiān":["攕"],"mí mǐ mó":["攠"],"zǎn cuán zàn zuān":["攢"],"zuàn":["攥"],"lì shài":["攦"],"lì luǒ":["攭"],"guǐ guì":["攱"],"jī qī yǐ":["攲"],"fàng":["放"],"wù móu":["敄"],"chù shōu":["敊"],"gé guó è":["敋"],"duó duì":["敓","敚"],"duō què":["敠","敪"],"sàn sǎn":["散"],"dūn duì":["敦","镦"],"qī yǐ jī":["敧"],"xiào xué":["敩"],"shù shǔ shuò":["数","數"],"ái zhú":["敱","敳"],"xiòng xuàn":["敻"],"zhuó zhú":["斀"],"yì dù":["斁"],"lí tái":["斄"],"fěi fēi":["斐"],"yǔ zhōng":["斔"],"dòu dǒu":["斗"],"wò guǎn":["斡"],"tǒu tiǎo":["斢"],"dòu":["斣","梪","浢","痘","窦","竇","脰","荳","豆","逗","郖","酘","閗","闘","餖","饾","鬥","鬦","鬪","鬬","鬭"],"yín zhì":["斦"],"chǎn jiè":["斺"],"wū yū yú":["於"],"yóu liú":["斿"],"páng bàng":["旁"],"máo mào":["旄"],"pī bì":["旇"],"xuán xuàn":["旋"],"wú mó":["无"],"zǎo":["早","枣","栆","棗","澡","璪","薻","藻","蚤"],"gā":["旮"],"gàn hàn":["旰"],"tái yīng":["旲"],"xū xù":["旴"],"tūn zhùn":["旽"],"wù wǔ":["旿"],"pò pèi":["昢"],"zòng":["昮","猔","疭","瘲","粽","糉","糭","縦"],"ǎi":["昹","毐","矮","蔼","藹","譪","躷","霭","靄"],"huàng huǎng":["晃"],"xuǎn":["晅","癣","癬","选","選"],"xù kuā":["晇"],"hǒng":["晎"],"shài":["晒","曬"],"yūn yùn":["晕","煴"],"shèng chéng":["晟","椉","盛"],"jǐng yǐng":["景"],"shǎn":["晱","熌","睒","覢","閃","闪","陕","陝"],"qǐ dù":["晵"],"ǎn àn yǎn":["晻"],"wǎng wàng":["暀"],"zàn":["暂","暫","瓉","瓒","瓚","禶","襸","讃","讚","賛","贊","赞","蹔","鄼","錾","鏨","饡"],"yùn yūn":["暈"],"mín mǐn":["暋"],"dǔ shǔ":["暏"],"shǔ":["暑","曙","潻","癙","糬","署","薥","薯","藷","蜀","蠴","襡","襩","鱪","鱰","黍","鼠","鼡"],"jiǎn lán":["暕"],"nuǎn":["暖","煗","餪"],"bào pù":["暴"],"xī xǐ":["暿"],"pù bào":["曝","瀑"],"qū qǔ":["紶"],"qǔ qū":["曲"],"gèng gēng":["更"],"hū hù":["曶","雽"],"zēng céng":["曽","橧"],"céng zēng":["曾","竲"],"cǎn qián jiàn":["朁"],"qiè hé":["朅"],"bì pí":["朇","禆","笓","裨"],"yǒu yòu":["有"],"bān fén":["朌","鳻"],"fú fù":["服","洑"],"fěi kū":["朏","胐"],"qú xù chǔn":["朐"],"juān zuī":["朘"],"huāng máng wáng":["朚"],"qī jī":["期"],"tóng chuáng":["朣","橦"],"zhá":["札","牐","箚","蚻","譗","鍘","铡","閘","闸"],"zhú shù shú":["朮"],"shù shú zhú":["术"],"zhū shú":["朱"],"pǔ pò pō piáo":["朴"],"dāo tiáo mù":["朷"],"guǐ qiú":["朹"],"xiǔ":["朽","滫","潃","糔"],"chéng chēng":["朾"],"zá":["杂","沯","砸","襍","雑","雜","雥","韴"],"yú wū":["杅"],"gān gǎn":["杆"],"chā chà":["杈"],"shān shā":["杉"],"cūn":["村","皴","竴","膥","踆","邨"],"rèn ér":["杒","梕"],"sháo biāo":["杓"],"dì duò":["杕","枤"],"gū gài":["杚"],"yí zhì lí duò":["杝"],"gàng gāng":["杠"],"tiáo tiāo":["条","條"],"mà mǎ":["杩"],"sì zhǐ xǐ":["杫"],"yuán wán":["杬","蚖"],"bèi fèi":["杮"],"shū duì":["杸"],"niǔ chǒu":["杻"],"wò yuè":["枂","臒"],"máo":["枆","毛","氂","渵","牦","矛","罞","茅","茆","蝥","蟊","軞","酕","鉾","錨","锚","髦","鶜"],"pī mì":["枈"],"àng":["枊","盎","醠"],"fāng bìng":["枋"],"hù dǐ":["枑"],"xín":["枔","襑","鐔","鬵"],"yāo yǎo":["枖"],"ě è":["枙"],"zhī qí":["枝"],"cōng zōng":["枞","樅"],"xiān zhēn":["枮"],"tái sì":["枱"],"gǒu jǔ gōu":["枸"],"bāo fú":["枹"],"yì xiè":["枻","栧"],"tuó duò":["柁","馱","駄","驮"],"yí duò lí":["柂"],"nǐ chì":["柅"],"pán bàn":["柈","跘"],"yǎng yàng yāng yīng":["柍"],"fù fū fǔ":["柎"],"bǎi bó bò":["柏"],"mǒu":["某"],"sháo shào":["柖"],"zhè":["柘","樜","浙","淛","蔗","蟅","這","鷓","鹧","䗪"],"yòu yóu":["柚","櫾"],"guì jǔ":["柜"],"zhà zuò":["柞"],"dié zhì":["柣","眰"],"zhā zǔ zū":["柤"],"chá zhā":["查","査"],"āo ào":["柪","軪"],"bā fú pèi bó biē":["柭"],"duò zuó wù":["柮"],"bì bié":["柲"],"zhù chù":["柷"],"bēi pēi":["柸"],"shì fèi":["柹"],"shān zhà shi cè":["栅"],"lì yuè":["栎","櫟"],"qì qiè":["栔","砌"],"qī xī":["栖","蹊"],"guā kuò":["栝"],"bīng bēn":["栟"],"xiào jiào":["校"],"jiàn zùn":["栫","袸"],"yǒu yù":["栯"],"hé hú":["核"],"gēn":["根","跟"],"zhī yì":["栺"],"gé gē":["格"],"héng háng":["桁"],"guàng guāng":["桄"],"yí tí":["桋","荑"],"sāng":["桑","桒","槡"],"jú jié":["桔"],"yú móu":["桙"],"ráo náo":["桡","橈"],"guì huì":["桧","檜"],"chén zhèn":["桭"],"tīng yíng":["桯"],"bó po":["桲"],"bèn fàn":["桳"],"fēng fèng":["桻","葑"],"sù yìn":["梀"],"tǐng tìng":["梃"],"xuān juān xié":["梋"],"tú chá":["梌"],"āo yòu":["梎"],"kuǎn":["梡","欵","款","歀"],"shāo sào":["梢"],"qín chén cén":["梣"],"lí sì qǐ":["梩"],"chān yán":["梴"],"bīn bīng":["梹","槟","檳"],"táo chóu dào":["梼"],"cōng sōng":["棇"],"gùn hùn":["棍"],"dé zhé":["棏"],"pái bèi pèi":["棑"],"bàng pǒu bèi bēi":["棓"],"dì dài tì":["棣"],"sēn":["森","椮","槮","襂"],"rěn shěn":["棯"],"léng lēng líng":["棱"],"fú sù":["棴"],"zōu sǒu":["棷"],"zōu":["棸","箃","緅","諏","诹","邹","郰","鄒","鄹","陬","騶","驺","鯫","鲰","黀","齱","齺"],"zhào zhuō":["棹"],"chēn shēn":["棽"],"jiē qiè":["椄"],"yǐ yī":["椅"],"chóu zhòu diāo":["椆"],"qiāng kōng":["椌"],"zhuī chuí":["椎"],"bēi pí":["椑"],"mēn":["椚"],"quān juàn quán":["椦"],"duǒ chuán":["椯"],"wěi huī":["椲"],"jiǎ jiā":["椵"],"hán jiān":["椷"],"shèn zhēn":["椹"],"yàn yà":["椻"],"zhā chá":["楂"],"guō kuǎ":["楇"],"jí zhì":["楖"],"kǔ hù":["楛"],"yóu yǒu":["楢"],"sǒng cōng":["楤"],"yuán xuàn":["楥"],"yǎng yàng yīng":["楧"],"pián":["楩","胼","腁","賆","蹁","駢","騈","骈","骿","㛹"],"dié yè":["楪"],"dùn shǔn":["楯"],"còu zòu":["楱"],"dì dǐ shì":["楴"],"kǎi jiē":["楷"],"róu ròu":["楺"],"lè yuè":["楽"],"wēn yùn":["榅","鞰"],"lǘ":["榈","櫚","氀","膢","藘","閭","闾","驢","驴"],"shén":["榊","神","鉮","鰰","𬬹"],"bī pi":["榌"],"zhǎn niǎn zhèn":["榐"],"fú fù bó":["榑"],"jiàn jìn":["榗"],"bǎng bàng":["榜"],"shā xiè":["榝","樧"],"nòu":["槈","耨","鎒","鐞"],"qiǎn lián xiàn":["槏"],"gàng":["槓","焵","焹","筻","鿍"],"gāo":["槔","槹","橰","櫜","睾","篙","糕","羔","臯","韟","餻","高","髙","鷎","鷱","鼛"],"diān zhěn zhēn":["槙"],"kǎn jiàn":["槛"],"xí dié":["槢"],"jī guī":["槣"],"róng yōng":["槦"],"tuán shuàn quán":["槫"],"qì sè":["槭"],"cuī zhǐ":["槯"],"yǒu chǎo":["槱"],"màn wàn":["槾"],"lí chī":["樆"],"léi lěi":["樏","櫑","礌"],"cháo jiǎo chāo":["樔"],"chēng táng":["樘"],"jiū liáo":["樛"],"mó mú":["模"],"niǎo mù":["樢"],"héng hèng":["横","橫"],"xuě":["樰","膤","艝","轌","雪","鱈","鳕"],"fá fèi":["橃"],"rùn":["橍","润","潤","膶","閏","閠","闰"],"zhǎn jiǎn":["橏"],"shùn":["橓","瞚","瞬","舜","蕣","順","顺","鬊"],"tuí dūn":["橔"],"táng chēng":["橖"],"sù qiū":["橚"],"tán diàn":["橝"],"fén fèn fèi":["橨"],"rǎn yān":["橪"],"cū chu":["橻"],"shū qiāo":["橾"],"píng bò":["檘"],"zhái shì tú":["檡"],"biǎo biāo":["檦"],"qiān lián":["檶"],"nǐ mí":["檷"],"jiàn kǎn":["檻"],"nòu ruǎn rú":["檽"],"jī jì":["櫅","禨"],"huǎng guǒ gǔ":["櫎"],"lǜ chū":["櫖"],"miè mèi":["櫗"],"ōu":["櫙","欧","歐","殴","毆","瓯","甌","膒","藲","謳","讴","鏂","鴎","鷗","鸥"],"zhù zhuó":["櫡"],"jué jì":["櫭"],"huái guī":["櫰"],"chán zhàn":["欃"],"wéi zuì":["欈"],"cáng":["欌","鑶"],"yù yì":["欥"],"chù qù xì":["欪"],"kài ài":["欬"],"yì yīn":["欭"],"xì kài":["欯"],"shuò sòu":["欶"],"ǎi ēi éi ěi èi ê̄ ế ê̌ ề":["欸"],"qī yī":["欹"],"chuā xū":["欻"],"chǐ chuài":["欼"],"kǎn qiàn":["欿"],"kǎn kè":["歁"],"chuǎn chuán":["歂"],"yīn yān":["歅"],"jìn qūn":["歏"],"pēn":["歕"],"xū chuā":["歘"],"xī shè":["歙"],"liǎn hān":["歛"],"zhì chí":["歭"],"sè shà":["歰"],"sǐ":["死"],"wěn mò":["歾"],"piǎo":["殍","皫","瞟","醥","顠"],"qíng jìng":["殑"],"fǒu bó":["殕"],"zhí shi":["殖"],"yè yān yàn":["殗"],"hūn mèi":["殙"],"chòu":["殠","臰","遚"],"kuì huì":["殨","溃","潰"],"cuàn":["殩","熶","爨","窜","竄","篡","簒"],"yīn yān yǐn":["殷"],"qìng kēng shēng":["殸"],"yáo xiáo xiào":["殽"],"gū gǔ":["毂","蛄"],"guàn wān":["毌"],"dú dài":["毒"],"xún xùn":["毥"],"mú":["毪","氁"],"dòu nuò":["毭"],"sāi suī":["毸"],lu:["氇"],"sào":["氉","瘙","矂","髞"],"shì zhī":["氏"],"dī dǐ":["氐"],"máng méng":["氓"],"yáng rì":["氜"],"shuǐ":["水","氵","氺","閖"],"zhěng chéng zhèng":["氶"],"tǔn":["氽"],"fán fàn":["氾"],"guǐ jiǔ":["氿"],"bīn pà pā":["汃"],"zhuó què":["汋"],"dà tài":["汏"],"pìn":["汖","牝","聘"],"hàn hán":["汗","馯"],tu:["汢"],"tāng shāng":["汤","湯"],"zhī jì":["汥"],"gàn hán cén":["汵"],"wèn mén":["汶"],"fāng pāng":["汸"],"hǔ huǎng":["汻"],"niú yóu":["汼"],"hàng":["沆"],"shěn chén":["沈"],"dùn zhuàn":["沌"],"nǜ niǔ":["沑"],"méi mò":["沒","没"],"tà dá":["沓"],"mì wù":["沕"],"hóng pāng":["沗"],"shā shà":["沙"],"zhuǐ zǐ":["沝"],"ōu òu":["沤","漚"],"jǔ jù":["沮"],"tuō duó":["沰"],"mǐ lì":["沵"],"yí chí":["沶"],"xiè yì":["泄"],"bó pō":["泊"],"mì bì":["泌","秘"],"chù shè":["泏"],"yōu yòu āo":["泑"],"pēng píng":["泙","硑"],"pào pāo":["泡"],"ní nì":["泥","秜"],"yuè sà":["泧"],"jué xuè":["泬","疦"],"lóng shuāng":["泷","瀧"],"luò pō":["泺","濼"],"zé shì":["泽","澤"],"sǎ xǐ":["洒"],"sè qì zì":["洓"],"xǐ xiǎn":["洗"],"kǎo kào":["洘"],"àn yàn è":["洝"],"lěi lèi":["洡"],"qiè jié":["洯"],"qiǎn jiān":["浅"],"jì jǐ":["济","済","濟","纪"],"hǔ xǔ":["浒","滸"],"jùn xùn":["浚","濬"],"yǐng chéng yíng":["浧"],"liàn lì":["浰"],"féng hóng":["浲","溄"],"jiǒng jiōng":["浻"],"suī něi":["浽"],"yǒng chōng":["涌"],"tūn yūn":["涒"],"wō guō":["涡","渦"],"hēng":["涥","脝"],"zhǎng zhàng":["涨","漲"],"shòu tāo":["涭"],"shuàn":["涮","腨"],"kōng náng":["涳"],"wò wǎn yuān":["涴"],"tuō tuò":["涶"],"wō":["涹","猧","窝","窩","莴","萵","蜗","蝸","踒"],"qiè jí":["淁"],"guǒ guàn":["淉"],"lín lìn":["淋","獜","疄"],"tǎng chǎng":["淌"],"nào chuò zhuō":["淖"],"péng píng":["淜"],"féi":["淝","肥","腓","蜰"],"pì pèi":["淠"],"niǎn shěn":["淰"],"biāo hǔ":["淲"],"chún zhūn":["淳"],"hùn hún":["混"],"qiǎn":["淺","繾","缱","肷","膁","蜸","譴","谴","遣","鑓"],"wèn mín":["渂"],"rè ruò luò":["渃"],"dú dòu":["渎","瀆","读"],"jiàn jiān":["渐","溅","漸","濺"],"miǎn shéng":["渑","澠"],"nuǎn nuán":["渜"],"qiú wù":["渞"],"tíng tīng":["渟"],"dì tí dī":["渧"],"gǎng jiǎng":["港"],"hōng qìng":["渹"],"tuān":["湍","煓"],"huì mǐn xū":["湏"],"xǔ xù":["湑"],"pén":["湓","瓫","盆","葐"],"mǐn hūn":["湣"],"tuàn nuǎn":["湪"],"qiū jiǎo":["湫","湬"],"yān yīn":["湮"],"bàn pán":["湴"],"zhuāng hún":["湷"],"yàn guì":["溎"],"lián liǎn nián xián xiàn":["溓"],"dá tǎ":["溚","鿎"],"liū liù":["溜","澑","蹓"],"lùn":["溣"],"mǎ":["溤","犸","獁","玛","瑪","码","碼","遤","鎷","馬","马","鰢","鷌"],"zhēn qín":["溱"],"nì niào":["溺"],"chù xù":["滀","畜"],"wěng wēng":["滃"],"hào xuè":["滈"],"qì xì xiē":["滊"],"xíng yíng":["滎"],"zé hào":["滜"],"piāo piào piǎo":["漂"],"cóng sǒng":["漎"],"féng péng":["漨"],"luò tà":["漯"],"pēng bēn":["漰"],"chóng shuāng":["漴"],"huǒ kuò huò":["漷"],"liáo liú":["漻"],"cuǐ cuī":["漼"],"cóng zǒng":["潀"],"cóng zōng":["潈"],"pì piē":["潎"],"dàng xiàng":["潒"],"huáng guāng":["潢"],"liáo lào lǎo":["潦"],"cōng zòng":["潨"],"zhí zhì":["潪"],"tān shàn":["潬"],"tú zhā":["潳"],"sàn sǎ":["潵"],"hēi":["潶","黑","黒","𬭶"],"chéng dèng":["澄","瀓"],"cūn cún":["澊"],"péng pēng":["澎"],"hòng gǒng":["澒","銾"],"wàn màn":["澫"],"kuài huì":["澮"],"guō wō":["濄"],"pēn fén":["濆"],"jí shà":["濈"],"huì huò":["濊"],"dǐng tìng":["濎"],"mǐ nǐ":["濔"],"bì pì":["濞"],"cuì zuǐ":["濢"],"hù huò":["濩"],"ǎi kài kè":["濭"],"wěi duì":["濻","瀢"],"zàn cuán":["濽","灒"],"yǎng yàng":["瀁"],"wǎng wāng":["瀇"],"mò miè":["瀎","眜"],"suǐ":["瀡","膸","髓"],"huái wāi":["瀤"],"zùn jiàn":["瀳"],"yīng yǐng yìng":["瀴"],"ráng ràng":["瀼"],"shuàng":["灀"],"zhuó jiào zé":["灂"],"sǎ":["灑","訯","靸"],"luán luàn":["灓"],"dǎng tǎng":["灙"],"xún quán quàn":["灥"],"huǒ biāo":["灬"],"zhà yù":["灹"],"fén bèn":["炃"],"jiǒng guì":["炅"],"pàng fēng":["炐"],"quē":["炔","缺","缼","蒛"],"biān":["炞","煸","甂","砭","笾","箯","籩","編","编","蝙","邉","邊","鍽","鞭","鯾","鯿","鳊"],"zhāo zhào":["炤"],"zhuō chù":["炪"],"pào páo bāo":["炮"],"páo fǒu":["炰"],"shǎn qián shān":["炶"],"zhà zhá":["炸"],"jiǎo yào":["烄"],"quǎn":["烇","犬","犭","畎","綣","绻","虇"],"yàng yáng":["烊"],"lào luò":["烙"],"huí huǐ":["烠"],"rè":["热","熱"],"fú páo":["烰"],"xiè chè":["烲","焎"],"yàn shān":["烻"],"hūn xūn":["焄"],"kào":["焅","犒","銬","铐","靠","鮳","鯌","鲓","㸆"],"juān yè":["焆"],"jùn qū":["焌"],"tāo dào":["焘"],"chǎo jù":["焣"],"wò ài":["焥"],"zǒng cōng":["焧"],"xī yì":["焬"],"xìn xīn":["焮"],"chāo zhuō":["焯"],"xiǒng yīng":["焸","焽"],"kuǐ":["煃","跬","蹞","頍","𫠆"],"huī yùn xūn":["煇"],"jiǎo qiāo":["煍"],"qián shǎn shān":["煔"],"xī yí":["煕"],"shà shā":["煞"],"yè zhá":["煠"],"yáng yàng":["煬"],"ēn yūn":["煾"],"yūn yǔn":["熅"],"hè xiāo":["熇"],"xióng":["熊","熋","雄"],"xūn xùn":["熏","爋"],"gòng":["熕","貢","贡"],"liū":["熘"],"cōng zǒng":["熜"],"lù āo":["熝"],"shú shóu":["熟"],"fēng péng":["熢"],"cuǐ suī":["熣"],"tēng":["熥","膯","鼟"],"yùn yù":["熨"],"áo āo":["熬"],"hàn rǎn":["熯"],"ōu ǒu":["熰"],"huáng huǎng":["熿"],"chǎn dǎn chàn":["燀"],"jiāo zhuó qiáo jué":["燋"],"yàn yān":["燕"],"tài liè":["燤"],"āo":["爊"],"yàn xún":["爓"],"jué jiào":["爝","覐","覚","覺","觉"],"lǎn làn":["爦"],"zhuǎ zhǎo":["爪"],"zhǎo zhuǎ":["爫"],"fù fǔ":["父"],"diē":["爹","褺","跌"],"zāng":["牂","羘","臧","賍","賘","贓","贜","赃","髒"],"piàn piān":["片"],"biān miàn":["牑"],"bǎng":["牓","綁","绑"],"yǒu yōng":["牗"],"chēng chèng":["牚","竀"],"niú":["牛","牜"],"jiū lè":["牞"],"mù móu":["牟"],"māng":["牤"],"gē qiú":["牫"],"yòu chōu":["牰"],"tè zhí":["犆"],"bēn":["犇","錛","锛"],"jiān qián":["犍","玪"],"má":["犘","痲","蔴","蟇","麻"],"máo lí":["犛"],"bá quǎn":["犮"],"zhuó bào":["犳"],"àn hān":["犴"],"kàng gǎng":["犺"],"pèi fèi":["犻"],"fān huān":["犿"],"kuáng":["狂","狅","誑","诳","軖","軠","鵟","𫛭"],"yí quán chí":["狋"],"xīng shēng":["狌"],"tuó yí":["狏"],"kǔ":["狜","苦"],"huán huān":["狟"],"hé mò":["狢"],"tà shì":["狧"],"máng dòu":["狵"],"xī shǐ":["狶"],"suān":["狻","痠","酸"],"bài pí":["猈"],"jiān yàn":["猏","豣"],"yī yǐ":["猗"],"yá wèi":["猚"],"cāi":["猜"],"māo máo":["猫","貓"],"chuàn chuān":["猭"],"tuān tuàn":["猯","貒"],"yà jiá qiè":["猰"],"hè xiē gé hài":["猲"],"biān piàn":["猵","獱"],"bó pò":["猼"],"háo gāo":["獋"],"fén fèn":["獖"],"yào xiāo":["獟"],"shuò xī":["獡"],"gé liè xiē":["獦"],"nòu rú":["獳"],"náo nǎo yōu":["獶"],"ráng":["獽","瓤","禳","穣","穰","蘘","躟","鬤"],"náo yōu":["獿"],"lǜ shuài":["率"],"wáng wàng":["王"],"yáng chàng":["玚"],"mín wén":["玟"],"bīn fēn":["玢"],"mén yǔn":["玧"],"qiāng cāng":["玱","瑲","篬"],"án gān":["玵"],"xuán xián":["玹"],"cī cǐ":["玼","跐"],"yí tāi":["珆"],"zǔ jù":["珇"],"fà":["珐","琺","蕟","髪","髮"],"yín kèn":["珢"],"huī hún":["珲"],"xuán qióng":["琁"],"fú fū":["琈"],"bǐng pín":["琕"],"cuì sè":["琗"],"yù wéi":["琟"],"tiǎn tiàn":["琠"],"zhuó zuó":["琢"],"běng pěi":["琣"],"guǎn":["琯","璭","痯","筦","管","舘","輨","錧","館","馆","鳤"],"hún huī":["琿"],"xié jiē":["瑎"],"chàng dàng yáng":["瑒"],"tiàn zhèn":["瑱"],"bīn pián":["瑸","璸"],"tú shū":["瑹"],"cuǐ":["璀","皠","趡"],"zǎo suǒ":["璅"],"jué qióng":["璚"],"lú fū":["璷"],"jì zī":["璾"],"suí":["瓍","綏","绥","遀","随","隨","髄"],"mí xǐ":["瓕"],"qióng wěi wèi":["瓗"],"huán yè yà":["瓛"],"bó páo":["瓟"],"zhí hú":["瓡"],"piáo":["瓢","闝"],"wǎ wà":["瓦"],"xiáng hóng":["瓨"],"wèng":["瓮","甕","罋","蕹","齆"],"shèn shén":["甚"],"ruí":["甤","緌","蕤"],"yòng":["用","砽","苚","蒏","醟","㶲"],"shuǎi":["甩"],"béng":["甭","甮"],"yóu zhá":["甴"],"diàn tián shèng":["甸"],"tǐng dīng":["町","甼"],"zāi zī":["甾"],"bì qí":["畁"],"dá fú":["畗"],"cè jì":["畟"],"zāi zī tián":["畠"],"zhì chóu shì":["畤"],"fān pān":["畨","番"],"shē yú":["畬"],"dāng dàng dǎng":["當"],"jiāng qiáng":["疆"],"pǐ yǎ shū":["疋"],"jié qiè":["疌"],"yí nǐ":["疑"],"nè":["疒","眲","訥","讷"],"gē yì":["疙"],"nüè yào":["疟","瘧"],"lì lài":["疠","癘"],"yǎ xiā":["疨"],"xuē":["疶","蒆","薛","辥","辪","靴","鞾"],"dǎn da":["疸"],"fá biǎn":["疺"],"fèi féi":["疿","痱"],"shān diàn":["痁"],"téng chóng":["痋"],"tōng tóng":["痌"],"wěi yòu yù":["痏"],"tān shǐ":["痑"],"pū pù":["痡","鋪"],"bēng péng":["痭"],"má lìn":["痳"],"tiǎn diàn":["痶"],"ān yè è":["痷"],"kē ē":["痾"],"zhì chì":["瘈"],"jiǎ xiá xiā":["瘕"],"lěi huì":["瘣"],"chài cuó":["瘥"],"diān chēn":["瘨"],"da dá":["瘩"],"biě biē":["瘪"],"qué":["瘸"],"dàn dān":["癉"],"guì wēi":["癐"],"nòng nóng":["癑"],"biē biě":["癟"],"bō bǒ":["癷"],"bái":["白"],"jí bī":["皀"],"de dì dí dī":["的"],"pā bà":["皅"],"gāo háo":["皋"],"gāo yáo":["皐"],"lì luò bō":["皪"],"zhā cǔ":["皻"],"zhāo zhǎn dǎn":["皽"],"jiān jiàn":["监","監","鋻","间","鞬"],"gài gě hé":["盖"],"máng wàng":["盳"],"yuǎn":["盶","逺","遠"],"tián xián":["盷"],"xiāng xiàng":["相"],"dǔn":["盹","趸","躉"],"xì pǎn":["盻"],"shěng xǐng":["省"],"yún hùn":["眃"],"miǎn miàn":["眄"],"kàn kān":["看"],"yìng yāng yǎng":["眏"],"yǎo āo ǎo":["眑"],"jū xū kōu":["眗"],"yí chì":["眙"],"dié tì":["眣"],"bǐng fǎng":["眪"],"pàng pán":["眫"],"mī mí":["眯","瞇"],"xuàn shùn xún":["眴"],"tiào":["眺","粜","糶","覜","趒"],"zhe zhuó zháo zhāo":["着"],"qiáo shào xiāo":["睄"],"cuó zhuài":["睉"],"gùn":["睔","謴"],"suì zuì":["睟"],"pì bì":["睥","稫","辟"],"yì zé gāo":["睪"],"xǐng xìng":["睲"],"guì wèi kuì":["瞆"],"kòu jì":["瞉"],"qióng huán":["瞏"],"mán mén":["瞒","瞞"],"diāo dōu":["瞗"],"lou lóu lǘ":["瞜"],"shùn rún":["瞤"],"liào liǎo":["瞭","钌"],"jiàn xián":["瞯"],"wǔ mí":["瞴"],"guì kuì":["瞶"],"nǐng chēng":["矃"],"huò yuè":["矆"],"mēng méng":["矇"],"kuàng guō":["矌"],"guàn quán":["矔"],"mǎn mán":["矕"],"jīn guān qín":["矜"],"jīn qín guān":["矝"],"yù xù jué":["矞"],"jiǎo jiáo":["矫","矯"],"duǎn":["短"],"shí dàn":["石"],"gāng qiāng kòng":["矼"],"huā xū":["砉"],"pīn bīn fēn":["砏"],"yán yàn":["研","硏"],"luǒ kē":["砢"],"fú fèi":["砩","笰"],"zhǔ zhù":["砫"],"lá lì lā":["砬"],"kuāng guāng":["硄"],"gè luò":["硌"],"shuò shí":["硕","碩"],"wèi wéi ái":["硙"],"què kè kù":["硞"],"mǎng bàng":["硥"],"luò lòng":["硦"],"yǒng tóng":["硧"],"nüè":["硸","虐"],"kēng kěng":["硻"],"yān yǎn":["硽"],"zhuì chuí duǒ":["硾"],"kōng kòng":["硿"],"zòng cóng":["碂"],"jiān zhàn":["碊"],"lù liù":["碌","陆"],"què xī":["碏"],"lún lǔn lùn":["碖"],"náo gāng":["碙"],"jié yà":["碣"],"wèi wěi":["碨"],"tí dī":["碮"],"chá chā":["碴"],"qiāo què":["碻"],"sù xiè":["碿"],"liú liù":["磂","遛","鎦","馏"],"sī tí":["磃"],"bàng páng":["磅"],"huá kě gū":["磆"],"wěi kuǐ":["磈"],"xiá qià yà":["磍"],"lián qiān":["磏"],"wèi ái gài":["磑"],"lá lā":["磖"],"áo qiāo":["磝"],"pēng pèng":["磞","閛"],"yīn yǐn":["磤"],"lěi léi":["磥"],"mó mò":["磨"],"qì zhú":["磩"],"láo luò":["磱"],"pán bō":["磻"],"jí shé":["磼"],"hé qiāo qiào":["礉"],"kè huò":["礊"],"què hú":["礐"],"è qì":["礘"],"cǎ":["礤","礸"],"xián xín":["礥"],"léi lěi lèi":["礧"],"yán yǎn":["礹"],"qí zhǐ":["祇","蚔"],"bēng fāng":["祊"],"bì mì":["祕"],"suàn":["祘","笇","筭","算","蒜"],"piào piāo":["票"],"jì zhài":["祭"],"shuì lèi":["祱"],"jìn jīn":["禁"],"chán shàn":["禅"],"yáng shāng":["禓"],"zhī zhǐ tí":["禔"],"shàn chán":["禪"],"yú yù ǒu":["禺"],"zǐ zì":["秄"],"chá ná":["秅"],"zhǒng zhòng chóng":["种"],"hào mào":["秏"],"kù kū":["秙"],"zū":["租","葅"],"chèng":["秤","穪"],"huó kuò":["秮","秳"],"chēng chèn chèng":["称","稱"],"shì zhì":["秲","銴"],"fù pū":["秿"],"xùn zè":["稄"],"tú shǔ":["稌"],"zhùn zhǔn":["稕"],"jī qí":["稘","綨","觭"],"léng líng":["稜"],"zuì zú sū":["稡"],"xì qiè":["稧","郄"],"zhǒng zhòng":["種"],"zōng zǒng":["稯"],"xián jiān liàn":["稴"],"zī jiū":["稵"],"jī qǐ":["稽"],"ròng":["穃"],"shān cǎn cēn":["穇"],"mén méi":["穈"],"jǐ jì":["穖"],"xiāo rào":["穘"],"zhuō bó":["穛"],"tóng zhǒng zhòng":["穜"],"zuō":["穝"],"biāo pāo":["穮","藨"],"zhuō jué":["穱"],"cuán zàn":["穳"],"kōng kòng kǒng":["空"],"yū yǔ":["穻"],"zhǎi":["窄","鉙"],"báo":["窇","雹"],"kū zhú":["窋"],"jiào liáo liù":["窌"],"wā guī":["窐"],"tiǎo yáo":["窕"],"xūn yìn":["窨"],"yà yē":["窫"],"tián diān yǎn":["窴"],"chāo kē":["窼"],"kuǎn cuàn":["窽","窾"],"chù qì":["竐"],"qǔ kǒu":["竘"],"jìng zhěn":["竧"],"kǎn kàn":["竷"],"zhú dǔ":["竺"],"lè jīn":["竻"],"zhuì ruì":["笍"],"háng hàng":["笐"],"cén jìn hán":["笒"],"dā xiá nà":["笚"],"zé zuó":["笮"],"lóng lǒng":["笼","篭","籠","躘","龓"],"zhù zhú":["筑","築"],"dá dā":["答","荅"],"shāi":["筛","篩","簁","籭"],"yún jūn":["筠"],"láng làng":["筤","郎","阆"],"zhì zhǐ":["筫"],o:["筽"],"póu bù fú pú":["箁"],"pái bēi":["箄"],"gè":["箇","虼","鉻","铬"],"tái chí":["箈"],"guǎi dài":["箉"],"zhào dào":["箌"],"jīng qìng":["箐"],"lín lǐn":["箖"],"jùn qūn":["箘"],"shī yí":["箷","釶"],"yuē yào chuò":["箹"],"xiāo shuò qiào":["箾"],"gōng gǎn lǒng":["篢"],"páng péng":["篣"],"zhuó huò":["篧"],"jiǎn jiān":["篯"],"dí zhú":["篴"],"zān cēn cǎn":["篸"],"zhuàn suǎn zuàn":["篹"],"piǎo biāo":["篻"],"guó guì":["簂"],"cè jí":["簎"],"mì miè":["簚"],"shāi sī":["簛"],"sǔn zhuàn":["簨"],"gàn gǎn":["簳"],"bò bǒ":["簸"],"bó bù":["簿"],shi:["籂"],"zhēn jiān":["籈"],"zhuàn zuǎn":["籑"],"fān pān biān":["籓"],"sǒu shǔ":["籔"],"zuǎn":["籫","繤","纂","纉","纘","缵"],"nǚ":["籹","釹","钕"],"shā chǎo":["粆"],"kāng jīng":["粇"],"fěn":["粉","黺"],"cū":["粗","觕","麁","麄","麤"],"nián zhān":["粘"],"cè sè":["粣"],"zhōu yù":["粥"],"shēn sǎn":["糁"],"biān biǎn":["糄","萹"],"miàn":["糆","面","靣","麪","麫","麵","麺"],"hú hū hù":["糊"],"gǔ gòu":["糓"],"mí méi":["糜"],"sǎn shēn":["糝","糣"],"zāo":["糟","蹧","遭","醩"],"mì sī":["糸"],"jiū jiǔ":["糺"],"xì jì":["系","繫"],"zhēng zhěng":["糽"],"chà chǎ":["紁","衩"],"yuē yāo":["約","约"],"hóng gōng":["紅","红"],"hé gē":["紇","纥"],"wén wèn":["紋","纹"],"fóu":["紑"],"jì jié jiè":["紒"],"pī pí bǐ":["紕","纰"],"jīn jìn":["紟"],"zhā zā":["紥","紮"],"hā":["紦"],"fū fù":["紨"],"chōu chóu":["紬"],"lèi léi lěi":["累"],"bō bì":["紴"],"tiǎn zhěn":["紾"],"jiōng jiǒng":["絅"],"jié jiē":["結","结","节"],"guà kuā":["絓"],"bǎi mò":["絔"],"gēng huán":["絙"],"jié xié":["絜"],"quán shuān":["絟"],"gǎi ǎi":["絠"],"luò lào":["絡","络"],"bīng bēng pēng":["絣"],"gěi jǐ":["給","给"],"tóng tōng dòng":["絧"],"tiào diào dào":["絩"],"lěi lèi léi":["絫"],"gāi hài":["絯"],"chī zhǐ":["絺"],"wèn miǎn mán wàn":["絻"],"huán huàn wàn":["綄"],"qīn xiān":["綅"],"tì tí":["綈"],"yán xiàn":["綖"],"zōng zèng zòng":["綜"],"chēn lín":["綝"],"zhǔn zhùn":["綧"],"qiàn qīng zhēng":["綪"],"qìng qǐ":["綮"],"lún guān":["綸","纶"],"chuò chāo":["綽","绰"],"tián tǎn chān":["緂"],"lǜ lù":["緑","绿"],"ruǎn ruàn":["緛"],"jí qī":["緝"],"zhòng chóng":["緟","重"],"miáo máo":["緢"],"xiè yè":["緤"],"huǎn":["緩","缓","㬊"],"gēng gèng":["緪","縆"],"tōu xū shū":["緰"],"zōng zòng":["緵","繌"],"yùn gǔn":["緷"],"guā wō":["緺"],"yùn yūn wēn":["緼","縕"],"bāng bàng":["縍"],"gǔ hú":["縎","鶻"],"cī cuò suǒ":["縒"],"cuī shuāi":["縗"],"róng rǒng ròng":["縙"],"zài zēng":["縡"],"cài":["縩","菜","蔡"],"féng fèng":["縫"],"suō sù":["縮","缩"],"yǎn yǐn":["縯","酓"],"zòng zǒng":["縱","纵"],"zhuàn juàn":["縳"],"mò mù":["縸","莫"],"piǎo piāo":["縹","缥"],"fán pó":["繁"],"bēng bèng":["繃"],"móu miù miào liǎo":["繆"],"yáo yóu zhòu":["繇"],"zēng zèng":["繒","缯"],"jú jué":["繘"],"chuō chuò":["繛"],"zūn zǔn":["繜"],"rào":["繞","绕","遶"],"chǎn chán":["繟"],"huì huí":["繢","缋","藱"],"qiāo sāo zǎo":["繰"],"jiǎo zhuó":["繳","缴"],"dàn tán chán":["繵"],"nǒng":["繷"],"pú fú":["纀"],"yào lì":["纅"],"rǎng xiāng":["纕"],"lí sǎ xǐ lǐ":["纚"],"xiān qiàn":["纤"],"jīng jìng":["经"],"tí tì":["绨"],"bēng běng bèng":["绷"],"zōng zèng":["综"],"jī qī":["缉"],"wēn yùn yūn":["缊"],"fèng féng":["缝"],"shuāi cuī suī":["缞"],"miù móu liáo miào mù":["缪"],"qiāo sāo":["缲"],"fǒu":["缶","缹","缻","雬","鴀"],"bà ba pí":["罢","罷"],"guà guǎi":["罫"],"yáng xiáng":["羊","羏"],"měi gāo":["羙"],"yì xī":["羛"],"qiǎng qiān":["羟"],"qiāng kòng":["羫"],"qián xián yán":["羬"],"nóu":["羺"],"hóng gòng":["羾"],"pī bì pō":["翍"],"qú yù":["翑"],"ké":["翗"],"qiào qiáo":["翘"],"zhái dí":["翟"],"dào zhōu":["翢"],"hóu qú":["翵"],"shuǎ":["耍"],"ruǎn nuò":["耎"],"ér nài":["耏"],"zhuān duān":["耑"],"pá bà":["耙"],"chí sì":["耛"],"qù chú":["耝"],"lún lǔn":["耣"],"jí jiè":["耤"],"tāng tǎng":["耥"],"pǎng":["耪","覫"],"zhá zé":["耫"],"yē yé":["耶"],"yún yíng":["耺"],"wà tuǐ zhuó":["聉"],"ér nǜ":["聏"],"tiē zhé":["聑"],"dǐ zhì":["聜"],"qié":["聺"],"nǐ jiàn":["聻"],"lèi lē":["肋"],"cào":["肏","襙","鄵","鼜"],"bó dí":["肑"],"xiào xiāo":["肖"],"dù dǔ":["肚"],"chāi":["肞","釵","钗"],"hán qín hàn":["肣"],"pàng pán pàn":["肨","胖"],"zhūn chún":["肫"],"āng":["肮","骯"],"yù yō":["育"],"pí bǐ bì":["肶"],"fèi bì":["胇"],"bèi bēi":["背"],"fèi zǐ":["胏"],"píng pēng":["胓","苹"],"fū fú zhǒu":["胕"],"shèng shēng":["胜"],"kuà":["胯","跨","骻"],"gǎi hǎi":["胲"],"gē gé gā":["胳"],"néng nài":["能"],"guī kuì":["胿"],"mài mò":["脉"],"zāng zàng":["脏"],"jiǎo jué":["脚","角"],"cuǒ":["脞"],"de te":["脦"],"zuī juān":["脧"],"něi":["脮","腇","餒","馁","鮾","鯘"],"pú fǔ":["脯"],"niào":["脲"],"shuí":["脽"],"guò":["腂","過","鐹"],"là xī":["腊"],"yān ā":["腌"],"gāo gào":["膏"],"lù biāo":["膔"],"chuái":["膗"],"zhuān chuán chún zhuǎn":["膞"],"chuài":["膪","踹"],"fán pán":["膰"],"wǔ hū":["膴"],"shān dàn":["膻"],"tún":["臀","臋","蛌","豘","豚","軘","霕","飩","饨","魨","鲀","黗"],"bì bei":["臂"],"là gé":["臈"],"sào sāo":["臊"],"nào":["臑","閙","闹","鬧"],"ní luán":["臡"],"qiān xián":["臤"],"guàng jiǒng":["臦"],"guǎng jiǒng":["臩"],"chòu xiù":["臭"],"mián biān":["臱"],"dié zhí":["臷"],"zhī jìn":["臸"],"shè shě":["舍"],"pù":["舖","舗"],"bān bō pán":["般"],"kuā":["舿"],"gèn gěn":["艮"],"sè shǎi":["色"],"fú bó":["艴"],"jiāo qiú":["艽"],"chāi chā":["芆"],"sháo què":["芍"],"hù xià":["芐"],"zì zǐ":["芓"],"huì hū":["芔"],"tún chūn":["芚"],"jiè gài":["芥"],"xù zhù":["芧"],"yuán yán":["芫"],"xīn xìn":["芯"],"lún huā":["芲"],"wù hū":["芴"],"gōu gǒu":["芶"],"mào máo":["芼"],"fèi fú":["芾"],"chán yín":["苂"],"qiē":["苆"],"sū sù":["苏"],"tiáo sháo":["苕"],"lì jī":["苙"],"kē hē":["苛"],"jù qǔ":["苣"],"ruò rě":["若"],"zhù níng":["苧"],"pā bó":["苩"],"xiú":["苬"],"zhǎ zuó":["苲"],"jū chá":["苴"],"nié":["苶"],"shēng ruí":["苼"],"qié jiā":["茄"],"zǐ cí":["茈"],"qiàn xī":["茜"],"chǎi":["茝"],"fá pèi":["茷"],"ráo":["荛","蕘","襓","饒","饶"],"yíng xíng":["荥"],"qián xún":["荨","蕁"],"yìn yīn":["荫"],"hé hè":["荷"],"shā suō":["莎"],"péng fēng":["莑"],"shēn xīn":["莘"],"wǎn guān guǎn":["莞"],"yóu sù":["莤"],"shāo xiāo":["莦","蛸"],"làng liáng":["莨"],"piǎo fú":["莩"],"wèn wǎn miǎn":["莬"],"shì shí":["莳","蒔"],"tù tú":["莵"],"xiān liǎn":["莶","薟"],"wǎn yù":["菀"],"zōu chù":["菆"],"lù lǜ":["菉"],"jūn jùn":["菌"],"niè rěn":["菍"],"zī zì zāi":["菑"],"tú tù":["菟"],"jiē shà":["菨"],"qiáo zhǎo":["菬"],"tái zhī chí":["菭"],"fēi fěi":["菲","蜚"],"qín qīn jīn":["菳"],"zū jù":["菹","蒩"],"lǐn má":["菻"],"tián tiàn":["菾"],"tiē":["萜","貼","贴"],"luò là lào luō":["落"],"zhù zhuó zhe":["著"],"shèn rèn":["葚"],"gě gé":["葛"],"jùn suǒ":["葰"],"kuì kuài":["蒉"],"rú ná":["蒘"],"méng mēng měng":["蒙"],"yuán huán":["蒝"],"xú shú":["蒣"],"xí xì":["蒵"],"mì míng":["蓂"],"sōu sǒu":["蓃"],"gài gě hé hài":["蓋"],"yǎo zhuó":["蓔"],"diào tiáo dí":["蓧"],"xū qiū fū":["蓲"],"zí jú":["蓻"],"liǎo lù":["蓼"],xu:["蓿"],"hàn hǎn":["蔊"],"màn wàn mán":["蔓"],"pó bò":["蔢"],"fān fán bō":["蕃"],"hóng hòng":["蕻"],"yù ào":["薁","隩"],"xí xiào":["薂"],"báo bó bò":["薄"],"cí zī":["薋"],"wàn luàn":["薍"],"kǎo hāo":["薧"],"yuǎn wěi":["薳"],"zhòu chóu":["薵"],"wō mái":["薶"],"xiāo hào":["藃"],"yù xù xū":["藇"],"jiè jí":["藉"],"diào zhuó":["藋"],"cáng zàng":["藏"],"lǎ":["藞"],"chú zhū":["藸"],"pín píng":["蘋"],"gān hán":["虷"],"hóng jiàng":["虹"],"huī huǐ":["虺"],"xiā há":["虾"],"mǎ mà mā":["蚂"],"fāng bàng":["蚄"],"bàng bèng":["蚌"],"jué quē":["蚗"],"qín qián":["蚙"],"gōng zhōng":["蚣"],"fǔ fù":["蚥"],"dài dé":["蚮"],"gǒu qú xù":["蚼"],"bǒ pí":["蚾"],"shé yí":["蛇"],"tiě":["蛈","鉄","銕","鐡","鐵","铁","驖"],"gé luò":["蛒"],"máng bàng":["蛖"],"yì xǔ":["蛡"],"há gé":["蛤"],"qiè ní":["蛪"],"é yǐ":["蛾"],"zhē zhé":["蜇"],"là zhà":["蜡"],"suò":["蜶","逤"],"yóu qiú":["蝤"],"xiā hā":["蝦"],"xī qī":["螇"],"bī pí":["螕"],"nài něng":["螚"],"hé xiá":["螛"],"guì huǐ":["螝"],"mǎ mā mà":["螞"],"shì zhē":["螫"],"zhì dié":["螲"],"jiàn chán":["螹"],"ma má mò":["蟆"],"mǎng měng":["蟒"],"biē bié":["蟞"],"bēn fèi":["蟦"],"láo liáo":["蟧"],"yín xún":["蟫"],"lí lǐ":["蠡"],"xuè xiě":["血"],"xíng háng hàng héng":["行"],"shuāi cuī":["衰"],"tuó tuō":["袉"],"lǐng líng":["袊"],"bào páo pào":["袌"],"jù jiē":["袓"],"hè kè":["袔"],"yí yì":["袘","貤"],"nà jué":["袦"],"bèi pī":["被"],"chǐ nuǒ":["袲"],"chǐ qǐ duǒ nuǒ":["袳"],"jiá qiā jié":["袷"],"bó mò":["袹"],"guī guà":["袿"],"liè liě":["裂"],"chéng chěng":["裎"],"jiē gé":["裓"],"dāo chóu":["裯"],"shang cháng":["裳"],"yuān gǔn":["裷"],"yǎn ān":["裺"],"tì xī":["裼"],"fù fú":["褔"],"chǔ zhǔ":["褚"],"tuì tùn":["褪"],"lǎi":["襰"],"yào yāo":["要"],"qín tán":["覃"],"jiàn xiàn":["見","见"],"piǎn":["覑","諞","谝","貵","𡎚"],"piē miè":["覕"],"yíng yǐng":["覮"],"qù qū":["覰","覷","觑"],"jiàn biǎn":["覵"],"luó luǎn":["覶"],"zī zuǐ":["觜"],"huà xiè":["觟"],"jiě jiè xiè":["解","觧"],"xué hù":["觷"],"lì lù":["觻"],"tǎo":["討","讨"],"zhùn":["訰"],"zī zǐ":["訾"],"yí dài":["詒","诒"],"xiòng":["詗","诇"],"diào tiǎo":["誂"],"yí chǐ chì":["誃"],"lǎng làng":["誏"],"ēi éi ěi èi xī":["誒","诶"],"shuà":["誜"],"yǔ yù":["語","语","雨"],"shuō shuì yuè":["說","说"],"shuí shéi":["誰","谁"],"qū juè":["誳"],"chī lài":["誺"],"nì ná":["誽"],"diào tiáo":["調"],"pǐ bēi":["諀"],"jì jī":["諅"],"zé zuò zhǎ cuò":["諎"],"chù jí":["諔"],"háo xià":["諕"],"lùn lún":["論","论"],"shì dì":["諟"],"huà guā":["諣"],"xǐ shāi āi":["諰"],"nán nàn":["諵","難"],"miù":["謬","谬"],"zèn":["譖","谮"],"shí zhì":["識","识"],"juàn xuān":["讂"],"yí tuī":["讉"],"zhán":["讝"],"xǔ hǔ":["许"],"xiáng yáng":["详"],"tiáo diào zhōu":["调"],"chén shèn":["谌"],"mí mèi":["谜"],"màn mán":["谩"],"gǔ yù":["谷"],"huō huò huá":["豁"],"zhì zhài":["豸"],"huān huán":["貆"],"kěn kūn":["貇"],"mò hé":["貈"],"mò hé háo":["貉"],"jù lóu":["貗"],"zé zhài":["責","责"],"dài tè":["貸"],"bì bēn":["賁"],"jiǎ gǔ jià":["賈"],"xiōng mín":["賯"],"càng":["賶"],"zhuàn zuàn":["賺","赚"],"wàn zhuàn":["贃"],"gàn gòng zhuàng":["贛"],"yuán yùn":["贠"],"bēn bì":["贲"],"jiǎ gǔ":["贾"],"zǒu":["走","赱","鯐"],"dié tú":["趃"],"jū qiè":["趄"],"qū cù":["趋","趨"],"jí jié":["趌"],"guā huó":["趏"],"què qì jí":["趞"],"tàng tāng":["趟"],"chuō zhuó":["趠"],"qù cù":["趣"],"yuè tì":["趯"],"bō bào":["趵"],"kuà wù":["趶"],"guì jué":["趹"],"fāng fàng páng":["趽"],"páo bà":["跁"],"qí qǐ":["跂"],"jiàn chén":["跈"],"pǎo páo":["跑"],"diǎn diē tiē":["跕"],"jū jù qiè":["跙"],"bǒ":["跛"],"luò lì":["跞"],"dài duò duō chí":["跢"],"zhuǎi":["跩"],"bèng pián":["跰"],"tiào táo":["跳"],"shū chōu":["跾"],"liàng liáng":["踉"],"tà tā":["踏"],"chǎ":["蹅","鑔","镲"],"dí zhí":["蹢"],"dēng dèng":["蹬","鐙","镫"],"cèng":["蹭"],"dūn cún":["蹲"],"juě jué":["蹶"],"liāo":["蹽"],"xiè sǎ":["躠"],"tǐ":["躰","軆","骵"],"yà zhá gá":["轧","軋"],"xìn xiàn":["軐"],"fàn guǐ":["軓"],"zhuàn zhuǎn":["転"],"zhóu zhòu":["軸","轴"],"bú":["轐","醭","鳪"],"zhuǎn zhuàn zhuǎi":["转"],"zǎi zài":["载"],"niǎn zhǎn":["辗"],"biān bian":["边"],"dào biān":["辺"],"yǐ yí":["迆","迤","迱"],"guò guo guō":["过"],"wàng kuāng":["迋"],"hái huán":["还"],"zhè zhèi":["这"],"yuǎn yuàn":["远"],"zhì lì":["迣"],"zhù wǎng":["迬"],"zhuī duī":["追"],"shì kuò":["适"],"tòu":["透"],"tōng tòng":["通"],"guàng":["逛"],"dǎi dài":["逮"],"suì suí":["遂"],"tí dì":["遆"],"yí wèi":["遗"],"shì dí zhé":["適"],"cà":["遪"],"huán hái":["還"],"lí chí":["邌"],"kàng háng":["邟"],"nà nèi nā":["那"],"xié yá yé yú xú":["邪"],"gāi hái":["郂"],"huán xún":["郇"],"chī xī":["郗"],"hǎo":["郝"],"lì zhí":["郦"],"xiáo ǎo":["郩"],"dōu dū":["都"],"liǎo":["曢","鄝","镽"],"zàn cuán cuó":["酂","酇"],"dīng dǐng":["酊"],"cù zuò":["酢"],"fā pō":["酦"],"shāi shī":["酾"],"niàng":["酿","醸"],"qiú chōu":["醔"],"pō fā":["醗","醱"],"chǎn chěn":["醦"],"yàn liǎn xiān":["醶"],"niàng niáng":["釀"],"lǐ li":["里"],"lí xǐ xī":["釐"],"liǎo liào":["釕"],"dīng dìng":["釘","钉"],"qiǎo jiǎo":["釥"],"yú huá":["釪"],"huá wū":["釫"],"rì rèn jiàn":["釰","釼"],"dì dài":["釱"],"pī zhāo":["釽"],"yá yé":["釾"],"bǎ pá":["鈀","钯"],"tā tuó":["鉈","铊"],"běi":["鉳"],"bǐng píng":["鉼"],"hā kē":["鉿","铪"],"chòng":["銃","铳"],"xiǎng jiōng":["銄"],"yù sì":["銉"],"xù huì":["銊"],"rén rěn":["銋"],"shàn shuò":["銏"],"chì lì":["銐"],"xiǎn xǐ":["銑","铣"],"hóu xiàng":["銗"],"diào tiáo yáo":["銚"],"xiān kuò tiǎn guā":["銛","銽","铦"],"zhé niè":["銸"],"zhōng yōng":["銿"],"tōu tù dòu":["鋀"],"méi méng":["鋂"],"wàn jiǎn":["鋄","鎫"],"tǐng dìng":["鋌","铤"],"juān jiān cuān":["鋑"],"sī tuó":["鋖"],"juān xuān juàn":["鋗"],"wú huá wū":["鋘"],"zhuó chuò":["鋜"],"xíng xìng jīng":["鋞"],"jū jú":["鋦","锔"],"zuì niè":["鋷"],"yuān yuǎn wǎn wān":["鋺"],"gāng gàng":["鋼","钢"],"zhuī":["錐","锥","騅","骓","鵻"],"ā":["錒","锕"],"cuō chā":["鎈"],"suǒ sè":["鎍"],"yáo zú":["鎐"],"yè tà gé":["鎑"],"qiāng chēng":["鎗"],"gé lì":["鎘","镉","鬲"],"bī pī bì":["鎞"],"gǎo hào":["鎬"],"zú chuò":["鏃"],"xiū xiù":["鏅"],"shòu sōu":["鏉"],"dí dī":["鏑","镝"],"qiāo sǎn càn":["鏒"],"lù áo":["鏕"],"tāng táng":["鏜"],"jiàn zàn":["鏩"],"huì suì ruì":["鏸"],"qiǎng qiāng":["鏹","镪"],"sǎn xiàn sà":["鏾"],"jiǎn jiàn":["鐧","锏"],"dāng chēng":["鐺","铛"],"zuān zuàn":["鑽"],"sà xì":["钑"],"yào yuè":["钥"],"tǒu dǒu":["钭"],"zuàn zuān":["钻"],"qiān yán":["铅"],"pí pī":["铍"],"yáo diào tiáo":["铫"],"tāng tàng":["铴"],"pù pū":["铺"],"tán xiān":["锬"],"liù liú":["镏"],"hào gǎo":["镐"],"táng tāng":["镗"],"tán chán xín":["镡"],"huò shǎn":["閄"],"hàn bì":["閈","闬"],"kāng kàng":["閌","闶"],"xián jiàn jiān jiǎn":["閒"],"xiā xiǎ":["閕"],"xiǎ kě":["閜"],"biàn guān":["閞"],"hé gé":["閤","颌"],"hòng xiàng":["閧"],"sē xī":["閪"],"tíng tǐng":["閮"],"è yān":["閼","阏"],"hòng juǎn xiàng":["闂"],"bǎn pàn":["闆"],"dū shé":["闍","阇"],"què quē":["闕"],"tāng táng chāng":["闛"],"kàn hǎn":["闞","阚"],"xì sè tà":["闟"],"mēn mèn":["闷"],"quē què":["阙"],"yán diàn":["阽"],"ā ē":["阿"],"bēi pō pí":["陂"],"yàn yǎn":["隁"],"yú yáo shù":["隃"],"lóng lōng":["隆"],"duì zhuì":["隊"],"suí duò":["隋"],"gāi qí ái":["隑"],"huī duò":["隓","隳"],"wěi kuí":["隗"],"lì dài":["隸"],"zhuī cuī wéi":["隹"],"hè hú":["隺","鶮"],"jùn juàn":["隽","雋"],"nán nàn nuó":["难"],"què qiāo qiǎo":["雀"],"guàn huán":["雚"],"guī xī":["雟"],"sè xí":["雭"],"án":["雸"],"wù méng":["雺"],"tèng":["霯"],"lù lòu":["露"],"mái":["霾"],"jìng liàng":["靚"],"gé jí":["革"],"bǎ":["靶"],"yāng yàng":["鞅"],"gé tà sǎ":["鞈"],"biān yìng":["鞕"],"qiào shāo":["鞘"],"juān xuān":["鞙"],"shàng zhǎng":["鞝"],"pí bǐng bì bēi":["鞞"],la:["鞡"],"xiè dié":["鞢"],"ēng":["鞥"],"móu mù":["鞪"],"bì bǐng":["鞸"],"mèi wà":["韎"],"rǒu":["韖"],"shè xiè":["韘"],"yùn wēn":["韫"],"dùn dú":["頓","顿"],"duǐ":["頧"],"luō":["頱"],"bīn pín":["頻"],"yóng":["顒","颙","鰫"],"mān":["顢","颟"],"jǐng gěng":["颈"],"jié xié jiá":["颉"],"kē ké":["颏"],"pín bīn":["频"],"chàn zhàn":["颤"],"fēng fěng":["風","风"],"biāo diū":["颩"],"bá fú":["颰"],"sāo sōu":["颾"],"liù liáo":["飂"],"shí sì yì":["食"],"yǎng juàn":["飬"],"zhù tǒu":["飳"],"yí sì":["飴"],"zuò zé zhā":["飵"],"tiè":["飻","餮"],"xiǎng náng":["饟"],"táng xíng":["饧"],"gē le":["饹"],"chā zha":["馇"],"náng nǎng":["馕"],"yūn wò":["馧"],"zhī shì":["馶"],"xìn jìn":["馸"],"kuài jué":["駃"],"zǎng":["駔","驵"],"tái dài":["駘"],"xún xuān":["駨"],"liáng láng":["駺"],"piàn":["騗","騙","骗","魸"],"dài tái":["骀"],"sāo sǎo":["骚"],"gǔ gū":["骨"],"bèi mó":["骳"],"xiāo qiāo":["骹"],"bǎng pǎng":["髈"],"bó jué":["髉"],"bì pǒ":["髲"],"máo méng":["髳"],"kuò yuè":["髺"],"bā bà":["魞","鲃"],"jì cǐ":["鮆"],"bó bà":["鮊"],"zhǎ zhà":["鮓","鲊"],"chóu dài":["鮘"],"luò gé":["鮥"],"guī xié wā kuí":["鮭"],"xiān xiǎn":["鮮","鲜"],"pū bū":["鯆"],"yì sī":["鯣"],"bà bó":["鲌"],"guī xié":["鲑"],"sāi xǐ":["鳃"],"niǎo diǎo":["鳥"],"diāo zhāo":["鳭"],"gān hàn yàn":["鳱"],"fū guī":["鳺"],"jiān qiān zhān":["鳽"],"hé jiè":["鶡"],"piān biǎn":["鶣"],"chuàn zhì":["鶨"],"cāng qiāng":["鶬"],"sǔn xùn":["鶽"],"biāo páo":["麃"],"zhù cū":["麆"],"jūn qún":["麇","麕"],chi:["麶"],"mó me":["麼"],"mó me ma":["麽"],"mí mǒ":["麿"],"dàn shèn":["黮"],"zhěn yān":["黰"],"dǎn zhǎn":["黵"],"miǎn mǐn měng":["黾"],"hōu":["齁"],"nàng":["齉"],"qí jì zī zhāi":["齐"],"yín kěn yǎn":["龂"],"yín kěn":["龈"],"gōng wò":["龏"],"guī jūn qiū":["龜","龟"],"kuí wā":["䖯"],"lōu":["䁖"],"ōu qū":["𫭟"],"lóu lǘ":["𦝼"],"gǎ gā gá":["嘎"],"wā guà":["坬"],"zhǐ dǐ":["茋"],"gǒng hóng":["硔"],"yáo xiào":["滧"]},vg=new mg;Object.keys(_g).forEach((t=>{const e=_g[t];for(let n of e)vg.set(n,t)}));const yg=["zh","ch","sh","z","c","s","b","p","m","f","d","t","n","l","g","k","h","j","q","x","r","y","w",""],bg=["j","q","x"],xg=["uān","uán","uǎn","uàn","uan","uē","ué","uě","uè","ue","ūn","ún","ǔn","ùn","un","ū","ú","ǔ","ù","u"],wg={"uān":"üān","uán":"üán","uǎn":"üǎn","uàn":"üàn",uan:"üan","uē":"üē","ué":"üé","uě":"üě","uè":"üè",ue:"üe","ūn":"ǖn","ún":"ǘn","ǔn":"ǚn","ùn":"ǜn",un:"ün","ū":"ǖ","ú":"ǘ","ǔ":"ǚ","ù":"ǜ",u:"ü"},Sg=["ia","ian","iang","iao","ie","iu","iong","ua","uai","uan","uang","ue","ui","uo","üan","üe","van","ve"],Tg={"一":"yì","二":"èr","三":"sān","四":"sì","五":"wǔ","六":"liù","七":"qī","八":"bā","九":"jiǔ","十":"shí","百":"bǎi","千":"qiān","万":"wàn","亿":"yì","单":"dān","两":"liǎng","双":"shuāng","多":"duō","几":"jǐ","十一":"shí yī","零一":"líng yī","第一":"dì yī","一十":"yī shí","一十一":"yī shí yī"},Mg={"重":"chóng","行":"háng","斗":"dǒu","更":"gēng"};function Eg(){const t={"零一":"líng yī","〇一":"líng yī","十一":"shí yī","一十":"yī shí","第一":"dì yī","一十一":"yī shí yī"};for(let e in Tg)for(let n in Mg){const i=`${e}${n}`,r=`${Tg[e]} ${Mg[n]}`;t[i]=r}return t}const Ag=Eg(),Rg=Object.keys(Ag).map((t=>({zh:t,pinyin:Ag[t],probability:1e-12,length:pg(t),priority:fg.Normal,dict:Symbol("rule")}))),zg={"不":{"bú":[4]},"一":{"yí":[4],"yì":[1,2,3]}},Cg={"不":["的","而","之","后","也","还","地"],"一":["的","而","之","后","也","还","是"]},Pg=Object.keys(zg);function kg(t,e,n){if(-1===Pg.indexOf(t))return lm(t);if(e===n&&e&&lm(e)!==e)return cm(lm(t));if(n&&!Cg[t].includes(n)){const e=lm(n);if(e!==n){const n=gm(e),i=zg[t];for(let t in i){const e=i[t];if(-1!==e.indexOf(Number(n)))return t}}}}function Dg(t,e){if("了"===t&&(!e||!vg.get(e)))return"liǎo"}function Ig(t,e){if("々"===t)return e&&vg.get(e)?vg.get(e).split(" ")[0]:"tóng"}function Lg(t,e,n){return Ig(t,e)||Dg(t,e)||kg(t,e,n)||lm(t)}const jg={"南宫":"nán gōng","第五":"dì wǔ","万俟":"mò qí","司马":"sī mǎ","上官":"shàng guān","欧阳":"ōu yáng","夏侯":"xià hóu","诸葛":"zhū gě","闻人":"wén rén","东方":"dōng fāng","赫连":"hè lián","皇甫":"huáng fǔ","尉迟":"yù chí","公羊":"gōng yáng","澹台":"tán tái","公冶":"gōng yě","宗政":"zōng zhèng","濮阳":"pú yáng","淳于":"chún yú","太叔":"tài shū","申屠":"shēn tú","公孙":"gōng sūn","仲孙":"zhòng sūn","轩辕":"xuān yuán","令狐":"líng hú","钟离":"zhōng lí","宇文":"yǔ wén","长孙":"zhǎng sūn","慕容":"mù róng","鲜于":"xiān yú","闾丘":"lǘ qiū","司徒":"sī tú","司空":"sī kōng","亓官":"qí guān","司寇":"sī kòu","仉督":"zhǎng dū","子车":"zǐ jū","颛孙":"zhuān sūn","端木":"duān mù","巫马":"wū mǎ","公西":"gōng xī","漆雕":"qī diāo","乐正":"yuè zhèng","壤驷":"rǎng sì","公良":"gōng liáng","拓跋":"tuò bá","夹谷":"jiá gǔ","宰父":"zǎi fǔ","榖梁":"gǔ liáng","段干":"duàn gān","百里":"bǎi lǐ","东郭":"dōng guō","南门":"nán mén","呼延":"hū yán","羊舌":"yáng shé","梁丘":"liáng qiū","左丘":"zuǒ qiū","东门":"dōng mén","西门":"xī mén","句龙":"gōu lóng","毌丘":"guàn qiū","赵":"zhào","钱":"qián","孙":"sūn","李":"lǐ","周":"zhōu","吴":"wú","郑":"zhèng","王":"wáng","冯":"féng","陈":"chén","褚":"chǔ","卫":"wèi","蒋":"jiǎng","沈":"shěn","韩":"hán","杨":"yáng","朱":"zhū","秦":"qín","尤":"yóu","许":"xǔ","何":"hé","吕":"lǚ","施":"shī","张":"zhāng","孔":"kǒng","曹":"cáo","严":"yán","华":"huà","金":"jīn","魏":"wèi","陶":"táo","姜":"jiāng","戚":"qī","谢":"xiè","邹":"zōu","喻":"yù","柏":"bǎi","水":"shuǐ","窦":"dòu","章":"zhāng","云":"yún","苏":"sū","潘":"pān","葛":"gě","奚":"xī","范":"fàn","彭":"péng","郎":"láng","鲁":"lǔ","韦":"wéi","昌":"chāng","马":"mǎ","苗":"miáo","凤":"fèng","花":"huā","方":"fāng","俞":"yú","任":"rén","袁":"yuán","柳":"liǔ","酆":"fēng","鲍":"bào","史":"shǐ","唐":"táng","费":"fèi","廉":"lián","岑":"cén","薛":"xuē","雷":"léi","贺":"hè","倪":"ní","汤":"tāng","滕":"téng","殷":"yīn","罗":"luó","毕":"bì","郝":"hǎo","邬":"wū","安":"ān","常":"cháng","乐":"yuè","于":"yú","时":"shí","傅":"fù","皮":"pí","卞":"biàn","齐":"qí","康":"kāng","伍":"wǔ","余":"yú","元":"yuán","卜":"bǔ","顾":"gù","孟":"mèng","平":"píng","黄":"huáng","和":"hé","穆":"mù","萧":"xiāo","尹":"yǐn","姚":"yáo","邵":"shào","湛":"zhàn","汪":"wāng","祁":"qí","毛":"máo","禹":"yǔ","狄":"dí","米":"mǐ","贝":"bèi","明":"míng","臧":"zāng","计":"jì","伏":"fú","成":"chéng","戴":"dài","谈":"tán","宋":"sòng","茅":"máo","庞":"páng","熊":"xióng","纪":"jǐ","舒":"shū","屈":"qū","项":"xiàng","祝":"zhù","董":"dǒng","梁":"liáng","杜":"dù","阮":"ruǎn","蓝":"lán","闵":"mǐn","席":"xí","季":"jì","麻":"má","强":"qiáng","贾":"jiǎ","路":"lù","娄":"lóu","危":"wēi","江":"jiāng","童":"tóng","颜":"yán","郭":"guō","梅":"méi","盛":"shèng","林":"lín","刁":"diāo","钟":"zhōng","徐":"xú","邱":"qiū","骆":"luò","高":"gāo","夏":"xià","蔡":"cài","田":"tián","樊":"fán","胡":"hú","凌":"líng","霍":"huò","虞":"yú","万":"wàn","支":"zhī","柯":"kē","昝":"zǎn","管":"guǎn","卢":"lú","莫":"mò","经":"jīng","房":"fáng","裘":"qiú","缪":"miào","干":"gān","解":"xiè","应":"yīng","宗":"zōng","丁":"dīng","宣":"xuān","贲":"bēn","邓":"dèng","郁":"yù","单":"shàn","杭":"háng","洪":"hóng","包":"bāo","诸":"zhū","左":"zuǒ","石":"shí","崔":"cuī","吉":"jí","钮":"niǔ","龚":"gōng","程":"chéng","嵇":"jī","邢":"xíng","滑":"huá","裴":"péi","陆":"lù","荣":"róng","翁":"wēng","荀":"xún","羊":"yáng","於":"yū","惠":"huì","甄":"zhēn","曲":"qū","家":"jiā","封":"fēng","芮":"ruì","羿":"yì","储":"chǔ","靳":"jìn","汲":"jí","邴":"bǐng","糜":"mí","松":"sōng","井":"jǐng","段":"duàn","富":"fù","巫":"wū","乌":"wū","焦":"jiāo","巴":"bā","弓":"gōng","牧":"mù","隗":"wěi","山":"shān","谷":"gǔ","车":"chē","侯":"hóu","宓":"mì","蓬":"péng","全":"quán","郗":"xī","班":"bān","仰":"yǎng","秋":"qiū","仲":"zhòng","伊":"yī","宫":"gōng","宁":"nìng","仇":"qiú","栾":"luán","暴":"bào","甘":"gān","钭":"tǒu","厉":"lì","戎":"róng","祖":"zǔ","武":"wǔ","符":"fú","刘":"liú","景":"jǐng","詹":"zhān","束":"shù","龙":"lóng","叶":"yè","幸":"xìng","司":"sī","韶":"sháo","郜":"gào","黎":"lí","蓟":"jì","薄":"bó","印":"yìn","宿":"sù","白":"bái","怀":"huái","蒲":"pú","邰":"tái","从":"cóng","鄂":"è","索":"suǒ","咸":"xián","籍":"jí","赖":"lài","卓":"zhuó","蔺":"lìn","屠":"tú","蒙":"méng","池":"chí","乔":"qiáo","阴":"yīn","鬱":"yù","胥":"xū","能":"nài","苍":"cāng","双":"shuāng","闻":"wén","莘":"shēn","党":"dǎng","翟":"zhái","谭":"tán","贡":"gòng","劳":"láo","逄":"páng","姬":"jī","申":"shēn","扶":"fú","堵":"dǔ","冉":"rǎn","宰":"zǎi","郦":"lì","雍":"yōng","郤":"xì","璩":"qú","桑":"sāng","桂":"guì","濮":"pú","牛":"niú","寿":"shòu","通":"tōng","边":"biān","扈":"hù","燕":"yān","冀":"jì","郏":"jiá","浦":"pǔ","尚":"shàng","农":"nóng","温":"wēn","别":"bié","庄":"zhuāng","晏":"yàn","柴":"chái","瞿":"qú","阎":"yán","充":"chōng","慕":"mù","连":"lián","茹":"rú","习":"xí","宦":"huàn","艾":"ài","鱼":"yú","容":"róng","向":"xiàng","古":"gǔ","易":"yì","慎":"shèn","戈":"gē","廖":"liào","庾":"yǔ","终":"zhōng","暨":"jì","居":"jū","衡":"héng","步":"bù","都":"dū","耿":"gěng","满":"mǎn","弘":"hóng","匡":"kuāng","国":"guó","文":"wén","寇":"kòu","广":"guǎng","禄":"lù","阙":"quē","东":"dōng","欧":"ōu","殳":"shū","沃":"wò","利":"lì","蔚":"wèi","越":"yuè","夔":"kuí","隆":"lóng","师":"shī","巩":"gǒng","厍":"shè","聂":"niè","晁":"cháo","勾":"gōu","敖":"áo","融":"róng","冷":"lěng","訾":"zī","辛":"xīn","阚":"kàn","那":"nā","简":"jiǎn","饶":"ráo","空":"kōng","曾":"zēng","母":"mǔ","沙":"shā","乜":"niè","养":"yǎng","鞠":"jū","须":"xū","丰":"fēng","巢":"cháo","关":"guān","蒯":"kuǎi","相":"xiàng","查":"zhā","后":"hòu","荆":"jīng","红":"hóng","游":"yóu","竺":"zhú","权":"quán","逯":"lù","盖":"gě","益":"yì","桓":"huán","公":"gōng","牟":"móu","哈":"hǎ","言":"yán","福":"fú","肖":"xiāo","区":"ōu","覃":"qín","朴":"piáo","繁":"pó","员":"yùn","句":"gōu","要":"yāo","过":"guō","钻":"zuān","谌":"chén","折":"shé","召":"shào","郄":"qiè","撒":"sǎ","甯":"nìng","六":"lù","啜":"chuài","行":"xíng"},Ng=Object.keys(jg).map((t=>({zh:t,pinyin:jg[t],probability:1+pg(t),length:pg(t),priority:fg.Surname,dict:Symbol("surname")}))),Og={"这个":"zhè ge","成为":"chéng wéi","认为":"rèn wéi","作为":"zuò wéi","部分":"bù fen","要求":"yāo qiú","应该":"yīng gāi","增长":"zēng zhǎng","提供":"tí gōng","觉得":"jué de","任务":"rèn wu","那个":"nà ge","称为":"chēng wéi","为主":"wéi zhǔ","了解":"liǎo jiě","处理":"chǔ lǐ","皇上":"huáng shang","只要":"zhǐ yào","大量":"dà liàng","力量":"lì liàng","几乎":"jī hū","干部":"gàn bù","目的":"mù dì","行为":"xíng wéi","只见":"zhǐ jiàn","认识":"rèn shi","市长":"shì zhǎng","师父":"shī fu","调查":"diào chá","重新":"chóng xīn","分为":"fēn wéi","知识":"zhī shi","导弹":"dǎo dàn","质量":"zhì liàng","行款":"háng kuǎn","行列":"háng liè","行话":"háng huà","行业":"háng yè","隔行":"gé háng","在行":"zài háng","行家":"háng jia","内行":"nèi háng","外行":"wài háng","同行":"tóng háng","本行":"běn háng","行伍":"háng wǔ","洋行":"yáng háng","银行":"yín háng","商行":"shāng háng","支行":"zhī háng","总行":"zǒng háng","行情":"háng qíng","懂行":"dǒng háng","行规":"háng guī","行当":"háng dang","行货":"háng huò","太行":"tài háng","入行":"rù háng","中行":"zhōng háng","农行":"nóng háng","工行":"gōng háng","建行":"jiàn háng","各行":"gè háng","行号":"háng hào","行高":"háng gāo","行首":"háng shǒu","行尾":"háng wěi","行末":"háng mò","行长":"háng cháng","行距":"háng jù","换行":"huàn háng","行会":"háng huì","行辈":"háng bèi","行道":"háng dào","道行":"dào heng","参与":"cān yù","充分":"chōng fèn","尽管":"jǐn guǎn","生长":"shēng zhǎng","数量":"shù liàng","应当":"yīng dāng","院长":"yuàn zhǎng","强调":"qiáng diào","只能":"zhǐ néng","音乐":"yīn yuè","以为":"yǐ wéi","处于":"chǔ yú","部长":"bù zhǎng","蒙古":"měng gǔ","只有":"zhǐ yǒu","适当":"shì dàng","只好":"zhǐ hǎo","成长":"chéng zhǎng","高兴":"gāo xìng","不了":"bù liǎo","产量":"chǎn liàng","胖子":"pàng zi","显得":"xiǎn de","只是":"zhǐ shì","似的":"shì de","率领":"shuài lǐng","改为":"gǎi wéi","不禁":"bù jīn","成分":"chéng fèn","答应":"dā ying","少年":"shào nián","兴趣":"xìng qù","太监":"tài jian","休息":"xiū xi","校长":"xiào zhǎng","更新":"gēng xīn","合同":"hé tong","喝道":"hè dào","重庆":"chóng qìng","重建":"chóng jiàn","使得":"shǐ de","审查":"shěn chá","累计":"lěi jì","给予":"jǐ yǔ","极为":"jí wéi","冠军":"guàn jūn","仿佛":"fǎng fú","头发":"tóu fa","投降":"tóu xiáng","家长":"jiā zhǎng","仔细":"zǐ xì","要是":"yào shi","将领":"jiàng lǐng","含量":"hán liàng","更为":"gèng wéi","积累":"jī lěi","地处":"dì chǔ","县长":"xiàn zhǎng","少女":"shào nǚ","路上":"lù shang","只怕":"zhǐ pà","能量":"néng liàng","储量":"chǔ liàng","供应":"gōng yìng","挑战":"tiǎo zhàn","西藏":"xī zàng","记得":"jì de","总量":"zǒng liàng","当真":"dàng zhēn","将士":"jiàng shì","差别":"chā bié","较为":"jiào wéi","长老":"zhǎng lǎo","大夫":"dài fu","差异":"chā yì","懂得":"dǒng de","尽量":"jǐn liàng","模样":"mú yàng","的确":"dí què","为首":"wéi shǒu","便宜":"pián yi","更名":"gēng míng","石头":"shí tou","州长":"zhōu zhǎng","为止":"wéi zhǐ","漂亮":"piào liang","炮弹":"pào dàn","藏族":"zàng zú","角色":"jué sè","当作":"dàng zuò","尽快":"jǐn kuài","人为":"rén wéi","重复":"chóng fù","胡同":"hú tòng","差距":"chā jù","弟兄":"dì xiong","大将":"dà jiàng","睡觉":"shuì jiào","一觉":"yí jiào","团长":"tuán zhǎng","队长":"duì zhǎng","区长":"qū zhǎng","难得":"nán dé","丫头":"yā tou","会长":"huì zhǎng","弟弟":"dì di","王爷":"wáng ye","重量":"zhòng liàng","誉为":"yù wéi","家伙":"jiā huo","华山":"huà shān","椅子":"yǐ zi","流量":"liú liàng","长大":"zhǎng dà","勉强":"miǎn qiǎng","会计":"kuài jì","过分":"guò fèn","济南":"jǐ nán","调动":"diào dòng","燕京":"yān jīng","少将":"shào jiàng","中毒":"zhòng dú","晓得":"xiǎo de","变更":"biàn gēng","打更":"dǎ gēng","认得":"rèn de","苹果":"píng guǒ","念头":"niàn tou","挣扎":"zhēng zhá","三藏":"sān zàng","剥削":"bō xuē","丞相":"chéng xiàng","少量":"shǎo liàng","寻思":"xún si","夺得":"duó dé","干线":"gàn xiàn","呼吁":"hū yù","处罚":"chǔ fá","长官":"zhǎng guān","柏林":"bó lín","亲戚":"qīn qi","身分":"shēn fèn","胳膊":"gē bo","着手":"zhuó shǒu","炸弹":"zhà dàn","咳嗽":"ké sou","叶子":"yè zi","外长":"wài zhǎng","供给":"gōng jǐ","师长":"shī zhǎng","变量":"biàn liàng","应有":"yīng yǒu","下载":"xià zài","乐器":"yuè qì","间接":"jiàn jiē","底下":"dǐ xià","打扮":"dǎ bàn","子弹":"zǐ dàn","弹药":"dàn yào","热量":"rè liàng","削弱":"xuē ruò","骨干":"gǔ gàn","容量":"róng liàng","模糊":"mó hu","转动":"zhuàn dòng","称呼":"chēng hu","科长":"kē zhǎng","处置":"chǔ zhì","着重":"zhuó zhòng","着急":"zháo jí","强迫":"qiǎng pò","庭长":"tíng zhǎng","首相":"shǒu xiàng","喇嘛":"lǎ ma","镇长":"zhèn zhǎng","只管":"zhǐ guǎn","重重":"chóng chóng","免得":"miǎn de","着实":"zhuó shí","度假":"dù jià","真相":"zhēn xiàng","相貌":"xiàng mào","处分":"chǔ fèn","委屈":"wěi qu","为期":"wéi qī","伯伯":"bó bo","伯子":"bǎi zi","圈子":"quān zi","见识":"jiàn shi","笼罩":"lǒng zhào","与会":"yù huì","都督":"dū du","都市":"dū shì","成都":"chéng dū","首都":"shǒu dū","帝都":"dì dū","王都":"wáng dū","东都":"dōng dū","都护":"dū hù","都城":"dū chéng","建都":"jiàn dū","迁都":"qiān dū","故都":"gù dū","定都":"dìng dū","中都":"zhōng dū","六安":"lù ān","宰相":"zǎi xiàng","较量":"jiào liàng","对称":"duì chèn","总长":"zǒng zhǎng","相公":"xiàng gong","空白":"kòng bái","打量":"dǎ liang","水分":"shuǐ fèn","舌头":"shé tou","没收":"mò shōu","行李":"xíng li","判处":"pàn chǔ","散文":"sǎn wén","处境":"chǔ jìng","孙子":"sūn zi","拳头":"quán tou","打发":"dǎ fā","组长":"zǔ zhǎng","骨头":"gǔ tou","宁可":"nìng kě","更换":"gēng huàn","薄弱":"bó ruò","还原":"huán yuán","重修":"chóng xiū","重来":"chóng lái","只顾":"zhǐ gù","爱好":"ài hào","馒头":"mán tou","军长":"jūn zhǎng","首长":"shǒu zhǎng","厂长":"chǎng zhǎng","司长":"sī zhǎng","长子":"zhǎng zǐ","强劲":"qiáng jìng","恰当":"qià dàng","头儿":"tóu er","站长":"zhàn zhǎng","折腾":"zhē teng","相处":"xiāng chǔ","统率":"tǒng shuài","中将":"zhōng jiàng","命中":"mìng zhòng","名将":"míng jiàng","木头":"mù tou","动弹":"dòng tan","地壳":"dì qiào","干活":"gàn huó","少爷":"shào ye","水量":"shuǐ liàng","补给":"bǔ jǐ","尾巴":"wěi ba","来得":"lái de","好奇":"hào qí","钥匙":"yào shi","当做":"dàng zuò","沉着":"chén zhuó","哑巴":"yǎ ba","车子":"chē zi","上将":"shàng jiàng","恶心":"ě xīn","担子":"dàn zi","应届":"yīng jiè","主角":"zhǔ jué","运转":"yùn zhuǎn","兄长":"xiōng zhǎng","格式":"gé shì","正月":"zhēng yuè","营长":"yíng zhǎng","当成":"dàng chéng","女婿":"nǚ xu","咽喉":"yān hóu","重阳":"chóng yáng","化为":"huà wéi","吐蕃":"tǔ bō","钻进":"zuān jìn","乐队":"yuè duì","亮相":"liàng xiàng","被子":"bèi zi","舍得":"shě de","杉木":"shā mù","击中":"jī zhòng","排长":"pái zhǎng","假期":"jià qī","分量":"fèn liàng","数次":"shù cì","提防":"dī fáng","吆喝":"yāo he","查处":"chá chǔ","量子":"liàng zǐ","里头":"lǐ tou","调研":"diào yán","伺候":"cì hou","重申":"chóng shēn","枕头":"zhěn tou","拚命":"pīn mìng","社长":"shè zhǎng","归还":"guī huán","批量":"pī liàng","畜牧":"xù mù","点着":"diǎn zháo","甚为":"shèn wéi","小将":"xiǎo jiàng","着眼":"zhuó yǎn","处死":"chǔ sǐ","厌恶":"yàn wù","鼓乐":"gǔ yuè","树干":"shù gàn","秘鲁":"bì lǔ","大方":"dà fāng","外头":"wài tou","班长":"bān zhǎng","星宿":"xīng xiù","宁愿":"nìng yuàn","钦差":"qīn chāi","为数":"wéi shù","勾当":"gòu dàng","削减":"xuē jiǎn","间谍":"jiàn dié","埋怨":"mán yuàn","结实":"jiē shi","计量":"jì liáng","淹没":"yān mò","村长":"cūn zhǎng","连长":"lián zhǎng","自给":"zì jǐ","武将":"wǔ jiàng","温差":"wēn chā","直奔":"zhí bèn","供求":"gōng qiú","剂量":"jì liàng","道长":"dào zhǎng","泄露":"xiè lòu","王八":"wáng ba","切割":"qiē gē","间隔":"jiàn gé","一晃":"yì huǎng","长假":"cháng jià","令狐":"líng hú","为害":"wéi hài","句子":"jù zi","偿还":"cháng huán","疙瘩":"gē da","燕山":"yān shān","堵塞":"dǔ sè","夺冠":"duó guàn","扎实":"zhā shi","电荷":"diàn hè","看守":"kān shǒu","复辟":"fù bì","郁闷":"yù mèn","尽早":"jǐn zǎo","切断":"qiē duàn","指头":"zhǐ tou","为生":"wéi shēng","畜生":"chù sheng","切除":"qiē chú","着力":"zhuó lì","着想":"zhuó xiǎng","级差":"jí chā","投奔":"tóu bèn","棍子":"gùn zi","含糊":"hán hu","少妇":"shào fù","兴致":"xìng zhì","纳闷":"nà mèn","干流":"gàn liú","卷起":"juǎn qǐ","扇子":"shàn zi","更改":"gēng gǎi","笼络":"lǒng luò","喇叭":"lǎ ba","载荷":"zài hè","妥当":"tuǒ dàng","为难":"wéi nán","着陆":"zhuó lù","燕子":"yàn zi","干吗":"gàn má","白发":"bái fà","总得":"zǒng děi","夹击":"jiā jī","曝光":"bào guāng","曲调":"qǔ diào","相机":"xiàng jī","叫化":"jiào huà","角逐":"jué zhú","啊哟":"ā yō","载重":"zài zhòng","长辈":"zhǎng bèi","出差":"chū chāi","垛口":"duǒ kǒu","撇开":"piē kāi","厅长":"tīng zhǎng","组分":"zǔ fèn","误差":"wù chā","家当":"jiā dàng","传记":"zhuàn jì","个子":"gè zi","铺设":"pū shè","干事":"gàn shì","杆菌":"gǎn jūn","定量":"dìng liàng","运载":"yùn zài","会儿":"huì er","酋长":"qiú zhǎng","重返":"chóng fǎn","差额":"chā é","露面":"lòu miàn","钻研":"zuān yán","大城":"dài chéng","上当":"shàng dàng","销量":"xiāo liàng","作坊":"zuō fang","照相":"zhào xiàng","哎呀":"āi yā","调集":"diào jí","看中":"kàn zhòng","议长":"yì zhǎng","风筝":"fēng zheng","辟邪":"bì xié","空隙":"kòng xì","更迭":"gēng dié","偏差":"piān chā","声调":"shēng diào","适量":"shì liàng","屯子":"tún zi","无量":"wú liàng","空地":"kòng dì","调度":"diào dù","散射":"sǎn shè","创伤":"chuāng shāng","海参":"hǎi shēn","满载":"mǎn zài","重叠":"chóng dié","落差":"luò chā","单调":"dān diào","老将":"lǎo jiàng","人参":"rén shēn","间断":"jiàn duàn","重现":"chóng xiàn","夹杂":"jiā zá","调用":"diào yòng","萝卜":"luó bo","附着":"fù zhuó","应声":"yìng shēng","主将":"zhǔ jiàng","罪过":"zuì guo","咀嚼":"jǔ jué","为政":"wéi zhèng","过量":"guò liàng","乐曲":"yuè qǔ","负荷":"fù hè","枪弹":"qiāng dàn","悄然":"qiǎo rán","处方":"chǔ fāng","悄声":"qiǎo shēng","曲子":"qǔ zi","情调":"qíng diào","挑衅":"tiǎo xìn","代为":"dài wéi","了结":"liǎo jié","打中":"dǎ zhòng","酒吧":"jiǔ bā","懒得":"lǎn de","增量":"zēng liàng","衣着":"yī zhuó","部将":"bù jiàng","要塞":"yào sài","茶几":"chá jī","杠杆":"gàng gǎn","出没":"chū mò","鲜有":"xiǎn yǒu","间隙":"jiàn xì","重担":"zhòng dàn","重演":"chóng yǎn","重试":"chóng shì","应酬":"yìng chou","只当":"zhǐ dāng","毋宁":"wú nìng","包扎":"bāo zā","前头":"qián tou","卷烟":"juǎn yān","非得":"fēi děi","弹道":"dàn dào","杆子":"gān zi","门将":"mén jiàng","后头":"hòu tou","喝彩":"hè cǎi","暖和":"nuǎn huo","累积":"lěi jī","调遣":"diào qiǎn","倔强":"jué jiàng","宝藏":"bǎo zàng","丧事":"sāng shì","约莫":"yuē mo","纤夫":"qiàn fū","更替":"gēng tì","装载":"zhuāng zài","背包":"bēi bāo","帖子":"tiě zi","松散":"sōng sǎn","呼喝":"hū hè","可恶":"kě wù","自转":"zì zhuàn","供电":"gōng diàn","反省":"fǎn xǐng","坦率":"tǎn shuài","苏打":"sū dá","本分":"běn fèn","落得":"luò de","鄙薄":"bǐ bó","相间":"xiāng jiàn","单薄":"dān bó","混蛋":"hún dàn","贞观":"zhēn guān","附和":"fù hè","能耐":"néng nài","吓唬":"xià hu","未了":"wèi liǎo","引着":"yǐn zháo","抽调":"chōu diào","沙子":"shā zi","席卷":"xí juǎn","标的":"biāo dì","别扭":"biè niu","思量":"sī liang","喝采":"hè cǎi","论语":"lún yǔ","盖子":"gài zi","分外":"fèn wài","弄堂":"lòng táng","乐舞":"yuè wǔ","雨量":"yǔ liàng","毛发":"máo fà","差遣":"chāi qiǎn","背负":"bēi fù","转速":"zhuàn sù","声乐":"shēng yuè","夹攻":"jiā gōng","供水":"gōng shuǐ","主干":"zhǔ gàn","惩处":"chéng chǔ","长相":"zhǎng xiàng","公差":"gōng chāi","榴弹":"liú dàn","省得":"shěng de","条子":"tiáo zi","重围":"chóng wéi","阻塞":"zǔ sè","劲风":"jìng fēng","纠葛":"jiū gé","颠簸":"diān bǒ","点中":"diǎn zhòng","重创":"zhòng chuāng","姥姥":"lǎo lao","迷糊":"mí hu","公家":"gōng jia","几率":"jī lǜ","苦闷":"kǔ mèn","度量":"dù liàng","差错":"chā cuò","暑假":"shǔ jià","参差":"cēn cī","搭载":"dā zài","助长":"zhù zhǎng","相称":"xiāng chèn","红晕":"hóng yùn","舍命":"shě mìng","喜好":"xǐ hào","列传":"liè zhuàn","劲敌":"jìng dí","蛤蟆":"há ma","请假":"qǐng jià","钉子":"dīng zi","沉没":"chén mò","高丽":"gāo lí","休假":"xiū jià","无为":"wú wéi","巴结":"bā jie","了得":"liǎo dé","变相":"biàn xiàng","核弹":"hé dàn","亲家":"qìng jia","承载":"chéng zài","喝问":"hè wèn","还击":"huán jī","交还":"jiāo huán","将令":"jiàng lìng","单于":"chán yú","空缺":"kòng quē","绿林":"lù lín","胆量":"dǎn liàng","执着":"zhí zhuó","低调":"dī diào","闭塞":"bì sè","轻薄":"qīng bó","得当":"dé dàng","占卜":"zhān bǔ","扫帚":"sào zhou","龟兹":"qiū cí","年长":"nián zhǎng","外传":"wài zhuàn","头子":"tóu zi","裁缝":"cái feng","礼乐":"lǐ yuè","血泊":"xuè pō","散乱":"sǎn luàn","动量":"dòng liàng","倒腾":"dǎo teng","取舍":"qǔ shě","咱家":"zán jiā","长发":"cháng fà","爪哇":"zhǎo wā","弹壳":"dàn ké","省悟":"xǐng wù","嚷嚷":"rāng rang","连累":"lián lèi","应得":"yīng dé","族长":"zú zhǎng","柜子":"guì zi","擂鼓":"léi gǔ","眩晕":"xuàn yùn","调配":"tiáo pèi","躯干":"qū gàn","差役":"chāi yì","坎坷":"kǎn kě","少儿":"shào ér","乐团":"yuè tuán","养分":"yǎng fèn","退还":"tuì huán","格调":"gé diào","语调":"yǔ diào","音调":"yīn diào","乐府":"yuè fǔ","古朴":"gǔ pǔ","打点":"dǎ diǎn","差使":"chāi shǐ","匀称":"yún chèn","瘦削":"shòu xuē","膏药":"gāo yao","吞没":"tūn mò","调任":"diào rèn","散居":"sǎn jū","上头":"shàng tóu","风靡":"fēng mǐ","放假":"fàng jià","估量":"gū liang","失当":"shī dàng","中弹":"zhòng dàn","妄为":"wàng wéi","长者":"zhǎng zhě","起哄":"qǐ hòng","末了":"mò liǎo","相声":"xiàng sheng","校正":"jiào zhèng","劝降":"quàn xiáng","矢量":"shǐ liàng","沉闷":"chén mèn","给与":"jǐ yǔ","解法":"jiě fǎ","塞外":"sài wài","将校":"jiàng xiào","嗜好":"shì hào","没落":"mò luò","朴刀":"pō dāo","片子":"piān zi","切削":"qiē xiāo","弹丸":"dàn wán","稀薄":"xī bó","亏得":"kuī dé","间歇":"jiàn xiē","翘首":"qiáo shǒu","色调":"sè diào","处决":"chǔ jué","表率":"biǎo shuài","尺子":"chǐ zi","招降":"zhāo xiáng","称职":"chèn zhí","斗篷":"dǒu peng","铺子":"pù zi","底子":"dǐ zi","负载":"fù zài","干警":"gàn jǐng","倒数":"dào shǔ","将官":"jiàng guān","锄头":"chú tou","归降":"guī xiáng","疟疾":"nüè ji","唠叨":"láo dao","限量":"xiàn liàng","屏息":"bǐng xī","重逢":"chóng féng","器乐":"qì yuè","氢弹":"qīng dàn","脖颈":"bó gěng","妃子":"fēi zi","处事":"chǔ shì","参量":"cān liàng","轻率":"qīng shuài","缥缈":"piāo miǎo","中奖":"zhòng jiǎng","才干":"cái gàn","施舍":"shī shě","卷子":"juàn zi","游说":"yóu shuì","巷子":"xiàng zi","膀胱":"páng guāng","切勿":"qiè wù","看管":"kān guǎn","风头":"fēng tou","精干":"jīng gàn","高差":"gāo chā","恐吓":"kǒng hè","扁担":"biǎn dàn","给养":"jǐ yǎng","格子":"gé zi","供需":"gōng xū","反差":"fǎn chā","飞弹":"fēi dàn","微薄":"wēi bó","发型":"fà xíng","即兴":"jí xìng","攒动":"cuán dòng","间或":"jiàn huò","浅薄":"qiǎn bó","乐章":"yuè zhāng","顺差":"shùn chā","调子":"diào zi","相位":"xiàng wèi","转子":"zhuàn zǐ","劲旅":"jìng lǚ","咔嚓":"kā chā","了事":"liǎo shì","转悠":"zhuàn you","当铺":"dàng pù","爪子":"zhuǎ zi","单子":"dān zi","好战":"hào zhàn","燕麦":"yàn mài","只许":"zhǐ xǔ","干练":"gàn liàn","女将":"nǚ jiàng","酒量":"jiǔ liàng","划船":"huá chuán","伎俩":"jì liǎng","挑拨":"tiǎo bō","少校":"shào xiào","着落":"zhuó luò","憎恶":"zēng wù","刻薄":"kè bó","要挟":"yāo xié","用处":"yòng chu","还手":"huán shǒu","模具":"mú jù","执著":"zhí zhuó","喝令":"hè lìng","保长":"bǎo zhǎng","吸着":"xī zhe","症结":"zhēng jié","公转":"gōng zhuàn","校勘":"jiào kān","重提":"chóng tí","扫兴":"sǎo xìng","铺盖":"pū gài","长史":"zhǎng shǐ","差价":"chā jià","压根":"yà gēn","怔住":"zhèng zhù","应允":"yīng yǔn","切入":"qiē rù","战将":"zhàn jiàng","年少":"nián shào","舍身":"shě shēn","执拗":"zhí niù","处世":"chǔ shì","中风":"zhòng fēng","等量":"děng liàng","放量":"fàng liàng","腔调":"qiāng diào","老少":"lǎo shào","没入":"mò rù","瓜葛":"guā gé","将帅":"jiàng shuài","车载":"chē zài","窝囊":"wō nang","长进":"zhǎng jìn","可汗":"kè hán","并州":"bīng zhōu","供销":"gōng xiāo","切片":"qiē piàn","差事":"chāi shì","知会":"zhī hui","鹰爪":"yīng zhǎo","处女":"chǔ nǚ","切磋":"qiē cuō","日头":"rì tou","押解":"yā jiè","滋长":"zī zhǎng","道观":"dào guàn","脚色":"jué sè","当量":"dāng liàng","婆家":"pó jia","缘分":"yuán fèn","空闲":"kòng xián","好色":"hào sè","怒喝":"nù hè","笼统":"lǒng tǒng","边塞":"biān sài","何曾":"hé céng","重合":"chóng hé","零散":"líng sǎn","轰隆":"hōng lōng","化子":"huà zi","内蒙":"nèi měng","数落":"shǔ luò","逆差":"nì chā","牟利":"móu lì","栅栏":"zhà lan","中标":"zhòng biāo","调档":"diào dàng","佝偻":"gōu lóu","场子":"chǎng zi","甲壳":"jiǎ qiào","重温":"chóng wēn","炮制":"páo zhì","返还":"fǎn huán","自传":"zì zhuàn","高调":"gāo diào","殷红":"yān hóng","固着":"gù zhuó","强求":"qiǎng qiú","本相":"běn xiàng","骄横":"jiāo hèng","草率":"cǎo shuài","气闷":"qì mèn","着色":"zhuó sè","宁肯":"nìng kěn","兴头":"xìng tou","拘泥":"jū nì","夹角":"jiā jiǎo","发髻":"fà jì","猛将":"měng jiàng","约摸":"yuē mo","拖累":"tuō lěi","呢绒":"ní róng","钻探":"zuān tàn","夹层":"jiā céng","落魄":"luò pò","巷道":"hàng dào","运量":"yùn liàng","解闷":"jiě mèn","空儿":"kòng er","估摸":"gū mo","好客":"hào kè","钻孔":"zuān kǒng","糊弄":"hù nòng","荥阳":"xíng yáng","烦闷":"fán mèn","仓卒":"cāng cù","分叉":"fēn chà","厂子":"chǎng zi","小调":"xiǎo diào","少阳":"shào yáng","受降":"shòu xiáng","染坊":"rǎn fáng","胳臂":"gē bei","将门":"jiàng mén","模板":"mú bǎn","配给":"pèi jǐ","为伍":"wéi wǔ","跟头":"gēn tou","划算":"huá suàn","累赘":"léi zhui","哄笑":"hōng xiào","晕眩":"yūn xuàn","干掉":"gàn diào","缝制":"féng zhì","难处":"nán chù","着意":"zhuó yì","蛮横":"mán hèng","奇数":"jī shù","短发":"duǎn fà","生还":"shēng huán","还清":"huán qīng","看护":"kān hù","直率":"zhí shuài","奏乐":"zòu yuè","载客":"zài kè","专横":"zhuān hèng","湮没":"yān mò","空格":"kòng gé","铺垫":"pū diàn","良将":"liáng jiàng","哗啦":"huā lā","散漫":"sǎn màn","脱发":"tuō fà","送还":"sòng huán","埋没":"mái mò","累及":"lěi jí","薄雾":"bó wù","调离":"diào lí","舌苔":"shé tāi","机长":"jī zhǎng","栓塞":"shuān sè","配角":"pèi jué","切口":"qiē kǒu","创口":"chuāng kǒu","哈欠":"hā qian","实弹":"shí dàn","铺平":"pū píng","哈达":"hǎ dá","懒散":"lǎn sǎn","实干":"shí gàn","填空":"tián kòng","刁钻":"diāo zuān","乐师":"yuè shī","量变":"liàng biàn","诱降":"yòu xiáng","搪塞":"táng sè","征调":"zhēng diào","夹道":"jiā dào","干咳":"gān ké","止咳":"zhǐ ké","乐工":"yuè gōng","划过":"huá guò","着火":"zháo huǒ","更正":"gēng zhèng","给付":"jǐ fù","空子":"kòng zi","哪吒":"né zhā","正着":"zhèng zháo","刷子":"shuā zi","丧葬":"sāng zàng","夹带":"jiā dài","安分":"ān fèn","中意":"zhòng yì","长孙":"zhǎng sūn","校订":"jiào dìng","卷曲":"juǎn qū","载运":"zài yùn","投弹":"tóu dàn","柞蚕":"zuò cán","份量":"fèn liàng","调换":"diào huàn","了然":"liǎo rán","咧嘴":"liě zuǐ","典当":"diǎn dàng","寒假":"hán jià","长兄":"zhǎng xiōng","给水":"jǐ shuǐ","须发":"xū fà","枝干":"zhī gàn","属相":"shǔ xiàng","哄抢":"hōng qiǎng","刻划":"kè huà","塞子":"sāi zi","单干":"dān gàn","还乡":"huán xiāng","兆头":"zhào tou","寺观":"sì guàn","督率":"dū shuài","啊哈":"ā ha","割舍":"gē shě","抹布":"mā bù","好恶":"hào wù","下处":"xià chǔ","消长":"xiāo zhǎng","离间":"lí jiàn","准头":"zhǔn tou","校对":"jiào duì","什物":"shí wù","番禺":"pān yú","佛爷":"fó ye","吗啡":"mǎ fēi","盐分":"yán fèn","虎将":"hǔ jiàng","薄荷":"bò he","独处":"dú chǔ","空位":"kòng wèi","铺路":"pū lù","乌拉":"wū lā","调回":"diào huí","来头":"lái tou","闲散":"xián sǎn","胶卷":"jiāo juǎn","冒失":"mào shi","干劲":"gàn jìn","弦乐":"xián yuè","相国":"xiàng guó","丹参":"dān shēn","助兴":"zhù xìng","铺开":"pū kāi","次长":"cì zhǎng","发卡":"fà qiǎ","拮据":"jié jū","刹车":"shā chē","生发":"shēng fà","重播":"chóng bō","缝合":"féng hé","音量":"yīn liàng","少尉":"shào wèi","冲压":"chòng yā","苍劲":"cāng jìng","厚薄":"hòu báo","威吓":"wēi hè","外相":"wài xiàng","呼号":"hū háo","着迷":"zháo mí","挑担":"tiāo dàn","纹路":"wén lù","还俗":"huán sú","强横":"qiáng hèng","着数":"zhāo shù","降顺":"xiáng shùn","挑明":"tiǎo míng","眯缝":"mī feng","分内":"fèn nèi","更衣":"gēng yī","软和":"ruǎn huo","尽兴":"jìn xìng","号子":"hào zi","爪牙":"zhǎo yá","败将":"bài jiàng","猜中":"cāi zhòng","结扎":"jié zā","没空":"méi kòng","夹缝":"jiā fèng","拾掇":"shí duo","掺和":"chān huo","簸箕":"bò ji","电量":"diàn liàng","荷载":"hè zǎi","调式":"diào shì","处身":"chǔ shēn","打手":"dǎ shǒu","弹弓":"dàn gōng","横蛮":"hèng mán","能干":"néng gàn","校点":"jiào diǎn","加载":"jiā zài","干校":"gàn xiào","哄传":"hōng chuán","校注":"jiào zhù","淤塞":"yū sè","马扎":"mǎ zhá","月氏":"yuè zhī","高干":"gāo gàn","经传":"jīng zhuàn","曾孙":"zēng sūn","好斗":"hào dòu","关卡":"guān qiǎ","逃奔":"táo bèn","磨蹭":"mó ceng","牟取":"móu qǔ","颤栗":"zhàn lì","蚂蚱":"mà zha","撮合":"cuō he","趔趄":"liè qie","摔打":"shuāi dǎ","台子":"tái zi","分得":"fēn de","粘着":"nián zhuó","采邑":"cài yì","散装":"sǎn zhuāng","婀娜":"ē nuó","兴味":"xìng wèi","行头":"xíng tou","气量":"qì liàng","调运":"diào yùn","处治":"chǔ zhì","乐音":"yuè yīn","充塞":"chōng sè","恫吓":"dòng hè","论调":"lùn diào","相中":"xiāng zhòng","民乐":"mín yuè","炮仗":"pào zhang","丧服":"sāng fú","骁将":"xiāo jiàng","量刑":"liàng xíng","缝补":"féng bǔ","财会":"cái kuài","大干":"dà gàn","历数":"lì shǔ","校场":"jiào chǎng","塞北":"sài běi","识相":"shí xiàng","辱没":"rǔ mò","鲜亮":"xiān liàng","语塞":"yǔ sè","露脸":"lòu liǎn","凉快":"liáng kuai","腰杆":"yāo gǎn","溜达":"liū da","嘎嘎":"gā gā","公干":"gōng gàn","桔梗":"jié gěng","挑逗":"tiǎo dòu","看门":"kān mén","乐歌":"yuè gē","拓片":"tà piàn","挑动":"tiǎo dòng","准将":"zhǔn jiàng","遒劲":"qiú jìng","磨坊":"mò fáng","逶迤":"wēi yí","搅和":"jiǎo huo","摩挲":"mó suō","作弄":"zuò nòng","苗头":"miáo tou","打颤":"dǎ zhàn","大藏":"dà zàng","畜牲":"chù shēng","勾搭":"gōu da","树荫":"shù yīn","树杈":"shù chà","铁杆":"tiě gǎn","将相":"jiàng xiàng","份子":"fèn zi","视差":"shì chā","绿荫":"lǜ yīn","枪杆":"qiāng gǎn","缝纫":"féng rèn","愁闷":"chóu mèn","点将":"diǎn jiàng","华佗":"huà tuó","劲射":"jìng shè","箱笼":"xiāng lǒng","终了":"zhōng liǎo","鬓发":"bìn fà","结巴":"jiē ba","苦干":"kǔ gàn","看家":"kān jiā","正旦":"zhēng dàn","中肯":"zhòng kěn","厦门":"xià mén","东莞":"dōng guǎn","食量":"shí liàng","宫调":"gōng diào","间作":"jiàn zuò","弹片":"dàn piàn","差池":"chā chí","漂白":"piǎo bái","杠子":"gàng zi","调处":"tiáo chǔ","好动":"hào dòng","转炉":"zhuàn lú","屏气":"bǐng qì","夹板":"jiā bǎn","哀乐":"āi yuè","干道":"gàn dào","苦处":"kǔ chù","劈柴":"pǐ chái","长势":"zhǎng shì","天华":"tiān huá","共处":"gòng chǔ","校验":"jiào yàn","出塞":"chū sài","磨盘":"mò pán","萎靡":"wěi mǐ","奔丧":"bēn sāng","唱和":"chàng hè","大调":"dà diào","非分":"fēi fèn","钻营":"zuān yíng","夹子":"jiā zi","超载":"chāo zài","更始":"gēng shǐ","铃铛":"líng dang","披散":"pī sàn","发还":"fā huán","转轮":"zhuàn lún","横财":"hèng cái","泡桐":"pāo tóng","抛撒":"pāo sǎ","天呀":"tiān yā","糊糊":"hū hu","躯壳":"qū qiào","通量":"tōng liàng","奉还":"fèng huán","午觉":"wǔ jiào","闷棍":"mèn gùn","浪头":"làng tou","砚台":"yàn tái","油坊":"yóu fáng","学长":"xué zhǎng","过载":"guò zài","笔调":"bǐ diào","衣被":"yī bèi","畜产":"xù chǎn","调阅":"diào yuè","蛮干":"mán gàn","曾祖":"zēng zǔ","提干":"tí gàn","变调":"biàn diào","覆没":"fù mò","模子":"mú zi","乐律":"yuè lǜ","称心":"chèn xīn","木杆":"mù gān","重印":"chóng yìn","自省":"zì xǐng","提调":"tí diào","看相":"kàn xiàng","芋头":"yù tou","下切":"xià qiē","塞上":"sài shàng","铺张":"pū zhāng","藤蔓":"téng wàn","薄幸":"bó xìng","解数":"xiè shù","褪去":"tuì qù","霰弹":"xiàn dàn","柚木":"yóu mù","痕量":"hén liàng","雅乐":"yǎ yuè","号哭":"háo kū","诈降":"zhà xiáng","猪圈":"zhū juàn","咋舌":"zé shé","铣床":"xǐ chuáng","防弹":"fáng dàn","健将":"jiàn jiàng","丽水":"lí shuǐ","削发":"xuē fà","空当":"kòng dāng","多相":"duō xiàng","鲜见":"xiǎn jiàn","划桨":"huá jiǎng","载波":"zài bō","跳蚤":"tiào zao","俏皮":"qiào pí","吧嗒":"bā dā","结发":"jié fà","了断":"liǎo duàn","同调":"tóng diào","石磨":"shí mò","时差":"shí chā","鼻塞":"bí sè","挑子":"tiāo zi","推磨":"tuī mò","武侯":"wǔ hóu","抹煞":"mǒ shā","调转":"diào zhuǎn","籍没":"jí mò","还债":"huán zhài","调演":"diào yǎn","分划":"fēn huá","奇偶":"jī ǒu","断喝":"duàn hè","闷雷":"mèn léi","狼藉":"láng jí","饭量":"fàn liàng","还礼":"huán lǐ","转调":"zhuǎn diào","星相":"xīng xiàng","手相":"shǒu xiàng","配乐":"pèi yuè","盖头":"gài tou","连杆":"lián gǎn","簿记":"bù jì","刀把":"dāo bà","量词":"liàng cí","名角":"míng jué","步调":"bù diào","校本":"jiào běn","账簿":"zhàng bù","隽永":"juàn yǒng","稍为":"shāo wéi","易传":"yì zhuàn","乐谱":"yuè pǔ","牵累":"qiān lěi","答理":"dā li","喝斥":"hè chì","吟哦":"yín é","干渠":"gàn qú","海量":"hǎi liàng","精当":"jīng dàng","着床":"zhuó chuáng","月相":"yuè xiàng","庶几":"shù jī","宫观":"gōng guàn","论处":"lùn chǔ","征辟":"zhēng bì","厚朴":"hòu pò","介壳":"jiè qiào","吭哧":"kēng chī","咯血":"kǎ xiě","铺陈":"pū chén","重生":"chóng shēng","乐理":"yuè lǐ","哀号":"āi háo","藏历":"zàng lì","刚劲":"gāng jìng","削平":"xuē píng","浓荫":"nóng yīn","城垛":"chéng duǒ","当差":"dāng chāi","正传":"zhèng zhuàn","并处":"bìng chǔ","创面":"chuāng miàn","旦角":"dàn jué","薄礼":"bó lǐ","晃荡":"huàng dang","臊子":"sào zi","家什":"jiā shí","闷头":"mēn tóu","美发":"měi fà","度数":"dù shu","着凉":"zháo liáng","闯将":"chuǎng jiàng","几案":"jī àn","姘头":"pīn tou","差数":"chā shù","散碎":"sǎn suì","壅塞":"yōng sè","寒颤":"hán zhàn","牵强":"qiān qiǎng","无间":"wú jiàn","轮转":"lún zhuàn","号叫":"háo jiào","铺排":"pū pái","降伏":"xiáng fú","轧钢":"zhá gāng","东阿":"dōng ē","病假":"bìng jià","累加":"lěi jiā","梗塞":"gěng sè","弹夹":"dàn jiā","钻心":"zuān xīn","晃眼":"huǎng yǎn","魔爪":"mó zhǎo","标量":"biāo liàng","憋闷":"biē mèn","猜度":"cāi duó","处士":"chǔ shì","官差":"guān chāi","讨还":"tǎo huán","长门":"cháng mén","馏分":"liú fēn","里弄":"lǐ lòng","色相":"sè xiàng","雅兴":"yǎ xìng","角力":"jué lì","弹坑":"dàn kēng","枝杈":"zhī chà","夹具":"jiā jù","处刑":"chǔ xíng","悍将":"hàn jiàng","好学":"hào xué","好好":"hǎo hǎo","银发":"yín fà","扫把":"sào bǎ","法相":"fǎ xiàng","贵干":"guì gàn","供气":"gōng qì","空余":"kòng yú","捆扎":"kǔn zā","瘠薄":"jí bó","浆糊":"jiàng hu","嘎吱":"gā zhī","调令":"diào lìng","法帖":"fǎ tiè","淋病":"lìn bìng","调派":"diào pài","转盘":"zhuàn pán","供稿":"gōng gǎo","差官":"chāi guān","忧闷":"yōu mèn","教长":"jiào zhǎng","重唱":"chóng chàng","酒兴":"jiǔ xìng","乐坛":"yuè tán","花呢":"huā ní","叱喝":"chì hè","膀臂":"bǎng bì","得空":"dé kòng","转圈":"zhuàn quān","横暴":"hèng bào","哄抬":"hōng tái","引吭":"yǐn háng","载货":"zài huò","中计":"zhòng jì","官长":"guān zhǎng","相面":"xiàng miàn","看头":"kàn tou","盼头":"pàn tou","意兴":"yì xìng","军乐":"jūn yuè","累次":"lěi cì","骨嘟":"gǔ dū","燕赵":"yān zhào","报丧":"bào sāng","弥撒":"mí sa","挨斗":"ái dòu","扁舟":"piān zhōu","丑角":"chǒu jué","吊丧":"diào sāng","强将":"qiáng jiàng","重奏":"chóng zòu","发辫":"fà biàn","着魔":"zháo mó","着法":"zhāo fǎ","盛放":"shèng fàng","填塞":"tián sè","凶横":"xiōng hèng","稽首":"qǐ shǒu","碑帖":"bēi tiè","冲量":"chōng liàng","发菜":"fà cài","假发":"jiǎ fà","翻卷":"fān juǎn","小量":"xiǎo liàng","胶着":"jiāo zhuó","里子":"lǐ zi","调调":"diào diao","散兵":"sǎn bīng","高挑":"gāo tiǎo","播撒":"bō sǎ","夹心":"jiā xīn","扇动":"shān dòng","叨扰":"tāo rǎo","霓裳":"ní cháng","捻子":"niǎn zi","弥缝":"mí féng","撒布":"sǎ bù","场院":"cháng yuàn","省亲":"xǐng qīn","提拉":"tí lā","惯量":"guàn liàng","强逼":"qiáng bī","强征":"qiáng zhēng","晕车":"yùn chē","数道":"shù dào","带累":"dài lèi","拓本":"tà běn","嫌恶":"xián wù","宿将":"sù jiàng","龟裂":"jūn liè","缠夹":"chán jiā","发式":"fà shì","隔扇":"gé shàn","天分":"tiān fèn","癖好":"pǐ hào","四通":"sì tōng","白术":"bái zhú","划伤":"huá shāng","角斗":"jué dòu","听差":"tīng chāi","岁差":"suì chā","丧礼":"sāng lǐ","脉脉":"mò mò","削瘦":"xuē shòu","撒播":"sǎ bō","莎草":"suō cǎo","犍为":"qián wéi","调头":"diào tóu","龙卷":"lóng juǎn","外调":"wài diào","字帖":"zì tiè","卷发":"juǎn fà","揣度":"chuǎi duó","洋相":"yáng xiàng","散光":"sǎn guāng","骨碌":"gū lu","薄命":"bó mìng","笼头":"lóng tóu","咽炎":"yān yán","碌碡":"liù zhou","片儿":"piàn er","纤手":"qiàn shǒu","散体":"sǎn tǐ","内省":"nèi xǐng","强留":"qiáng liú","解送":"jiè sòng","反间":"fǎn jiàn","少壮":"shào zhuàng","留空":"liú kōng","告假":"gào jià","咳血":"ké xuè","薄暮":"bó mù","铺轨":"pū guǐ","磨削":"mó xuē","治丧":"zhì sāng","叉子":"chā zi","哄动":"hōng dòng","蛾子":"é zi","出落":"chū luò","股长":"gǔ zhǎng","贵处":"guì chù","还魂":"huán hún","例假":"lì jià","刹住":"shā zhù","身量":"shēn liàng","同好":"tóng hào","模量":"mó liàng","更生":"gēng shēng","服丧":"fú sāng","率直":"shuài zhí","字模":"zì mú","散架":"sǎn jià","答腔":"dā qiāng","交恶":"jiāo wù","薄情":"bó qíng","眼泡":"yǎn pāo","袅娜":"niǎo nuó","草垛":"cǎo duò","冲劲":"chòng jìn","呢喃":"ní nán","切中":"qiè zhòng","挑灯":"tiǎo dēng","还愿":"huán yuàn","激将":"jī jiàng","更鼓":"gēng gǔ","没药":"mò yào","败兴":"bài xìng","切面":"qiē miàn","散户":"sǎn hù","累进":"lěi jìn","背带":"bēi dài","秤杆":"chèng gǎn","碾坊":"niǎn fáng","簿子":"bù zi","扳手":"bān shǒu","铅山":"yán shān","儒将":"rú jiàng","重光":"chóng guāng","剪发":"jiǎn fà","长上":"zhǎng shàng","小传":"xiǎo zhuàn","压轴":"yā zhòu","弱冠":"ruò guàn","花卷":"huā juǎn","横祸":"hèng huò","夹克":"jiā kè","光晕":"guāng yùn","披靡":"pī mǐ","对调":"duì diào","夹持":"jiā chí","空额":"kòng é","平调":"píng diào","铺床":"pū chuáng","丧钟":"sāng zhōng","作乐":"zuò lè","少府":"shào fǔ","数数":"shuò shuò","奔头":"bèn tou","进给":"jìn jǐ","率性":"shuài xìng","乐子":"lè zi","绑扎":"bǎng zā","挑唆":"tiǎo suō","漂洗":"piǎo xǐ","夹墙":"jiā qiáng","咳喘":"ké chuǎn","乜斜":"miē xie","错处":"cuò chù","闷酒":"mèn jiǔ","时调":"shí diào","重孙":"chóng sūn","经幢":"jīng chuáng","圩场":"xū chǎng","调门":"diào mén","花头":"huā tóu","划拉":"huá la","套色":"tào shǎi","粗率":"cū shuài","相率":"xiāng shuài","款识":"kuǎn zhì","吁请":"yù qǐng","荫蔽":"yīn bì","文蛤":"wén gé","嘀嗒":"dī dā","调取":"diào qǔ","交差":"jiāo chāi","落子":"luò zǐ","相册":"xiàng cè","絮叨":"xù dao","落发":"luò fà","异相":"yì xiàng","浸没":"jìn mò","角抵":"jué dǐ","卸载":"xiè zài","春卷":"chūn juǎn","扎挣":"zhá zheng","畜养":"xù yǎng","吡咯":"bǐ luò","垛子":"duò zi","恶少":"è shào","发际":"fà jì","红苕":"hóng sháo","糨糊":"jiàng hu","哭丧":"kū sāng","稍息":"shào xī","晕船":"yùn chuán","校样":"jiào yàng","外差":"wài chā","脚爪":"jiǎo zhǎo","铺展":"pū zhǎn","芫荽":"yán sui","夹紧":"jiā jǐn","尿泡":"suī pào","丧乱":"sāng luàn","凶相":"xiōng xiàng","华发":"huá fà","打场":"dǎ cháng","云量":"yún liàng","正切":"zhèng qiē","划拳":"huá quán","划艇":"huá tǐng","评传":"píng zhuàn","拉纤":"lā qiàn","句读":"jù dòu","散剂":"sǎn jì","骨殖":"gǔ shi","塞音":"sè yīn","铺叙":"pū xù","阏氏":"yān zhī","冷颤":"lěng zhàn","煞住":"shā zhù","少男":"shào nán","管乐":"guǎn yuè","号啕":"háo táo","纳降":"nà xiáng","拥塞":"yōng sè","万乘":"wàn shèng","杆儿":"gǎn ér","葛藤":"gé téng","簿籍":"bù jí","皮夹":"pí jiā","校准":"jiào zhǔn","允当":"yǔn dàng","器量":"qì liàng","选调":"xuǎn diào","扮相":"bàn xiàng","干才":"gàn cái","基干":"jī gàn","割切":"gē qiē","国乐":"guó yuè","卡壳":"qiǎ ké","辟谷":"bì gǔ","磨房":"mò fáng","咿呀":"yī yā","芥末":"jiè mo","薄技":"bó jì","产假":"chǎn jià","诗兴":"shī xìng","重出":"chóng chū","转椅":"zhuàn yǐ","酌量":"zhuó liang","簿册":"bù cè","藏青":"zàng qīng","的士":"dī shì","调人":"diào rén","解元":"jiè yuán","茎干":"jīng gàn","巨量":"jù liàng","榔头":"láng tou","率真":"shuài zhēn","喷香":"pèn xiāng","锁钥":"suǒ yuè","虾蟆":"há má","相图":"xiàng tú","兴会":"xìng huì","灶头":"zào tóu","重婚":"chóng hūn","钻洞":"zuān dòng","忖度":"cǔn duó","党参":"dǎng shēn","调温":"diào wēn","杆塔":"gān tǎ","葛布":"gé bù","拱券":"gǒng xuàn","夹生":"jiā shēng","露馅":"lòu xiàn","恰切":"qià qiè","散见":"sǎn jiàn","哨卡":"shào qiǎ","烫发":"tàng fà","体量":"tǐ liàng","挺括":"tǐng kuò","系带":"jì dài","相士":"xiàng shì","羊圈":"yáng juàn","转矩":"zhuàn jǔ","吧台":"bā tái","苍术":"cāng zhú","菲薄":"fěi bó","蛤蚧":"gé jiè","蛤蜊":"gé lí","瓜蔓":"guā wàn","怪相":"guài xiàng","临帖":"lín tiè","女红":"nǚ gōng","刨床":"bào chuáng","翘楚":"qiáo chǔ","数九":"shǔ jiǔ","谈兴":"tán xìng","雄劲":"xióng jìng","扎染":"zā rǎn","遮荫":"zhē yīn","周正":"zhōu zhèng","赚头":"zhuàn tou","扒手":"pá shǒu","搀和":"chān huo","诚朴":"chéng pǔ","肚量":"dù liàng","干结":"gān jié","工尺":"gōng chě","家累":"jiā lěi","曲水":"qū shuǐ","沙参":"shā shēn","挑花":"tiǎo huā","阿门":"ā mén","背篓":"bēi lǒu","瘪三":"biē sān","裁处":"cái chǔ","创痛":"chuāng tòng","福相":"fú xiàng","更动":"gēng dòng","豪兴":"háo xìng","还阳":"huán yáng","还嘴":"huán zuǐ","借调":"jiè diào","卷云":"juǎn yún","流弹":"liú dàn","想头":"xiǎng tou","削价":"xuē jià","校阅":"jiào yuè","雅量":"yǎ liàng","别传":"bié zhuàn","薄酒":"bó jiǔ","春假":"chūn jià","发妻":"fà qī","哗哗":"huā huā","宽绰":"kuān chuo","了悟":"liǎo wù","切花":"qiē huā","审度":"shěn duó","应许":"yīng xǔ","转台":"zhuàn tái","仔猪":"zǐ zhū","裁量":"cái liáng","藏戏":"zàng xì","乘兴":"chéng xìng","绸缪":"chóu móu","摧折":"cuī zhé","调经":"tiáo jīng","调职":"diào zhí","缝缀":"féng zhuì","骨朵":"gū duǒ","核儿":"hú er","恒量":"héng liàng","还价":"huán jià","浑朴":"hún pǔ","苦差":"kǔ chāi","面糊":"miàn hù","煞车":"shā chē","省视":"xǐng shì","什锦":"shí jǐn","信差":"xìn chāi","余切":"yú qiē","攒眉":"cuán méi","炸糕":"zhá gāo","钻杆":"zuàn gǎn","扒灰":"pá huī","拌和":"bàn huò","长调":"cháng diào","大溜":"dà liù","抖搂":"dǒu lōu","飞转":"fēi zhuàn","干仗":"gàn zhàng","好胜":"hào shèng","画片":"huà piàn","搅混":"jiǎo hún","螺杆":"luó gǎn","木模":"mù mú","怒号":"nù háo","频数":"pín shù","无宁":"wú níng","遗少":"yí shào","邮差":"yóu chāi","占卦":"zhān guà","占星":"zhān xīng","重审":"chóng shěn","自量":"zì liàng","调防":"diào fáng","发廊":"fà láng","反调":"fǎn diào","缝子":"fèng zi","更夫":"gēng fū","骨子":"gǔ zi","光杆":"guāng gǎn","夹棍":"jiā gùn","居丧":"jū sāng","巨贾":"jù gǔ","看押":"kān yā","空转":"kōng zhuàn","量力":"liàng lì","炮烙":"páo luò","赔还":"péi huán","扑扇":"pū shān","散记":"sǎn jì","散件":"sǎn jiàn","删削":"shān xuē","射干":"shè gàn","条几":"tiáo jī","偷空":"tōu kòng","削壁":"xuē bì","校核":"jiào hé","阴干":"yīn gān","择菜":"zhái cài","重九":"chóng jiǔ","主调":"zhǔ diào","自禁":"zì jīn","吧唧":"bā jī","便溺":"biàn niào","词调":"cí diào","叨咕":"dáo gu","落枕":"lào zhěn","铺砌":"pū qì","刷白":"shuà bái","委靡":"wěi mǐ","系泊":"xì bó","相马":"xiàng mǎ","熨帖":"yù tiē","转筋":"zhuàn jīn","棒喝":"bàng hè","傧相":"bīn xiàng","镐头":"gǎo tóu","间苗":"jiàn miáo","乐池":"yuè chí","卖相":"mài xiàng","屏弃":"bǐng qì","铅弹":"qiān dàn","切变":"qiē biàn","请调":"qǐng diào","群氓":"qún méng","散板":"sǎn bǎn","省察":"xǐng chá","事假":"shì jià","纤绳":"qiàn shéng","重影":"chóng yǐng","耕种":"gēng zhòng","种地":"zhòng dì","种菜":"zhòng cài","栽种":"zāi zhòng","接种":"jiē zhòng","垦种":"kěn zhòng","种殖":"zhòng zhí","种瓜":"zhòng guā","种豆":"zhòng dòu","种树":"zhòng shù","睡着":"shuì zháo","笼子":"lóng zi","重启":"chóng qǐ","重整":"chóng zhěng","重弹":"chóng tán","重足":"chóng zú","重山":"chóng shān","重游":"chóng yóu","重峦":"chóng luán","爷爷":"yé ye","奶奶":"nǎi nai","姥爷":"lǎo ye","爸爸":"bà ba","妈妈":"mā ma","婶婶":"shěn shen","舅舅":"jiù jiu","姑姑":"gū gu","叔叔":"shū shu","姨夫":"yí fu","舅母":"jiù mu","姑父":"gū fu","姐夫":"jiě fu","婆婆":"pó po","公公":"gōng gong","舅子":"jiù zi","姐姐":"jiě jie","哥哥":"gē ge","妹妹":"mèi mei","妹夫":"mèi fu","姨子":"yí zi","宝宝":"bǎo bao","娃娃":"wá wa","孩子":"hái zi","日子":"rì zi","样子":"yàng zi","狮子":"shī zi","身子":"shēn zi","架子":"jià zi","嫂子":"sǎo zi","鼻子":"bí zi","亭子":"tíng zi","折子":"zhé zi","面子":"miàn zi","脖子":"bó zi","辈子":"bèi zi","帽子":"mào zi","拍子":"pāi zi","柱子":"zhù zi","辫子":"biàn zi","鸽子":"gē zi","房子":"fáng zi","丸子":"wán zi","摊子":"tān zi","牌子":"pái zi","胡子":"hú zi","鬼子":"guǐ zi","矮子":"ǎi zi","鸭子":"yā zi","小子":"xiǎo zi","影子":"yǐng zi","屋子":"wū zi","对子":"duì zi","点子":"diǎn zi","本子":"běn zi","种子":"zhǒng zi","儿子":"ér zi","兔子":"tù zi","骗子":"piàn zi","院子":"yuàn zi","猴子":"hóu zi","嗓子":"sǎng zi","侄子":"zhí zi","柿子":"shì zi","钳子":"qián zi","虱子":"shī zi","瓶子":"píng zi","豹子":"bào zi","筷子":"kuài zi","篮子":"lán zi","绳子":"shéng zi","嘴巴":"zuǐ ba","耳朵":"ěr duo","茄子":"qié zi","蚌埠":"bèng bù","崆峒":"kōng tóng","琵琶":"pí pa","蘑菇":"mó gu","葫芦":"hú lu","狐狸":"hú li","桔子":"jú zi","盒子":"hé zi","桌子":"zhuō zi","竹子":"zhú zi","师傅":"shī fu","衣服":"yī fu","袜子":"wà zi","杯子":"bēi zi","刺猬":"cì wei","麦子":"mài zi","队伍":"duì wu","知了":"zhī liǎo","鱼儿":"yú er","馄饨":"hún tun","灯笼":"dēng long","庄稼":"zhuāng jia","聪明":"cōng ming","镜子":"jìng zi","银子":"yín zi","盘子":"pán zi","了却":"liǎo què","力气":"lì qi","席子":"xí zi","林子":"lín zi","朝霞":"zhāo xiá","朝夕":"zhāo xī","朝气":"zhāo qì","翅膀":"chì bǎng","省长":"shěng zhǎng","臧否":"zāng pǐ","否泰":"pǐ tài","变得":"biàn de","丈夫":"zhàng fu","豆腐":"dòu fu","笔杆":"bǐ gǎn","枞阳":"zōng yáng","行人":"xíng rén","打着":"dǎ zhe","第一":"dì yī","万一":"wàn yī","之一":"zhī yī","得之":"dé zhī","统一":"tǒng yī","唯一":"wéi yī","专一":"zhuān yī","单一":"dān yī","如一":"rú yī","其一":"qí yī","合一":"hé yī","逐一":"zhú yī","周一":"zhōu yī","初一":"chū yī","研一":"yán yī","归一":"guī yī","假一":"jiǎ yī","闻一":"wén yī","了了":"liǎo liǎo","公了":"gōng liǎo","私了":"sī liǎo","一月":"yī yuè","一号":"yī hào","一级":"yī jí","一等":"yī děng","一哥":"yī gē","月一":"yuè yī","一一":"yī yī","二一":"èr yī","三一":"sān yī","四一":"sì yī","五一":"wǔ yī","六一":"liù yī","七一":"qī yī","八一":"bā yī","九一":"jiǔ yī","一〇":"yī líng","一零":"yī líng","一二":"yī èr","一三":"yī sān","一四":"yī sì","一五":"yī wǔ","一六":"yī liù","一七":"yī qī","一八":"yī bā","一九":"yī jiǔ","一又":"yī yòu","一饼":"yī bǐng","一楼":"yī lóu","为例":"wéi lì","为准":"wéi zhǔn","沧海":"cāng hǎi","难为":"nán wéi","责难":"zé nàn","患难":"huàn nàn","磨难":"mó nàn","大难":"dà nàn","刁难":"diāo nàn","殉难":"xùn nàn","落难":"luò nàn","罹难":"lí nàn","灾难":"zāi nàn","难民":"nàn mín","苦难":"kǔ nàn","危难":"wēi nàn","发难":"fā nàn","逃难":"táo nàn","避难":"bì nàn","遇难":"yù nàn","阻难":"zǔ nàn","厄难":"è nàn","徇难":"xùn nàn","空难":"kōng nàn","喜欢":"xǐ huan","朝朝":"zhāo zhāo","不行":"bù xíng","轧轧":"yà yà","弯曲":"wān qū","扭曲":"niǔ qū","曲直":"qū zhí","委曲":"wěi qū","酒曲":"jiǔ qū","曲径":"qū jìng","曲解":"qū jiě","歪曲":"wāi qū","曲线":"qū xiàn","曲阜":"qū fù","九曲":"jiǔ qū","曲折":"qū zhé","曲肱":"qū gōng","曲意":"qū yì","仡佬":"gē lǎo"},Ug=Object.keys(Og).map((t=>({zh:t,pinyin:Og[t],probability:2e-8,length:2,priority:fg.Normal,dict:Symbol("dict2")}))),Bg={"为什么":"wèi shén me","实际上":"shí jì shang","检察长":"jiǎn chá zhǎng","干什么":"gàn shén me","这会儿":"zhè huì er","尽可能":"jǐn kě néng","董事长":"dǒng shì zhǎng","了不起":"liǎo bù qǐ","参谋长":"cān móu zhǎng","朝鲜族":"cháo xiǎn zú","海内外":"hǎi nèi wài","禁不住":"jīn bú zhù","柏拉图":"bó lā tú","不在乎":"bú zài hu","洛杉矶":"luò shān jī","有点儿":"yǒu diǎn er","迫击炮":"pǎi jī pào","不得了":"bù dé liǎo","马尾松":"mǎ wěi sōng","运输量":"yùn shū liàng","发脾气":"fā pí qi","士大夫":"shì dà fū","鸭绿江":"yā lù jiāng","压根儿":"yà gēn er","对得起":"duì de qǐ","那会儿":"nà huì er","自个儿":"zì gě er","物理量":"wù lǐ liàng","怎么着":"zěn me zhāo","明晃晃":"míng huǎng huǎng","节假日":"jié jià rì","心里话":"xīn lǐ huà","发行量":"fā xíng liàng","兴冲冲":"xìng chōng chōng","分子量":"fēn zǐ liàng","国子监":"guó zǐ jiàn","老大难":"lǎo dà nán","党内外":"dǎng nèi wài","这么着":"zhè me zhāo","少奶奶":"shào nǎi nai","暗地里":"àn dì lǐ","更年期":"gēng nián qī","工作量":"gōng zuò liàng","背地里":"bèi dì lǐ","山里红":"shān li hóng","好好儿":"hǎo hāo er","交响乐":"jiāo xiǎng yuè","好意思":"hǎo yì si","吐谷浑":"tǔ yù hún","没意思":"méi yì si","理发师":"lǐ fà shī","塔什干":"tǎ shí gān","充其量":"chōng qí liàng","靠得住":"kào de zhù","车行道":"chē xíng dào","人行道":"rén xíng dào","中郎将":"zhōng láng jiàng","照明弹":"zhào míng dàn","烟幕弹":"yān mù dàn","没奈何":"mò nài hé","乱哄哄":"luàn hōng hōng","惠更斯":"huì gēng sī","载重量":"zài zhòng liàng","瞧得起":"qiáo de qǐ","纪传体":"jì zhuàn tǐ","阿房宫":"ē páng gōng","卷心菜":"juǎn xīn cài","戏班子":"xì bān zi","过得去":"guò de qù","花岗石":"huā gāng shí","外甥女":"wài sheng nǚ","团团转":"tuán tuán zhuàn","大堡礁":"dà bǎo jiāo","燃烧弹":"rán shāo dàn","劳什子":"láo shí zi","摇滚乐":"yáo gǔn yuè","夹竹桃":"jiā zhú táo","闹哄哄":"nào hōng hōng","三连冠":"sān lián guàn","重头戏":"zhòng tóu xì","二人转":"èr rén zhuàn","节骨眼":"jiē gǔ yǎn","知识面":"zhī shi miàn","护士长":"hù shi zhǎng","信号弹":"xìn hào dàn","干电池":"gān diàn chí","枪杆子":"qiāng gǎn zi","哭丧棒":"kū sāng bàng","鼻咽癌":"bí yān ái","瓦岗军":"wǎ gāng jūn","买得起":"mǎi de qǐ","癞蛤蟆":"lài há ma","脊梁骨":"jǐ liang gǔ","子母弹":"zǐ mǔ dàn","开小差":"kāi xiǎo chāi","女强人":"nǚ qiáng rén","英雄传":"yīng xióng zhuàn","爵士乐":"jué shì yuè","说笑话":"shuō xiào hua","碰头会":"pèng tóu huì","玻璃钢":"bō li gāng","曳光弹":"yè guāng dàn","少林拳":"shào lín quán","咏叹调":"yǒng tàn diào","少先队":"shào xiān duì","灵长目":"líng zhǎng mù","对着干":"duì zhe gàn","蒙蒙亮":"méng méng liàng","软骨头":"ruǎn gǔ tou","铺盖卷":"pū gài juǎn","和稀泥":"huò xī ní","背黑锅":"bēi hēi guō","红彤彤":"hóng tōng tōng","武侯祠":"wǔ hóu cí","打哆嗦":"dǎ duō suo","户口簿":"hù kǒu bù","马尾藻":"mǎ wěi zǎo","夜猫子":"yè māo zi","打手势":"dǎ shǒu shì","龙王爷":"lóng wáng yé","气头上":"qì tóu shang","糊涂虫":"hú tu chóng","笔杆子":"bǐ gǎn zi","占便宜":"zhàn pián yi","打主意":"dǎ zhǔ yì","多弹头":"duō dàn tóu","露一手":"lòu yì shǒu","堰塞湖":"yàn sè hú","保得住":"bǎo de zhù","趵突泉":"bào tū quán","奥得河":"ào de hé","司务长":"sī wù zhǎng","禁不起":"jīn bù qǐ","什刹海":"shí chà hǎi","莲花落":"lián huā lào","见世面":"jiàn shì miàn","豁出去":"huō chū qù","电位差":"diàn wèi chā","挨个儿":"āi gè er","那阵儿":"nà zhèn er","肺活量":"fèi huó liàng","大师傅":"dà shī fu","掷弹筒":"zhì dàn tǒng","打呼噜":"dǎ hū lu","广渠门":"ān qú mén","未见得":"wèi jiàn dé","大婶儿":"dà shěn er","谈得来":"tán de lái","脚丫子":"jiǎo yā zi","空包弹":"kōng bāo dàn","窝里斗":"wō li dòu","弹着点":"dàn zhuó diǎn","个头儿":"gè tóu er","看得起":"kàn de qǐ","糊涂账":"hú tu zhàng","大猩猩":"dà xīng xing","禁得起":"jīn de qǐ","法相宗":"fǎ xiàng zōng","可怜相":"kě lián xiàng","吃得下":"chī de xià","汉堡包":"hàn bǎo bāo","闹嚷嚷":"nào rāng rāng","数来宝":"shǔ lái bǎo","合得来":"hé de lái","干性油":"gān xìng yóu","闷葫芦":"mèn hú lu","呱呱叫":"guā guā jiào","西洋参":"xī yáng shēn","林荫道":"lín yīn dào","拉家常":"lā jiā cháng","卷铺盖":"juǎn pū gài","过得硬":"guò de yìng","飞将军":"fēi jiāng jūn","挑大梁":"tiǎo dà liáng","哈巴狗":"hǎ ba gǒu","过家家":"guò jiā jiā","催泪弹":"cuī lèi dàn","雨夹雪":"yǔ jiā xuě","敲竹杠":"qiāo zhú gàng","列车长":"liè chē zhǎng","华达呢":"huá dá ní","犯得着":"fàn de zháo","土疙瘩":"tǔ gē da","煞风景":"shā fēng jǐng","轻量级":"qīng liàng jí","羞答答":"xiū dā dā","石子儿":"shí zǐ er","达姆弹":"dá mǔ dàn","科教片":"kē jiào piān","侃大山":"kǎn dà shān","丁点儿":"dīng diǎn er","吃得消":"chī de xiāo","捋虎须":"luō hǔ xū","高丽参":"gāo lí shēn","众生相":"zhòng shēng xiàng","咽峡炎":"yān xiá yán","禁得住":"jīn de zhù","吃得开":"chī de kāi","柞丝绸":"zuò sī chóu","应声虫":"yìng shēng chóng","数得着":"shǔ de zháo","傻劲儿":"shǎ jìn er","铅玻璃":"qiān bō li","可的松":"kě dì sōng","划得来":"huá de lái","晕乎乎":"yūn hū hū","屎壳郎":"shǐ ke làng","尥蹶子":"liào juě zi","藏红花":"zàng hóng huā","闷罐车":"mèn guàn chē","卡脖子":"qiǎ bó zi","红澄澄":"hóng deng deng","赶得及":"gǎn de jí","当间儿":"dāng jiàn er","露马脚":"lòu mǎ jiǎo","鸡内金":"jī nèi jīn","犯得上":"fàn de shàng","钉齿耙":"dīng chǐ bà","饱和点":"bǎo hé diǎn","龙爪槐":"lóng zhǎo huái","喝倒彩":"hè dào cǎi","定冠词":"dìng guàn cí","担担面":"dàn dan miàn","吃得住":"chī de zhù","爪尖儿":"zhuǎ jiān er","支着儿":"zhī zhāo er","折跟头":"zhē gēn tou","阴着儿":"yīn zhāo er","烟卷儿":"yān juǎn er","宣传弹":"xuān chuán dàn","信皮儿":"xìn pí er","弦切角":"xián qiē jiǎo","缩砂密":"sù shā mì","说得来":"shuō de lái","水漂儿":"shuǐ piāo er","耍笔杆":"shuǎ bǐ gǎn","数得上":"shǔ de shàng","数不着":"shǔ bù zháo","数不清":"shǔ bù qīng","什件儿":"shí jiàn er","生死簿":"shēng sǐ bù","扇风机":"shān fēng jī","撒呓挣":"sā yì zheng","日记簿":"rì jì bù","热得快":"rè de kuài","亲家公":"qìng jia gōng","奇函数":"jī hán shù","拍纸簿":"pāi zhǐ bù","努劲儿":"nǔ jìn er","泥娃娃":"ní wá wa","内切圆":"nèi qiē yuán","哪会儿":"nǎ huì er","闷头儿":"mēn tóu er","没谱儿":"méi pǔ er","铆劲儿":"mǎo jìn er","溜肩膀":"liū jiān bǎng","了望台":"liào wàng tái","老来少":"lǎo lái shào","坤角儿":"kūn jué er","考勤簿":"kǎo qín bù","卷笔刀":"juǎn bǐ dāo","进给量":"jìn jǐ liàng","划不来":"huá bù lái","汗褂儿":"hàn guà er","鼓囊囊":"gǔ nāng nāng","够劲儿":"gòu jìn er","公切线":"gōng qiē xiàn","搁得住":"gé de zhù","赶浪头":"gǎn làng tóu","赶得上":"gǎn de shàng","干酵母":"gān jiào mǔ","嘎渣儿":"gā zhā er","嘎嘣脆":"gā bēng cuì","对得住":"duì de zhù","逗闷子":"dòu mèn zi","顶呱呱":"dǐng guā guā","滴溜儿":"dī liù er","大轴子":"dà zhòu zi","打板子":"dǎ bǎn zi","寸劲儿":"cùn jìn er","醋劲儿":"cù jìn er","揣手儿":"chuāi shǒu er","冲劲儿":"chòng jìn er","吃得来":"chī de lái","不更事":"bù gēng shì","奔头儿":"bèn tou er","百夫长":"bǎi fū zhǎng","娃娃亲":"wá wa qīn","死劲儿":"sǐ jìn er","骨朵儿":"gū duǒ er","功劳簿":"gōng láo bù","都江堰":"dū jiāng yàn","一担水":"yí dàn shuǐ","否极泰":"pǐ jí tài","泰来否":"tài lái pǐ","咳特灵":"ké tè líng","开户行":"kāi hù háng","郦食其":"lì yì jī","花事了":"huā shì liǎo","一更更":"yì gēng gēng","一重山":"yì chóng shān","风一更":"fēng yì gēng","雪一更":"xuě yì gēng","归一码":"guī yì mǎ","星期一":"xīng qī yī","礼拜一":"lǐ bài yī","一季度":"yī jì dù","一月一":"yī yuè yī","一字马":"yī zì mǎ","一是一":"yī shì yī","一次方":"yī cì fāng","一阳指":"yī yáng zhǐ","一字决":"yī zì jué","一年级":"yī nián jí","一不做":"yī bú zuò","屈戌儿":"qū qu ér","难为水":"nán wéi shuǐ","难为情":"nán wéi qíng","行一行":"xíng yì háng","别别的":"biè bié de","干哪行":"gàn nǎ háng","干一行":"gàn yì háng","曲别针":"qū bié zhēn"},Fg=Object.keys(Bg).map((t=>({zh:t,pinyin:Bg[t],probability:2e-8,length:3,priority:fg.Normal,dict:Symbol("dict3")}))),Hg={"成吉思汗":"chéng jí sī hán","四通八达":"sì tōng bā dá","一模一样":"yì mú yí yàng","青藏高原":"qīng zàng gāo yuán","阿弥陀佛":"ē mí tuó fó","解放思想":"jiè fàng sī xiǎng","所作所为":"suǒ zuò suǒ wéi","迷迷糊糊":"mí mí hu hū","荷枪实弹":"hè qiāng shí dàn","兴高采烈":"xìng gāo cǎi liè","无能为力":"wú néng wéi lì","布鲁塞尔":"bù lǔ sài ěr","为所欲为":"wéi suǒ yù wéi","克什米尔":"kè shí mǐ ěr","没完没了":"méi wán méi liǎo","不为人知":"bù wéi rén zhī","结结巴巴":"jiē jiē bā bā","前仆后继":"qián pū hòu jì","铺天盖地":"pū tiān gài dì","直截了当":"zhí jié liǎo dàng","供不应求":"gōng bú yìng qiú","御史大夫":"yù shǐ dà fū","不为瓦全":"bù wéi wǎ quán","不可收拾":"bù kě shōu shi","胡作非为":"hú zuò fēi wéi","分毫不差":"fēn háo bú chà","模模糊糊":"mó mó hu hū","不足为奇":"bù zú wéi qí","悄无声息":"qiǎo wú shēng xī","了如指掌":"liǎo rú zhǐ zhǎng","深恶痛绝":"shēn wù tòng jué","高高兴兴":"gāo gāo xìng xìng","唉声叹气":"āi shēng tàn qì","汉藏语系":"hàn zàng yǔ xì","处心积虑":"chǔ xīn jī lǜ","泣不成声":"qì bù chéng shēng","半夜三更":"bàn yè sān gēng","失魂落魄":"shī hún luò pò","二十八宿":"èr shí bā xiù","转来转去":"zhuàn lái zhuàn qù","数以万计":"shǔ yǐ wàn jì","相依为命":"xiāng yī wéi mìng","恋恋不舍":"liàn liàn bù shě","屈指可数":"qū zhǐ kě shǔ","神出鬼没":"shén chū guǐ mò","结结实实":"jiē jiē shí shí","有的放矢":"yǒu dì fàng shǐ","叽哩咕噜":"jī lǐ gū lū","调兵遣将":"diào bīng qiǎn jiàng","载歌载舞":"zài gē zài wǔ","转危为安":"zhuǎn wēi wéi ān","踏踏实实":"tā tā shi shí","桑给巴尔":"sāng jǐ bā ěr","装模作样":"zhuāng mú zuò yàng","见义勇为":"jiàn yì yǒng wéi","相差无几":"xiāng chā wú jǐ","叹为观止":"tàn wéi guān zhǐ","闷闷不乐":"mèn mèn bú lè","喜怒哀乐":"xǐ nù āi lè","鲜为人知":"xiǎn wéi rén zhī","张牙舞爪":"zhāng yá wǔ zhǎo","为非作歹":"wéi fēi zuò dǎi","含糊其辞":"hán hú qí cí","疲于奔命":"pí yú bēn mìng","勉为其难":"miǎn wéi qí nán","依依不舍":"yī yī bù shě","顶头上司":"dǐng tóu shàng si","不着边际":"bù zhuó biān jì","大模大样":"dà mú dà yàng","寻欢作乐":"xún huān zuò lè","一走了之":"yì zǒu liǎo zhī","字里行间":"zì lǐ háng jiān","含含糊糊":"hán hán hu hū","恰如其分":"qià rú qí fèn","破涕为笑":"pò tì wéi xiào","深更半夜":"shēn gēng bàn yè","千差万别":"qiān chā wàn bié","数不胜数":"shǔ bú shèng shǔ","据为己有":"jù wéi jǐ yǒu","天旋地转":"tiān xuán dì zhuàn","养尊处优":"yǎng zūn chǔ yōu","玻璃纤维":"bō li xiān wéi","吵吵闹闹":"chāo chao nào nào","晕头转向":"yūn tóu zhuàn xiàng","土生土长":"tǔ shēng tǔ zhǎng","宁死不屈":"nìng sǐ bù qū","不省人事":"bù xǐng rén shì","尽力而为":"jìn lì ér wéi","精明强干":"jīng míng qiáng gàn","唠唠叨叨":"láo lao dāo dāo","叽叽喳喳":"jī ji zhā zhā","功不可没":"gōng bù kě mò","锲而不舍":"qiè ér bù shě","排忧解难":"pái yōu jiě nàn","稀里糊涂":"xī li hú tú","各有所长":"gè yǒu suǒ cháng","的的确确":"dí dí què què","哄堂大笑":"hōng táng dà xiào","听而不闻":"tīng ér bù wén","刀耕火种":"dāo gēng huǒ zhòng","内分泌腺":"nèi fèn mì xiàn","化险为夷":"huà xiǎn wéi yí","百发百中":"bǎi fā bǎi zhòng","重见天日":"chóng jiàn tiān rì","反败为胜":"fǎn bài wéi shèng","一了百了":"yì liǎo bǎi liǎo","大大咧咧":"dà da liē liē","心急火燎":"xīn jí huǒ liǎo","粗心大意":"cū xīn dà yi","鸡皮疙瘩":"jī pí gē da","夷为平地":"yí wéi píng dì","日积月累":"rì jī yuè lěi","设身处地":"shè shēn chǔ dì","投其所好":"tóu qí suǒ hào","间不容发":"jiān bù róng fà","人满为患":"rén mǎn wéi huàn","穷追不舍":"qióng zhuī bù shě","为时已晚":"wéi shí yǐ wǎn","如数家珍":"rú shǔ jiā zhēn","心里有数":"xīn lǐ yǒu shù","以牙还牙":"yǐ yá huán yá","神不守舍":"shén bù shǒu shě","孟什维克":"mèng shí wéi kè","各自为战":"gè zì wéi zhàn","怨声载道":"yuàn shēng zài dào","救苦救难":"jiù kǔ jiù nàn","好好先生":"hǎo hǎo xiān sheng","怪模怪样":"guài mú guài yàng","抛头露面":"pāo tóu lù miàn","游手好闲":"yóu shǒu hào xián","无所不为":"wú suǒ bù wéi","调虎离山":"diào hǔ lí shān","步步为营":"bù bù wéi yíng","好大喜功":"hào dà xǐ gōng","众矢之的":"zhòng shǐ zhī dì","长生不死":"cháng shēng bù sǐ","蔚为壮观":"wèi wéi zhuàng guān","不可胜数":"bù kě shèng shǔ","鬼使神差":"guǐ shǐ shén chāi","洁身自好":"jié shēn zì hào","敢作敢为":"gǎn zuò gǎn wéi","茅塞顿开":"máo sè dùn kāi","走马换将":"zǒu mǎ huàn jiàng","为时过早":"wéi shí guò zǎo","为人师表":"wéi rén shī biǎo","阴差阳错":"yīn chā yáng cuò","油腔滑调":"yóu qiāng huá diào","重蹈覆辙":"chóng dǎo fù zhé","骂骂咧咧":"mà ma liē liē","絮絮叨叨":"xù xù dāo dāo","如履薄冰":"rú lǚ bó bīng","损兵折将":"sǔn bīng zhé jiàng","拐弯抹角":"guǎi wān mò jiǎo","像模像样":"xiàng mú xiàng yàng","供过于求":"gōng guò yú qiú","开花结果":"kāi huā jiē guǒ","仔仔细细":"zǐ zǐ xì xì","川藏公路":"chuān zàng gōng lù","河北梆子":"hé běi bāng zi","长年累月":"cháng nián lěi yuè","正儿八经":"zhèng er bā jīng","不识抬举":"bù shí tái ju","重振旗鼓":"chóng zhèn qí gǔ","气息奄奄":"qì xī yān yān","紧追不舍":"jǐn zhuī bù shě","服服帖帖":"fú fu tiē tiē","强词夺理":"qiǎng cí duó lǐ","噼里啪啦":"pī li pā lā","人才济济":"rén cái jǐ jǐ","发人深省":"fā rén shēn xǐng","不足为凭":"bù zú wéi píng","为富不仁":"wéi fù bù rén","连篇累牍":"lián piān lěi dú","呼天抢地":"hū tiān qiāng dì","落落大方":"luò luò dà fāng","自吹自擂":"zì chuī zì léi","乐善好施":"lè shàn hào shī","以攻为守":"yǐ gōng wéi shǒu","磨磨蹭蹭":"mó mó cèng cèng","削铁如泥":"xuē tiě rú ní","助纣为虐":"zhù zhòu wéi nüè","以退为进":"yǐ tuì wéi jìn","嘁嘁喳喳":"qī qī chā chā","枪林弹雨":"qiāng lín dàn yǔ","令人发指":"lìng rén fà zhǐ","转败为胜":"zhuǎn bài wéi shèng","转弯抹角":"zhuǎn wān mò jiǎo","在劫难逃":"zài jié nán táo","正当防卫":"zhèng dàng fáng wèi","不足为怪":"bù zú wéi guài","难兄难弟":"nàn xiōng nàn dì","咿咿呀呀":"yī yī yā yā","弹尽粮绝":"dàn jìn liáng jué","阿谀奉承":"ē yú fèng chéng","稀里哗啦":"xī li huā lā","返老还童":"fǎn lǎo huán tóng","好高骛远":"hào gāo wù yuǎn","鹿死谁手":"lù sǐ shéi shǒu","差强人意":"chā qiáng rén yì","大吹大擂":"dà chuī dà léi","成家立业":"chéng jiā lì yè","自怨自艾":"zì yuàn zì yì","负债累累":"fù zhài lěi lěi","古为今用":"gǔ wéi jīn yòng","入土为安":"rù tǔ wéi ān","下不为例":"xià bù wéi lì","一哄而上":"yì hōng ér shàng","没头苍蝇":"méi tóu cāng ying","天差地远":"tiān chā dì yuǎn","风卷残云":"fēng juǎn cán yún","多灾多难":"duō zāi duō nàn","乳臭未干":"rǔ xiù wèi gān","行家里手":"háng jiā lǐ shǒu","狼狈为奸":"láng bèi wéi jiān","处变不惊":"chǔ biàn bù jīng","一唱一和":"yí chàng yí hè","一念之差":"yí niàn zhī chā","金蝉脱壳":"jīn chán tuō qiào","滴滴答答":"dī dī dā dā","硕果累累":"shuò guǒ léi léi","好整以暇":"hào zhěng yǐ xiá","红得发紫":"hóng de fā zǐ","传为美谈":"chuán wéi měi tán","富商大贾":"fù shāng dà gǔ","四海为家":"sì hǎi wéi jiā","了若指掌":"liǎo ruò zhǐ zhǎng","大有可为":"dà yǒu kě wéi","出头露面":"chū tóu lù miàn","鼓鼓囊囊":"gǔ gu nāng nāng","窗明几净":"chuāng míng jī jìng","泰然处之":"tài rán chǔ zhī","怒发冲冠":"nù fà chōng guān","有机玻璃":"yǒu jī bō li","骨头架子":"gǔ tou jià zi","义薄云天":"yì bó yún tiān","一丁点儿":"yī dīng diǎn er","时来运转":"shí lái yùn zhuǎn","陈词滥调":"chén cí làn diào","化整为零":"huà zhěng wéi líng","火烧火燎":"huǒ shāo huǒ liǎo","干脆利索":"gàn cuì lì suǒ","吊儿郎当":"diào er láng dāng","广种薄收":"guǎng zhòng bó shōu","种瓜得瓜":"zhòng guā dé guā","种豆得豆":"zhòng dòu dé dòu","难舍难分":"nán shě nán fēn","歃血为盟":"shà xuè wéi méng","奋发有为":"fèn fā yǒu wéi","阴错阳差":"yīn cuò yáng chā","东躲西藏":"dōng duǒ xī cáng","烟熏火燎":"yān xūn huǒ liǎo","钻牛角尖":"zuān niú jiǎo jiān","乔装打扮":"qiáo zhuāng dǎ bàn","改弦更张":"gǎi xián gēng zhāng","河南梆子":"hé nán bāng zi","好吃懒做":"hào chī lǎn zuò","何乐不为":"hé lè bù wéi","大出风头":"dà chū fēng tóu","攻城掠地":"gōng chéng lüè dì","漂漂亮亮":"piào piào liang liang","折衷主义":"zhé zhōng zhǔ yì","大马哈鱼":"dà mǎ hǎ yú","绿树成荫":"lǜ shù chéng yīn","率先垂范":"shuài xiān chuí fàn","家长里短":"jiā cháng lǐ duǎn","宽大为怀":"kuān dà wéi huái","左膀右臂":"zuǒ bǎng yòu bì","一笑了之":"yí xiào liǎo zhī","天下为公":"tiān xià wéi gōng","还我河山":"huán wǒ hé shān","何足为奇":"hé zú wéi qí","好自为之":"hǎo zì wéi zhī","风姿绰约":"fēng zī chuò yuē","大雨滂沱":"dà yǔ pāng tuó","传为佳话":"chuán wéi jiā huà","吃里扒外":"chī lǐ pá wài","重操旧业":"chóng cāo jiù yè","小家子气":"xiǎo jiā zi qì","少不更事":"shào bù gēng shì","难分难舍":"nán fēn nán shě","添砖加瓦":"tiān zhuān jiā wǎ","是非分明":"shì fēi fēn míng","舍我其谁":"shě wǒ qí shuí","偏听偏信":"piān tīng piān xìn","量入为出":"liàng rù wéi chū","降龙伏虎":"xiáng lóng fú hǔ","钢化玻璃":"gāng huà bō li","正中下怀":"zhèng zhòng xià huái","以身许国":"yǐ shēn xǔ guó","一语中的":"yì yǔ zhòng dì","丧魂落魄":"sàng hún luò pò","三座大山":"sān zuò dà shān","济济一堂":"jǐ jǐ yì táng","好事之徒":"hào shì zhī tú","干净利索":"gàn jìng lì suǒ","出将入相":"chū jiàng rù xiàng","袅袅娜娜":"niǎo niǎo nuó nuó","狐狸尾巴":"hú li wěi ba","好逸恶劳":"hào yì wù láo","大而无当":"dà ér wú dàng","打马虎眼":"dǎ mǎ hu yǎn","板上钉钉":"bǎn shàng dìng dīng","吆五喝六":"yāo wǔ hè liù","虾兵蟹将":"xiā bīng xiè jiàng","水调歌头":"shuǐ diào gē tóu","数典忘祖":"shǔ diǎn wàng zǔ","人事不省":"rén shì bù xǐng","曲高和寡":"qǔ gāo hè guǎ","屡教不改":"lǚ jiào bù gǎi","互为因果":"hù wéi yīn guǒ","互为表里":"hù wéi biǎo lǐ","厚此薄彼":"hòu cǐ bó bǐ","过关斩将":"guò guān zhǎn jiàng","疙疙瘩瘩":"gē ge dā dā","大腹便便":"dà fù pián pián","走为上策":"zǒu wéi shàng cè","冤家对头":"yuān jia duì tóu","有隙可乘":"yǒu xì kě chèng","一鳞半爪":"yì lín bàn zhǎo","片言只语":"piàn yán zhǐ yǔ","开花结实":"kāi huā jié shí","经年累月":"jīng nián lěi yuè","含糊其词":"hán hú qí cí","寡廉鲜耻":"guǎ lián xiǎn chǐ","成年累月":"chéng nián lěi yuè","不徇私情":"bú xùn sī qíng","不当人子":"bù dāng rén zǐ","膀大腰圆":"bǎng dà yāo yuán","指腹为婚":"zhǐ fù wéi hūn","这么点儿":"zhè me diǎn er","意兴索然":"yì xīng suǒ rán","绣花枕头":"xiù huā zhěn tou","无的放矢":"wú dì fàng shǐ","望闻问切":"wàng wén wèn qiè","舍己为人":"shě jǐ wèi rén","穷年累月":"qióng nián lěi yuè","排难解纷":"pái nàn jiě fēn","处之泰然":"chǔ zhī tài rán","指鹿为马":"zhǐ lù wéi mǎ","危如累卵":"wēi rú lěi luǎn","天兵天将":"tiān bīng tiān jiàng","舍近求远":"shě jìn qiú yuǎn","南腔北调":"nán qiāng běi diào","苦中作乐":"kǔ zhōng zuò lè","厚积薄发":"hòu jī bó fā","臭味相投":"xiù wèi xiāng tóu","长幼有序":"zhǎng yòu yǒu xù","逼良为娼":"bī liáng wéi chāng","悲悲切切":"bēi bēi qiè qiē","败军之将":"bài jūn zhī jiàng","欺行霸市":"qī háng bà shì","削足适履":"xuē zú shì lǚ","先睹为快":"xiān dǔ wéi kuài","啼饥号寒":"tí jī háo hán","疏不间亲":"shū bú jiàn qīn","神差鬼使":"shén chāi guǐ shǐ","敲敲打打":"qiāo qiāo dǎ dǎ","平铺直叙":"píng pū zhí xù","没头没尾":"méi tóu mò wěi","寥寥可数":"liáo liáo kě shǔ","哼哈二将":"hēng hā èr jiàng","鹤发童颜":"hè fà tóng yán","各奔前程":"gè bèn qián chéng","弹无虚发":"dàn wú xū fā","大人先生":"dà rén xiān sheng","与民更始":"yǔ mín gēng shǐ","树碑立传":"shù bēi lì zhuàn","是非得失":"shì fēi dé shī","实逼处此":"shí bī chǔ cǐ","塞翁失马":"sài wēng shī mǎ","日薄西山":"rì bó xī shān","切身体会":"qiè shēn tǐ huì","片言只字":"piàn yán zhǐ zì","跑马卖解":"pǎo mǎ mài xiè","宁折不弯":"nìng zhé bù wān","零零散散":"líng líng sǎn sǎn","量体裁衣":"liàng tǐ cái yī","连中三元":"lián zhòng sān yuán","礼崩乐坏":"lǐ bēng yuè huài","不为已甚":"bù wéi yǐ shèn","转悲为喜":"zhuǎn bēi wéi xǐ","以眼还眼":"yǐ yǎn huán yǎn","蔚为大观":"wèi wéi dà guān","未为不可":"wèi wéi bù kě","童颜鹤发":"tóng yán hè fà","朋比为奸":"péng bǐ wéi jiān","莫此为甚":"mò cǐ wéi shèn","夹枪带棒":"jiā qiāng dài bàng","富商巨贾":"fù shāng jù jiǎ","淡然处之":"dàn rán chǔ zhī","箪食壶浆":"dān shí hú jiāng","创巨痛深":"chuāng jù tòng shēn","草长莺飞":"cǎo zhǎng yīng fēi","坐视不救":"zuò shī bú jiù","以己度人":"yǐ jǐ duó rén","随行就市":"suí háng jiù shì","文以载道":"wén yǐ zài dào","文不对题":"wén bú duì tí","铁板钉钉":"tiě bǎn dìng dīng","身体发肤":"shēn tǐ fà fū","缺吃少穿":"quē chī shǎo chuān","目无尊长":"mù wú zūn zhǎng","吉人天相":"jí rén tiān xiàng","毁家纾难":"huǐ jiā shū nàn","钢筋铁骨":"gāng jīn tiě gǔ","丢卒保车":"diū zú bǎo jū","丢三落四":"diū sān là sì","闭目塞听":"bì mù sè tīng","削尖脑袋":"xuē jiān nǎo dài","为非作恶":"wéi fēi zuò è","人才难得":"rén cái nán dé","情非得已":"qíng fēi dé yǐ","切中要害":"qiè zhòng yào hài","火急火燎":"huǒ jí huǒ liǎo","画地为牢":"huà dì wéi láo","好酒贪杯":"hào jiǔ tān bēi","长歌当哭":"cháng gē dàng kū","载沉载浮":"zài chén zài fú","遇难呈祥":"yù nàn chéng xiáng","榆木疙瘩":"yú mù gē da","以邻为壑":"yǐ lín wéi hè","洋为中用":"yáng wéi zhōng yòng","言为心声":"yán wéi xīn shēng","言必有中":"yán bì yǒu zhòng","图穷匕见":"tú qióng bǐ xiàn","滂沱大雨":"páng tuó dà yǔ","目不暇给":"mù bù xiá jǐ","量才录用":"liàng cái lù yòng","教学相长":"jiào xué xiāng zhǎng","悔不当初":"huǐ bù dāng chū","呼幺喝六":"hū yāo hè liù","不足为训":"bù zú wéi xùn","不拘形迹":"bù jū xíng jī","傍若无人":"páng ruò wú rén","罪责难逃":"zuì zé nán táo","自我吹嘘":"zì wǒ chuī xū","转祸为福":"zhuǎn huò wéi fú","勇冠三军":"yǒng guàn sān jūn","易地而处":"yì dì ér chǔ","卸磨杀驴":"xiè mò shā lǘ","玩儿不转":"wán ér bú zhuàn","天道好还":"tiān dào hǎo huán","身单力薄":"shēn dān lì bó","撒豆成兵":"sǎ dòu chéng bīng","片纸只字":"piàn zhǐ zhī zì","宁缺毋滥":"nìng quē wú làn","没没无闻":"mò mò wú wén","量力而为":"liàng lì ér wéi","历历可数":"lì lì kě shǔ","口碑载道":"kǒu bēi zài dào","君子好逑":"jūn zǐ hǎo qiú","好为人师":"hào wéi rén shī","豪商巨贾":"háo shāng jù jiǎ","各有所好":"gè yǒu suǒ hào","度德量力":"duó dé liàng lì","指天为誓":"zhǐ tiān wéi shì","逸兴遄飞":"yì xìng chuán fēi","心宽体胖":"xīn kuān tǐ pán","为德不卒":"wéi dé bù zú","天下为家":"tiān xià wéi jiā","视为畏途":"shì wéi wèi tú","三灾八难":"sān zāi bā nàn","沐猴而冠":"mù hóu ér guàn","哩哩啦啦":"lī li lā lā","见缝就钻":"jiàn fèng jiù zuān","夹层玻璃":"jiā céng bō li","急公好义":"jí gōng hào yì","积年累月":"jī nián lěi yuè","划地为牢":"huá dì wéi láo","更名改姓":"gēng míng gǎi xìng","奉为圭臬":"fèng wéi guī niè","多难兴邦":"duō nàn xīng bāng","不破不立":"bú pò bú lì","坐地自划":"zuò dì zì huá","坐不重席":"zuò bù chóng xí","坐不窥堂":"zuò bù kuī táng","作嫁衣裳":"zuò jià yī shang","左枝右梧":"zuǒ zhī yòu wú","左宜右有":"zuǒ yí yòu yǒu","钻头觅缝":"zuān tóu mì fèng","钻天打洞":"zuān tiān dǎ dòng","钻皮出羽":"zuān pí chū yǔ","钻火得冰":"zuān huǒ dé bīng","钻洞觅缝":"zuàn dòng mì féng","钻冰求火":"zuān bīng qiú huǒ","子为父隐":"zǐ wéi fù yǐn","擢发难数":"zhuó fà nán shǔ","着人先鞭":"zhuó rén xiān biān","斫雕为朴":"zhuó diāo wéi pǔ","锥处囊中":"zhuī chǔ náng zhōng","椎心饮泣":"chuí xīn yǐn qì","椎心泣血":"chuí xīn qì xuè","椎牛飨士":"chuí niú xiǎng shì","椎牛歃血":"chuí niú shà xuè","椎牛发冢":"chuí niú fà zhǒng","椎埋屠狗":"chuí mái tú gǒu","椎埋狗窃":"chuí mái gǒu qiè","壮发冲冠":"zhuàng fā chōng guàn","庄严宝相":"zhuāng yán bǎo xiàng","转愁为喜":"zhuǎn chóu wéi xǐ","转嗔为喜":"zhuǎn chēn wéi xǐ","拽巷啰街":"zhuài xiàng luó jiē","拽耙扶犁":"zhuāi pá fú lí","拽布拖麻":"zhuài bù tuō má","箸长碗短":"zhù cháng wǎn duǎn","铸剑为犁":"zhù jiàn wéi lí","杼柚其空":"zhù yòu qí kōng","杼柚空虚":"zhù yòu kōng xū","助天为虐":"zhù tiān wéi nüè","属垣有耳":"zhǔ yuán yǒu ěr","属毛离里":"zhǔ máo lí lǐ","属辞比事":"zhǔ cí bǐ shì","逐物不还":"zhú wù bù huán","铢量寸度":"zhū liáng cùn duó","铢两悉称":"zhū liǎng xī chèn","侏儒观戏":"zhū rú guān xì","朱轓皁盖":"zhū fān zào gài","昼度夜思":"zhòu duó yè sī","诪张为幻":"zhōu zhāng wéi huàn","重明继焰":"chóng míng jì yàn","众啄同音":"zhòng zhuó tóng yīn","众毛攒裘":"zhòng máo cuán qiú","众好众恶":"zhòng hào zhòng wù","擿埴索涂":"zhāi zhí suǒ tú","稚齿婑媠":"zhì chǐ wǒ tuó","至当不易":"zhì dàng bú yì","指皂为白":"zhǐ zào wéi bái","指雁为羹":"zhǐ yàn wéi gēng","指树为姓":"zhǐ shù wéi xìng","指山说磨":"zhǐ shān shuō mò","止戈为武":"zhǐ gē wéi wǔ","枝干相持":"zhī gàn xiāng chí","枝大于本":"zh dà yú běn","支吾其词":"zhī wú qí cí","正身率下":"zhèng shēn shuài xià","正冠李下":"zhèng guàn lǐ xià","整冠纳履":"zhěng guān nà lǚ","整躬率物":"zhěng gōng shuài wù","整顿干坤":"zhěng dùn gàn kūn","针头削铁":"zhēn tóu xuē tiě","贞松劲柏":"zhēn sōng jìng bǎi","赭衣塞路":"zhě yī sè lù","折箭为誓":"shé jiàn wéi shì","折而族之":"zhé ér zú zhī","昭德塞违":"zhāo dé sè wéi","章句小儒":"zhāng jù xiǎo rú","湛恩汪濊":"zhàn ēn wāng huì","占风望气":"zhān fēng wàng qì","斩将搴旗":"zhǎn jiàng qiān qí","曾母投杼":"zēng mǔ tóu zhù","曾参杀人":"zēng shēn shā rén","造谣中伤":"zào yáo zhòng shāng","早占勿药":"zǎo zhān wù yào","凿龟数策":"záo guī shǔ cè","攒三聚五":"cuán sān jù wǔ","攒眉蹙额":"cuán mei cù é","攒零合整":"cuán líng hé zhěng","攒锋聚镝":"cuán fēng jù dí","载笑载言":"zài xiào zài yán","载酒问字":"zài jiǔ wèn zì","殒身不恤":"yǔn shēn bú xù","云舒霞卷":"yún shū xiá juǎn","月中折桂":"yuè zhōng shé guì","月落参横":"yuè luò shēn héng","鬻驽窃价":"yù nú qiè jià","鬻鸡为凤":"yù jī wéi fèng","遇难成祥":"yù nàn chéng xiáng","郁郁累累":"yù yù lěi lěi","玉卮无当":"yù zhī wú dàng","语笑喧阗":"yǔ xiào xuān tián","与世沉浮":"yǔ shì chén fú","与时消息":"yǔ shí xiāo xi","逾墙钻隙":"yú qiáng zuān xì","渔夺侵牟":"yú duó qīn móu","杅穿皮蠹":"yú chuān pí dù","余勇可贾":"yú yǒng kě gǔ","予智予雄":"yú zhì yú xióng","予取予求":"yú qǔ yú qiú","于家为国":"yú jiā wéi guó","有借无还":"yǒu jiè wú huán","有加无已":"yǒu jiā wú yǐ","有国难投":"yǒu guó nán tóu","游必有方":"yóu bì yǒu fāng","油干灯尽":"yóu gàn dēng jìn","尤云殢雨":"yóu yún tì yǔ","庸中皦皦":"yōng zhōng jiǎo jiǎo","郢书燕说":"yǐng shū yān shuō","营蝇斐锦":"yíng yíng fēi jǐn","鹰心雁爪":"yīng xīn yàn zhǎo","莺吟燕儛":"yīng yín yàn wǔ","应天顺时":"yīng tiān shùn shí","印累绶若":"yìn léi shòu ruò","隐占身体":"yǐn zhàn shēn tǐ","饮犊上流":"yìn dú shàng liú","引绳切墨":"yǐn shéng qiē mò","龈齿弹舌":"yín chǐ dàn shé","因缘为市":"yīn yuán wéi shì","因树为屋":"yīn shù wéi wū","溢美溢恶":"yì měi yì wù","抑塞磊落":"yì sè lěi luò","倚闾望切":"yǐ lǘ wàng qiē","以意为之":"yǐ yì wéi zhī","以言为讳":"yǐ yán wéi huì","以疏间亲":"yǐ shū jiàn qīn","以水济水":"yǐ shuǐ jǐ shuǐ","以书为御":"yǐ shū wéi yù","以守为攻":"yǐ shǒu wéi gōng","以升量石":"yǐ shēng liáng dàn","以慎为键":"yǐ shèn wéi jiàn","以筌为鱼":"yǐ quán wéi yú","以利累形":"yǐ lì lěi xíng","以毁为罚":"yǐ huǐ wéi fá","以黑为白":"yǐ hēi wéi bái","以规为瑱":"yǐ guī wéi tiàn","以古为鉴":"yǐ gǔ wéi jiàn","以宫笑角":"yǐ gōng xiào jué","以法为教":"yǐ fǎ wéi jiào","以大恶细":"yǐ dà wù xì","遗世忘累":"yí shì wàng lěi","遗寝载怀":"yí qǐn zài huái","移的就箭":"yí dì jiù jiàn","依头缕当":"yī tóu lǚ dàng","衣租食税":"yì zū shí shuì","衣轻乘肥":"yì qīng chéng féi","衣裳之会":"yī shang zhī huì","衣单食薄":"yī dān shí bó","一还一报":"yì huán yí bào","叶公好龙":"yè gōng hào lóng","野调无腔":"yě diào wú qiāng","瑶池女使":"yáo chí nǚ shǐ","幺麽小丑":"yāo mó xiǎo chǒu","养精畜锐":"yǎng jīng xù ruì","卬首信眉":"áng shǒu shēn méi","洋洋纚纚":"yáng yáng sǎ sǎ","羊羔美酒":"yáng gāo měi jiǔ","扬风扢雅":"yáng fēng jié yǎ","燕昭市骏":"yān zhāo shì jùn","燕昭好马":"yān zhāo hǎo mǎ","燕石妄珍":"yān shí wàng zhēn","燕骏千金":"yān jùn qiān jīn","燕金募秀":"yān jīn mù xiù","燕驾越毂":"yān jià yuè gǔ","燕歌赵舞":"yān gē zhào wǔ","燕岱之石":"yān dài zhī shí","燕处危巢":"yàn chǔ wēi cháo","掞藻飞声":"shàn zǎo fēi shēng","偃革为轩":"yǎn gé wéi xuān","妍蚩好恶":"yán chī hǎo è","压良为贱":"yā liáng wéi jiàn","搀行夺市":"chān háng duó shì","泣数行下":"qì shù háng xià","当行出色":"dāng háng chū sè","秀出班行":"xiù chū bān háng","儿女成行":"ér nǚ chéng háng","大行大市":"dà háng dà shì","寻行数墨":"xún háng shǔ mò","埙篪相和":"xūn chí xiāng hè","血债累累":"xuè zhài lěi lěi","炫玉贾石":"xuàn yù gǔ shí","炫石为玉":"xuàn shí wéi yù","悬石程书":"xuán dàn chéng shū","悬狟素飡":"xuán huán sù cān","悬龟系鱼":"xuán guī xì yú","揎拳捋袖":"xuān quán luō xiù","轩鹤冠猴":"xuān hè guàn hóu","畜妻养子":"xù qī yǎng zǐ","羞人答答":"xiū rén dā dā","修鳞养爪":"xiū lín yǎng zhǎo","熊据虎跱":"xióng jù hǔ zhì","兄死弟及":"xiōng sǐ dì jí","腥闻在上":"xīng wén zài shàng","兴文匽武":"xīng wén yǎn wǔ","兴观群怨":"xìng guān qún yuàn","兴高彩烈":"xìng gāo cǎi liè","心手相应":"xīn shǒu xiāng yìng","心口相应":"xīn kǒu xiāng yīng","挟势弄权":"xié shì nòng quán","胁肩累足":"xié jiān lěi zú","校短量长":"jiào duǎn liáng cháng","小眼薄皮":"xiǎo yǎn bó pí","硝云弹雨":"xiāo yún dàn yǔ","鸮鸣鼠暴":"xiāo míng shǔ bào","削株掘根":"xuē zhū jué gēn","削铁无声":"xuē tiě wú shēng","削职为民":"xuē zhí wéi mín","削木为吏":"xuē mù wéi lì","想望风褱":"xiǎng wàng fēng huái","香培玉琢":"xiang pei yu zhuó","相鼠有皮":"xiàng shǔ yǒu pí","相时而动":"xiàng shí ér dòng","相切相磋":"xiāng qiē xiāng cuō","相女配夫":"xiàng nǚ pèi fū","相门有相":"xiàng mén yǒu xiàng","挦章撦句":"xián zhāng chě jù","先我着鞭":"xiān wǒ zhuó biān","习焉不察":"xí yān bù chá","歙漆阿胶":"shè qī ē jiāo","晰毛辨发":"xī máo biàn fà","悉索薄赋":"xī suǒ bó fù","雾鳞云爪":"wù lín yún zhǎo","物稀为贵":"wù xī wéi guì","碔砆混玉":"wǔ fū hùn yù","武断专横":"wǔ duàn zhuān héng","五石六鹢":"wǔ shí liù yì","五色相宣":"wǔ sè xiāng xuān","五侯七贵":"wǔ hóu qī guì","五侯蜡烛":"wǔ hòu là zhú","五羖大夫":"wǔ gǔ dà fū","吾自有处":"wú zì yǒu chǔ","无下箸处":"wú xià zhù chǔ","无伤无臭":"wú shāng wú xiù","无能为役":"wú néng wéi yì","无寇暴死":"wú kòu bào sǐ","无孔不钻":"wú kǒng bú zuàn","无间可乘":"wú jiān kě chéng","无间冬夏":"wú jiān dōng xià","无恶不为":"wú è bù wéi","无动为大":"wú dòng wéi dà","诬良为盗":"wū liáng wéi dào","握拳透爪":"wò quán tòu zhǎo","文武差事":"wén wǔ chāi shì","委委佗佗":"wēi wēi tuó tuó","惟日为岁":"wéi rì wéi suì","帷薄不修":"wéi bó bù xiū","为善最乐":"wéi shàn zuì lè","为山止篑":"wéi shān zhǐ kuì","为仁不富":"wéi rén bú fù","为裘为箕":"wéi qiú wéi jī","为民父母":"wéi mín fù mǔ","为虺弗摧":"wéi huǐ fú cuī","为好成歉":"wéi hǎo chéng qiàn","为鬼为蜮":"wéi guǐ wéi yù","望风响应":"wàng fēng xiǎng yīng","望尘僄声":"wàng chén piào shēng","往渚还汀":"wǎng zhǔ huán tīng","王贡弹冠":"wáng gòng dàn guàn","亡国大夫":"wáng guó dà fū","万贯家私":"wàn guàn jiā sī","晚食当肉":"wǎn shí dàng ròu","晚节不保":"wǎn jié bù bǎo","玩岁愒时":"wán suì kài shí","蛙蟆胜负":"wā má shèng fù","吞言咽理":"tūn yán yàn lǐ","颓垣断堑":"tuí yuán duàn qiàn","推干就湿":"tuī gàn jiù shī","剸繁决剧":"tuán fán jué jù","团头聚面":"tuán tóu jù miàn","兔丝燕麦":"tù sī yàn mài","兔头麞脑":"tù tóu zhāng nǎo","兔葵燕麦":"tù kuí yàn mài","吐哺握发":"tǔ bǔ wò fà","投传而去":"tóu zhuàn ér qù","头没杯案":"tóu mò bēi àn","头昏脑闷":"tóu hūn nǎo mèn","头会箕敛":"tóu kuài jī liǎn","头出头没":"tóu chū tóu mò","痛自创艾":"tòng zì chuāng yì","同恶相助":"tóng wù xiāng zhù","同恶相恤":"tóng wù xiāng xù","痌瘝在抱":"tōng guān zài bào","通文调武":"tōng wén diào wǔ","停留长智":"tíng liú zhǎng zhì","铁树开华":"tiě shù kāi huā","条贯部分":"tiáo guàn bù fēn","挑牙料唇":"tiǎo yá liào chún","挑么挑六":"tiāo yāo tiāo liù","挑唇料嘴":"tiǎo chún liào zuǐ","恬不为意":"tián bù wéi yì","恬不为怪":"tián bù wéi guài","天下为笼":"tiān xià wéi lóng","天台路迷":"tiān tái lù mí","天年不遂":"tiān nián bú suì","探囊胠箧":"tàn náng qū qiè","谭言微中":"tán yán wēi zhòng","谈言微中":"tán yán wēi zhòng","狧穅及米":"shì kāng jí mǐ","随物应机":"suí wù yīng jī","搜岩采干":"sōu yán cǎi gàn","宋斤鲁削":"sòng jīn lǔ xuē","松筠之节":"sōng yún zhī jié","四亭八当":"sì tíng bā dàng","四马攒蹄":"sì mǎ cuán tí","四不拗六":"sì bú niù liù","思所逐之":"sī suǒ zhú zhī","丝恩发怨":"sī ēn fà yuàn","硕望宿德":"shuò wàng xiǔ dé","铄古切今":"shuò gǔ qiē jīn","顺风而呼":"shùn fēng ér hū","顺风吹火":"shùn fēng chuī huǒ","水中著盐":"shuǐ zhōng zhuó yán","双柑斗酒":"shuāng gān dǒu jiǔ","数米而炊":"shǔ mǐ ér chuī","数米量柴":"shǔ mǐ liáng chái","数理逻辑":"shù lǐ luó ji","数黑论黄":"shǔ hēi lùn huáng","数白论黄":"shǔ bái lùn huáng","束缊还妇":"shù yūn huán fù","束蒲为脯":"shù pú wéi pú","束椽为柱":"shù chuán wéi zhù","书缺有间":"shū quē yǒu jiàn","手足重茧":"shǒu zú chóng jiǎn","手足异处":"shǒu zú yì chǔ","手脚干净":"shǒu jiǎo gàn jìng","手不应心":"shǒu bù yīng xīn","螫手解腕":"shì shǒu jiě wàn","释知遗形":"shì zhī yí xíng","适时应务":"shì shí yīng wù","适情率意":"shì qíng shuài yì","适当其冲":"shì dāng qí chōng","视为知己":"shì wéi zhī jǐ","使羊将狼":"shǐ yáng jiàng láng","食为民天":"shí wéi mín tiān","拾掇无遗":"shí duō wú yí","实与有力":"shí yù yǒu lì","石英玻璃":"shí yīng bō li","石室金匮":"shí shì jīn guì","什袭珍藏":"shí xí zhēn cáng","什伍东西":"shí wǔ dōng xī","什围伍攻":"shí wéi wǔ gōng","十魔九难":"shí mó jiǔ nàn","诗书发冢":"shī shū fà zhǒng","虱处裈中":"shī chǔ kūn zhōng","师直为壮":"shī zhí wéi zhuàng","尸居龙见":"shī jū lóng xiàn","圣经贤传":"shèng jīng xián zhuàn","圣君贤相":"shèng jūn xián xiàng","生拖死拽":"shēng tuō sǐ zhuài","审己度人":"shěn jǐ duó rén","神武挂冠":"shén wǔ guà guàn","神龙失埶":"shén lóng shī shì","深文曲折":"shēn wén qǔ shé","深厉浅揭":"shēn lì qiǎn qì","深谷为陵":"shēn gǔ wéi líng","深恶痛疾":"shēn wù tòng jí","深仇宿怨":"shēn chóu xiǔ yuàn","舍己为公":"shě jǐ wèi gōng","舍短取长":"shě duǎn qǔ cháng","舍策追羊":"shě cè zhuī yáng","蛇蝎为心":"shé xiē wéi xīn","少成若性":"shào chéng ruò xìng","上当学乖":"shàng dàng xué guāi","赏不当功":"shǎng bù dāng gōng","善自为谋":"shàn zì wéi móu","善为说辞":"shàn wéi shuō cí","善善恶恶":"shàn shàn wù è","善财难舍":"shàn cái nán shě","苫眼铺眉":"shān yǎn pū méi","讪牙闲嗑":"shàn yá xián kē","山阴乘兴":"shān yīn chéng xīng","山殽野湋":"shān yáo yě wéi","山溜穿石":"shān liù chuān shí","山节藻棁":"shān jié zǎo zhuō","杀鸡为黍":"shā jī wéi shǔ","色厉胆薄":"sè lì dǎn bó","桑荫未移":"sāng yīn wèi yí","桑荫不徙":"sāng yīn bù xǐ","桑土绸缪":"sāng tǔ chóu miù","桑户棬枢":"sāng hù juàn shū","三战三北":"sān zhàn sān běi","三瓦两舍":"sān wǎ liǎng shě","三人为众":"sān rén wèi zhòng","三差两错":"sān chā liǎng cuò","塞井焚舍":"sāi jǐng fén shě","洒心更始":"sǎ xīn gèng shǐ","洒扫应对":"sǎ sǎo yìng duì","软红香土":"ruǎn hóng xiāng tǔ","入吾彀中":"rù wú gòu zhōng","入铁主簿":"rù tiě zhǔ bù","入理切情":"rù lǐ qiē qíng","汝成人耶":"rǔ chéng rén yé","如水投石":"rú shuǐ tóu shí","如切如磋":"rú qiē rú cuō","如登春台":"rú dēng chūn tái","肉薄骨并":"ròu bó gǔ bìng","柔情绰态":"róu qíng chuò tài","戎马劻勷":"róng mǎ kuāng ráng","日中为市":"rì zhōng wéi shì","日月参辰":"rì yuè shēn chén","日省月修":"rì xǐng yuè xiū","日削月割":"rì xuē yuè gē","日省月试":"rì xǐng yuè shì","任达不拘":"rèn dá bù jū","人言藉藉":"rén yán jí jí","人模狗样":"rén mú gǒu yàng","人莫予毒":"rén mò yú dú","热熬翻饼":"rè áo fān bǐng","圈牢养物":"juàn láo yǎng wù","取予有节":"qǔ yǔ yǒu jié","诎要桡腘":"qū yāo ráo guó","穷形尽相":"qióng xíng jìn xiàng","情凄意切":"qíng qī yì qiè","情见势屈":"qíng xiàn shì qū","情见乎辞":"qíng xiàn hū cí","清都绛阙":"qīng dōu jiàng què","倾肠倒肚":"qīng cháng dào dǔ","青紫被体":"qīng zǐ pī tǐ","青林黑塞":"qīng lín hēi sài","螓首蛾眉":"qín shǒu é méi","琴瑟之好":"qín sè zhī hào","且住为佳":"qiě zhù wéi jiā","切树倒根":"qiē shù dǎo gēn","切理餍心":"qiē lǐ yàn xīn","切近的当":"qiē jìn de dāng","翘足引领":"qiáo zú yǐn lǐng","巧发奇中":"qiǎo fā qí zhòng","强嘴拗舌":"jiàng zuǐ niù shé","强直自遂":"qiáng zhí zì suí","强死强活":"qiǎng sǐ qiǎng huó","强食自爱":"qiǎng shí zì ài","强食靡角":"qiǎng shí mí jiǎo","强弓劲弩":"qiáng gōng jìng nǔ","强聒不舍":"qiǎng guō bù shě","强凫变鹤":"qiáng fú biàn hè","强而后可":"qiǎng ér hòu kě","强得易贫":"qiǎng dé yì pín","遣兴陶情":"qiǎn xìng táo qíng","牵羊担酒":"qiān yáng dān jiǔ","千了百当":"qiān liǎo bǎi dàng","泣下如雨":"qì xià rú yǔ","起偃为竖":"qǐ yǎn wéi shù","岂弟君子":"kǎi tì jūn zǐ","綦溪利跂":"qí xī lì qí","棋输先著":"qí shū xiān zhuó","齐王舍牛":"qí wáng shě niú","欺天诳地":"qī tiān kuáng dì","普天率土":"pǔ tiān shuài tǔ","铺胸纳地":"pū xiōng nà dì","铺锦列绣":"pū jǐn liè xiù","破家为国":"pò jiā wèi guó","破觚为圜":"pò gū wéi yuán","萍飘蓬转":"píng piāo péng zhuàn","帡天极地":"píng tiān jí dì","屏声息气":"bǐng shēng xī qì","凭几据杖":"píng jī jù zhàng","贫嘴薄舌":"pín zuǐ bó shé","片语只辞":"piàn yǔ zhī cí","披发文身":"pī fà wén shēn","烹龙炮凤":"pēng lóng páo fèng","炰鳖脍鲤":"fǒu biē kuài lǐ","庞眉皓发":"páng méi hào fà","攀花折柳":"pān huā zhé liǔ","攀蟾折桂":"pān chán shé guì","女大难留":"nǚ dà nán liú","弄玉吹箫":"nòng yù chuī xiāo","弄管调弦":"nòng guǎn tiáo xián","弄粉调朱":"nòng fěn diào zhū","浓抹淡妆":"nóng mò dàn zhuāng","捻土为香":"niǎn tǔ wéi xiāng","年谊世好":"nián yì shì hǎo","年华垂暮":"nián huá chuí mù","儗不于伦":"nǐ bù yú lún","泥而不滓":"ní ér bù zǐ","能者为师":"néng zhě wéi shī","能不称官":"néng bú chèn guān","挠直为曲":"náo zhí wéi qū","难进易退":"nán jìn yì tuì","难得糊涂":"nán dé hú tú","南蛮鴂舌":"nán mán jué shé","南贩北贾":"nán fàn běi gǔ","牧猪奴戏":"mù zhū nú xì","目眢心忳":"mù yuān xīn tún","目挑心招":"mù tiǎo xīn zhāo","目量意营":"mù liàng yì yíng","木头木脑":"mù tóu mù nǎo","木干鸟栖":"mù gàn niǎo qī","侔色揣称":"móu sè chuǎi chèn","莫予毒也":"mò yú dú yě","抹粉施脂":"mò fěn shī zhī","磨砻镌切":"mó lóng juān qiē","磨棱刓角":"mó léng wán jiǎo","摸门不着":"mō mén bù zháo","摸不着边":"mō bù zhuó biān","命中注定":"mìng zhōng zhù dìng","鸣鹤之应":"míng hè zhī yìng","明效大验":"míng xiào dà yàn","名我固当":"míng wǒ gù dāng","邈处欿视":"miǎo chǔ kǎn shì","黾穴鸲巢":"měng xué qú cháo","绵里薄材":"mián lǐ bó cái","靡有孑遗":"mǐ yǒu jié yí","靡衣偷食":"mǐ yī tōu shí","迷恋骸骨":"mí liàn hái gǔ","扪参历井":"mén shēn lì jǐng","门单户薄":"mén dān hù bó","昧旦晨兴":"mèi dàn chén xīng","冒名接脚":"mào míng jiē jiǎo","毛遂堕井":"máo suí duò jǐng","毛发倒竖":"máo fā dǎo shù","卖文为生":"mài wén wéi shēng","卖李钻核":"mài lǐ zuān hé","买椟还珠":"mǎi dú huán zhū","埋三怨四":"mán sān yuàn sì","马入华山":"mǎ rù huá shān","落魄江湖":"luò pò jiāng hú","落落难合":"luò luò nán hé","落草为寇":"luò cǎo wéi kòu","罗织构陷":"luó zhī gòu xiàn","鸾凤和鸣":"luán fèng hè míng","率由旧章":"shuài yóu jiù zhāng","率土同庆":"shuài tǔ tóng qìng","率兽食人":"shuài shòu shí rén","率土归心":"shuài tǔ guī xīn","率马以骥":"shuài mǎ yǐ jì","率尔成章":"shuài ěr chéng zhāng","鲁斤燕削":"lǔ jīn yàn xuē","漏尽更阑":"lòu jìn gēng lán","笼鸟槛猿":"lóng niǎo jiàn yuán","笼鸟池鱼":"lóng niǎo chí yú","龙游曲沼":"lóng yóu qū zhǎo","龙血玄黄":"lóng xuè xuán huáng","龙雕凤咀":"lóng diāo fèng jǔ","六尺之讬":"liù chǐ zhī tuō","令原之戚":"líng yuán zhī qī","令人捧腹":"lìng rén pěng fù","陵劲淬砺":"líng jìng cuì lì","临敌易将":"lín dí yì jiàng","裂裳衣疮":"liè shang yī chuāng","裂冠毁冕":"liè guàn huǐ miǎn","了无惧色":"liǎo wú jù sè","了身达命":"liǎo shēn dá mìng","了然无闻":"liǎo rán wú wén","了不可见":"liǎo bù kě jiàn","了不长进":"liǎo bù zhǎng jìn","燎发摧枯":"liǎo fà cuī kū","审时度势":"shěn shí duó shì","量小力微":"liàng xiǎo lì wēi","相时度力":"xiāng shí duó lì","量枘制凿":"liàng ruì zhì záo","量如江海":"liàng rú jiāng hǎi","量金买赋":"liàng jīn mǎi fù","量己审分":"liàng jǐ shěn fēn","敛骨吹魂":"liǎn gǔ chuī hún","詈夷为跖":"lì yí wéi zhí","利令志惛":"lì lìng zhì hūn","李广不侯":"lǐ guǎng bú hòu","礼为情貌":"lǐ wéi qíng mào","礼让为国":"lǐ ràng wéi guó","犁生骍角":"lí shēng xīng jiǎo","离本徼末":"lí běn jiǎo mò","楞眉横眼":"léng méi hèng yǎn","擂天倒地":"léi tiān dǎo dì","累足成步":"lěi zú chéng bù","累瓦结绳":"lěi wǎ jié shéng","累土至山":"lěi tǔ zhì shān","累土聚沙":"lěi tǔ jù shā","累卵之危":"lěi luǎn zhī wēi","累累如珠":"lěi lěi rú zhū","累块积苏":"lěi kuài jī sū","乐山乐水":"lè shān lè shuǐ","潦原浸天":"lǎo yuán jìn tiān","老师宿儒":"lǎo shī xiǔ rú","牢什古子":"láo shí gǔ zi","琅嬛福地":"láng huán fú dì","揆情度理":"kuí qíng duó lǐ","旷日累时":"kuàng rì lěi shí","匡救弥缝":"kuāng jiù mí fèng","枯树生华":"kū shù shēng huā","口轻舌薄":"kǒu qīng shé bó","口角生风":"kǒu jiǎo shēng fēng","口角春风":"kǒu jiǎo chūn fēng","口角风情":"kǒu jiǎo fēng qíng","口干舌焦":"kǒu gān shé jiāo","口腹之累":"kǒu fù zhī lěi","空腹便便":"kōng fù pián pián","嗑牙料嘴":"kē yá liào zuǐ","刻木为鹄":"kè mù wéi hú","咳珠唾玉":"ké zhū tuò yù","咳唾成珠":"ké tuò chéng zhū","抗颜为师":"kàng yán wéi shī","开华结果":"kāi huā jié guǒ","峻阪盐车":"jùn bǎn yán chē","嚼铁咀金":"jiáo tiě jǔ jīn","嚼墨喷纸":"jué mò pēn zhǐ","倔头强脑":"juè tóu jiàng nǎo","倔头倔脑":"juè tóu juè nǎo","倦鸟知还":"juàn niǎo zhī huán","卷席而葬":"juǎn xí ér zàng","卷甲倍道":"juǎn jiǎ bèi dào","聚米为山":"jù mǐ wéi shān","举手相庆":"jǔ shǒu xiāng qìng","举世混浊":"jǔ shì hún zhuó","鞠为茂草":"jū wéi mào cǎo","拘神遣将":"jū shén qiǎn jiàng","居下讪上":"jū xià shàn shàng","久要不忘":"jiǔ yāo bú wàng","九转功成":"jiǔ zhuǎn gōng chéng","九蒸三熯":"jiǔ zhēng sān hàn","敬业乐群":"jìng yè lè qún","井底虾蟆":"jǐng dǐ xiā má","旌旗卷舒":"jīng qí juǎn shū","荆棘载途":"jīng jí zài tú","禁舍开塞":"jìn shě kāi sāi","祲威盛容":"jìn wēi shèng róng","进退消长":"jìn tuì xiāo cháng","进退应矩":"jìn tuì yīng jǔ","进退触籓":"jìn tuì chù fān","进退跋疐":"jìn tuì bá zhì","尽多尽少":"jǐn duō jǐn shǎo","锦囊还矢":"jǐn náng huán shǐ","矜己自饰":"jīn jǐ zì shì","矜功负气":"jīn gōng fù qì","津关险塞":"jīn guān xiǎn sài","金吾不禁":"jīn wú bú jìn","金翅擘海":"jīn chì bāi hǎi","解衣衣人":"jiě yī yī rén","解人难得":"jiě rén nán dé","解铃系铃":"jiě líng xì líng","解发佯狂":"jiě fà yáng kuáng","诘屈磝碻":"jié qū áo qiāo","教猱升木":"jiāo náo shēng mù","较瘦量肥":"jiào shòu liàng féi","角立杰出":"jiǎo lì jié chū","焦沙烂石":"jiāo shā làn shí","骄儿騃女":"jiāo ér sì nǚ","浇风薄俗":"jiāo fēng bó sú","降妖捉怪":"xiáng yāo zhuō guài","将取固予":"jiāng qǔ gù yǔ","将门有将":"jiàng mén yǒu jiàng","将夺固与":"jiāng duó gù yǔ","槛花笼鹤":"jiàn huā lóng hè","鉴影度形":"jiàn yǐng duó xíng","渐不可长":"jiàn bù kě zhǎng","见素抱朴":"xiàn sù bào pǔ","见弃于人":"jiàn qì yú rén","简丝数米":"jiǎn sī shǔ mǐ","俭不中礼":"jiǎn bú zhòng lǐ","间见层出":"jiàn xiàn céng chū","尖嘴薄舌":"jiān zuǐ bó shé","甲冠天下":"jiǎ guàn tiān xià","葭莩之亲":"jiā fú zhī qīn","家累千金":"jiā lèi qiān jīn","家给人足":"jiā jǐ rén zú","家道从容":"jiā dào cóng róng","夹袋人物":"jiā dài rén wù","霁风朗月":"jì fēng lǎng yuè","寄兴寓情":"jì xìng yù qíng","计深虑远":"jì shēn lǜ yuǎn","计功量罪":"jì gōng liàng zuì","掎裳连襼":"jǐ shang lián yì","虮虱相吊":"jǐ shī xiāng diào","疾不可为":"jí bù kě wéi","极深研几":"jí shēn yán jī","及宾有鱼":"jí bīn yǒu yú","激薄停浇":"jī bó tíng jiāo","积素累旧":"jī sù lěi jiù","积时累日":"jī shí lěi rì","积露为波":"jī lù wéi bō","积德累功":"jī dé lěi gōng","积谗糜骨":"jī chán méi gǔ","击排冒没":"jī pái mào mò","祸为福先":"huò wéi fú xiān","祸福相依":"huò fú xiāng yī","获隽公车":"huò jùn gōng chē","混应滥应":"hùn yīng làn yīng","毁舟为杕":"huǐ zhōu wéi duò","毁钟为铎":"huǐ zhōng wéi duó","毁冠裂裳":"huǐ guān liè cháng","晦盲否塞":"huì máng pǐ sè","回船转舵":"huí chuán zhuàn duò","潢池盗弄":"huáng chí dào nòng","黄冠草履":"huáng guàn cǎo lǚ","黄发儿齿":"huáng fà ér chǐ","黄发垂髫":"huáng fà chuí tiáo","还珠返璧":"huán zhū fǎn bì","还年驻色":"huán nián zhù sè","还年却老":"huán nián què lǎo","坏裳为裤":"huài shang wéi kù","画荻和丸":"huà dí huò wán","化枭为鸠":"huà xiāo wéi jiū","化腐为奇":"huà fǔ wéi qí","化鸱为凤":"huà chī wéi fèng","花不棱登":"huā bu lēng dēng","户限为穿":"hù xiàn wéi chuān","呼卢喝雉":"hū lú hè zhì","呼来喝去":"hū lái hè qù","呼不给吸":"hū bù jǐ xī","厚味腊毒":"hòu wèi xī dú","厚德载物":"hòu dé zài wù","鸿渐于干":"hóng jiàn yú gàn","洪炉燎发":"hóng lú liáo fà","红绳系足":"hóng shéng jì zú","红不棱登":"hóng bu lēng dēng","横抢硬夺":"hèng qiǎng yìng duó","横恩滥赏":"hèng ēn làn shǎng","恨海难填":"hèn hǎi nán tián","鹤发鸡皮":"hè fà jī pí","涸思干虑":"hé sī gān lǜ","河涸海干":"hé hé hǎi gān","和颜说色":"hé yán yuè sè","合从连衡":"hé zòng lián héng","浩浩汤汤":"hào hào shāng shāng","好勇斗狠":"hào yǒng dòu hěn","好问则裕":"hào wèn zé yù","好为事端":"hào wéi shì duān","好问决疑":"hào wèn jué yí","好生之德":"hào shēng zhī dé","好奇尚异":"hǎo qí shàng yì","好恶不同":"hǎo è bù tóng","好丹非素":"hào dān fēi sù","豪干暴取":"háo gàn bào qǔ","毫发不爽":"háo fà bù shuǎng","寒酸落魄":"hán suān luò pò","含英咀华":"hán yīng jǔ huá","含糊不明":"hán hú bù míng","过为已甚":"guò wéi yǐ shèn","桂折兰摧":"guì shé lán cuī","规旋矩折":"guī xuán jǔ shé","广文先生":"guǎng wén xiān sheng","广陵散绝":"guǎng líng sǎn jué","冠山戴粒":"guàn shān dài lì","冠屦倒施":"guàn jù dǎo shī","挂席为门":"guà xí wéi mén","寡见鲜闻":"guǎ jiàn xiǎn wén","瓜葛相连":"guā gé xiāng lián","鼓吻奋爪":"gǔ wěn fèn zhǎo","古调单弹":"gǔ diào dān tán","古调不弹":"gǔ diào bù tán","姑射神人":"gū yè shén rén","苟合取容":"gǒu hé qǔ róng","狗续侯冠":"gǒu xù hòu guàn","钩爪锯牙":"gōu zhǎo jù yá","共枝别干":"gòng zhī bié gàn","共为唇齿":"gòng wéi chún chǐ","拱手而降":"gǒng shǒu ér xiáng","拱肩缩背":"gǒng jiān suō bèi","功薄蝉翼":"gōng bó chán yì","弓调马服":"gōng diào mǎ fú","更姓改物":"gēng xìng gǎi wù","更仆难数":"gēng pú nán shǔ","更令明号":"gēng lìng míng hào","更待干罢":"gèng dài gàn bà","更唱迭和":"gēng chàng dié hé","更长梦短":"gēng cháng mèng duǎn","各色名样":"gè sè míng yàng","格格不纳":"gé gé bú nà","格格不吐":"gé gé bù tǔ","告朔饩羊":"gù shuò xì yáng","膏车秣马":"gào chē mò mǎ","高义薄云":"gāo yì bó yún","岗头泽底":"gāng tóu zé dǐ","敢为敢做":"gǎn wéi gǎn zuò","甘分随时":"gān fèn suí shí","甘处下流":"gān chǔ xià liú","干啼湿哭":"gàn tí shī kū","干名犯义":"gàn míng fàn yì","干将莫邪":"gān jiāng mò yé","干城之将":"gān chéng zhī jiàng","腹载五车":"fù zài wǔ chē","父债子还":"fù zhài zǐ huán","父为子隐":"fù wéi zǐ yǐn","辅世长民":"fǔ shì zhǎng mín","福为祸始":"fú wéi huò shǐ","符号逻辑":"fú hào luó jí","浮收勒折":"fú shōu lè shé","肤受之愬":"fū shòu zhī sù","否终则泰":"pǐ zhōng zé tài","佛头著粪":"fó tóu zhuó fèn","奉为楷模":"fèng wéi kǎi mó","凤靡鸾吪":"fèng mǐ luán é","封豨修蛇":"fēng xī xiū shé","风影敷衍":"fēng yǐng fū yǎn","丰屋蔀家":"fēng wū bù jiā","粪土不如":"fèn tǔ bù rú","分风劈流":"fēn fēng pǐ liú","沸沸汤汤":"fèi fèi shāng shāng","菲食薄衣":"fěi shí bó yī","飞将数奇":"fēi jiàng shù qí","放辟邪侈":"fàng pì xié chǐ","方领圆冠":"fāng lǐng yuán guàn","犯而不校":"fàn ér bú jiào","返本还源":"fǎn běn huán yuán","反劳为逸":"fǎn láo wéi yì","法轮常转":"fǎ lún cháng zhuàn","罚不当罪":"fá bù dāng zuì","发引千钧":"fà yǐn qiān jūn","发奸擿伏":"fā jiān tī fú","发短心长":"fà duǎn xīn cháng","二竖为虐":"èr shù wéi nüè","儿女心肠":"ér nǚ xīn cháng","儿女亲家":"ér nǚ qìng jiā","遏恶扬善":"è wù yáng shàn","饿殍枕藉":"è piǎo zhěn jí","饿殍载道":"è piǎo zài dào","恶醉强酒":"wù zuì qiǎng jiǔ","恶意中伤":"è yì zhòng shāng","恶湿居下":"wù shī jū xià","恶居下流":"wù jū xià liú","恶不去善":"wù bú qù shàn","扼吭夺食":"è háng duó shí","扼襟控咽":"è jīn kòng yān","峨峨汤汤":"é é shāng shāng","屙金溺银":"ē jīn niào yín","朵颐大嚼":"duǒ yí dà jiáo","夺人所好":"duó rén suǒ hào","多言数穷":"duō yán shuò qióng","多文为富":"duō wén wéi fù","多端寡要":"duō duān guǎ yào","多财善贾":"duō cái shàn gǔ","遁世无闷":"dùn shì wú mèn","遁迹黄冠":"dùn jì huáng guàn","堆案盈几":"duī àn yíng jī","断还归宗":"duàn huán guī zōng","短见薄识":"duǎn jiàn bó shí","蠹居棊处":"dù jū qí chǔ","度己以绳":"duó jǐ yǐ shéng","杜默为诗":"dù mò wéi shī","杜鹃啼血":"dù juān tí xuè","笃近举远":"dǔ jìn jǔ yuǎn","独有千秋":"dú yǒu qiān qiū","读书得间":"dú shū dé jiàn","斗转参横":"dǒu zhuǎn shēn héng","兜肚连肠":"dōu dǔ lián cháng","洞见症结":"dòng jiàn zhèng jié","恫疑虚喝":"dòng yí xū hè","动中窾要":"dòng zhōng kuǎn yào","东鸣西应":"dōng míng xī yīng","东鳞西爪":"dōng lín xī zhǎo","东量西折":"dōng liàng xī shé","东家西舍":"dōng jiā xī shè","东扯西拽":"dōng chě xī zhuāi","鼎铛有耳":"dǐng chēng yǒu ěr","鼎铛玉石":"dǐng chēng yù shí","钉头磷磷":"dīng tóu lín lín","跌宕不羁":"diē dàng bù jī","跌弹斑鸠":"diē dàn bān jiū","雕心雁爪":"diāo xīn yàn zhǎo","颠倒衣裳":"diān dǎo yī cháng","德薄能鲜":"dé bó néng xiǎn","得马折足":"dé mǎ shé zú","蹈其覆辙":"dǎo qí fù zhé","捣虚撇抗":"dǎo xū piē kàng","倒载干戈":"dào zài gān gē","倒裳索领":"dào cháng suǒ lǐng","倒果为因":"dào guǒ wéi yīn","叨在知己":"tāo zài zhī jǐ","叨陪末座":"tāo péi mò zuò","党豺为虐":"dǎng chái wéi nüè","当轴处中":"dāng zhóu chǔ zhōng","当着不着":"dāng zhuó bù zhuó","当务始终":"dāng wù shǐ zhōng","淡汝浓抹":"dàn rǔ nóng mǒ","弹丸脱手":"tán wán tuō shǒu","弹铗无鱼":"dàn jiá wú yú","箪食瓢饮":"dān sì piáo yǐn","大璞不完":"dà pú bù wán","大明法度":"dà míng fǎ dù","大车以载":"dà chē yǐ zài","打闷葫芦":"dǎ mèn hú lu","沓来踵至":"tà lái zhǒng zhì","厝火燎原":"cuò huǒ liǎo yuán","撮科打哄":"cuō kē dǎ hòng","寸积铢累":"cùn jī zhū lěi","啛啛喳喳":"cuì cuì chā chā","摧折豪强":"cuī zhé háo qiáng","摧刚为柔":"cuī gāng wéi róu","从俗就简":"cóng sú jiù jiǎn","此发彼应":"cǐ fā bǐ yīng","此唱彼和":"cǐ chàng bǐ hè","慈悲为本":"cí bēi wéi běn","纯属骗局":"chún shǔ piàn jú","春笋怒发":"chūn sǔn nù fā","垂头搨翼":"chuí tóu tà yì","传为笑谈":"chuán wéi xiào tán","传风扇火":"chuán fēng shān huǒ","穿红着绿":"chuān hóng zhuó lǜ","触处机来":"chù chǔ jī lái","处尊居显":"chǔ zūn jū xiǎn","处堂燕雀":"chǔ táng yàn què","处实效功":"chǔ shí xiào gōng","处高临深":"chǔ gāo lín shēn","出入无间":"chū rù wú jiān","出门应辙":"chū mén yīng zhé","出处语默":"chū chǔ yǔ mò","出处殊途":"chū chǔ shū tú","出处进退":"chū chǔ jìn tuì","愁山闷海":"chóu shān mèn hǎi","冲冠眦裂":"chōng guàn zì liè","齿牙为祸":"chǐ yá wéi huò","尺二冤家":"chǐ èr yuān jia","尺短寸长":"chǐ duǎn cùn cháng","尺寸之功":"chǐ cùn zhī gōng","城北徐公":"chéng běi xú gōng","成败兴废":"chéng bài xīng fèi","趁水和泥":"chèn shuǐ huò ní","称雨道晴":"chēng yǔ dào qíng","称体载衣":"chēng tǐ zài yī","称体裁衣":"chèn tǐ cái yī","称家有无":"chèn jiā yǒu wú","称德度功":"chēng dé duó gōng","沉吟章句":"chén yín zhāng jù","沉吟不决":"chén yín bù jué","沉疴宿疾":"chén kē sù jí","扯纤拉烟":"chě qiàn lā yān","扯顺风旗":"chě shùn fēng qí","车载船装":"chē zǎi chuán zhuāng","朝升暮合":"zhāo shēng mù gě","朝攀暮折":"zhāo pān mù shé","超今冠古":"chāo jīn guàn gǔ","倡而不和":"chàng ér bú hè","畅所欲为":"chàng suǒ yù wéi","苌弘碧血":"cháng hóng bì xiě","长幼尊卑":"zhǎng yòu zūn bēi","长绳系日":"cháng shéng jì rì","长年三老":"zhǎng nián sān lǎo","长春不老":"cháng chūn bù lǎo","长傲饰非":"zhǎng ào shì fēi","昌亭旅食":"chāng tíng lǚ shí","禅絮沾泥":"chán xù zhān ní","差三错四":"chā sān cuò sì","层台累榭":"céng tái lěi xiè","层见迭出":"céng xiàn dié chū","藏踪蹑迹":"cáng zōng niè jì","苍蝇见血":"cāng yíng jiàn xiě","餐松啖柏":"cān sōng dàn bó","骖风驷霞":"cān fēng sì xiá","参伍错综":"cēn wǔ cuò zōng","参辰卯酉":"shēn chén mǎo yǒu","材优干济":"cái yōu gān jǐ","材薄质衰":"cái bó zhì shuāi","才大难用":"cái dà nán yòng","才薄智浅":"cái bó zhì qiǎn","不足为意":"bù zú wéi yì","不足为据":"bù zú wéi jù","不足为法":"bù zú wéi fǎ","不足齿数":"bù zú chǐ shǔ","不着疼热":"bù zhuó téng rè","不知薡蕫":"bù zhī dǐng dǒng","不越雷池":"bú yuè léi chí","不相为谋":"bù xiāng wéi móu","不贪为宝":"bù tān wéi bǎo","不了而了":"bù liǎo ér liǎo","不可揆度":"bù kě kuí duó","不遑启处":"bù huáng qǐ chǔ","不当不正":"bù dāng bú zhèng","不差什么":"bú chà shén me","不差累黍":"bù chā lěi shǔ","擘两分星":"bò liǎng fēn xīng","簸土扬沙":"bǒ tǔ yáng shā","薄物细故":"bó wù xì gù","薄寒中人":"bó hán zhòng rén","博文约礼":"bó wén yuē lǐ","播糠眯目":"bō kāng mí mù","剥皮抽筋":"bō pí chōu jīn","剥肤椎髓":"bō fū chuí suǐ","波属云委":"bō zhǔ yún wěi","波骇云属":"bō hài yún zhǔ","兵微将寡":"bīng wēi jiàng guǎ","兵强将勇":"bīng qiáng jiàng yǒng","兵多将广":"bīng duō jiàng guǎng","兵不由将":"bīng bù yóu jiàng","冰解的破":"bīng jiě dì pò","彬彬济济":"bīn bīn jǐ jǐ","摽梅之年":"biào méi zhī nián","表里为奸":"biǎo lǐ wéi jiān","飙发电举":"biāo fā diàn jǔ","变贪厉薄":"biàn tān lì bó","敝盖不弃":"bì gài bú qì","秕言谬说":"bǐ yán miù shuō","比物属事":"bǐ wù zhǔ shì","被山带河":"pī shān dài hé","被甲枕戈":"pī jiǎ zhěn gē","被甲据鞍":"pī jiǎ jù ān","被褐怀玉":"pī hè huái yù","被发缨冠":"pī fà yīng guàn","背曲腰躬":"bèi qǔ yāo gōng","北窗高卧":"běi chuāng gāo wò","北辰星拱":"běi chén xīng gǒng","北鄙之音":"běi bǐ zhī yīn","卑宫菲食":"bēi gōng fěi shí","暴衣露冠":"pù yī lù guàn","暴腮龙门":"pù sāi lóng mén","暴露文学":"bào lù wén xué","暴虎冯河":"bào hǔ píng hé","抱蔓摘瓜":"bào wàn zhāi guā","抱法处势":"bào fǎ chǔ shì","褒贬与夺":"bāo biǎn yǔ duó","帮闲钻懒":"bāng xián zuān lǎn","拜将封侯":"bài jiàng fēng hóu","百兽率舞":"bǎi shòu shuài wǔ","百孔千创":"bǎi kǒng qiān chuāng","白衣卿相":"bái yī qīng xiàng","白首为郎":"bái shǒu wéi láng","白首相知":"bái shǒu xiāng zhī","把玩无厌":"bǎ wán wú yàn","拔锅卷席":"bá guō juǎn xí","拔本塞源":"bá běn sè yuán","傲不可长":"ào bù kě zhǎng","熬更守夜":"áo gēng shǒu yè","安时处顺":"ān shí chǔ shùn","安身为乐":"ān shēn wéi lè","安老怀少":"ān lǎo huái shào","安步当车":"ān bù dàng chē","爱人好士":"ài rén hào shì","矮人观场":"ǎi rén guān chǎng","捱风缉缝":"ái fēng jī fèng","挨山塞海":"āi shān sè hǎi","阿家阿翁":"ā jiā ā wēng","阿党相为":"ē dǎng xiāng wéi","追亡逐北":"zhuī wáng zhú běi","竹篮打水":"zhú lán dá shuǐ","知疼着热":"zhī téng zháo rè","语不惊人":"yǔ bù jīng rén","于今为烈":"yú jīn wéi liè","一日三省":"yí rì sān xǐng","穴居野处":"xué jū yě chǔ","五脊六兽":"wǔ jǐ liù shòu","无声无臭":"wú shēng wú xiù","谓予不信":"wèi yú bú xìn","舍身为国":"shě shēn wéi guó","杀妻求将":"shā qī qiú jiàng","强作解人":"qiǎng zuò jiě rén","气冲斗牛":"qì chōng dǒu niú","临深履薄":"lín shēn lǚ bó","钧天广乐":"jūn tiān guǎng yuè","艰难竭蹶":"jiān nán jié jué","夹七夹八":"jiā qī jiā bā","混混噩噩":"hún hún è è","厚古薄今":"hòu gǔ bó jīn","鬼怕恶人":"guǐ pà è rén","伽马射线":"gā mǎ shè xiàn","佛头着粪":"fó tóu zhuó fèn","奉为至宝":"fèng wéi zhì bǎo","登坛拜将":"dēng tán bài jiàng","晨昏定省":"chén hūn dìng xǐng","察察为明":"chá chá wéi míng","博闻强识":"bó wén qiáng zhì","避难就易":"bì nán jiù yì","了无生机":"liǎo wú shēng jī","有一说一":"yǒu yī shuō yī","独一无二":"dú yī wú èr","说一不二":"shuō yī bù èr","举一反三":"jǔ yī fǎn sān","数一数二":"shǔ yī shǔ èr","杀一儆百":"shā yī jǐng bǎi","丁一卯二":"dīng yī mǎo èr","丁一确二":"dīng yī què èr","不一而止":"bù yī ér zhǐ","无一幸免":"wú yī xìng miǎn","表里不一":"biǎo lǐ bù yī","良莠不一":"liáng yǒu bù yī","心口不一":"xīn kǒu bù yī","言行不一":"yán xíng bù yī","政令不一":"zhèng lìng bù yī","参差不一":"cēn cī bù yī","纷纷不一":"fēn fēn bù yī","毁誉不一":"huǐ yù bù yī","不一而三":"bù yī ér sān","百不一遇":"bǎi bù yī yù","言行抱一":"yán xíng bào yī","瑜百瑕一":"yú bǎi xiá yī","背城借一":"bèi chéng jiè yī","凭城借一":"píng chéng jiè yī","劝百讽一":"quàn bǎi fěng yī","群居和一":"qún jū hé yī","百不获一":"bǎi bù huò yī","百不失一":"bǎi bù shī yī","百无失一":"bǎi wú shī yī","万不失一":"wàn bù shī yī","万无失一":"wàn wú shī yī","合而为一":"hé ér wéi yī","合两为一":"hé liǎng wéi yī","合二为一":"hé èr wéi yī","天下为一":"tiān xià wéi yī","相与为一":"xiāng yǔ wéi yī","较若画一":"jiào ruò huà yī","较如画一":"jiào rú huà yī","斠若画一":"jiào ruò huà yī","言行若一":"yán xíng ruò yī","始终若一":"shǐ zhōng ruò yī","终始若一":"zhōng shǐ ruò yī","惟精惟一":"wéi jīng wéi yī","众多非一":"zhòng duō fēi yī","不能赞一":"bù néng zàn yī","问一答十":"wèn yī dá shí","一不扭众":"yī bù niǔ zhòng","一以贯之":"yī yǐ guàn zhī","一以当百":"yī yǐ dāng bǎi","百不当一":"bǎi bù dāng yī","十不当一":"shí bù dāng yī","以一警百":"yǐ yī jǐng bǎi","以一奉百":"yǐ yī fèng bǎi","以一持万":"yǐ yī chí wàn","以一知万":"yǐ yī zhī wàn","百里挑一":"bǎi lǐ tiāo yī","整齐划一":"zhěng qí huà yī","一来二去":"yī lái èr qù","一路公交":"yī lù gōng jiāo","一路汽车":"yī lù qì chē","一路巴士":"yī lù bā shì","朝朝朝落":"zhāo cháo zhāo luò","曲意逢迎":"qū yì féng yíng","一行不行":"yì háng bù xíng","行行不行":"háng háng bù xíng"},qg=Object.keys(Hg).map((t=>({zh:t,pinyin:Hg[t],probability:2e-8,length:4,priority:fg.Normal,dict:Symbol("dict4")}))),Vg={"巴尔干半岛":"bā ěr gàn bàn dǎo","巴尔喀什湖":"bā ěr kā shí hú","不幸而言中":"bú xìng ér yán zhòng","布尔什维克":"bù ěr shí wéi kè","何乐而不为":"hé lè ér bù wéi","苛政猛于虎":"kē zhèng měng yú hǔ","蒙得维的亚":"méng dé wéi dì yà","民以食为天":"mín yǐ shí wéi tiān","事后诸葛亮":"shì hòu zhū gě liàng","物以稀为贵":"wù yǐ xī wéi guì","先下手为强":"xiān xià shǒu wéi qiáng","行行出状元":"háng háng chū zhuàng yuan","亚得里亚海":"yà dé lǐ yà hǎi","眼不见为净":"yǎn bú jiàn wéi jìng","竹筒倒豆子":"zhú tǒng dào dòu zi"},Gg=Object.keys(Vg).map((t=>({zh:t,pinyin:Vg[t],probability:2e-8,length:5,priority:fg.Normal,dict:Symbol("dict5")})));function Wg(t,e){return t&&(t.decimal<e.decimal||t.decimal===e.decimal&&t.probability>e.probability)?t:e}function Xg(t){t.probability<1e-300&&(t.probability*=1e300,t.decimal+=1)}function Jg(t){return t.priority===fg.Custom?-t.length*t.length*100:t.priority===fg.Surname?-t.length*t.length*10:0}function Yg(t,e){const n=[];let i=t.length-1,r=t[i];for(let s=e-1;s>=0;s--){const a=s+1>=e?{probability:1,decimal:0,patterns:[]}:n[s+1];while(r&&r.index+r.length-1===s){const e=r.index,s={probability:r.probability*a.probability,decimal:a.decimal+Jg(r),patterns:a.patterns,concatPattern:r};Xg(s),n[e]=Wg(n[e],s),r=t[--i]}const o={probability:1e-13*a.probability,decimal:0,patterns:a.patterns};Xg(o),n[s]=Wg(n[s],o),n[s].concatPattern&&(n[s].patterns=n[s].patterns.concat(n[s].concatPattern),n[s].concatPattern=void 0,delete n[s+1])}return n[0].patterns.reverse()}function Kg(t,e){return t&&t.count<=e.count?t:e}function $g(t){return t.priority===fg.Custom?-t.length*t.length*1e5:t.priority===fg.Surname?-t.length*t.length*100:1}function Zg(t,e){const n=[];let i=t.length-1,r=t[i];for(let s=e-1;s>=0;s--){const a=s+1>=e?{count:0,patterns:[]}:n[s+1];while(r&&r.index+r.length-1===s){const e=r.index,s={count:$g(r)+a.count,patterns:a.patterns,concatPattern:r};n[e]=Kg(n[e],s),r=t[--i]}const o={count:1+a.count,patterns:a.patterns};n[s]=Kg(n[s],o),n[s].concatPattern&&(n[s].patterns=n[s].patterns.concat(n[s].concatPattern),n[s].concatPattern=void 0,delete n[s+1])}return n[0].patterns.reverse()}function Qg(t,e){return!(e.index+e.length<=t.index)&&(!(e.priority>t.priority)&&!(e.priority===t.priority&&e.length>t.length))}function tm(t){const e=[];for(let n=t.length-1;n>=0;){const{index:i}=t[n];let r=n-1;while(r>=0&&Qg(t[n],t[r]))r--;(r<0||t[r].index+t[r].length<=i)&&e.push(t[n]),n=r}return e.reverse()}var em;(function(t){t[t["ReverseMaxMatch"]=1]="ReverseMaxMatch",t[t["MaxProbability"]=2]="MaxProbability",t[t["MinTokenization"]=3]="MinTokenization"})(em||(em={}));class nm{constructor(t,e="",n=""){this.children=new Map,this.fail=null,this.patterns=[],this.parent=t,this.prefix=e,this.key=n}}class im{constructor(){this.dictMap=new Map,this.queues=[],this.root=new nm(null)}build(t){this.buildTrie(t),this.buildFailPointer()}buildTrie(t){for(let e of t){const t=gg(e.zh);let n=this.root;for(let e=0;e<t.length;e++){let i=t[e];if(!n.children.has(i)){const r=new nm(n,t.slice(0,e).join(""),i);n.children.set(i,r),this.addNodeToQueues(r)}n=n.children.get(i)}this.insertPattern(n.patterns,e),e.node=n,this.addPatternToDictMap(e)}}buildFailPointer(){let t=[],e=0;this.queues.forEach((e=>{t=t.concat(e)})),this.queues=[];while(t.length>e){let n=t[e++],i=n.parent&&n.parent.fail,r=n.key;while(i&&!i.children.has(r))i=i.fail;n.fail=i?i.children.get(r):this.root}}addPatternToDictMap(t){this.dictMap.has(t.dict)||this.dictMap.set(t.dict,new Set),this.dictMap.get(t.dict).add(t)}addNodeToQueues(t){this.queues[pg(t.prefix)]||(this.queues[pg(t.prefix)]=[]),this.queues[pg(t.prefix)].push(t)}insertPattern(t,e){for(let n=t.length-1;n>=0;n--){const i=t[n];if(e.priority===i.priority&&e.probability>=i.probability)t[n+1]=i;else{if(!(e.priority>i.priority))return void(t[n+1]=e);t[n+1]=i}}t[0]=e}removeDict(t){if(this.dictMap.has(t)){const e=this.dictMap.get(t);e.forEach((t=>{t.node.patterns=t.node.patterns.filter((e=>e!==t))})),this.dictMap.delete(t)}}match(t,e){let n=this.root,i=[];const r=gg(t);for(let s=0;s<r.length;s++){let t=r[s];while(null!==n&&!n.children.has(t))n=n.fail;if(null===n)n=this.root;else{n=n.children.get(t);const r=n.patterns.find((t=>"off"===e?t.priority!==fg.Surname:"head"!==e||t.length-1-s===0));r&&i.push(Object.assign(Object.assign({},r),{index:s-r.length+1}));let a=n.fail;while(null!==a){const t=a.patterns.find((t=>"off"===e?t.priority!==fg.Surname:"head"!==e||t.length-1-s===0));t&&i.push(Object.assign(Object.assign({},t),{index:s-t.length+1})),a=a.fail}}}return i}search(t,e,n=2){const i=this.match(t,e);return 1===n?tm(i):3===n?Zg(i,pg(t)):Yg(i,pg(t))}}const rm=[...Gg,...qg,...Fg,...Ug,...Rg,...Ng],sm=new im;sm.build(rm);const am=new mg;new mg,Symbol("custom");const om=()=>am;const lm=t=>{const e=vg.get(t);return e?e.split(" ")[0]:t},hm=(t,e,n,i)=>{const r=sm.search(t,n,i);let s=0;const a=gg(t);for(let o=0;o<a.length;){const t=r[s];if(t&&o===t.index){if(1===t.length&&t.priority<=fg.Normal){const t=a[o];let n="";n=Lg(t,a[o-1],a[o+1]),e[o]={origin:t,result:n,isZh:n!==t,originPinyin:n},o++,s++;continue}const n=t.pinyin.split(" ");let i=0;for(let r=0;r<t.length;r++){const s=gg(t.zh);e[o+r]={origin:s[r],result:n[i],isZh:!0,originPinyin:n[i]},i++}o+=t.length,s++}else{const t=a[o];let n="";n=Lg(t,a[o-1],a[o+1]),e[o]={origin:t,result:n,isZh:n!==t,originPinyin:n},o++}}return{list:e,matches:r}},cm=t=>t.replace(/(ā|á|ǎ|à)/g,"a").replace(/(ō|ó|ǒ|ò)/g,"o").replace(/(ē|é|ě|è)/g,"e").replace(/(ī|í|ǐ|ì)/g,"i").replace(/(ū|ú|ǔ|ù)/g,"u").replace(/(ǖ|ǘ|ǚ|ǜ)/g,"ü").replace(/(n̄|ń|ň|ǹ)/g,"n").replace(/(m̄|ḿ|m̌|m̀)/g,"m").replace(/(ê̄|ế|ê̌|ề)/g,"ê"),um=(t,e="off")=>{const n=om();let i=vg.get(t)?vg.get(t).split(" "):[];if(n.get(t))i=n.get(t).split(" ");else if("off"!==e){const e=jg[t];e&&(i=[e].concat(i.filter((t=>t!==e))))}return i},dm=(t,e="off")=>{let n=um(t,e);return n.length>0?n.map((e=>({origin:t,result:e,isZh:!0,originPinyin:e}))):[{origin:t,result:t,isZh:!1,originPinyin:t}]},fm=t=>{const e=t.split(" "),n=[],i=[];for(let r of e)for(let t of yg)if(r.startsWith(t)){let e=r.slice(t.length);-1!==bg.indexOf(t)&&-1!==xg.indexOf(e)&&(e=wg[e]),n.push(t),i.push(e);break}return{final:i.join(" "),initial:n.join(" ")}},pm=t=>{const{final:e}=fm(t);let n="",i="",r="";return-1!==Sg.indexOf(cm(e))?(n=e[0],i=e[1],r=e.slice(2)):(i=e[0]||"",r=e.slice(1)||""),{head:n,body:i,tail:r}},gm=t=>{const e=/(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/,n=/(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/,i=/(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/,r=/(à|ò|è|ì|ù|ǜ|ǹ|m̀|ề)/,s=/(a|o|e|i|u|ü|ê)/,a=/(n|m)$/,o=[],l=t.split(" ");return l.forEach((t=>{e.test(t)?o.push("1"):n.test(t)?o.push("2"):i.test(t)?o.push("3"):r.test(t)?o.push("4"):s.test(t)||a.test(t)?o.push("0"):o.push("")})),o.join(" ")},mm=(t,e)=>{const n=cm(t).split(" "),i=gm(e).split(" "),r=[];return n.forEach(((t,e)=>{r.push(`${t}${i[e]}`)})),r.join(" ")},_m=(t,e)=>{const n=[],i=t.split(" ");return i.forEach((t=>{n.push(e?t[0]:t)})),n.join(" ")},vm=t=>"string"===typeof t||(console.error("The first param of pinyin is error: "+t+' is not assignable to type "string".'),!1);function ym(t,e){return!(e instanceof RegExp)||e.test(t)}const bm=(t,e)=>{let n=e.nonZh;if("removed"===n)return t.filter((t=>t.isZh||!ym(t.origin,e.nonZhScope)));if("consecutive"===n){for(let n=t.length-2;n>=0;n--){const i=t[n],r=t[n+1];!i.isZh&&!r.isZh&&ym(i.origin,e.nonZhScope)&&ym(r.origin,e.nonZhScope)&&(i.origin+=r.origin,i.result+=r.result,r.delete=!0)}return t.filter((t=>!t.delete))}return t},xm=(t,e)=>!(1!==pg(t)||!e.multiple)&&dm(t,e.surname),wm=(t,e)=>{switch(e.pattern){case"pinyin":break;case"num":t.forEach((t=>{t.result=t.isZh?gm(t.result):""}));break;case"initial":t.forEach((t=>{t.result=t.isZh?fm(t.result).initial:""}));break;case"final":t.forEach((t=>{t.result=t.isZh?fm(t.result).final:""}));break;case"first":t.forEach((t=>{t.result=_m(t.result,t.isZh)}));break;case"finalHead":t.forEach((t=>{t.result=t.isZh?pm(t.result).head:""}));break;case"finalBody":t.forEach((t=>{t.result=t.isZh?pm(t.result).body:""}));break;case"finalTail":t.forEach((t=>{t.result=t.isZh?pm(t.result).tail:""}));break}},Sm=(t,e)=>{switch(e.toneType){case"symbol":break;case"none":t.forEach((t=>{t.isZh&&(t.result=cm(t.result))}));break;case"num":t.forEach((t=>{t.isZh&&(t.result=mm(t.result,t.originPinyin))}));break}},Tm=(t,e)=>{e.v&&t.forEach((t=>{t.isZh&&(t.result=t.result.replace(/ü/g,"v"))}))},Mm=(t,e,n)=>{if(e.multiple&&1===pg(n)){let e="";t=t.filter((t=>{const n=t.result!==e;return e=t.result,n}))}return"array"===e.type?t.map((t=>t.result)):"all"===e.type?t.map((t=>{const n=t.isZh?t.result:"",{initial:i,final:r}=fm(n),{head:s,body:a,tail:o}=pm(n);let l=[];return""!==n&&(l=[n].concat(um(t.origin,e.surname).filter((t=>t!==n)))),{origin:t.origin,pinyin:n,initial:i,final:r,first:_m(t.result,t.isZh),finalHead:s,finalBody:a,finalTail:o,num:Number(gm(t.originPinyin)),isZh:t.isZh,polyphonic:l,inZhRange:!!vg.get(t.origin),result:t.result}})):t.map((t=>t.result)).join(e.separator)},Em=(t,e)=>(!1===e&&t.forEach((t=>{"一"===t.origin?t.result=t.originPinyin="yī":"不"===t.origin&&(t.result=t.originPinyin="bù")})),t),Am={pattern:"pinyin",toneType:"symbol",type:"string",multiple:!1,mode:"normal",removeNonZh:!1,nonZh:"spaced",v:!1,separator:" ",toneSandhi:!0,segmentit:2};function Rm(t,e){e=Object.assign(Object.assign({},Am),e||{});const n=vm(t);if(!n)return t;if(""===t)return"array"===e.type||"all"===e.type?[]:"";void 0===e.surname&&("surname"===e.mode?e.surname="all":e.surname="off"),"all"===e.type&&(e.pattern="pinyin"),"num"===e.pattern&&(e.toneType="none"),e.removeNonZh&&(e.nonZh="removed");let i=Array(pg(t)),{list:r}=hm(t,i,e.surname,e.segmentit);return r=Em(r,e.toneSandhi),r=bm(r,e),xm(t,e)&&(r=xm(t,e)),wm(r,e),Sm(r,e),Tm(r,e),Mm(r,e,t)}Symbol("default"),new Map;var zm;(function(t){t[t["AllSegment"]=1]="AllSegment",t[t["AllArray"]=2]="AllArray",t[t["AllString"]=3]="AllString",t[t["PinyinSegment"]=4]="PinyinSegment",t[t["PinyinArray"]=5]="PinyinArray",t[t["PinyinString"]=6]="PinyinString",t[t["ZhSegment"]=7]="ZhSegment",t[t["ZhArray"]=8]="ZhArray",t[t["ZhString"]=9]="ZhString"})(zm||(zm={}));zm.AllSegment;var Cm={};function Pm(t){const e=t.length;if(!e)return[];t.sort(((t,e)=>t.start-e.start||e.end-t.end));const n=[t[0]];let i=1,r=0;while(i<e)t[i].end>t[r].end&&(n.push(t[i]),r=i),++i;return n}Cm.randInt=function(t,e){return t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t},Cm.generateUUID=function(t){for(var e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),n="",i=0;i<t;i++){var r=Cm.randInt(0,e.length-1);n+=e[r]}return n},Cm.base64ToBufferSource=function(t){const e=atob(t),n=e.length,i=new Uint8Array(n);for(let r=0;r<n;r++)i[r]=e.charCodeAt(r);return i.buffer},Cm.concatenateArrayBuffers=function(t){let e=0;for(let s of t)e+=s.byteLength;let n=new ArrayBuffer(e),i=new Uint8Array(n),r=0;for(let s of t)i.set(new Uint8Array(s),r),r+=s.byteLength;return n},Cm.replaceWithHotWords=function(t,e,n){let i=[];if(n&&n.length>0?i=n:e&&e.length>0&&(i=e),i&&i.length){const e=Rm(t,{toneType:"none"});let n=[];i.forEach((t=>{let i,r=new RegExp(`\\b${t.token}\\b`,"g");while(null!==(i=r.exec(e))){let r=e.substring(0,i.index).split(" ").length-1,s=r+t.token.split(" ").length;n.push({start:r,end:s,replacement:t.word})}}));let r="",s=0;return Pm(n).forEach((e=>{s<=e.start&&(r+=t.substring(s,e.start),r+=e.replacement,s=e.end)})),r+=t.substring(s),r}return t},Cm.toBase64=function(t){for(var e="",n=new Uint8Array(t),i=n.byteLength,r=0;r<i;r++)e+=String.fromCharCode(n[r]);return window.btoa(e)},Cm.findSubstringsPositions=function(t,e){let n=[],i=-1;return e.forEach((e=>{-1!=t.lastIndexOf(e)&&n.push(t.lastIndexOf(e))})),i=Math.max(...n),i+1};var km=Cm;class Dm{constructor(t){rg(this,"message",null),this.appId=t.appId,this.apiKey=t.apiKey,this.apiSecret=t.apiSecret,this.vcn=t.tone,this.speed=t.speech_rate,this.volume=t.volume,this.pitch=t.pitch_rate,this.text=t.text,this.ws=null,this.audioData=null,this.createWebSocket()}createWebSocket(){const t=this.getWebSocketUrl();this.ws=new WebSocket(t),this.ws.onopen=()=>{var t={common:{app_id:this.appId},business:{aue:"raw",auf:"audio/L16;rate=16000",vcn:this.vcn,speed:this.speed,volume:this.volume,pitch:this.pitch,tte:"UTF8"},data:{status:2,text:window.btoa(unescape(encodeURIComponent(this.text)))}};this.ws.send(JSON.stringify(t))},this.ws.onmessage=t=>{const e=JSON.parse(t.data);if(0==e.code&&e.data.audio){if(this.audioData){let t=km.base64ToBufferSource(e.data.audio);this.audioData=km.concatenateArrayBuffers([this.audioData,t])}else this.audioData=km.base64ToBufferSource(e.data.audio);2==e.data.status&&(this.message(this.audioData),this.audioData=null)}},this.ws.onerror=t=>{console.error("TTS服务发生错误:",t)},this.ws.onclose=t=>{console.log("TTS服务关闭:",t)}}getWebSocketUrl(){var t="wss://tts-api.xfyun.cn/v2/tts",e=location.host,n=(new Date).toGMTString(),i="hmac-sha256",r="host date request-line",s=`host: ${e}\ndate: ${n}\nGET /v2/tts HTTP/1.1`,a=ag().HmacSHA256(s,this.apiSecret),o=ag().enc.Base64.stringify(a),l=`api_key="${this.apiKey}", algorithm="${i}", headers="${r}", signature="${o}"`,h=btoa(l);return t=`${t}?authorization=${h}&date=${n}&host=${e}`,t}}var Im=Dm;class Lm{constructor(t){rg(this,"message",null),this.appId=t.appId,this.apiKey=t.apiKey,this.apiSecret=t.apiSecret,this.vcn=t.tone,this.speed=t.speech_rate,this.volume=t.volume,this.pitch=t.pitch_rate,this.text=t.text.replace(/[\*\-]/g,""),this.ws=null,this.audioData=null,this.createWebSocket()}createWebSocket(){const t=this.getWebSocketUrl();this.ws=new WebSocket(t),this.ws.onopen=()=>{var t={header:{app_id:this.appId,status:2},parameter:{oral:{oral_level:"mid"},tts:{vcn:this.vcn,speed:this.speed,volume:this.volume,pitch:this.pitch,audio:{encoding:"raw",sample_rate:16e3,channels:1}}},payload:{text:{encoding:"utf8",compress:"raw",format:"plain",status:2,seq:0,text:window.btoa(unescape(encodeURIComponent(this.text)))}}};this.ws.send(JSON.stringify(t))},this.ws.onmessage=t=>{const e=JSON.parse(t.data);if(0==e.header.code&&0!=e.header.status){if(this.audioData){let t=km.base64ToBufferSource(e.payload.audio.audio);this.audioData=km.concatenateArrayBuffers([this.audioData,t])}else this.audioData=km.base64ToBufferSource(e.payload.audio.audio);2==e.header.status&&(this.message(this.audioData),this.audioData=null)}},this.ws.onerror=t=>{console.error("TTS服务发生错误:",t)},this.ws.onclose=t=>{console.log("TTS服务关闭:",t)}}getWebSocketUrl(){var t="wss://cbm01.cn-huabei-1.xf-yun.com/v1/private/mcd9m97e6",e="cbm01.cn-huabei-1.xf-yun.com",n=(new Date).toGMTString(),i="hmac-sha256",r="host date request-line",s=`host: ${e}\ndate: ${n}\nGET /v1/private/mcd9m97e6 HTTP/1.1`,a=ag().HmacSHA256(s,this.apiSecret),o=ag().enc.Base64.stringify(a),l=`api_key="${this.apiKey}", algorithm="${i}", headers="${r}", signature="${o}"`,h=btoa(l);return t=`${t}?authorization=${h}&date=${n}&host=${e}`,t}}var jm=Lm;class Nm{constructor(t){rg(this,"message",null),this.appId=t.appId,this.appToken=t.apiKey,this.voice_type=t.tone,this.speed_ratio=t.speech_rate,this.volume_ratio=t.volume,this.pitch_ratio=t.pitch_rate,this.text=t.text,this.host=t.host,this.audioData=null,this.init()}init(){mn({method:"post",url:`${this.host}/api/v1/tts`,headers:{"Content-Type":"application/json",Authorization:`Bearer;${this.appToken}`},data:{app:{appid:this.appId,token:this.appToken,cluster:"volcano_tts"},user:{uid:"12165121465112641653"},audio:{voice_type:this.voice_type,rate:16e3,encoding:"pcm",speed_ratio:this.speed_ratio,volume_ratio:this.volume_ratio,pitch_ratio:this.pitch_ratio},request:{reqid:km.generateUUID(32),text:this.text,operation:"query"}}}).then((t=>{const e=km.base64ToBufferSource(t.data.data);this.message(e)}))}}var Om=Nm;class Um{constructor(t){rg(this,"message",null),this.appId=t.appId,this.appToken=t.apiKey,this.voice_type=t.tone,this.speed_ratio=t.speech_rate,this.volume_ratio=t.volume,this.pitch_ratio=t.pitch_rate,this.text=t.text.replace(/[\*\-]/g,""),this.host=t.host,this.audio_type=t.audio_type,this.audioData=null,this.cluster=t.cluster,this.init()}init(){const t=async t=>{const e=this.cluster||"volcano_tts";let n,i;"volcano_tts"==e?(n="<speak>"+t+"</speak>",i="ssml"):(n=t,i="plain");const r=await mn({method:"post",url:`${this.host}/api/v1/tts`,headers:{"Content-Type":"application/json",Authorization:`Bearer;${this.appToken}`},data:{app:{appid:this.appId,token:this.appToken,cluster:e},user:{uid:"12165121465112641653"},audio:{voice_type:this.voice_type,rate:16e3,encoding:this.audio_type||"pcm",speed_ratio:this.speed_ratio,loudness_ratio:this.volume_ratio},request:{reqid:km.generateUUID(32),text:n,text_type:i,operation:"query"}}});return km.base64ToBufferSource(r.data.data)},e=(t,e=200)=>{const n=[];let i=0;while(i<t.length){let r=i+e;if(r>=t.length){n.push(t.slice(i));break}while(r<t.length&&-1===",。,".indexOf(t[r]))r++;r===t.length||r===i+e?n.push(t.slice(i,r)):(n.push(t.slice(i,r+1)),r++),i=r}return n},n=async(e,i=[])=>{if(0===e.length){const t=new Uint8Array(i.reduce(((t,e)=>t+e.byteLength),0));let e=0;return i.forEach((n=>{t.set(new Uint8Array(n),e),e+=n.byteLength})),console.log("All audio parts have been successfully combined."),void this.message(t)}try{const r=await t(e.shift());i.push(r),await n(e,i)}catch(r){console.error("Error processing text chunk:",r),this.message({err:"链接失败"})}},i=e(this.text);n(i).catch((t=>{console.error("Unexpected error during sequential processing of chunks:",t),this.message({err:"链接失败"})}))}}var Bm=Um,Fm=i(2554),Hm=i.n(Fm);const qm="https://bdbcdn.bdbdigital.com/",Vm="https://yh.bdbdigital.com/server";var Gm=i(4660),Wm=i.n(Gm);i(4919),i(2898),i(8789),i(6300),i(8140),i(7784);class Xm{constructor({appId:t,apiSecret:e,apiKey:n,brainHotWords:i,asrHotWords:r}){this.resultText="",this.resultTextTemp="",this.appId=t,this.apiSecret=e,this.apiKey=n,this.actualVolume=0,this.btnStatus="UNDEFINED",this.iatWS=null,this.brainHotWords=i,this.asrHotWords=r}start(){this.connectWebSocket()}stop(){this.iatWS.close()}getWebSocketUrl(){var t="wss://iat-api.xfyun.cn/v2/iat",e="iat-api.xfyun.cn",n=this.apiKey,i=this.apiSecret,r=(new Date).toGMTString(),s="hmac-sha256",a="host date request-line",o=`host: ${e}\ndate: ${r}\nGET /v2/iat HTTP/1.1`,l=ag().HmacSHA256(o,i),h=ag().enc.Base64.stringify(l),c=`api_key="${n}", algorithm="${s}", headers="${a}", signature="${h}"`,u=btoa(c);return t=`${t}?authorization=${u}&date=${r}&host=${e}`,t}renderResult(t){let e=JSON.parse(t);if(e.data&&e.data.result){let t=e.data.result,n="",i=t.ws;for(let e=0;e<i.length;e++)i[e].bg>0&&(n+=i[e].cw[0].w);this.resultText+=n,t.ls&&(this.resultText.length>0?this.onTextChange&&this.onTextChange(km.replaceWithHotWords(this.resultText,this.brainHotWords,this.asrHotWords)):this.onTextChange&&this.onTextChange(""))}0===e.code&&2===e.data.status&&this.iatWS.close(),0!==e.code&&(this.iatWS.close(),console.error(e))}changeBtnStatus(t){this.btnStatus=t,"CONNECTING"===t&&(this.resultText="",this.resultTextTemp="")}connectWebSocket(){const t=this.getWebSocketUrl();"WebSocket"in window?(this.iatWS=new WebSocket(t),this.changeBtnStatus("CONNECTING"),this.iatWS.onopen=()=>{var t={common:{app_id:this.appId},business:{language:"zh_cn",domain:"iat",accent:"mandarin",vad_eos:1e4,dwa:"wpgs"},data:{status:0,format:"audio/L16;rate=16000",encoding:"raw"}};this.iatWS.send(JSON.stringify(t)),this.onWsOpen()},this.iatWS.onmessage=t=>{this.renderResult(t.data)},this.iatWS.onerror=()=>{this.changeBtnStatus("CLOSED")},this.iatWS.onclose=()=>{this.changeBtnStatus("CLOSED")}):alert("浏览器不支持WebSocket")}}var Jm=Xm;class Ym{constructor({appId:t,apiSecret:e,apiKey:n,brainHotWords:i,asrHotWords:r}){this.resultText="",this.resultTextTemp="",this.appId=t,this.apiSecret=e,this.apiKey=n,this.actualVolume=0,this.btnStatus="UNDEFINED",this.iatWS=null,this.brainHotWords=i,this.asrHotWords=r}start(){this.connectWebSocket()}stop(){this.iatWS.close()}getWebSocketUrl(){var t="wss://iat.cn-huabei-1.xf-yun.com/v1",e="iat.cn-huabei-1.xf-yun.com",n=this.apiKey,i=this.apiSecret,r=(new Date).toGMTString(),s="hmac-sha256",a="host date request-line",o=`host: ${e}\ndate: ${r}\nGET /v1 HTTP/1.1`,l=ag().HmacSHA256(o,i),h=ag().enc.Base64.stringify(l),c=`api_key="${n}", algorithm="${s}", headers="${a}", signature="${h}"`,u=btoa(c);return t=`${t}?authorization=${u}&date=${r}&host=${e}`,t}renderResult(t){let e=JSON.parse(t);if(e?.payload?.result?.text){const t=JSON.parse(decodeURIComponent(escape(atob(e?.payload?.result?.text)))),n=t.ws;let i="";for(let e=0;e<n.length;e++)i+=n[e].cw[0].w;this.resultText+=i,t.ls&&(this.resultText.length>0?this.onTextChange&&this.onTextChange(km.replaceWithHotWords(this.resultText,this.brainHotWords,this.asrHotWords)):this.onTextChange&&this.onTextChange(""))}0===e.header.code&&2===e.header.status&&this.iatWS.close(),0!==e.header.code&&(this.iatWS.close(),console.error(e))}changeBtnStatus(t){this.btnStatus=t,"CONNECTING"===t&&(this.resultText="",this.resultTextTemp="")}connectWebSocket(){const t=this.getWebSocketUrl();"WebSocket"in window?(this.iatWS=new WebSocket(t),this.changeBtnStatus("CONNECTING"),this.iatWS.onopen=()=>{var t={header:{app_id:this.appId,status:0},parameter:{iat:{domain:"slm",language:"mul_cn",accent:"mandarin",eos:6e3,vinfo:1,result:{encoding:"utf8",compress:"raw",format:"json"}}},payload:{audio:{encoding:"raw",sample_rate:16e3,channels:1,bit_depth:16,seq:1,status:0,audio:""}}};this.iatWS.send(JSON.stringify(t)),this.onWsOpen()},this.iatWS.onmessage=t=>{this.renderResult(t.data)},this.iatWS.onerror=()=>{this.changeBtnStatus("CLOSED")},this.iatWS.onclose=()=>{this.changeBtnStatus("CLOSED")}):alert("浏览器不支持WebSocket")}}var Km=Ym;async function $m(t,e){const n=t.getReader();let i;while(!(i=await n.read()).done)e(i.value)}function Zm(t){let e,n,i,r=!1;return function(s){void 0===e?(e=s,n=0,i=-1):e=t_(e,s);const a=e.length;let o=0;while(n<a){r&&(10===e[n]&&(o=++n),r=!1);let s=-1;for(;n<a&&-1===s;++n)switch(e[n]){case 58:-1===i&&(i=n-o);break;case 13:r=!0;case 10:s=n;break}if(-1===s)break;t(e.subarray(o,s),i),o=n,i=-1}o===a?e=void 0:0!==o&&(e=e.subarray(o),n-=o)}}function Qm(t,e,n){let i=e_();const r=new TextDecoder;return function(s,a){if(0===s.length)null===n||void 0===n||n(i),i=e_();else if(a>0){const n=r.decode(s.subarray(0,a)),o=a+(32===s[a+1]?2:1),l=r.decode(s.subarray(o));switch(n){case"data":i.data=i.data?i.data+"\n"+l:l;break;case"event":i.event=l;break;case"id":t(i.id=l);break;case"retry":const n=parseInt(l,10);isNaN(n)||e(i.retry=n);break}}}}function t_(t,e){const n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function e_(){return{data:"",event:"",id:"",retry:void 0}}var n_=function(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n};const i_="text/event-stream",r_=1e3,s_="last-event-id";function a_(t,e){var{signal:n,headers:i,onopen:r,onmessage:s,onclose:a,onerror:o,openWhenHidden:l,fetch:h}=e,c=n_(e,["signal","headers","onopen","onmessage","onclose","onerror","openWhenHidden","fetch"]);return new Promise(((e,u)=>{const d=Object.assign({},i);let f;function p(){f.abort(),document.hidden||b()}d.accept||(d.accept=i_),l||document.addEventListener("visibilitychange",p);let g=r_,m=0;function _(){document.removeEventListener("visibilitychange",p),window.clearTimeout(m),f.abort()}null===n||void 0===n||n.addEventListener("abort",(()=>{_(),e()}));const v=null!==h&&void 0!==h?h:window.fetch,y=null!==r&&void 0!==r?r:o_;async function b(){var n;f=new AbortController;try{const n=await v(t,Object.assign(Object.assign({},c),{headers:d,signal:f.signal}));await y(n),await $m(n.body,Zm(Qm((t=>{t?d[s_]=t:delete d[s_]}),(t=>{g=t}),s))),null===a||void 0===a||a(),_(),e()}catch(i){if(!f.signal.aborted)try{const t=null!==(n=null===o||void 0===o?void 0:o(i))&&void 0!==n?n:g;window.clearTimeout(m),m=window.setTimeout(b,t)}catch(r){_(),u(r)}}}b()}))}function o_(t){const e=t.headers.get("content-type");if(!(null===e||void 0===e?void 0:e.startsWith(i_)))throw new Error(`Expected content-type to be ${i_}, Actual: ${e}`)}class l_{constructor(t){this.url=t,this.websocket=null,this.messageHandlers=[],this.isConnected=!1,this.isManualClose=!1,this.connect()}connect(){this.websocket=this.url?new WebSocket(`ws://192.168.10.${this.url}:7922/ws/qa_server`):new WebSocket("wss://bs5.x-menlive.com:18001/ws/qa_server"),this.websocket.onopen=()=>{console.log("WebSocket connection opened."),this.isConnected=!0,this.onConnectionOpen()},this.websocket.onmessage=t=>{"string"===typeof t.data?this.messageHandlers.forEach((e=>e(t.data))):t.data instanceof Blob?this.handleBlobMessage(t.data):console.warn("Unknown message type:",t.data)},this.websocket.onclose=()=>{console.log("WebSocket connection closed."),this.isConnected=!1,setTimeout((()=>{this.isManualClose||this.connect()}),5e3)},this.websocket.onerror=t=>{this.onConnectionError(),console.error("WebSocket error:",t)}}sendMessage(t){this.isConnected?this.websocket.send(t):console.error("WebSocket is not connected. Message not sent:",t)}addMessageHandler(t){this.messageHandlers.push(t)}removeMessageHandler(t){this.messageHandlers=this.messageHandlers.filter((e=>e!==t))}onConnectionOpen(){}onConnectionError(){}handleBlobMessage(t){const e=new FileReader;e.onload=()=>{const t=e.result;console.log("Blob content:",t);try{const e=JSON.parse(t);console.log("Parsed JSON:",e),this.messageHandlers.forEach((t=>t(e)))}catch(n){console.warn("Failed to parse JSON, treating as text:",n),this.messageHandlers.forEach((e=>e(t)))}},e.onerror=t=>{console.error("Error reading blob:",t)},e.readAsText(t)}disconnect(){this.websocket&&(this.websocket.close(),this.isConnected=!1,this.isManualClose=!0)}}var h_=l_,c_=function(){var t=this,e=t._self._c;return e("div",{staticClass:"ai-answer",style:{borderColor:t.isDraggingOverCancel?"#FF0030":""}},[e("div",{staticClass:"input-container"},[t.showAiAnswerVolume?t._e():e("div",{staticClass:"microphone-icon",on:{click:function(e){return t.updateInputType()}}},["txt"==t.inputType?e("img",{staticClass:"micr-pic",attrs:{src:"https://idouwebmodels.oss-cn-hangzhou.aliyuncs.com/njbdb_sdk/viocebtn1.svg",alt:""}}):e("img",{staticClass:"micr-pic",attrs:{src:"https://idouwebmodels.oss-cn-hangzhou.aliyuncs.com/njbdb_sdk/keyboardbtn1.svg",alt:""}})]),t.showAiAnswerVolume?t._e():e("div",{staticClass:"line"}),"txt"==t.inputType?e("div",{staticClass:"input-box"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.inputText,expression:"inputText"}],staticClass:"text-input",attrs:{type:"text",placeholder:"来和数字人智能体聊天吧"},domProps:{value:t.inputText},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.sendMessage.apply(null,arguments)},input:function(e){e.target.composing||(t.inputText=e.target.value)}}}),e("button",{staticClass:"send-button",on:{click:t.sendMessage}},[t.isSpeak?e("img",{staticClass:"send-img",attrs:{src:"https://idouwebmodels.oss-cn-hangzhou.aliyuncs.com/njbdb_sdk/stopbtn1.svg",alt:""},on:{click:t.stopSpeak}}):e("img",{staticClass:"send-img",attrs:{src:"https://idouwebmodels.oss-cn-hangzhou.aliyuncs.com/njbdb_sdk/sendbtn1.svg",alt:""}})])]):e("div",{staticClass:"input-box",on:{pointerdown:function(e){return t.sendVoice(1)},pointerup:function(e){return t.sendVoice(2)}}},[t.showAiAnswerVolume?e("div",{staticClass:"showAiAnswerVolume-dom"},[e("div",{ref:"recwaveDom",staticStyle:{width:"100%",height:"100%"}})]):e("div",{staticClass:"showAiAnswerVolume-dom"},[t._v(" 请按住说话 ")]),t.isSpeak?e("div",{staticClass:"isSpeak-dom",on:{click:t.stopSpeak}},[e("img",{staticClass:"send-img",attrs:{src:"https://idouwebmodels.oss-cn-hangzhou.aliyuncs.com/njbdb_sdk/stopbtn1.svg",alt:""}})]):t._e(),e("div",{directives:[{name:"show",rawName:"v-show",value:t.showAiAnswerVolume,expression:"showAiAnswerVolume"}],ref:"cancelArea",staticClass:"cancel-area",on:{pointerenter:t.handleCancelAreaEnter,pointerleave:t.handleCancelAreaLeave,touchstart:t.handleCancelAreaEnter,touchend:t.handleCancelAreaLeave}},[e("div",{staticClass:"cancel-item",class:{active:t.isDraggingOverCancel}},[t._v(" "+t._s(t.cancelText)+" ")])])])])])},u_=[],d_=i(1364),f_=i.n(d_);new(f_())("./processor");class p_{constructor({appId:t,apiSecret:e,apiKey:n,eos:i}){this.resultText="",this.resultTextTemp="",this.appId=t,this.apiSecret=e,this.apiKey=n,this.eos=i||6e3,this.actualVolume=0,this.btnStatus="UNDEFINED",this.iatWS=null,this.retryTimer=null,this.isManualClose=!1}send(t){const e={header:{app_id:this.appId,status:t.status},payload:{audio:{encoding:"raw",status:t.status,audio:t.audio}}};this.iatWS.send(JSON.stringify(e))}start(){this.connectWebSocket()}close(){console.log("已手动断开asr的ws服务!"),this.isManualClose=!0,this.iatWS&&(this.iatWS.close(),this.stopHeartbeat())}getWebSocketUrl(){var t="wss://iat.xf-yun.com/v1",e="iat.xf-yun.com",n=this.apiKey,i=this.apiSecret,r=(new Date).toGMTString(),s="hmac-sha256",a="host date request-line",o=`host: ${e}\ndate: ${r}\nGET /v1 HTTP/1.1`,l=ag().HmacSHA256(o,i),h=ag().enc.Base64.stringify(l),c=`api_key="${n}", algorithm="${s}", headers="${a}", signature="${h}"`,u=btoa(c);return t=`${t}?authorization=${u}&date=${r}&host=${e}`,t}renderResult(t){let e=JSON.parse(t);if(e?.payload?.result?.text){const t=JSON.parse(decodeURIComponent(escape(atob(e?.payload?.result?.text)))),n=t.ws;let i="";for(let e=0;e<n.length;e++)n[e].bg>0&&(i+=n[e].cw[0].w);this.resultText+=i,t.ls&&(this.resultText.length>0?this.onTextChange&&this.onTextChange(this.resultText):this.onTextChange&&this.onTextChange(""))}0===e.header.code&&e.header.status,0!==e.header.code&&console.error(e)}changeBtnStatus(t){this.btnStatus=t,"CONNECTING"===t&&(this.resultText="",this.resultTextTemp="")}connectWebSocket(){const t=this.getWebSocketUrl();if("WebSocket"in window)this.iatWS=new WebSocket(t);else{if(!("MozWebSocket"in window))return void alert("浏览器不支持WebSocket");this.iatWS=new MozWebSocket(t)}this.changeBtnStatus("CONNECTING"),this.iatWS.onopen=t=>{this.retryTimer&&(clearInterval(this.retryTimer),this.retryTimer=null);var e={header:{app_id:this.appId,status:0},parameter:{iat:{domain:"slm",language:"zh_cn",accent:"mandarin",eos:this.eos,vinfo:1,dwa:"wpgs",result:{encoding:"utf8",compress:"raw",format:"json"}}},payload:{audio:{encoding:"raw",sample_rate:16e3,channels:1,bit_depth:16,seq:1,status:0,audio:""}}};this.iatWS.send(JSON.stringify(e)),this.startHeartbeat()},this.iatWS.onmessage=t=>{this.renderResult(t.data)},this.iatWS.onerror=t=>{this.changeBtnStatus("CLOSED"),console.log("asr error: ",t),this.renderResult("ASR服务出错!"),this.stopHeartbeat()},this.iatWS.onclose=t=>{console.log("asr close: ",t),this.changeBtnStatus("CLOSED"),this.stopHeartbeat(),this.isManualClose||this.reconnect()}}startHeartbeat(){this.heartbeatTimer=setInterval((()=>{this.send({status:1,audio:""})}),5e3)}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}reconnect(){console.log("Reconnecting WebSocket..."),this.connectWebSocket()}}var g_=p_,m_=i.p+"img/viocebtn1.34343bdc.svg",__=i.p+"img/keyboardbtn1.77a3341c.svg",v_=i.p+"img/sendbtn1.4e0d0ce0.svg",y_=i.p+"img/stopbtn1.cbc7385c.svg",b_={name:"AiAnswer",data(){return{inputText:"",isSpeak:!1,inputType:"txt",showAiAnswerVolume:!1,isDraggingOverCancel:!1,cancelText:"松开发送,上滑取消",wave:null,waveCount:20,maxWaveHeight:50,isCanSpeak:!0,recorderManager:null,iatRecorder:null,recognizedText:"",speekTime:null,rec:null,audioData:[],speekOpen:!1,viocebtn1:m_,keyboardbtn1:__,sendbtn1:v_,stopbtn1:y_}},created(){let t=this;if(navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia,!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw t.isCanSpeak=!1,new Error("浏览器不支持麦克风设备");navigator.mediaDevices.getUserMedia({audio:!0},(function(e){t.isCanSpeak=!0,console.log("获取麦克风成功")}),(function(e){t.isCanSpeak=!1,console.log("获取麦克风失败了")}))},mounted(){window.addEventListener("touchmove",this.handleTouchMove)},beforeDestroy(){window.removeEventListener("touchmove",this.handleTouchMove)},methods:{handleTouchMove(t){const e=t.touches[0],n=e.clientX,i=e.clientY;if(this.cancelAreaRect||(this.cancelAreaRect=this.$refs.cancelArea?.getBoundingClientRect()),!this.cancelAreaRect)return;const r=n>=this.cancelAreaRect.left&&n<=this.cancelAreaRect.right&&i>=this.cancelAreaRect.top&&i<=this.cancelAreaRect.bottom;r&&!this.wasInside?(this.isDraggingOverCancel=!0,this.handleCancelAreaEnter()):!r&&this.wasInside&&(this.isDraggingOverCancel=!1,this.handleCancelAreaLeave()),this.wasInside=r},sendMessage(){this.inputText.trim()&&(console.log("发送消息:",this.inputText),this.$emit("sendMessage",{type:"txt",text:this.inputText}),this.inputText="",this.isSpeak=!0)},updateIsSpeak(t){this.isSpeak=t},updateInputType(){this.inputType="txt"==this.inputType?"mic":"txt"},async sendVoice(t){if(this.isCanSpeak)if(1==t)this.speekOpen=!0,this.speekTime=Date.now(),this.showAiAnswerVolume=!0,this.cancelText="松开发送,上滑取消",this.isDraggingOverCancel=!1,this.sendAudioData(),this.audioData=[],this.rec=Wm()({type:"mp3",sampleRate:16e3,bitRate:16,onProcess:(t,e,n,i)=>{console.log("222",t,e,n,i),this.wave&&this.wave.input(t[t.length-1],e,i),this.audioData.push(t[t.length-1].buffer),this.iatRecorder&&this.iatRecorder.iatWS.readyState===this.iatRecorder.iatWS.OPEN&&this.iatRecorder.send({status:1,audio:km.toBase64(t[t.length-1].buffer)})}}),Wm().CLog=()=>{},this.rec.open((()=>{}),((t,e)=>{console.log((e?"UserNotAllow,":"")+"无法录音:"+t)})),setTimeout((()=>{this.rec&&this.rec.start()}),1e3),this.$nextTick((()=>{this.$refs.recwaveDom&&(console.log("787878787",this.$refs.recwaveDom,Wm().FrequencyHistogramView),this.wave=Wm().FrequencyHistogramView({elem:this.$refs.recwaveDom,lineCount:30,position:0,minHeight:1,fallDuration:400,stripeEnable:!1,mirrorEnable:!0,linear:[0,"#2991F1",1,"#7B4AFF"]}),this.wave.input(new ArrayBuffer(0),0,1600))}));else{if(!this.speekOpen)return;this.speekOpen=!1;const t=Date.now();if(t-this.speekTime<=1e3)return this.recorderManager?.stop(),this.recorderManager=null,this.iatRecorder?.close(),this.sendAudioData(!0),void this.$emit("sendMessage",{type:"err",text:"说话时间太短"});this.rec.close(),this.rec=null,this.iatRecorder.send({status:2,audio:km.toBase64(new ArrayBuffer(0))}),this.sendAudioData()}},handleCancelAreaEnter(){this.cancelText="松开取消发送",this.wave=Wm().FrequencyHistogramView({elem:this.$refs.recwaveDom,lineCount:30,position:0,minHeight:1,fallDuration:400,stripeEnable:!1,mirrorEnable:!0,linear:[0,"#FF0030",1,"#FF0030"]}),this.isDraggingOverCancel=!0},handleCancelAreaLeave(){this.cancelText="松开发送,上滑取消",this.$refs.recwaveDom&&(this.wave=Wm().FrequencyHistogramView({elem:this.$refs.recwaveDom,lineCount:30,position:0,minHeight:1,fallDuration:400,stripeEnable:!1,mirrorEnable:!0,linear:[0,"#2991F1",1,"#7B4AFF"]})),this.isDraggingOverCancel=!1},sendAudioData(t){if(t)return this.showAiAnswerVolume=!1,this.isDraggingOverCancel=!1,this.iatRecorder?.close(),void this.sendAudioData(!0);this.iatRecorder=new g_({appId:"f397d569",apiSecret:"ZGZkNjRhOTcxYTNkOTAzNTAxODFlOGMy",apiKey:"862bcca881b5bb4b4aae7f32b48d7863",eos:3e4}),this.iatRecorder.start(),this.iatRecorder.onTextChange=t=>{if(console.log("res-------",t),!t||this.isDraggingOverCancel)return this.recognizedText="",this.iatRecorder?.close(),this.isDraggingOverCancel=!1,void(this.showAiAnswerVolume=!1);this.recognizedText+=t,this.speekOpen?(this.iatRecorder?.close(),this.sendAudioData()):(this.$emit("sendMessage",{type:"txt",text:this.recognizedText}),this.recognizedText="",this.showAiAnswerVolume=!1,this.isSpeak=!0,this.iatRecorder?.close())}},isFirstCharPunctuation(t){var e=new RegExp("[。;,:“”()、?《》!【】¥]+","g");let n=e.test(t.charAt(0));return n?t.slice(1):t},stopSpeak(){this.isSpeak=!1,this.$emit("sendMessage",{type:"stop"})}}},x_=b_;function w_(t,e,n,i,r,s,a,o){var l,h="function"===typeof t?t.options:t;if(e&&(h.render=e,h.staticRenderFns=n,h._compiled=!0),i&&(h.functional=!0),s&&(h._scopeId="data-v-"+s),a?(l=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},h._ssrRegister=l):r&&(l=o?function(){r.call(this,(h.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(h.functional){h._injectStyles=l;var c=h.render;h.render=function(t,e){return l.call(e),c(t,e)}}else{var u=h.beforeCreate;h.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:h}}var S_=w_(x_,c_,u_,!1,null,null,null),T_=S_.exports;const M_=[".","?","!","。","?","!",",",",",":",":"];let E_,A_;const R_=async()=>{try{return E_||(E_=await Promise.resolve().then(i.t.bind(i,9274,23)),E_=window.Vue||E_.default||await Promise.resolve().then(i.t.bind(i,9274,23))),A_||(A_=T_,A_=A_.default||A_),{Vue:E_,AiAnswer:A_}}catch(t){throw console.error("加载Vue或AiAnswer组件失败:",t),t}};class z_{constructor(t){this._updateCanvasVisibility(),this.options={token:t.token,projectId:t.projectId,container:t.container,width:t.width||360,height:t.height||640,host:t.host||Vm,microphone:t.microphone||!1,wave:t.wave,isUseChat:t.isUseChat||!1,onInitComplete:t.onInitComplete||null,onStartTalking:t.onStartTalking||null,onEndTalking:t.onEndTalking||null,onUpperLimit:t.onUpperLimit||null,insertAiAnswer:t.insertAiAnswer||!1,aiAnswerOptions:t.aiAnswerOptions||{},onReceivedTheIssue:t.onReceivedTheIssue||null},this.curProjJson={},this.actionVideoMap={},this.videoStatus="begining",this.text="",this.ttsServer=null,this.textDataTempLen=0,this.textDataLen=0,this.endCount=0,this.brainExtra=new Object,this.isIos=/iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()),this.default_posture={},this.ttsAudioData=[],this.init(),this.chatActionTimeout=null,this.concurrentLimit=!0,this.realTimeWeb=null,this.whepUrl=null,this._currentStartCallback=null,this._currentEndCallback=null,this._currentLimitCallback=null,this.headMv=null,this.headMvRealTime=null,this.isRealTimeSpeak=!1,this.realTimeMessageQueue=[],this.cozeAccessTokenJson=null,this.streamData=[],this.startTtsServerTimer=null,this.begin=!0,this.finish=!0,this.player=null,this.speakTime=null}async init(){if(!this.options.token)throw new Error("Token is required.");if(!this.options.projectId)throw new Error("ProjectId is required.");if(!this.options.container)throw new Error("Container is required.");const t=await this.getProjectData();if(this.curProjJson=JSON.parse(t.jsonstr),this.curProjJson.character.nierenId)throw new Error("捏人或捏人模板无法视频启动!");if(this.projectCharacter={...this.curProjJson.character,type:"3D"},this.options.insertAiAnswer&&await this._insertAiAnswerComponent(),this.curProjJson?.character&&this.curProjJson.character?.default_posture){var e="string"==typeof this.curProjJson.character.default_posture?JSON.parse(this.curProjJson.character.default_posture):this.curProjJson.character.default_posture;this.default_posture=e}else this.default_posture={};var n;this.getActionVideoList(this.curProjJson),"function"===typeof this.options.onInitComplete&&this.options.onInitComplete(this.curProjJson),n=this.getVideoUrl("standby",0);const i=await this.checkVideo(n);if(!i)throw new Error("视频未渲染!");if(this.div1=document.createElement("div"),this.div1.style=`width: ${this.options.width}px;height: ${this.options.height}px;position: absolute;left: 50%;top: 0;transform: translateX(-50%);overflow: hidden;`,this.options.container.appendChild(this.div1),this.div2=document.createElement("div"),this.div2.style="width: 100%;height: 100%;display: flex;align-items: flex-end;justify-content: center;",this.div1.appendChild(this.div2),this.canvas=document.createElement("canvas"),this.canvasReaTime=document.createElement("canvas"),this.canvas.id="canvas-video",this.canvasReaTime.id="canvas-realtime",this.div2.appendChild(this.canvas),this.div2.appendChild(this.canvasReaTime),this._updateCanvasVisibility(),this.initVideo(),this.options.microphone){if(this.wave=null,!this.options.wave)throw new Error("Wave is required.");this.brainExtra=this.curProjJson?.brainInfo?.extra||{},this.waveStyle=this.brainExtra?.waveStyle||1,this.brainExtra?.waveColor?this.waveColor=this.brainExtra?.waveColor:this.waveColor="#00aacc",this.dialogueMode=this.brainExtra?.dialogueMode||1,this.brainExtra?.waveId?this.waveId=this.brainExtra.waveId:1==this.waveStyle?this.waveId="11":2==this.waveStyle?this.waveId="16":3==this.waveStyle?this.waveId=1==this.dialogueMode?"11":"16":4==this.waveStyle&&(this.waveId=1==this.dialogueMode?"21":"11"),this.volumeValue=this.curProjJson?.noiseThreshold?Number(this.curProjJson?.noiseThreshold):20,this.volumeCloseTimer=null,this.rec=null,this.options.wave.style.opacity=0,this.receivingSound=!1,this.audioData=[],this.asr=this.curProjJson?.asr,this.asr&&"{}"!==JSON.stringify(this.asr)||(this.asr={app_id:"3912906b",api_key:"2a71f3449b41e412d36a6f577f4e2d36",api_secret:"NTkzOTM3YjA3NTk3YzhiZjJkMzE3MTU4",asr_type:"xt"}),this.questionMatchList=[];let t=this.brainExtra?.problemSetlist||[];if(t.length>0)t.forEach((t=>{let e=JSON.parse(JSON.stringify(t));e.questions="string"==typeof t.standardIssues?t.standardIssues:t.standardIssues[0],this.questionMatchList.push(e),t?.similarIssues&&t?.similarIssues.length>0&&""!=t?.similarIssues[0]&&t.similarIssues.forEach((e=>{let n=JSON.parse(JSON.stringify(t));n.questions=e,this.questionMatchList.push(n)}))}));else{let t=this.brainExtra?.imageArray||[];t.length>0&&t.forEach((t=>{this.questionMatchList.push(t)}));let e=this.brainExtra?.videoArray||[];e.length>0&&e.forEach((t=>{this.questionMatchList.push(t)}));let n=this.brainExtra?.urlArray||[];n.length>0&&n.forEach((t=>{this.questionMatchList.push(t)}))}this.isOnlyKeyword=this.brainExtra?.isOnlyKeyword||!1,this.keywordDefaultReply=this.brainExtra?.keywordDefaultReply||"抱歉,该问题尚未录入知识库,我会继续学习的。",this.curAiType=this.curProjJson?.aiConfig?.aiType||30,this.curAiData=this.curProjJson?.aiConfig,this.checkMicrophoneStatus()}this.curAiType=this.curProjJson?.aiConfig?.aiType||30,this.curAiData=this.curProjJson?.aiConfig}_updateCanvasVisibility(){this.canvas&&this.canvasReaTime&&(this.isRealTimeSpeak?(this.canvas.style.display="none",this.canvasReaTime.style.display="block"):(this.canvas.style.display="block",this.canvasReaTime.style.display="none"))}async _insertAiAnswerComponent(){try{const{Vue:t,AiAnswer:e}=await R_();this.aiAnswerContainer=document.createElement("div"),this.aiAnswerContainer.id="ai-answer-container",this.options.container.appendChild(this.aiAnswerContainer),this.aiAnswerVm=new t({render:t=>t(e,{props:{...this.options.aiAnswerOptions},on:{sendMessage:this._handleAiAnswerMessage.bind(this)}})}).$mount(this.aiAnswerContainer),console.log("AiAnswer组件已成功插入并挂载")}catch(t){console.error("插入AiAnswer组件时出错:",t)}}_handleAiAnswerMessage(t){console.log("收到aiAnswer组件消息:",t),"stop"!==t.type?"txt"===t.type?this.sendChat(t.text,{startTalking:()=>{this.aiAnswerVm&&this.aiAnswerVm.$children[0]&&this.aiAnswerVm.$children[0].updateIsSpeak(!0)},endTalking:()=>{this.aiAnswerVm&&this.aiAnswerVm.$children[0]&&this.aiAnswerVm.$children[0].updateIsSpeak(!1)},limitTalking:()=>{console.log("并发达到上限")}}):"err"===t.type&&console.error("aiAnswer错误:",t.text):this.stopSpeak()}_cleanupAiAnswer(){this.aiAnswerVm&&(this.aiAnswerVm.$destroy(),this.aiAnswerVm=null),this.aiAnswerContainer&&this.aiAnswerContainer.parentNode&&(this.aiAnswerContainer.parentNode.removeChild(this.aiAnswerContainer),this.aiAnswerContainer=null)}getProjectData(){return new Promise(((t,e)=>{mn({method:"get",url:`${this.options.host}/sdk/user/project/${this.options.projectId}`,headers:{Token:this.options.token}}).then((n=>{0!=n.data.code&&e(n.data.msg),t(n.data.data)})).catch((t=>{e(t)}))}))}checkVideo(t){return new Promise(((e,n)=>{const i=document.createElement("video");i.src=t,i.preload="auto",i.addEventListener("error",(()=>{n(!1)})),e(!0)}))}getActionVideoSources(t){return t.length>5?this.getRandomElements(t,5):t.length>0?t:[]}getRandomElements(t,e){if(e>t.length)throw new Error("请求的数量超过了数组的长度");let n=t.slice(),i=[];for(let r=0;r<e;r++){const t=Math.floor(Math.random()*n.length);i.push(n[t]),n.splice(t,1)}return i}preloadVideos(t){const e=t.map((t=>`${qm}/x-men-video/3dchat/${this.projectCharacter.chunkId}_${t.chunkId}`));e.forEach((t=>{const e=document.createElement("video");e.preload="auto",e.style.display="none",e.addEventListener("loadeddata",(()=>{})),e.addEventListener("error",(()=>{})),t+=this.isIos?".mp4":".webm",e.src=t,document.body.appendChild(e)}))}initVideo(t=!0,e=!1){if(this.curProjJson.isRealTime&&!this.realTimeWeb){this.realTimeWeb=new h_,this.realTimeWeb.onConnectionOpen=()=>{this.realTimeWeb.sendMessage(JSON.stringify({model_name:this.curProjJson.modelName,questionText:"你好啊",start:!0,finish:!0,request_type:"load_model"}))},this.realTimeWeb.onConnectionError=()=>{this.concurrentLimit=!0,this.initVideo(!0,!0)};const t=this;this.realTimeWeb.addMessageHandler((function(e){"success"==JSON.parse(e)?.status?t.realTimeWeb.sendMessage(JSON.stringify({model_name:t.curProjJson.modelName,questionText:"你好啊",start:!0,finish:!0,request_type:"qa_server_player"})):JSON.parse(e)?.whep?(t.concurrentLimit=!1,t.whepUrl=JSON.parse(e)?.whep,t.playWebRTCWithWHEP(t.whepUrl)):"tts_start"==JSON.parse(e)?.status?("function"===typeof t._currentStartCallback&&t._currentStartCallback(),t.isRealTimeSpeak=!0,t._updateCanvasVisibility(),t.startTalking()):"tts_finish"==JSON.parse(e)?.status?("function"===typeof t._currentEndCallback&&t._currentEndCallback(),t.isRealTimeSpeak=!1,t._updateCanvasVisibility(),t.endStart()):"error"==JSON.parse(e)?.status?(t.concurrentLimit=!0,t.headMvRealTime?.setSource("")):"timeout"==JSON.parse(e)?.status?t.realTimeWeb&&(t.concurrentLimit=!0,t.whepUrl=null,t.realTimeWeb.disconnect(),t.realTimeWeb=null,t.headMvRealTime?.setSource("")):"queued"==JSON.parse(e)?.status&&(t.realTimeMessageQueue=[],"function"===typeof t._currentLimitCallback&&t._currentLimitCallback())}))}if("waiting"==this.videoStatus)return;const n=this.getVideoUrl("standby",0);this.videoStatus="waiting",this.headMv?this.headMv.setSource(n,!0):(this.headMv=new tg({src:n,width:this.options.width,height:this.options.height,loop:!0,canvas:this.canvas,isIos:this.isIos,onEnded:()=>{if("speaking"==this.videoStatus)if(2===this.curProjJson?.actionMode){const t=2*Math.random()+4,e=1e3*parseFloat(t.toFixed(1));this.initChat(!0),this.chatActionTimeout=setTimeout((()=>{this.initChat()}),e)}else this.initChat()}}),this.headMv.play());let i={green_cutoff:.1,green_feathering:.2,green_mask_feathering:1,green_sharpening:.1,green_despill_strength:0,green_despill_luminance_add:0,green_bg_color:"#6dea74"};this.curProjJson?.character?.extra&&(i="object"===typeof this.curProjJson?.character?.extra?this.curProjJson?.character.extra:JSON.parse(this.curProjJson?.character.extra)),this.curProjJson?.imageCutoutParameters?.isEnable&&(i=this.curProjJson?.imageCutoutParameters),this.headMv.setCutoff(i?.green_cutoff??.1),this.headMv.setFeathering(i?.green_feathering??.2),this.headMv.setMaskFeathering(i?.green_mask_feathering??1),this.headMv.setSharpening(i?.green_sharpening??.1),this.headMv.setDespillStrength(i?.green_despill_strength??0),this.headMv.setDespillLuminanceAdd(i?.green_despill_luminance_add??0),this.headMv.setKeyColor(i?.green_bg_color||"#6dea74"),this.headMv.setZoom(this.curProjJson?.cameraParam2D?.scale||1),this.headMv.setOffset(this.curProjJson?.cameraParam2D?.percentX*this.options.width||0,this.curProjJson?.cameraParam2D?.percentY*this.options.height||0),t&&!this.curProjJson.isRealTime&&this.handleBoredWait(),this.headMv.play()}clearBoredWaitTimer(){this.openBoredWaitTimer&&(clearInterval(this.openBoredWaitTimer),this.openBoredWaitTimer=null),this.playStandbyVideoTimer&&(clearTimeout(this.playStandbyVideoTimer),this.playStandbyVideoTimer=null)}handleBoredWait(){let t;this.clearBoredWaitTimer();const e=this.actionVideoMap.boredStandby;if(e.length){let n="";const i=this.projectCharacter?.chunkId;this.openBoredWaitTimer=setInterval((async()=>{e.length>1?this.choseBoredWaitVideoIndex>=0?this.choseBoredWaitVideoIndex=this.getRandomIndexExcept(e,this.choseBoredWaitVideoIndex):this.choseBoredWaitVideoIndex=Math.floor(Math.random()*e.length):this.choseBoredWaitVideoIndex=0,n=this.getVideoUrl("boredStandby",this.choseBoredWaitVideoIndex),t=i?e[this.choseBoredWaitVideoIndex].frameNum:await this.getMediaDuration(n);const r=document.getElementById("rendered-video");r.loop=!1,this.videoStatus="boredWait",this.headMv.setSource(n,!0),this.boredWaitEndedTimer=setTimeout((()=>{this.initVideo(!1)}),1e3*t)}),1e3*(this.curProjJson?.standbyTimer||60))}}getRandomIndexExcept(t,e){if(!Array.isArray(t)||e<0||e>=t.length)throw new Error("Invalid input");let n=null,i=[];if(1===t.length)n=0,i=t;else{if(i=Array.from({length:t.length},((t,e)=>e)).filter((t=>t!==e)),0===i.length)throw new Error("No valid indices to choose from");n=Math.floor(Math.random()*i.length)}return n}clickDom(){}speak(t,e=!0,n=!0,i=this.startTalking,r=this.endStart,s=this.upperLimit){if(console.log("SDK speak:",t,e,n),this._currentStartCallback="function"===typeof i?i:null,this._currentEndCallback="function"===typeof r?r:null,this._currentLimitCallback="function"===typeof s?s:null,!this.curProjJson.isRealTime||!this.realTimeWeb||!this.concurrentLimit&&this.whepUrl)if(this.curProjJson.isRealTime)this.sendMessageToRealTimeTTS(t,e,n);else if(e&&(this.stopSpeak(),this.begin=e),this.finish=n,this.player||(this.player=new(Hm())({inputCodec:"Int16",channels:1,sampleRate:16e3,onstatechange:(t,e,n)=>{},onended:(t,e)=>{this.textDataLen-1==this.endCount?(this.stopSpeak(),this.endStart()):this.endCount++;const n=this.ttsAudioData[this.endCount];n&&this.player.feed(n)}}),this.player.volume(1)),this.text+=t,n)this.text&&(this.handleStream(this.text,this.begin,this.finish),this.textDataTempLen++),this.textDataLen=this.textDataTempLen,this.text="";else{let t=km.findSubstringsPositions(this.text,M_),e=this.text.substring(0,t);e.length>10&&(this.handleStream(e,this.begin,this.finish),this.textDataTempLen++,this.text=this.text.substring(t),this.begin=!1)}else"function"===typeof this._currentLimitCallback&&this._currentLimitCallback()}sendChat(t,e=!0,n=!0,i=!1,r=this.startTalking,s=this.endStart,a=this.upperLimit){this._currentStartCallback="function"===typeof r?r:null,this._currentEndCallback="function"===typeof s?s:null,this._currentLimitCallback="function"===typeof a?a:null,this.handleAiType(t)}speakTts(t,e=!1,n=!0){e&&this.stopSpeak(),this.player||(this.player=new(Hm())({inputCodec:"Int16",channels:1,sampleRate:16e3,onstatechange:(t,e,n)=>{},onended:(t,e)=>{this.textDataLen-1==this.endCount?(this.stopSpeak(),this.endStart()):this.endCount++;const n=this.ttsAudioData[this.endCount];n?this.player.feed(n):this.finish||(this.speakTime=setInterval((()=>{const t=this.ttsAudioData[this.endCount];t&&(this.player.feed(t),clearInterval(this.speakTime),this.speakTime=null)}),100))}}),this.player.volume(1)),this.ttsAudioData.push(t),e&&(this.player.feed(t),this.player.continue(),this.startTalking(),setTimeout((()=>{this.initChat()}),500))}sendMessageToRealTimeTTS(t,e,n){let i,r;"hs_model"==this.curProjJson.tone.tts_type?(i=this.curProjJson.tone.volume<40?this.curProjJson.tone.volume:(this.curProjJson.tone.volume/50).toFixed(1),r=this.curProjJson.tone.speech_rate<40?this.curProjJson.tone.speech_rate:(this.curProjJson.tone.speech_rate/50).toFixed(1)):(i=this.curProjJson.tone.volume,r=this.curProjJson.tone.speech_rate);const s=JSON.stringify({model_name:this.curProjJson.modelName,questionText:t,start:e,finish:n,request_type:"qa_server",speaker:this.curProjJson.tone.curYinse,speaker_type:this.curProjJson.tone.cluster?this.curProjJson.tone.cluster:"hs_model"==this.curProjJson.tone.tts_type?"volcano_tts":"",tts_appId:this.curProjJson.tone.app_id||"",tts_token:this.curProjJson.tone.api_key||"",tts_type:"hs_model"==this.curProjJson.tone.tts_type?"hs":"xf",volume_ratio:i,speed_ratio:r,pitch_ratio:this.curProjJson.tone.pitch_rate});this.realTimeWeb&&this.realTimeWeb.isConnected?this.realTimeWeb.sendMessage(s):(this.handleRealTimeWebCreate(),this.realTimeMessageQueue.push(s))}handleRealTimeWebCreate(t){if(!this.realTimeWeb){this.aiAnswerDisabled=!0,this.isCanRecord=!1,this.realTimeWeb=new h_,this.realTimeWeb.onConnectionOpen=()=>{this.realTimeWeb.sendMessage(JSON.stringify({model_name:this.curProjJson.modelName,questionText:"你好啊",start:!0,finish:!0,request_type:"load_model"}))};const t=this;this.realTimeWeb.addMessageHandler((function(e){"success"==JSON.parse(e)?.status?t.realTimeWeb.sendMessage(JSON.stringify({model_name:t.curProjJson.modelName,questionText:"你好啊",start:!0,finish:!0,request_type:"qa_server_player"})):JSON.parse(e)?.whep?(t.concurrentLimit=!1,t.whepUrl=JSON.parse(e)?.whep,t.playWebRTCWithWHEP(),t.aiAnswerDisabled=!1,t.isCanRecord=!0,t.realTimeMessageQueue&&t.realTimeMessageQueue.length&&(t.realTimeWeb.sendMessage(JSON.stringify({request_type:"qa_server_stop",model_name:t.curProjJson.modelName})),t.realTimeMessageQueue.forEach((e=>{t.realTimeWeb.sendMessage(e)})),t.realTimeMessageQueue=[])):"tts_start"==JSON.parse(e)?.status?("function"===typeof t._currentStartCallback&&t._currentStartCallback(),t.isRealTimeSpeak=!0,t._updateCanvasVisibility(),t.startTalking()):"tts_finish"==JSON.parse(e)?.status?("function"===typeof t._currentEndCallback&&t._currentEndCallback(),t.isRealTimeSpeak=!1,t._updateCanvasVisibility(),t.endStart()):"error"==JSON.parse(e)?.status?(t.concurrentLimit=!0,t.headMvRealTime?.setSource("")):"timeout"==JSON.parse(e)?.status?t.realTimeWeb&&(t.concurrentLimit=!0,t.whepUrl=null,t.realTimeWeb.disconnect(),t.realTimeWeb=null,t.headMvRealTime?.setSource(""),t.isRealTimeWebTimeout=!0):"queued"==JSON.parse(e)?.status&&(t.realTimeMessageQueue=[],"function"===typeof t._currentLimitCallback&&t._currentLimitCallback())}))}}handleStream(t,e,n=!0){t=t.replace(/\n/g,"\n\n");let i=t.replace(/^#{1,6}\s+|(\s+#{1,6})$/gm," ");const r=km.generateUUID(32);let s={text:i,txid:r,finish:n};this.streamData.push(s),e&&this.startTtsServer(e)}startTtsServer(t){const e=this.streamData.shift();this.startTtsServerTimer&&(clearTimeout(this.startTtsServerTimer),this.startTtsServerTimer=null),e?this.ttsServerFun(e,t):this.startTtsServerTimer=setTimeout((()=>{this.startTtsServer()}),500)}ttsServerFun(t,e,n){let i=t.text.replace(/[\n\t\s]+/g,"");if(i){if("cmww"==this.curProjJson.tone.tts_type||"my"==this.curProjJson.tone.tts_type){let t=this.curProjJson.tone.api_key,e=this.curProjJson.tone.api_secret;"cmww"==this.curProjJson.tone.tts_type&&(t="A1BD49F9ADBF91C047FAA64FA67CB6EC",e="6C265FA3E1A0786D49A7FFAB737F23ED"),this.ttsServer=new lg({apiKey:t,apiSecret:e,tone:this.curProjJson.tone.tone,speech_rate:this.curProjJson.tone.speech_rate,volume:this.curProjJson.tone.volume,pitch_rate:this.curProjJson.tone.pitch_rate,text:i})}else if("hs"==this.curProjJson.tone.tts_type)this.ttsServer=new Om({appId:this.curProjJson.tone.app_id,apiKey:this.curProjJson.tone.api_key||this.curProjJson.tone.app_token,tone:this.curProjJson.tone.tone,speech_rate:this.curProjJson.tone.speech_rate,volume:this.curProjJson.tone.volume,pitch_rate:this.curProjJson.tone.pitch_rate,text:i,host:this.options.host});else if("hs_model"==this.curProjJson.tone.tts_type)this.curProjJson?.ttsPolyphone&&this.curProjJson?.ttsPolyphone.length>0&&this.curProjJson?.ttsPolyphone.forEach((t=>{let e=`<phoneme alphabet="py" ph="${t.spell}">${t.word}</phoneme>`;i=i.replace(new RegExp(`${t.word}`,"g"),e)})),i&&-1!=i.indexOf("phoneme")&&(i="<speak>"+i+"</speak>"),this.ttsServer=new Bm({appId:this.curProjJson.tone?.app_id||"6881731623",apiKey:this.curProjJson.tone?.api_key||"OvIDgX_VfscUzVs_0-FVGz7OmzFLAFWC",tone:this.curProjJson.tone.tone,speech_rate:this.curProjJson.tone.speech_rate,volume:this.curProjJson.tone.volume,pitch_rate:this.curProjJson.tone.pitch_rate,text:i,cluster:this.curProjJson.tone.cluster,host:this.options.host});else if("xf"==this.curProjJson.tone.tts_type)this.ttsServer=new Im({appId:this.curProjJson.tone.app_id,apiKey:this.curProjJson.tone.api_key,apiSecret:this.curProjJson.tone.api_secret,tone:this.curProjJson.tone.tone,speech_rate:this.curProjJson.tone.speech_rate,volume:this.curProjJson.tone.volume,pitch_rate:this.curProjJson.tone.pitch_rate,text:i});else if("kdxf_cnr"==this.curProjJson.tone.tts_type||"xf_model"==this.curProjJson.tone.tts_type){let t=this.curProjJson.tone.app_id,e=this.curProjJson.tone.api_key,n=this.curProjJson.tone.api_secret;"kdxf_cnr"==this.curProjJson.tone.tts_type&&(t="f397d569",e="862bcca881b5bb4b4aae7f32b48d7863",n="ZGZkNjRhOTcxYTNkOTAzNTAxODFlOGMy"),this.curProjJson?.ttsPolyphone&&this.curProjJson?.ttsPolyphone.length>0&&this.curProjJson?.ttsPolyphone.forEach((t=>{let e="",n=t.spell.split(" ");for(let i=0;i<t.word.length;i++)e+=`${t.word[i]}[=${n[i]}]`;i=i.replace(new RegExp(`${t.word}`,"g"),e)})),this.ttsServer=new jm({appId:t,apiKey:e,apiSecret:n,tone:this.curProjJson.tone.tone,speech_rate:this.curProjJson.tone.speech_rate,volume:this.curProjJson.tone.volume,pitch_rate:this.curProjJson.tone.pitch_rate,text:i})}this.ttsServer.message=n=>{this.ttsAudioData.push(n),e&&(this.player.feed(n),this.player.continue(),this.startTalking(),setTimeout((()=>{this.initChat()}),500)),t.finish||this.startTtsServer(!1)}}}initChat(t=!1){let e;this.clearBoredWaitTimer();const{speak:n,prologue:i}=this.actionVideoMap;let r;r=n;const s=!r.length;s||t?e=this.getVideoUrl("standbySpeak",0):(n.length>1?this.choseVideoIndex>=0?this.choseVideoIndex=this.getRandomIndexExcept(r,this.choseVideoIndex):this.choseVideoIndex=Math.floor(Math.random()*r.length):this.choseVideoIndex=0,e=this.getVideoUrl("speak",this.choseVideoIndex)),this.videoStatus="speaking",this.headMv.setSource(e,s||t)}stopSpeak(){this.chatActionTimeout&&(clearTimeout(this.chatActionTimeout),this.chatActionTimeout=null),this.player&&"function"==typeof this.player.pause&&(this.player.pause(),this.player.destroy(),this.player=null),this.curProjJson?.isRealTime&&this.realTimeWeb.sendMessage(JSON.stringify({model_name:this.curProjJson.modelName,request_type:"qa_server_stop"})),this.startTtsServerTimer&&(clearTimeout(this.startTtsServerTimer),this.startTtsServerTimer=null),this.textDataLen=0,this.textDataTempLen=0,this.endCount=0,this.ttsAudioData=[],this.streamData=[],this.initVideo()}checkMicrophoneStatus(){if(navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia,!navigator.getUserMedia&&!navigator.mediaDevices.getUserMedia)throw new Error("浏览器不支持麦克风");navigator.mediaDevices.getUserMedia({audio:!0}).then((()=>{this.initRecorderCode()})).catch((t=>{throw new Error("麦克风授权失败:",t)}))}initWave(){"11"==this.waveId?this.wave=Wm().FrequencyHistogramView({elem:this.options.wave,lineCount:30,position:0,minHeight:1,fallDuration:400,stripeEnable:!1,mirrorEnable:!0,linear:[0,this.waveColor,1,this.waveColor]}):"12"==this.waveId?this.wave=Wm().WaveView({elem:this.options.wave,linear1:[0,this.waveColor,1,this.waveColor],linear2:[0,this.waveColor,1,this.waveColor],linearBg:[0,"gold",1,this.waveColor]}):"13"==this.waveId?this.wave=Wm().WaveSurferView({elem:this.options.wave,linear:[0,this.waveColor,1,this.waveColor]}):"14"==this.waveId?this.wave=Wm().WaveSurferView({elem:this.options.wave,direction:-1,duration:1e3,linear:[0,this.waveColor,1,this.waveColor]}):"15"==this.waveId?this.wave=Wm().FrequencyHistogramView({elem:this.options.wave,lineCount:15,spaceWidth:1.5,stripeEnable:!1,linear:[0,this.waveColor,1,this.waveColor]}):"16"==this.waveId?this.wave=Wm().FrequencyHistogramView({elem:this.options.wave,lineCount:90,widthRatio:1,position:0,minHeight:1,fallDuration:600,stripeEnable:!1,mirrorEnable:!0,linear:[0,this.waveColor,1,this.waveColor]}):"17"==this.waveId?this.wave=Wm().FrequencyHistogramView({elem:this.options.wave,lineCount:90,widthRatio:1,minHeight:1,mirrorEnable:!0,linear:[0,this.waveColor,1,this.waveColor]}):"18"==this.waveId?this.wave=Wm().WaveSurferView({elem:this.options.wave,position:-1,duration:1e4,linear:[0,this.waveColor,1,this.waveColor]}):"21"==this.waveId?this.wave=Wm().WaveView({elem:this.options.wave}):"22"==this.waveId?this.wave=Wm().FrequencyHistogramView({elem:this.options.wave,fullFreq:!0}):"23"==this.waveId?this.wave=Wm().FrequencyHistogramView({elem:this.options.wave,lineCount:15,position:0,minHeight:1,fallDuration:400,stripeEnable:!1,mirrorEnable:!0}):"24"==this.waveId&&(this.wave=Wm().FrequencyHistogramView({elem:this.options.wave,lineCount:90,widthRatio:1,minHeight:1,mirrorEnable:!0,linear:[0,"#0A5",1,"#A50"]}))}initRecorderCode(){this.rec=Wm()({type:"mp3",sampleRate:16e3,bitRate:16,onProcess:(t,e,n,i)=>{this.wave&&this.wave.input(t[t.length-1],e,i);const r=e;r>=this.volumeValue&&(this.stopSpeak(),this.receivingSound=!0,this.options.wave.style.opacity=1,this.volumeCloseTimer?(clearTimeout(this.volumeCloseTimer),this.recorderEnd()):this.recorderEnd()),this.receivingSound&&this.audioData.push(t[t.length-1].buffer)}}),Wm().CLog=()=>{},this.rec.open((()=>{this.options.wave&&this.initWave()}),((t,e)=>{console.log((e?"UserNotAllow,":"")+"无法录音:"+t)})),setTimeout((()=>{this.rec&&this.rec.start()}),1e3)}recorderEnd(){this.volumeCloseTimer=setTimeout((()=>{this.options.wave.style.opacity=0,this.receivingSound=!1,this.sendAudioData()}),1e3)}sendAudioData(){if(this.audioData&&!(this.audioData.length<=0)){if("xt"==this.asr.asr_type)this.iatRecorder=new Jm({appId:"3912906b",apiSecret:"NTkzOTM3YjA3NTk3YzhiZjJkMzE3MTU4",apiKey:"2a71f3449b41e412d36a6f577f4e2d36"});else{if(!this.asr.app_id||!this.asr.api_secret||!this.asr.api_key)throw new Error("科大讯飞ASR账号未设置!");this.iatRecorder=new Km({appId:this.asr.app_id,apiSecret:this.asr.api_secret,apiKey:this.asr.api_key})}this.iatRecorder.start(),this.iatRecorder.onWsOpen=()=>{this.iatRecorder.iatWS.readyState===this.iatRecorder.iatWS.OPEN&&("xt"==this.asr.asr_type?(this.audioData.forEach((t=>{this.iatRecorder.iatWS.send(JSON.stringify({data:{status:1,format:"audio/L16;rate=16000",encoding:"raw",audio:km.toBase64(t)}}))})),this.iatRecorder.iatWS.send(JSON.stringify({data:{status:2,format:"audio/L16;rate=16000",encoding:"raw",audio:""}}))):(this.audioData.forEach((t=>{this.iatRecorder.iatWS.send(JSON.stringify({header:{app_id:this.asr.app_id,status:1},payload:{audio:{encoding:"raw",sample_rate:16e3,status:1,audio:km.toBase64(t)}}}))})),this.iatRecorder.iatWS.send(JSON.stringify({header:{app_id:this.asr.app_id,status:2},payload:{audio:{encoding:"raw",sample_rate:16e3,status:2,audio:""}}}))),this.audioData=[])},this.iatRecorder.onTextChange=async t=>{if(!t)return;const e=this.isFirstCharPunctuation(t);this.handleAiType(e)}}}isFirstCharPunctuation(t){var e=new RegExp("[。;,:“”()、?《》!【】¥]+","g");let n=e.test(t.charAt(0));return n?t.slice(1):t}async handleAiType(t){if(this.streamResult="",this.abortController=new AbortController,"1"==this.curAiType||"2"==this.curAiType||"4"==this.curAiType||"22"==this.curAiType||"27"==this.curAiType)throw new Error("该大模型暂时无法使用!");"5"==this.curAiType?this.connectToStarfire(t):"12"==this.curAiType?(this.streamUseResult=0,this.lkeCloudTencentUuid=null,this.LkeCloundTencentTimer=null,this.connectLkeCloudTencent(t)):"23"==this.curAiType?this.connectFanXing(t):"26"==this.curAiType?this.connectAscendingVersion(t):this.handleEventStream(t)}async questionMatching(t){if(this.questionMatchList.length<=0)return!1;let e={text_pair_list:[],options:{alg:"esim"}};this.questionMatchList.forEach((n=>{let i={str1:n.questions,str2:t};e.text_pair_list.push(i)}));let[n,i,r]=await mn({method:"post",url:"https://texsmart.qq.com/api/match_text",headers:{Accept:"application/json, text/plain, */*"},data:JSON.stringify(e)}).then((t=>[!0,t.data,null]),(t=>[!1,null,t]));if(!n)return!1;let s=-1;if(!i?.header?.ret_code||"succ"!=i?.header?.ret_code)return!1;{let t=0;if(i.res_list.forEach(((e,n)=>{e.score>t&&(t=e.score,s=n)})),t<this.matchingDegree)return!1}let[a,o,l]=await mn({method:"post",url:"https://texsmart.qq.com/api/match_text",headers:{Accept:"application/json, text/plain, */*"},data:JSON.stringify({text_pair_list:[{str1:this.questionMatchList[s].questions,str2:t}],options:{alg:"linkage"}})}).then((t=>[!0,t.data,null]),(t=>[!1,null,t]));return!!a&&(!(!o?.header?.ret_code||"succ"!=o?.header?.ret_code)&&(!(o.res_list[0].score<this.matchingDegree)&&this.questionMatchList[s]))}connectToStarfire(t){const e=this.getWebsocketUrl();let n;if(!("WebSocket"in window))return void alert("浏览器不支持WebSocket");n=new WebSocket(e),this.socket=n,this.socket.onopen=()=>{var e={header:{app_id:this.curAiData.appId,uid:"fd3f47e4-d"},parameter:{chat:{domain:"lite"}},payload:{message:{text:[{role:"user",content:t}]}}};this.socket.send(JSON.stringify(e))};let i="";this.socket.onmessage=t=>{let e=JSON.parse(t.data);if(0!==e.header.code)throw new Error(`${e.header.code}:${e.header.message}`);const n=e.payload.choices.text[0].content;i+=n,0===e.header.code&&2===e.header.status&&(this.speak(i,!0,!0,!0),this.socket.close())},this.socket.onerror=t=>{throw new Error("访问失败:",t)},this.socket.onclose=()=>{}}getWebsocketUrl(){var t=this.curAiData.apiKey,e=this.curAiData.apiSecret,n="wss://spark-api.xf-yun.com/v1.1/chat",i=location.host,r=(new Date).toGMTString(),s="hmac-sha256",a="host date request-line",o=`host: ${i}\ndate: ${r}\nGET /v1.1/chat HTTP/1.1`,l=ag().HmacSHA256(o,e),h=ag().enc.Base64.stringify(l),c=`api_key="${t}", algorithm="${s}", headers="${a}", signature="${h}"`,u=btoa(c);return n=`${n}?authorization=${u}&date=${r}&host=${i}`,n}connectLkeCloudTencent(t){console.log("content===",t)}async connectFanXing(t){const e=km.generateUUID(32);let[n,i,r]=await mn({method:"post",url:this.curAiData.apiKey,headers:{"Content-Type":"application/json"},data:JSON.stringify({query:t,target:this.curAiData.apiSecret,uuid:e,session_id:"test"})}).then((t=>[!0,t,null]),(t=>[!1,null,t]));if(!n)return void this.speak("抱歉,无法访问繁星智能体",!0,!0,!0);var s=!0;let a=new WebSocket("wss://api.dl.dzng.com/digital/public/lib/ws");a.onopen=()=>{a.send(JSON.stringify({type:"JOIN_UUID_GT",data:{topicType:"qlwh_people_ask_v3",topicId:e}}))},a.onmessage=t=>{let e="";if(JSON.parse(t.data).data.done)this.streamResult=this.streamResult.replaceAll(/\[\[.*?\]\]/g,""),this.speak(this.streamResult,s,!0,!0),this.streamResult="",a.close();else{e=JSON.parse(t.data).data.result[0].content||"";let n=/[\u4E00-\u9FA5]+/g.test(e),i=/[a-zA-Z]/.test(e);(n||!n&&!i)&&(e=e.trim()),this.streamResult+=e||"",this.streamResult=this.streamResult.replace(/\s*[\((].*?[\))]\s*/g,""),this.streamResult=this.streamResult.replaceAll(/\[\[.*?\]\]/g,"");let r=km.findSubstringsPositions(this.streamResult,M_),a=this.streamResult.substring(0,r);a.length>10&&(this.speak(a,s,!1,!0),s&&(s=!1),this.streamResult=this.streamResult.substring(r))}}}connectAscendingVersion(t){var e=!0;let n=[];n.push([t]);let i=this;fetch(i.curAiData.apiKey,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:n}),signal:this.abortController.signal}).then((t=>{if(!t.ok)return;let n="";const r=t.body.getReader(),s=new TextDecoder;function a(){r.read().then((({done:t,value:r})=>{if(t)return i.speak(i.streamResult,e,!0,!0),void(i.streamResult="");n=s.decode(r,{stream:!0});let o=/[\u4E00-\u9FA5]+/g.test(n),l=/[a-zA-Z]/.test(n);(o||!o&&!l)&&(n=n.trim()),i.streamResult+=n||"",i.streamResult=i.streamResult.replace(/\s*[\((].*?[\))]\s*/g,"");let h=km.findSubstringsPositions(i.streamResult,M_),c=i.streamResult.substring(0,h);c.length>10&&(i.speak(c,e,!1),e&&(e=!1),i.streamResult=i.streamResult.substring(h)),a()}))}a()})).catch((t=>{}))}async handleEventStream(t){var e=!0;let n=[];n.push({role:"user",content:t,content_type:"text",type:"question"});let i,r="",s={};if("6"==this.curAiType)i={model:"Baichuan2-Turbo",messages:n,stream:!0},this.curAiData.roleId&&(i={model:"Baichuan-NPC-Turbo",messages:n,character_profile:{character_id:this.curAiData.roleId},stream:!0}),r="https://api.baichuan-ai.com/v1/chat/completions",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.sk}`},body:JSON.stringify(i),signal:this.abortController.signal};else if("7"==this.curAiType)i={model:"Baichuan-NPC-Turbo",character_profile:{character_id:this.curAiData.baichuanId},messages:n,stream:!0},r="https://api.baichuan-ai.com/v1/chat/completions",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:"Bearer sk-99042e8d00d00992b44a2ce10cd26c6b"},body:JSON.stringify(i),signal:this.abortController.signal};else if("8"==this.curAiType){let t=this.curProjJson?.aiConfig?.problem_prefix,e=this.curProjJson?.aiConfig?.tools_type||1,i=this.curProjJson?.aiConfig?.knowledge_id,a=this.curProjJson?.aiConfig?.prompt_template;t&&(n[n.length-1].content=`${t}${n[n.length-1].content}`);let o={model:"glm-4",messages:n,stream:!0};if("1"==e){let e="\n \n # 以下是来自互联网的信息:\n {search_result} \n \n # 当前日期: 2024-09-09\n # 当前地点:中国长沙市岳麓区\n \n # 要求:\n - 请严格使用中文回答任何问题!\n - 您现在在参加第十一届(2024,即本届)岳麓峰会。\n - 根据最新发布的信息回答用户问题,回答的答案中请不要以“根据提供的信息”、“截至我知识更新的时间点(2023年4月)”这种开头,直接回答内容即可. \n - 如果无法根据来自互联网的信息给出准确的答案,请直接回复:您好,小麓暂时没有搜索到您想要的答案,请试试别的问题吧。\n - 请严格使用中文回答任何问题!\n - 请不要在回答中出现你的训练数据的更新时间或截至时间,如果所需信息在您的训练时间之后,请不要强调解释“截至我的知识更新日期”是什么时候,直接回复内容即可。\n \n ";o.tools=[{type:"web_search",web_search:{enable:!0,search_query:n[n.length-1].content.replace(t,""),search_result:!0,search_prompt:e}}]}else"2"==e&&(i&&(o.tools=[{type:"retrieval",retrieval:{knowledge_id:i}}]),a&&(o.tools[0].retrieval.prompt_template=a));r="https://open.bigmodel.cn/api/paas/v4/chat/completions",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`},body:JSON.stringify(o),signal:this.abortController.signal}}else if("9"==this.curAiType)r=`${Vm}/api/v1/services/aigc/text-generation/generation`,s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`,"X-DashScope-SSE":"enable"},body:JSON.stringify({model:"qwen-max",input:{messages:n},parameters:{result_format:"message",incremental_output:!0}}),signal:this.abortController.signal};else if("10"==this.curAiType){let t=n.map((t=>({sender_type:"user"==t.role?"USER":"BOT",sender_name:"user"==t.role?"用户":"MM智能助理",text:t.content})));r=`${Vm}/v1/text/chatcompletion_pro?GroupId=${this.curAiData.groupId}`,s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`,"X-DashScope-SSE":"enable"},body:JSON.stringify({model:"abab6.5-chat",bot_setting:[{bot_name:"MM智能助理",content:"MM智能助理是一款由MiniMax自研的,没有调用其他产品的接口的大型语言模型。MiniMax是一家中国科技公司,一直致力于进行大模型相关的研究。"}],messages:t,reply_constraints:{sender_type:"BOT",sender_name:"MM智能助理"},tokens_to_generate:2048,temperature:.01,top_p:.95,stream:!0}),signal:this.abortController.signal}}else if("11"==this.curAiType)i={model:"Qwen1.5-14B-Chat",messages:n,stream:!0},r=this.curAiData.apiKey,s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json"},body:JSON.stringify(i),signal:this.abortController.signal};else if("14"==this.curAiType)r="https://api.chato.cn/sse/"+this.curAiData.apiKey,s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json"},body:JSON.stringify({p:t,token:this.curAiData.accessToken}),signal:this.abortController.signal};else if("15"==this.curAiType)r="https://api.moonshot.cn/v1/chat/completions",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`},body:JSON.stringify({model:"moonshot-v1-8k",messages:n,temperature:.3,stream:!0}),signal:this.abortController.signal};else if("16"==this.curAiType)r=`${Vm}/api/v3/chat/completions`,s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`},body:JSON.stringify({model:this.curAiData.groupId,messages:n,stream:!0}),signal:this.abortController.signal};else if("17"==this.curAiType)r=`${Vm}/api/v3/chat/completions/api/v3/bots/chat/completions`,s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`},body:JSON.stringify({model:this.curAiData.groupId,messages:n,stream:!0}),signal:this.abortController.signal};else if("18"==this.curAiType){r=this.curAiData.apiKey;var a={role:"b1cb531d200e4e8d9c8a954cf6a216df",prompt:t,ts:(new Date).getTime()};this.conversationId&&(a.conversation_id=this.conversationId),s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:"Bearer ZwqsFls4jvb98xelxfgxAgh33ha"},body:JSON.stringify(a),signal:this.abortController.signal}}else if("19"==this.curAiType)this.localModelUuid||(this.localModelUuid=km.generateUUID(32)),n=[{role:"system",content:"You are a helpful assistant."},...n],r=this.curAiData.apiKey,s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:n,model:"chat",max_tokens:20,stream:!0,user:"admin"}),signal:this.abortController.signal};else if("20"==this.curAiType){let e=await this.getZhiNengTiToken();if(!e)return;r="https://www.iwhalebi.com/knowledge/knowledgeService/core/chat/openChat",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",token:e,systemKey:this.curAiData.apiKey},body:JSON.stringify({chatContent:t,stream:!0,histories:[],relAppId:this.curAiData.apiSecret}),signal:this.abortController.signal}}else if("21"==this.curAiType)r="https://api.coze.cn/v3/chat",s={method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.secretToken}`},body:JSON.stringify({bot_id:this.curAiData.botId,user_id:this.userId,stream:!0,auto_save_history:!0,additional_messages:[{role:"user",content:t,content_type:"text",type:"question"}]}),signal:this.abortController.signal};else if("3"==this.curAiType){let e=await this.getAccessToken();r="https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token="+e,s={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:[{role:"user",content:t}],stream:!0,model:this.curAiData.model,system:this.curAiData.system}),signal:this.abortController.signal}}else if("24"==this.curAiType)r="https://api.deepseek.com/chat/completions",s={method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`},body:JSON.stringify({messages:n,stream:!0,model:"deepseek-chat"}),signal:this.abortController.signal};else if("25"==this.curAiType){let t=this.curProjJson?.aiConfig?.system,e=this.curProjJson?.aiConfig?.tools_type,i=this.curProjJson?.aiConfig?.model||"Baichuan4-Turbo";"system"!=n[0].role&&(n=[{role:"system",content:t},...n]);let a={model:i,messages:n,stream:!0,tools:[{type:"web_search",web_search:{enable:!0,search_mode:"performance_first"}}]};if("2"==e){let t=this.curProjJson?.aiConfig?.kb_ids||"";a.tools=[{type:"retrieval",retrieval:{kb_ids:t.split(/,|,/)}}]}r="https://api.baichuan-ai.com/v1/chat/completions",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.curAiData.apiKey}`},body:JSON.stringify(a)}}else if("28"==this.curAiType){this.localModelUuid||(this.localModelUuid=km.generateUUID(32));const t=await this.getUserNbToken();r="https://open.fangcloud.com/api/v2/knowledge/chatStream",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify({messages:n,model:"chat",max_tokens:20,stream:!0,user:"user",sessionId:this.localModelUuid,chatType:"ZSH_CHAT",knowledgeGptId:"1574"}),signal:this.abortController.signal}}else if("30"==this.curAiType){let t=await this.getCozeAccessToken();r="https://api.coze.cn/v3/chat",s={method:"POST",responseType:"stream",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify({bot_id:this.curProjJson.brainData.bot_id,user_id:km.generateUUID(8),stream:!0,auto_save_history:!0,additional_messages:n,custom_variables:{bot_name:this.curProjJson.brainData.arName,bot_aiRole:this.curProjJson.brainData.arRole||"",bot_onSearch:this.curProjJson.brainData?.arOnlineSearch?"## 限制 根据用户输入内容调用tools":"## 限制 无论用户输入什么内容都不调用tools"}}),signal:this.abortController.signal}}let o=this;a_(r,{...s,onmessage(t){try{console.log("data2 ===> ",JSON.parse(t.data))}catch(r){}let n,i="";if("9"==o.curAiType?n="stop"==JSON.parse(t.data).output.choices[0].finish_reason:"10"==o.curAiType?n="stop"==JSON.parse(t.data).choices[0].finish_reason:"14"==o.curAiType?n="done"==JSON.parse(t.data).status:"18"==o.curAiType?(n=1==JSON.parse(t.data).is_end,JSON.parse(t.data)?.conversation_id&&(o.conversationId=JSON.parse(t.data).conversation_id)):n="21"==o.curAiType||"30"==o.curAiType?"done"==t.event:"3"==o.curAiType?1==JSON.parse(t.data).is_end:"28"==o.curAiType?JSON.parse(t.data)?.finished:"[DONE]"==t.data,n)"9"==o.curAiType&&(i=JSON.parse(t.data).output.choices[0].message.content||"",o.streamResult+=i||""),"18"==o.curAiType&&(i=JSON.parse(t.data).text||"",o.streamResult+=i||""),o.speak(o.streamResult,e,!0,!0),o.streamResult="",o.streamFinish=!0;else{"9"==o.curAiType?i=JSON.parse(t.data).output.choices[0].message.content||"":"10"==o.curAiType?i=JSON.parse(t.data).choices[0].messages[0].text||"":"14"==o.curAiType?i=JSON.parse(t.data).chunk_message||"":"18"==o.curAiType?i=JSON.parse(t.data).text||"":"20"==o.curAiType?JSON.parse(t.data)?.choices&&(i=JSON.parse(t.data)?.choices[0]?.delta?.content||""):"21"==o.curAiType||"30"==o.curAiType?"conversation.message.delta"==t?.event&&JSON.parse(t.data)?.content&&!o.isSurroundedBy(JSON.parse(t.data)?.content,"@[//")&&(i=JSON.parse(t.data)?.content||""):i="3"==o.curAiType?JSON.parse(t.data)?.result||"":t.data&&JSON.parse(t.data)?.choices[0]?.delta?.content||"";let n=/[\u4E00-\u9FA5]+/g.test(i),r=/[a-zA-Z]/.test(i);(n||!n&&!r)&&(i=i.trim()),o.streamResult+=i||"",o.streamResult=o.streamResult.replace(/\s*[\((].*?[\))]\s*/g,"");let s=km.findSubstringsPositions(o.streamResult,M_),a=o.streamResult.substring(0,s);a.length>10&&(o.speak(a,e,!1,!0),e&&(e=!1),o.streamResult=o.streamResult.substring(s))}},onerror(t){throw o.speak("抱歉,我现在有点累了,需要休息一下!",!0,!0),o.streamResult="",t}}).catch((t=>{console.error("Fetch error:",t)}))}async getCozeAccessToken(){let t,e=this.cozeAccessTokenJson&&this.cozeAccessTokenJson?.expires_in?this.cozeAccessTokenJson?.expires_in.split(" ")[0]:0;const n=Math.floor(Date.now()/1e3);return e&&e>n?(t=this.cozeAccessTokenJson?.access_token,t):new Promise(((n,i)=>{mn({method:"get",url:`${this.options.host}/coze/jwt/token`}).then((i=>{0==i.data.code&&(t=i.data.data.access_token,this.cozeAccessTokenJson=i.data.data,e=this.cozeAccessTokenJson?.expires_in.split(" ")[0],n(t))})).catch((t=>{i(t)}))}))}isSurroundedBy(t,e){return t.startsWith("@[")&&t.endsWith("]@")}async getZhiNengTiToken(){let[t,e,n]=await mn({method:"post",url:"https://www.iwhalebi.com/knowledge/knowledgeService/support/user/v1/getToken",headers:{"Content-Type":"application/json"},data:JSON.stringify({accComId:"10074",signature:"03d6b3d70b73fa6832928bb93fdbfa7a",userSource:"shuziren",systemSecret:"szrys/7Vg3o=",secret:"10176",systemKey:this.curAiData.apiKey,userName:"linhuan",nonce:"2032504407121765018",userCode:"linhuan",timestamp:"1731308432220"})}).then((t=>[!0,t,null]),(t=>[!1,null,t]));return!(!t||0!=e.data.resultCode)&&e.data.resultObject.token}getAccessToken(){return new Promise(((t,e)=>{mn({method:"post",url:`${Vm}/baidu/ai/access_token`,data:JSON.stringify({client_id:this.curAiData.client_id,client_secret:this.curAiData.client_secret})}).then((n=>{if(0===n.rawData.code){var i=(new Date).getTime()+25056e5;localStorage.setItem("access_token",JSON.stringify({value:n.data.access_token,expiration:i})),t(n.data.access_token)}else e(n.rawData.msg)})).catch((t=>{e(t)}))}))}async getUserNbToken(){let t=this.getLocalStorageWithExpire("userNbToken");return t||(t=await this.getNiboAccessToken()),t}setLocalStorageWithExpire(t,e,n){const i=(new Date).getTime(),r=i+n,s={value:e,expires:r};localStorage.setItem(t,JSON.stringify(s))}getLocalStorageWithExpire(t){const e=localStorage.getItem(t);if(!e)return null;const n=JSON.parse(e),i=(new Date).getTime();return i>n.expires?(localStorage.removeItem(t),null):n.value}async getNiboAccessToken(){const t={},e=km.generateUUID(32);t.yifangyun_sub_type="user",t.sub=String(this.curAiData.groupId),t.exp=Math.floor(this.getExpirationTime(60).getTime()/1e3),t.iat=Math.floor(Date.now()/1e3),t.jti=Date.now()+e;const n=JSON.stringify(t),i=btoa(n),r=`/oauth/token?grant_type=jwt_simple&assertion=${i}`,s=`${this.curAiData.apiKey}:${this.curAiData.apiSecret}`,a=btoa(encodeURI(s));let[o,l,h]=await mn({method:"post",url:r,headers:{Authorization:`Basic ${a}`}}).then((t=>[!0,t,null]),(t=>[!1,null,t]));if(!o)return void console.log(h,"tokenTime");this.setLocalStorageWithExpire("userNbToken",l.data.access_token,18e6);const c=this.getLocalStorageWithExpire("userNbToken");return c}getExpirationTime(t){const e=new Date;return e.setSeconds(e.getSeconds()+t),e}getActionVideoList(t){const{character:e,postureInfo:n}=t;if(e.chunkId){const{Poses:t}=n;if(t){const e={129:"speak",143:"standby",144:"boredStandby",140:"listen"},n=t.filter((t=>Object.keys(e).includes(t.styleName.toString()))),i=`${qm}x-men-video/3dchat/${this.projectCharacter.chunkId}`;n.forEach((t=>{const n=t.actionIds.map((t=>({...t,url:`${i}_${t.chunkId}.${this.videoSuffix}`})));"speak"===e[t.styleName]?this.actionVideoMap[e[t.styleName]]=this.getActionVideoSources(n):this.actionVideoMap[e[t.styleName]]=n})),this.actionVideoMap.standbySpeak=this.actionVideoMap["standby"].map((t=>({...t,url:`${i}_${t.chunkId}_2.${this.videoSuffix}`})))}}else{const t="string"===typeof this.projectCharacter?.extra?JSON.parse(this.projectCharacter?.extra):this.projectCharacter?.extra,e=["listen","speak","standbySpeak","standby","boredStandby","prologue"];e.forEach((e=>{const n=this.getCheckedList(t[e]);this.actionVideoMap[e]="speak"===e?this.getActionVideoSources(n):n}))}}getVideoUrl(t,e){let n;if(this.actionVideoMap[t].length)n=this.actionVideoMap[t][e].url;else if(this.projectCharacter.chunkId){if("standby"===t){const t=JSON.parse(this.projectCharacter.default_posture);n=`${qm}x-men-video/3dchat/${this.projectCharacter.chunkId}_${t.body_posture}.${this.videoSuffix}`}else if("standbySpeak"===t){const t=this.default_posture;n=`${qm}x-men-video/3dchat/${this.projectCharacter.chunkId}_${t.body_posture}_2.${this.videoSuffix}`}}else n=null;return n}getCheckedList(t){return t&&Array.isArray(t)&&t.length>0?t.filter((t=>!1!==t.checked)).map((t=>({url:this.transformOssToCdn(t.url)}))):[]}transformOssToCdn(t){return t.replace(/http(s)?:\/\/idouwebmodels.oss-cn-hangzhou.aliyuncs.com\//,qm)}getMediaDuration(t){return new Promise(((e,n)=>{const i=document.createElement("video");i.preload="metadata",i.src=t,i.onloadedmetadata=()=>{e(i.duration)},i.onerror=t=>{n(t)}}))}playWebRTCWithWHEP(){this.headMvRealTime?this.headMvRealTime.setSource(this.whepUrl,!0,!1):this.headMvRealTime=new tg({src:this.whepUrl,width:this.options.width,height:this.options.height,loop:!0,canvas:this.canvasReaTime,isIos:this.isIos,isRealTime:!0,onPlay:()=>{this.headMvRealTime.play()}});let t={green_cutoff:.1,green_feathering:.2,green_mask_feathering:1,green_sharpening:.1,green_despill_strength:0,green_despill_luminance_add:0,green_bg_color:"#6dea74"};this.curProjJson?.character?.extra&&(t="object"===typeof this.curProjJson?.character?.extra?this.curProjJson?.character.extra:JSON.parse(this.curProjJson?.character.extra)),this.curProjJson?.imageCutoutParameters?.isEnable&&(t=this.curProjJson?.imageCutoutParameters),this.headMvRealTime.setCutoff(t?.green_cutoff??.1),this.headMvRealTime.setFeathering(t?.green_feathering??.2),this.headMvRealTime.setMaskFeathering(t?.green_mask_feathering??1),this.headMvRealTime.setSharpening(t?.green_sharpening??.1),this.headMvRealTime.setDespillStrength(t?.green_despill_strength??0),this.headMvRealTime.setDespillLuminanceAdd(t?.green_despill_luminance_add??0),this.headMvRealTime.setKeyColor(t?.green_bg_color||"#6dea74"),this.headMvRealTime.setZoom(this.curProjJson?.cameraParam2D?.scale||1),this.headMvRealTime.setOffset(this.curProjJson?.cameraParam2D?.percentX*this.options.width||0,this.curProjJson?.cameraParam2D?.percentY*this.options.height||0),this.headMvRealTime.play(),this.headMvRealTime.setMuted(!1)}startTalking(){console.log("🚀 默认:开始说话"),"function"===typeof this.options.onStartTalking&&this.options.onStartTalking(),this.aiAnswerVm&&this.aiAnswerVm.$children[0].updateIsSpeak(!0)}endStart(){let t=this;t.curProjJson?.isRealTime&&t.realTimeWeb.sendMessage(JSON.stringify({model_name:t.curProjJson.modelName,request_type:"qa_server_stop"})),console.log("🛑 默认:结束说话"),this.aiAnswerVm&&this.aiAnswerVm.$children[0].updateIsSpeak(!1),"function"===typeof this.options.onEndTalking&&this.options.onEndTalking()}upperLimit(){console.log("🛑 默认:并发达到上限无法回答"),"function"===typeof this.options.onUpperLimit&&this.options.onUpperLimit()}}var C_=z_,P_=C_}(),r}()}));
|
|
28
|
+
//# sourceMappingURL=index.umd.min.js.map
|