/** * @pattern-x/gemini-viewer-threejs v0.2.25 build Wed Mar 22 2023 * https://pattern-x.github.io/gemini-viewer-examples/ * Copyright 2023 gemini * @license UNLICENSED */ var xNe=Object.create,s1=Object.defineProperty,INe=Object.defineProperties,_Ne=Object.getOwnPropertyDescriptor,SNe=Object.getOwnPropertyDescriptors,wNe=Object.getOwnPropertyNames,P7=Object.getOwnPropertySymbols,L7=Object.getPrototypeOf,F7=Object.prototype.hasOwnProperty,RNe=Object.prototype.propertyIsEnumerable,MNe=Reflect.get,jh=Math.pow,N7=(e,t,i)=>t in e?s1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Br=(e,t)=>{for(var i in t||(t={}))F7.call(t,i)&&N7(e,i,t[i]);if(P7)for(var i of P7(t))RNe.call(t,i)&&N7(e,i,t[i]);return e},Dn=(e,t)=>INe(e,SNe(t)),t2=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)((function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')})),DNe=(e,t)=>()=>(e&&(t=e(e=0)),t),z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),QS=(e,t)=>{for(var i in t)s1(e,i,{get:t[i],enumerable:!0})},H7=(e,t,i,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of wNe(t))!F7.call(e,n)&&n!==i&&s1(e,n,{get:()=>t[n],enumerable:!(r=_Ne(t,n))||r.enumerable});return e},kn=(e,t,i)=>(i=null!=e?xNe(L7(e)):{},H7(!t&&e&&e.__esModule?i:s1(i,"default",{value:e,enumerable:!0}),e)),CNe=e=>H7(s1({},"__esModule",{value:!0}),e),U7=(e,t,i)=>MNe(L7(e),i,t),ht=(e,t,i)=>new Promise(((r,n)=>{var s=e=>{try{o(i.next(e))}catch(e){n(e)}},a=e=>{try{o(i.throw(e))}catch(e){n(e)}},o=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,a);o((i=i.apply(e,t)).next())})),G7={};function ew(e){return(ew="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ONe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function B7(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};ONe(this,s),this._locale=n(i),this._select=t(this._locale),this._type=FNe(r.type),this._nf=new e("en",r)}return PNe(s,[{key:"resolvedOptions",value:function(){var e=this._nf.resolvedOptions(),t=e.minimumIntegerDigits,r=e.minimumFractionDigits,n=e.maximumFractionDigits,s=e.minimumSignificantDigits,a=e.maximumSignificantDigits,o={locale:this._locale,minimumIntegerDigits:t,minimumFractionDigits:r,maximumFractionDigits:n,pluralCategories:i(this._locale,"ordinal"===this._type),type:this._type};return"number"==typeof s&&(o.minimumSignificantDigits=s,o.maximumSignificantDigits=a),o}},{key:"select",value:function(e){if(!(this instanceof s))throw new TypeError("select() called on incompatible ".concat(this));if("number"!=typeof e&&(e=Number(e)),!isFinite(e))return"other";var t=this._nf.format(Math.abs(e));return this._select(t,"ordinal"===this._type)}}],[{key:"supportedLocalesOf",value:function(e){return k7(e).filter(r)}}]),s}();return Object.defineProperty(s,"prototype",{writable:!1}),s}QS(G7,{default:()=>HNe});var NNe,k7,LNe,FNe,V7=DNe((()=>{NNe=function(e){return e.split("-").every((function(e){return/[a-z0-9]+/i.test(e)}))},k7=function(e){if(!e)return[];Array.isArray(e)||(e=[e]);for(var t={},i=0;i{"use strict";function i(e,t){for(var i=0;i="0"&&n<="9"&&++i}return ithis._maxSD?e.toPrecision(this._maxSD):t}return this._minFD>0?e.toFixed(this._minFD):0===this._maxFD?e.toFixed(0):String(e)}}]),e}();t.exports=r})),Q7=z(((e,t)=>{"use strict";var i=(V7(),CNe(G7)),r=W7();function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=n(i),a=n(r);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var h,u,c,p,d,f,m,g,y={exports:{}};h=y,c=function(e,t){return t?"other":1==e?"one":"other"},p=function(e,t){return t?"other":0==e||1==e?"one":"other"},d=function(e,t){return t?"other":e>=0&&e<=1?"one":"other"},f=function(e,t){var i=!String(e).split(".")[1];return t?"other":1==e&&i?"one":"other"},g=function(e,t){return t?"other":1==e?"one":2==e?"two":"other"},u={_in:m=function(e,t){return"other"},af:c,ak:p,am:d,an:c,ar:function(e,t){var i=String(e).split("."),r=Number(i[0])==e&&i[0].slice(-2);return t?"other":0==e?"zero":1==e?"one":2==e?"two":r>=3&&r<=10?"few":r>=11&&r<=99?"many":"other"},ars:function(e,t){var i=String(e).split("."),r=Number(i[0])==e&&i[0].slice(-2);return t?"other":0==e?"zero":1==e?"one":2==e?"two":r>=3&&r<=10?"few":r>=11&&r<=99?"many":"other"},as:function(e,t){return t?1==e||5==e||7==e||8==e||9==e||10==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},asa:c,ast:f,az:function(e,t){var i=String(e).split(".")[0],r=i.slice(-1),n=i.slice(-2),s=i.slice(-3);return t?1==r||2==r||5==r||7==r||8==r||20==n||50==n||70==n||80==n?"one":3==r||4==r||100==s||200==s||300==s||400==s||500==s||600==s||700==s||800==s||900==s?"few":0==i||6==r||40==n||60==n||90==n?"many":"other":1==e?"one":"other"},be:function(e,t){var i=String(e).split("."),r=Number(i[0])==e,n=r&&i[0].slice(-1),s=r&&i[0].slice(-2);return t?2!=n&&3!=n||12==s||13==s?"other":"few":1==n&&11!=s?"one":n>=2&&n<=4&&(s<12||s>14)?"few":r&&0==n||n>=5&&n<=9||s>=11&&s<=14?"many":"other"},bem:c,bez:c,bg:c,bho:p,bm:m,bn:function(e,t){return t?1==e||5==e||7==e||8==e||9==e||10==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},bo:m,br:function(e,t){var i=String(e).split("."),r=Number(i[0])==e,n=r&&i[0].slice(-1),s=r&&i[0].slice(-2),a=r&&i[0].slice(-6);return t?"other":1==n&&11!=s&&71!=s&&91!=s?"one":2==n&&12!=s&&72!=s&&92!=s?"two":(3==n||4==n||9==n)&&(s<10||s>19)&&(s<70||s>79)&&(s<90||s>99)?"few":0!=e&&r&&0==a?"many":"other"},brx:c,bs:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=r.slice(-2),l=n.slice(-1),h=n.slice(-2);return t?"other":s&&1==a&&11!=o||1==l&&11!=h?"one":s&&a>=2&&a<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},ca:function(e,t){var i=!String(e).split(".")[1];return t?1==e||3==e?"one":2==e?"two":4==e?"few":"other":1==e&&i?"one":"other"},ce:c,ceb:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=n.slice(-1);return t?"other":s&&(1==r||2==r||3==r)||s&&4!=a&&6!=a&&9!=a||!s&&4!=o&&6!=o&&9!=o?"one":"other"},cgg:c,chr:c,ckb:c,cs:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1];return t?"other":1==e&&n?"one":r>=2&&r<=4&&n?"few":n?"other":"many"},cy:function(e,t){return t?0==e||7==e||8==e||9==e?"zero":1==e?"one":2==e?"two":3==e||4==e?"few":5==e||6==e?"many":"other":0==e?"zero":1==e?"one":2==e?"two":3==e?"few":6==e?"many":"other"},da:function(e,t){var i=String(e).split("."),r=i[0],n=Number(i[0])==e;return t||1!=e&&(n||0!=r&&1!=r)?"other":"one"},de:f,doi:d,dsb:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-2),o=n.slice(-2);return t?"other":s&&1==a||1==o?"one":s&&2==a||2==o?"two":s&&(3==a||4==a)||3==o||4==o?"few":"other"},dv:c,dz:m,ee:c,el:c,en:function(e,t){var i=String(e).split("."),r=!i[1],n=Number(i[0])==e,s=n&&i[0].slice(-1),a=n&&i[0].slice(-2);return t?1==s&&11!=a?"one":2==s&&12!=a?"two":3==s&&13!=a?"few":"other":1==e&&r?"one":"other"},eo:c,es:c,et:f,eu:c,fa:d,ff:function(e,t){return t?"other":e>=0&&e<2?"one":"other"},fi:f,fil:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=n.slice(-1);return t?1==e?"one":"other":s&&(1==r||2==r||3==r)||s&&4!=a&&6!=a&&9!=a||!s&&4!=o&&6!=o&&9!=o?"one":"other"},fo:c,fr:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=r.slice(-6);return t?1==e?"one":"other":e>=0&&e<2?"one":0!=r&&0==s&&n?"many":"other"},fur:c,fy:f,ga:function(e,t){var i=String(e).split("."),r=Number(i[0])==e;return t?1==e?"one":"other":1==e?"one":2==e?"two":r&&e>=3&&e<=6?"few":r&&e>=7&&e<=10?"many":"other"},gd:function(e,t){var i=String(e).split("."),r=Number(i[0])==e;return t?1==e||11==e?"one":2==e||12==e?"two":3==e||13==e?"few":"other":1==e||11==e?"one":2==e||12==e?"two":r&&e>=3&&e<=10||r&&e>=13&&e<=19?"few":"other"},gl:f,gsw:c,gu:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},guw:p,gv:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=r.slice(-1),a=r.slice(-2);return t?"other":n&&1==s?"one":n&&2==s?"two":!n||0!=a&&20!=a&&40!=a&&60!=a&&80!=a?n?"other":"many":"few"},ha:c,haw:c,he:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=Number(i[0])==e,a=s&&i[0].slice(-1);return t?"other":1==e&&n?"one":2==r&&n?"two":n&&(e<0||e>10)&&s&&0==a?"many":"other"},hi:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},hr:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=r.slice(-2),l=n.slice(-1),h=n.slice(-2);return t?"other":s&&1==a&&11!=o||1==l&&11!=h?"one":s&&a>=2&&a<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},hsb:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-2),o=n.slice(-2);return t?"other":s&&1==a||1==o?"one":s&&2==a||2==o?"two":s&&(3==a||4==a)||3==o||4==o?"few":"other"},hu:function(e,t){return t?1==e||5==e?"one":"other":1==e?"one":"other"},hy:function(e,t){return t?1==e?"one":"other":e>=0&&e<2?"one":"other"},ia:f,id:m,ig:m,ii:m,io:f,is:function(e,t){var i=String(e).split("."),r=i[0],n=Number(i[0])==e,s=r.slice(-1),a=r.slice(-2);return t?"other":n&&1==s&&11!=a||!n?"one":"other"},it:function(e,t){var i=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&i?"one":"other"},iu:g,iw:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=Number(i[0])==e,a=s&&i[0].slice(-1);return t?"other":1==e&&n?"one":2==r&&n?"two":n&&(e<0||e>10)&&s&&0==a?"many":"other"},ja:m,jbo:m,jgo:c,ji:f,jmc:c,jv:m,jw:m,ka:function(e,t){var i=String(e).split(".")[0],r=i.slice(-2);return t?1==i?"one":0==i||r>=2&&r<=20||40==r||60==r||80==r?"many":"other":1==e?"one":"other"},kab:function(e,t){return t?"other":e>=0&&e<2?"one":"other"},kaj:c,kcg:c,kde:m,kea:m,kk:function(e,t){var i=String(e).split("."),r=Number(i[0])==e,n=r&&i[0].slice(-1);return t?6==n||9==n||r&&0==n&&0!=e?"many":"other":1==e?"one":"other"},kkj:c,kl:c,km:m,kn:d,ko:m,ks:c,ksb:c,ksh:function(e,t){return t?"other":0==e?"zero":1==e?"one":"other"},ku:c,kw:function(e,t){var i=String(e).split("."),r=Number(i[0])==e,n=r&&i[0].slice(-2),s=r&&i[0].slice(-3),a=r&&i[0].slice(-5),o=r&&i[0].slice(-6);return t?r&&e>=1&&e<=4||n>=1&&n<=4||n>=21&&n<=24||n>=41&&n<=44||n>=61&&n<=64||n>=81&&n<=84?"one":5==e||5==n?"many":"other":0==e?"zero":1==e?"one":2==n||22==n||42==n||62==n||82==n||r&&0==s&&(a>=1e3&&a<=2e4||4e4==a||6e4==a||8e4==a)||0!=e&&1e5==o?"two":3==n||23==n||43==n||63==n||83==n?"few":1==e||1!=n&&21!=n&&41!=n&&61!=n&&81!=n?"other":"many"},ky:c,lag:function(e,t){var i=String(e).split(".")[0];return t?"other":0==e?"zero":0!=i&&1!=i||0==e?"other":"one"},lb:c,lg:c,lij:function(e,t){var i=String(e).split("."),r=!i[1],n=Number(i[0])==e;return t?11==e||8==e||n&&e>=80&&e<=89||n&&e>=800&&e<=899?"many":"other":1==e&&r?"one":"other"},lkt:m,ln:p,lo:function(e,t){return t&&1==e?"one":"other"},lt:function(e,t){var i=String(e).split("."),r=i[1]||"",n=Number(i[0])==e,s=n&&i[0].slice(-1),a=n&&i[0].slice(-2);return t?"other":1==s&&(a<11||a>19)?"one":s>=2&&s<=9&&(a<11||a>19)?"few":0!=r?"many":"other"},lv:function(e,t){var i=String(e).split("."),r=i[1]||"",n=r.length,s=Number(i[0])==e,a=s&&i[0].slice(-1),o=s&&i[0].slice(-2),l=r.slice(-2),h=r.slice(-1);return t?"other":s&&0==a||o>=11&&o<=19||2==n&&l>=11&&l<=19?"zero":1==a&&11!=o||2==n&&1==h&&11!=l||2!=n&&1==h?"one":"other"},mas:c,mg:p,mgo:c,mk:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=r.slice(-2),l=n.slice(-1),h=n.slice(-2);return t?1==a&&11!=o?"one":2==a&&12!=o?"two":7!=a&&8!=a||17==o||18==o?"other":"many":s&&1==a&&11!=o||1==l&&11!=h?"one":"other"},ml:c,mn:c,mo:function(e,t){var i=String(e).split("."),r=!i[1],n=Number(i[0])==e&&i[0].slice(-2);return t?1==e?"one":"other":1==e&&r?"one":!r||0==e||n>=2&&n<=19?"few":"other"},mr:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":"other":1==e?"one":"other"},ms:function(e,t){return t&&1==e?"one":"other"},mt:function(e,t){var i=String(e).split("."),r=Number(i[0])==e&&i[0].slice(-2);return t?"other":1==e?"one":0==e||r>=2&&r<=10?"few":r>=11&&r<=19?"many":"other"},my:m,nah:c,naq:g,nb:c,nd:c,ne:function(e,t){var i=String(e).split("."),r=Number(i[0])==e;return t?r&&e>=1&&e<=4?"one":"other":1==e?"one":"other"},nl:f,nn:c,nnh:c,no:c,nqo:m,nr:c,nso:p,ny:c,nyn:c,om:c,or:function(e,t){var i=String(e).split("."),r=Number(i[0])==e;return t?1==e||5==e||r&&e>=7&&e<=9?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":1==e?"one":"other"},os:c,osa:m,pa:p,pap:c,pcm:d,pl:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=r.slice(-1),a=r.slice(-2);return t?"other":1==e&&n?"one":n&&s>=2&&s<=4&&(a<12||a>14)?"few":n&&1!=r&&(0==s||1==s)||n&&s>=5&&s<=9||n&&a>=12&&a<=14?"many":"other"},prg:function(e,t){var i=String(e).split("."),r=i[1]||"",n=r.length,s=Number(i[0])==e,a=s&&i[0].slice(-1),o=s&&i[0].slice(-2),l=r.slice(-2),h=r.slice(-1);return t?"other":s&&0==a||o>=11&&o<=19||2==n&&l>=11&&l<=19?"zero":1==a&&11!=o||2==n&&1==h&&11!=l||2!=n&&1==h?"one":"other"},ps:c,pt:function(e,t){var i=String(e).split(".")[0];return t?"other":0==i||1==i?"one":"other"},pt_PT:f,rm:c,ro:function(e,t){var i=String(e).split("."),r=!i[1],n=Number(i[0])==e&&i[0].slice(-2);return t?1==e?"one":"other":1==e&&r?"one":!r||0==e||n>=2&&n<=19?"few":"other"},rof:c,root:m,ru:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=r.slice(-1),a=r.slice(-2);return t?"other":n&&1==s&&11!=a?"one":n&&s>=2&&s<=4&&(a<12||a>14)?"few":n&&0==s||n&&s>=5&&s<=9||n&&a>=11&&a<=14?"many":"other"},rwk:c,sah:m,saq:c,sat:g,sc:function(e,t){var i=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&i?"one":"other"},scn:function(e,t){var i=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&i?"one":"other"},sd:c,sdh:c,se:g,seh:c,ses:m,sg:m,sh:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=r.slice(-2),l=n.slice(-1),h=n.slice(-2);return t?"other":s&&1==a&&11!=o||1==l&&11!=h?"one":s&&a>=2&&a<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},shi:function(e,t){var i=String(e).split("."),r=Number(i[0])==e;return t?"other":e>=0&&e<=1?"one":r&&e>=2&&e<=10?"few":"other"},si:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"";return t?"other":0==e||1==e||0==r&&1==n?"one":"other"},sk:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1];return t?"other":1==e&&n?"one":r>=2&&r<=4&&n?"few":n?"other":"many"},sl:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=r.slice(-2);return t?"other":n&&1==s?"one":n&&2==s?"two":n&&(3==s||4==s)||!n?"few":"other"},sma:g,smi:g,smj:g,smn:g,sms:g,sn:c,so:c,sq:function(e,t){var i=String(e).split("."),r=Number(i[0])==e,n=r&&i[0].slice(-1),s=r&&i[0].slice(-2);return t?1==e?"one":4==n&&14!=s?"many":"other":1==e?"one":"other"},sr:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=r.slice(-2),l=n.slice(-1),h=n.slice(-2);return t?"other":s&&1==a&&11!=o||1==l&&11!=h?"one":s&&a>=2&&a<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},ss:c,ssy:c,st:c,su:m,sv:function(e,t){var i=String(e).split("."),r=!i[1],n=Number(i[0])==e,s=n&&i[0].slice(-1),a=n&&i[0].slice(-2);return t?1!=s&&2!=s||11==a||12==a?"other":"one":1==e&&r?"one":"other"},sw:f,syr:c,ta:c,te:c,teo:c,th:m,ti:p,tig:c,tk:function(e,t){var i=String(e).split("."),r=Number(i[0])==e&&i[0].slice(-1);return t?6==r||9==r||10==e?"few":"other":1==e?"one":"other"},tl:function(e,t){var i=String(e).split("."),r=i[0],n=i[1]||"",s=!i[1],a=r.slice(-1),o=n.slice(-1);return t?1==e?"one":"other":s&&(1==r||2==r||3==r)||s&&4!=a&&6!=a&&9!=a||!s&&4!=o&&6!=o&&9!=o?"one":"other"},tn:c,to:m,tr:c,ts:c,tzm:function(e,t){var i=String(e).split("."),r=Number(i[0])==e;return t?"other":0==e||1==e||r&&e>=11&&e<=99?"one":"other"},ug:c,uk:function(e,t){var i=String(e).split("."),r=i[0],n=!i[1],s=Number(i[0])==e,a=s&&i[0].slice(-1),o=s&&i[0].slice(-2),l=r.slice(-1),h=r.slice(-2);return t?3==a&&13!=o?"few":"other":n&&1==l&&11!=h?"one":n&&l>=2&&l<=4&&(h<12||h>14)?"few":n&&0==l||n&&l>=5&&l<=9||n&&h>=11&&h<=14?"many":"other"},ur:f,uz:c,ve:c,vi:function(e,t){return t&&1==e?"one":"other"},vo:c,vun:c,wa:p,wae:c,wo:m,xh:c,xog:c,yi:f,yo:m,yue:m,zh:m,zu:d},Object.defineProperty(u,"__esModule",{value:!0}),h.exports=u;var v=l(y.exports),T=Object.freeze(Object.assign(Object.create(null),y.exports,{default:v})),x={exports:{}};!function(e,t){var i,r="zero",n="one",s="two",a="few",o="many",l="other",h={cardinal:[n,l],ordinal:[l]},u={cardinal:[l],ordinal:[l]},c={cardinal:[n,a,o,l],ordinal:[l]},p={cardinal:[n,l],ordinal:[n,l]},d={cardinal:[n,s,l],ordinal:[l]};i={_in:u,af:h,ak:h,am:h,an:h,ar:{cardinal:[r,n,s,a,o,l],ordinal:[l]},ars:{cardinal:[r,n,s,a,o,l],ordinal:[l]},as:{cardinal:[n,l],ordinal:[n,s,a,o,l]},asa:h,ast:h,az:{cardinal:[n,l],ordinal:[n,a,o,l]},be:{cardinal:[n,a,o,l],ordinal:[a,l]},bem:h,bez:h,bg:h,bho:h,bm:u,bn:{cardinal:[n,l],ordinal:[n,s,a,o,l]},bo:u,br:{cardinal:[n,s,a,o,l],ordinal:[l]},brx:h,bs:{cardinal:[n,a,l],ordinal:[l]},ca:{cardinal:[n,l],ordinal:[n,s,a,l]},ce:h,ceb:h,cgg:h,chr:h,ckb:h,cs:c,cy:{cardinal:[r,n,s,a,o,l],ordinal:[r,n,s,a,o,l]},da:h,de:h,doi:h,dsb:{cardinal:[n,s,a,l],ordinal:[l]},dv:h,dz:u,ee:h,el:h,en:{cardinal:[n,l],ordinal:[n,s,a,l]},eo:h,es:h,et:h,eu:h,fa:h,ff:h,fi:h,fil:p,fo:h,fr:{cardinal:[n,o,l],ordinal:[n,l]},fur:h,fy:h,ga:{cardinal:[n,s,a,o,l],ordinal:[n,l]},gd:{cardinal:[n,s,a,l],ordinal:[n,s,a,l]},gl:h,gsw:h,gu:{cardinal:[n,l],ordinal:[n,s,a,o,l]},guw:h,gv:{cardinal:[n,s,a,o,l],ordinal:[l]},ha:h,haw:h,he:{cardinal:[n,s,o,l],ordinal:[l]},hi:{cardinal:[n,l],ordinal:[n,s,a,o,l]},hr:{cardinal:[n,a,l],ordinal:[l]},hsb:{cardinal:[n,s,a,l],ordinal:[l]},hu:p,hy:p,ia:h,id:u,ig:u,ii:u,io:h,is:h,it:{cardinal:[n,l],ordinal:[o,l]},iu:d,iw:{cardinal:[n,s,o,l],ordinal:[l]},ja:u,jbo:u,jgo:h,ji:h,jmc:h,jv:u,jw:u,ka:{cardinal:[n,l],ordinal:[n,o,l]},kab:h,kaj:h,kcg:h,kde:u,kea:u,kk:{cardinal:[n,l],ordinal:[o,l]},kkj:h,kl:h,km:u,kn:h,ko:u,ks:h,ksb:h,ksh:{cardinal:[r,n,l],ordinal:[l]},ku:h,kw:{cardinal:[r,n,s,a,o,l],ordinal:[n,o,l]},ky:h,lag:{cardinal:[r,n,l],ordinal:[l]},lb:h,lg:h,lij:{cardinal:[n,l],ordinal:[o,l]},lkt:u,ln:h,lo:{cardinal:[l],ordinal:[n,l]},lt:c,lv:{cardinal:[r,n,l],ordinal:[l]},mas:h,mg:h,mgo:h,mk:{cardinal:[n,l],ordinal:[n,s,o,l]},ml:h,mn:h,mo:{cardinal:[n,a,l],ordinal:[n,l]},mr:{cardinal:[n,l],ordinal:[n,s,a,l]},ms:{cardinal:[l],ordinal:[n,l]},mt:c,my:u,nah:h,naq:d,nb:h,nd:h,ne:p,nl:h,nn:h,nnh:h,no:h,nqo:u,nr:h,nso:h,ny:h,nyn:h,om:h,or:{cardinal:[n,l],ordinal:[n,s,a,o,l]},os:h,osa:u,pa:h,pap:h,pcm:h,pl:c,prg:{cardinal:[r,n,l],ordinal:[l]},ps:h,pt:h,pt_PT:h,rm:h,ro:{cardinal:[n,a,l],ordinal:[n,l]},rof:h,root:u,ru:c,rwk:h,sah:u,saq:h,sat:d,sc:{cardinal:[n,l],ordinal:[o,l]},scn:{cardinal:[n,l],ordinal:[o,l]},sd:h,sdh:h,se:d,seh:h,ses:u,sg:u,sh:{cardinal:[n,a,l],ordinal:[l]},shi:{cardinal:[n,a,l],ordinal:[l]},si:h,sk:c,sl:{cardinal:[n,s,a,l],ordinal:[l]},sma:d,smi:d,smj:d,smn:d,sms:d,sn:h,so:h,sq:{cardinal:[n,l],ordinal:[n,o,l]},sr:{cardinal:[n,a,l],ordinal:[l]},ss:h,ssy:h,st:h,su:u,sv:p,sw:h,syr:h,ta:h,te:h,teo:h,th:u,ti:h,tig:h,tk:{cardinal:[n,l],ordinal:[a,l]},tl:p,tn:h,to:u,tr:h,ts:h,tzm:h,ug:h,uk:{cardinal:[n,a,o,l],ordinal:[a,l]},ur:h,uz:h,ve:h,vi:{cardinal:[l],ordinal:[n,l]},vo:h,vun:h,wa:h,wae:h,wo:u,xh:h,xog:h,yi:h,yo:u,yue:u,zh:u,zu:h},Object.defineProperty(i,"__esModule",{value:!0}),e.exports=i}(x);var b=l(x.exports),_=Object.freeze(Object.assign(Object.create(null),x.exports,{default:b})),E=v||T,w=b||_,S="object"===("undefined"==typeof Intl?"undefined":o(Intl))&&Intl.NumberFormat||a.default,I=function(e){return"in"===e?"_in":"pt-PT"===e?"pt_PT":e},M=s.default(S,(function(e){return E[I(e)]}),(function(e,t){return w[I(e)][t?"ordinal":"cardinal"]}));t.exports=M})),r9=z((e=>{"use strict";var t=Q7();var i,r,n=(i=t)&&"object"==typeof i&&"default"in i?i:{default:i};"undefined"==typeof Intl?("undefined"!=typeof global?global.Intl={PluralRules:n.default}:"undefined"!=typeof window?window.Intl={PluralRules:n.default}:e.Intl={PluralRules:n.default},n.default.polyfill=!0):Intl.PluralRules?(r=["en","es","ru","zh"],Intl.PluralRules.supportedLocalesOf(r).length{var i=function(e){return e&&e.Math==Math&&e};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof global&&global)||function(){return this}()||Function("return this")()})),Mt=z(((e,t)=>{t.exports=function(e){try{return!!e()}catch(e){return!0}}})),Ar=z(((e,t)=>{var i=Mt();t.exports=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))})),sv=z(((e,t)=>{var i=Mt();t.exports=!i((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))})),si=z(((e,t)=>{var i=sv(),r=Function.prototype.call;t.exports=i?r.bind(r):function(){return r.apply(r,arguments)}})),a1=z((e=>{"use strict";var t={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,r=i&&!t.call({1:2},1);e.f=r?function(e){var t=i(this,e);return!!t&&t.enumerable}:t})),Mo=z(((e,t)=>{t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}})),Bt=z(((e,t)=>{var i=sv(),r=Function.prototype,n=r.call,s=i&&r.bind.bind(n,n);t.exports=i?s:function(e){return function(){return n.apply(e,arguments)}}})),ma=z(((e,t)=>{var i=Bt(),r=i({}.toString),n=i("".slice);t.exports=function(e){return n(r(e),8,-1)}})),Sm=z(((e,t)=>{var i=Bt(),r=Mt(),n=ma(),s=Object,a=i("".split);t.exports=r((function(){return!s("z").propertyIsEnumerable(0)}))?function(e){return"String"==n(e)?a(e,""):s(e)}:s})),ga=z(((e,t)=>{t.exports=function(e){return null==e}})),cs=z(((e,t)=>{var i=ga(),r=TypeError;t.exports=function(e){if(i(e))throw r("Can't call method on "+e);return e}})),va=z(((e,t)=>{var i=Sm(),r=cs();t.exports=function(e){return i(r(e))}})),l2=z(((e,t)=>{var i="object"==typeof document&&document.all,r=void 0===i&&void 0!==i;t.exports={all:i,IS_HTMLDDA:r}})),Ei=z(((e,t)=>{var i=l2(),r=i.all;t.exports=i.IS_HTMLDDA?function(e){return"function"==typeof e||e===r}:function(e){return"function"==typeof e}})),ai=z(((e,t)=>{var i=Ei(),r=l2(),n=r.all;t.exports=r.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:i(e)||e===n}:function(e){return"object"==typeof e?null!==e:i(e)}})),In=z(((e,t)=>{var i=rr(),r=Ei(),n=function(e){return r(e)?e:void 0};t.exports=function(e,t){return arguments.length<2?n(i[e]):i[e]&&i[e][t]}})),Do=z(((e,t)=>{var i=Bt();t.exports=i({}.isPrototypeOf)})),bu=z(((e,t)=>{var i=In();t.exports=i("navigator","userAgent")||""})),xu=z(((e,t)=>{var i,r,n=rr(),s=bu(),a=n.process,o=n.Deno,l=a&&a.versions||o&&o.version,h=l&&l.v8;h&&(r=(i=h.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1])),!r&&s&&((!(i=s.match(/Edge\/(\d+)/))||i[1]>=74)&&((i=s.match(/Chrome\/(\d+)/))&&(r=+i[1]))),t.exports=r})),wm=z(((e,t)=>{var i=xu(),r=Mt();t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&i&&i<41}))})),h2=z(((e,t)=>{var i=wm();t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator})),Dd=z(((e,t)=>{var i=In(),r=Ei(),n=Do(),s=h2(),a=Object;t.exports=s?function(e){return"symbol"==typeof e}:function(e){var t=i("Symbol");return r(t)&&n(t.prototype,a(e))}})),Cd=z(((e,t)=>{var i=String;t.exports=function(e){try{return i(e)}catch(e){return"Object"}}})),ms=z(((e,t)=>{var i=Ei(),r=Cd(),n=TypeError;t.exports=function(e){if(i(e))return e;throw n(r(e)+" is not a function")}})),Iu=z(((e,t)=>{var i=ms(),r=ga();t.exports=function(e,t){var n=e[t];return r(n)?void 0:i(n)}})),m2=z(((e,t)=>{var i=si(),r=Ei(),n=ai(),s=TypeError;t.exports=function(e,t){var a,o;if("string"===t&&r(a=e.toString)&&!n(o=i(a,e))||r(a=e.valueOf)&&!n(o=i(a,e))||"string"!==t&&r(a=e.toString)&&!n(o=i(a,e)))return o;throw s("Can't convert object to primitive value")}})),Gn=z(((e,t)=>{t.exports=!1})),sw=z(((e,t)=>{var i=rr(),r=Object.defineProperty;t.exports=function(e,t){try{r(i,e,{value:t,configurable:!0,writable:!0})}catch(r){i[e]=t}return t}})),aw=z(((e,t)=>{var i=rr(),r=sw(),n="__core-js_shared__",s=i[n]||r(n,{});t.exports=s})),Rm=z(((e,t)=>{var i=Gn(),r=aw();(t.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.27.1",mode:i?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.27.1/LICENSE",source:"https://github.com/zloirock/core-js"})})),Hi=z(((e,t)=>{var i=cs(),r=Object;t.exports=function(e){return r(i(e))}})),_i=z(((e,t)=>{var i=Bt(),r=Hi(),n=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return n(r(e),t)}})),Mm=z(((e,t)=>{var i=Bt(),r=0,n=Math.random(),s=i(1..toString);t.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+s(++r+n,36)}})),fi=z(((e,t)=>{var i=rr(),r=Rm(),n=_i(),s=Mm(),a=wm(),o=h2(),l=r("wks"),h=i.Symbol,u=h&&h.for,c=o?h:h&&h.withoutSetter||s;t.exports=function(e){if(!n(l,e)||!a&&"string"!=typeof l[e]){var t="Symbol."+e;a&&n(h,e)?l[e]=h[e]:l[e]=o&&u?u(t):c(t)}return l[e]}})),o1=z(((e,t)=>{var i=si(),r=ai(),n=Dd(),s=Iu(),a=m2(),o=fi(),l=TypeError,h=o("toPrimitive");t.exports=function(e,t){if(!r(e)||n(e))return e;var o,u=s(e,h);if(u){if(void 0===t&&(t="default"),o=i(u,e,t),!r(o)||n(o))return o;throw l("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}})),Wh=z(((e,t)=>{var i=o1(),r=Dd();t.exports=function(e){var t=i(e,"string");return r(t)?t:t+""}})),l1=z(((e,t)=>{var i=rr(),r=ai(),n=i.document,s=r(n)&&r(n.createElement);t.exports=function(e){return s?n.createElement(e):{}}})),v2=z(((e,t)=>{var i=Ar(),r=Mt(),n=l1();t.exports=!i&&!r((function(){return 7!=Object.defineProperty(n("div"),"a",{get:function(){return 7}}).a}))})),Hs=z((e=>{var t=Ar(),i=si(),r=a1(),n=Mo(),s=va(),a=Wh(),o=_i(),l=v2(),h=Object.getOwnPropertyDescriptor;e.f=t?h:function(e,t){if(e=s(e),t=a(t),l)try{return h(e,t)}catch(e){}if(o(e,t))return n(!i(r.f,e,t),e[t])}})),y2=z(((e,t)=>{var i=Ar(),r=Mt();t.exports=i&&r((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))})),qr=z(((e,t)=>{var i=ai(),r=String,n=TypeError;t.exports=function(e){if(i(e))return e;throw n(r(e)+" is not an object")}})),ji=z((e=>{var t=Ar(),i=v2(),r=y2(),n=qr(),s=Wh(),a=TypeError,o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,h="enumerable",u="configurable",c="writable";e.f=t?r?function(e,t,i){if(n(e),t=s(t),n(i),"function"==typeof e&&"prototype"===t&&"value"in i&&c in i&&!i[c]){var r=l(e,t);r&&r[c]&&(e[t]=i.value,i={configurable:u in i?i[u]:r[u],enumerable:h in i?i[h]:r[h],writable:!1})}return o(e,t,i)}:o:function(e,t,r){if(n(e),t=s(t),n(r),i)try{return o(e,t,r)}catch(e){}if("get"in r||"set"in r)throw a("Accessors not supported");return"value"in r&&(e[t]=r.value),e}})),ya=z(((e,t)=>{var i=Ar(),r=ji(),n=Mo();t.exports=i?function(e,t,i){return r.f(e,t,n(1,i))}:function(e,t,i){return e[t]=i,e}})),Cm=z(((e,t)=>{var i=Ar(),r=_i(),n=Function.prototype,s=i&&Object.getOwnPropertyDescriptor,a=r(n,"name"),o=a&&"something"===function(){}.name,l=a&&(!i||i&&s(n,"name").configurable);t.exports={EXISTS:a,PROPER:o,CONFIGURABLE:l}})),lw=z(((e,t)=>{var i=Bt(),r=Ei(),n=aw(),s=i(Function.toString);r(n.inspectSource)||(n.inspectSource=function(e){return s(e)}),t.exports=n.inspectSource})),w2=z(((e,t)=>{var i=rr(),r=Ei(),n=i.WeakMap;t.exports=r(n)&&/native code/.test(String(n))})),c1=z(((e,t)=>{var i=Rm(),r=Mm(),n=i("keys");t.exports=function(e){return n[e]||(n[e]=r(e))}})),ov=z(((e,t)=>{t.exports={}})),us=z(((e,t)=>{var i,r,n,s,a,o=w2(),l=rr(),h=ai(),u=ya(),c=_i(),p=aw(),d=c1(),f=ov(),m="Object already initialized",g=l.TypeError,y=l.WeakMap;o||p.state?((s=p.state||(p.state=new y)).get=s.get,s.has=s.has,s.set=s.set,i=function(e,t){if(s.has(e))throw g(m);return t.facade=e,s.set(e,t),t},r=function(e){return s.get(e)||{}},n=function(e){return s.has(e)}):(f[a=d("state")]=!0,i=function(e,t){if(c(e,a))throw g(m);return t.facade=e,u(e,a,t),t},r=function(e){return c(e,a)?e[a]:{}},n=function(e){return c(e,a)}),t.exports={set:i,get:r,has:n,enforce:function(e){return n(e)?r(e):i(e,{})},getterFor:function(e){return function(t){var i;if(!h(t)||(i=r(t)).type!==e)throw g("Incompatible receiver, "+e+" required");return i}}}})),dw=z(((e,t)=>{var i=Mt(),r=Ei(),n=_i(),s=Ar(),a=Cm().CONFIGURABLE,o=lw(),l=us(),h=l.enforce,u=l.get,c=Object.defineProperty,p=s&&!i((function(){return 8!==c((function(){}),"length",{value:8}).length})),d=String(String).split("String"),f=t.exports=function(e,t,i){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),i&&i.getter&&(t="get "+t),i&&i.setter&&(t="set "+t),(!n(e,"name")||a&&e.name!==t)&&(s?c(e,"name",{value:t,configurable:!0}):e.name=t),p&&i&&n(i,"arity")&&e.length!==i.arity&&c(e,"length",{value:i.arity});try{i&&n(i,"constructor")&&i.constructor?s&&c(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=h(e);return n(r,"source")||(r.source=d.join("string"==typeof t?t:"")),e};Function.prototype.toString=f((function(){return r(this)&&u(this).source||o(this)}),"toString")})),Cn=z(((e,t)=>{var i=Ei(),r=ji(),n=dw(),s=sw();t.exports=function(e,t,a,o){o||(o={});var l=o.enumerable,h=void 0!==o.name?o.name:t;if(i(a)&&n(a,h,o),o.global)l?e[t]=a:s(t,a);else{try{o.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=a:r.f(e,t,{value:a,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return e}})),A2=z(((e,t)=>{var i=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(e){var t=+e;return(t>0?r:i)(t)}})),gs=z(((e,t)=>{var i=A2();t.exports=function(e){var t=+e;return t!=t||0===t?0:i(t)}})),_u=z(((e,t)=>{var i=gs(),r=Math.max,n=Math.min;t.exports=function(e,t){var s=i(e);return s<0?r(s+t,0):n(s,t)}})),qa=z(((e,t)=>{var i=gs(),r=Math.min;t.exports=function(e){return e>0?r(i(e),9007199254740991):0}})),cn=z(((e,t)=>{var i=qa();t.exports=function(e){return i(e.length)}})),lv=z(((e,t)=>{var i=va(),r=_u(),n=cn(),s=function(e){return function(t,s,a){var o,l=i(t),h=n(l),u=r(a,h);if(e&&s!=s){for(;h>u;)if((o=l[u++])!=o)return!0}else for(;h>u;u++)if((e||u in l)&&l[u]===s)return e||u||0;return!e&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}})),P2=z(((e,t)=>{var i=Bt(),r=_i(),n=va(),s=lv().indexOf,a=ov(),o=i([].push);t.exports=function(e,t){var i,l=n(e),h=0,u=[];for(i in l)!r(a,i)&&r(l,i)&&o(u,i);for(;t.length>h;)r(l,i=t[h++])&&(~s(u,i)||o(u,i));return u}})),fw=z(((e,t)=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]})),qh=z((e=>{var t=P2(),i=fw().concat("length","prototype");e.f=Object.getOwnPropertyNames||function(e){return t(e,i)}})),h1=z((e=>{e.f=Object.getOwnPropertySymbols})),mw=z(((e,t)=>{var i=In(),r=Bt(),n=qh(),s=h1(),a=qr(),o=r([].concat);t.exports=i("Reflect","ownKeys")||function(e){var t=n.f(a(e)),i=s.f;return i?o(t,i(e)):t}})),p1=z(((e,t)=>{var i=_i(),r=mw(),n=Hs(),s=ji();t.exports=function(e,t,a){for(var o=r(t),l=s.f,h=n.f,u=0;u{var i=Mt(),r=Ei(),n=/#|\.prototype\./,s=function(e,t){var n=o[a(e)];return n==h||n!=l&&(r(t)?i(t):!!t)},a=s.normalize=function(e){return String(e).replace(n,".").toLowerCase()},o=s.data={},l=s.NATIVE="N",h=s.POLYFILL="P";t.exports=s})),He=z(((e,t)=>{var i=rr(),r=Hs().f,n=ya(),s=Cn(),a=sw(),o=p1(),l=cv();t.exports=function(e,t){var h,u,c,p,d,f=e.target,m=e.global,g=e.stat;if(h=m?i:g?i[f]||a(f,{}):(i[f]||{}).prototype)for(u in t){if(p=t[u],e.dontCallGetSet?c=(d=r(h,u))&&d.value:c=h[u],!l(m?u:f+(g?".":"#")+u,e.forced)&&void 0!==c){if(typeof p==typeof c)continue;o(p,c)}(e.sham||c&&c.sham)&&n(p,"sham",!0),s(h,u,p,e)}}})),gw=z(((e,t)=>{var i={};i[fi()("toStringTag")]="z",t.exports="[object z]"===String(i)})),mc=z(((e,t)=>{var i=gw(),r=Ei(),n=ma(),s=fi()("toStringTag"),a=Object,o="Arguments"==n(function(){return arguments}());t.exports=i?n:function(e){var t,i,l;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(e){}}(t=a(e),s))?i:o?n(t):"Object"==(l=n(t))&&r(t.callee)?"Arguments":l}})),mi=z(((e,t)=>{var i=mc(),r=String;t.exports=function(e){if("Symbol"===i(e))throw TypeError("Cannot convert a Symbol value to a string");return r(e)}})),uv=z(((e,t)=>{var i=P2(),r=fw();t.exports=Object.keys||function(e){return i(e,r)}})),yw=z((e=>{var t=Ar(),i=y2(),r=ji(),n=qr(),s=va(),a=uv();e.f=t&&!i?Object.defineProperties:function(e,t){n(e);for(var i,o=s(t),l=a(t),h=l.length,u=0;h>u;)r.f(e,i=l[u++],o[i]);return e}})),L2=z(((e,t)=>{var i=In();t.exports=i("document","documentElement")})),Ya=z(((e,t)=>{var i,r=qr(),n=yw(),s=fw(),a=ov(),o=L2(),l=l1(),h=c1(),u="prototype",c="script",p=h("IE_PROTO"),d=function(){},f=function(e){return"<"+c+">"+e+""},m=function(e){e.write(f("")),e.close();var t=e.parentWindow.Object;return e=null,t},g=function(){try{i=new ActiveXObject("htmlfile")}catch(e){}g="undefined"!=typeof document?document.domain&&i?m(i):function(){var e,t=l("iframe"),i="java"+c+":";return t.style.display="none",o.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F}():m(i);for(var e=s.length;e--;)delete g[u][s[e]];return g()};a[p]=!0,t.exports=Object.create||function(e,t){var i;return null!==e?(d[u]=r(e),i=new d,d[u]=null,i[p]=e):i=g(),void 0===t?i:n.f(i,t)}})),Su=z(((e,t)=>{"use strict";var i=Wh(),r=ji(),n=Mo();t.exports=function(e,t,s){var a=i(t);a in e?r.f(e,a,n(0,s)):e[a]=s}})),hv=z(((e,t)=>{var i=_u(),r=cn(),n=Su(),s=Array,a=Math.max;t.exports=function(e,t,o){for(var l=r(e),h=i(t,l),u=i(void 0===o?l:o,l),c=s(a(u-h,0)),p=0;h{var i=ma(),r=va(),n=qh().f,s=hv(),a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(e){return a&&"Window"==i(e)?function(e){try{return n(e)}catch(e){return s(a)}}(e):n(r(e))}})),B2=z((e=>{var t=fi();e.f=t})),xw=z(((e,t)=>{var i=rr();t.exports=i})),Ta=z(((e,t)=>{var i=xw(),r=_i(),n=B2(),s=ji().f;t.exports=function(e){var t=i.Symbol||(i.Symbol={});r(t,e)||s(t,e,{value:n.f(e)})}})),k2=z(((e,t)=>{var i=si(),r=In(),n=fi(),s=Cn();t.exports=function(){var e=r("Symbol"),t=e&&e.prototype,a=t&&t.valueOf,o=n("toPrimitive");t&&!t[o]&&s(t,o,(function(e){return i(a,this)}),{arity:1})}})),Xa=z(((e,t)=>{var i=ji().f,r=_i(),n=fi()("toStringTag");t.exports=function(e,t,s){e&&!s&&(e=e.prototype),e&&!r(e,n)&&i(e,n,{configurable:!0,value:t})}})),Yh=z(((e,t)=>{var i=ma(),r=Bt();t.exports=function(e){if("Function"===i(e))return r(e)}})),pl=z(((e,t)=>{var i=Yh(),r=ms(),n=sv(),s=i(i.bind);t.exports=function(e,t){return r(e),void 0===t?e:n?s(e,t):function(){return e.apply(t,arguments)}}})),Xh=z(((e,t)=>{var i=ma();t.exports=Array.isArray||function(e){return"Array"==i(e)}})),Om=z(((e,t)=>{var i=Bt(),r=Mt(),n=Ei(),s=mc(),a=In(),o=lw(),l=function(){},h=[],u=a("Reflect","construct"),c=/^\s*(?:class|function)\b/,p=i(c.exec),d=!c.exec(l),f=function(e){if(!n(e))return!1;try{return u(l,h,e),!0}catch(e){return!1}},m=function(e){if(!n(e))return!1;switch(s(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!p(c,o(e))}catch(e){return!0}};m.sham=!0,t.exports=!u||r((function(){var e;return f(f.call)||!f(Object)||!f((function(){e=!0}))||e}))?m:f})),Lj=z(((e,t)=>{var i=Xh(),r=Om(),n=ai(),s=fi()("species"),a=Array;t.exports=function(e){var t;return i(e)&&(t=e.constructor,r(t)&&(t===a||i(t.prototype))?t=void 0:n(t)&&(null===(t=t[s])&&(t=void 0))),void 0===t?a:t}})),pv=z(((e,t)=>{var i=Lj();t.exports=function(e,t){return new(i(e))(0===t?0:t)}})),Rs=z(((e,t)=>{var i=pl(),r=Bt(),n=Sm(),s=Hi(),a=cn(),o=pv(),l=r([].push),h=function(e){var t=1==e,r=2==e,h=3==e,u=4==e,c=6==e,p=7==e,d=5==e||c;return function(f,m,g,y){for(var v,T,x=s(f),b=n(x),_=i(m,g),E=a(b),w=0,S=y||o,I=t?S(f,E):r||p?S(f,0):void 0;E>w;w++)if((d||w in b)&&(T=_(v=b[w],w,x),e))if(t)I[w]=T;else if(T)switch(e){case 3:return!0;case 5:return v;case 6:return w;case 2:l(I,v)}else switch(e){case 4:return!1;case 7:l(I,v)}return c?-1:h||u?u:I}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6),filterReject:h(7)}})),eW=z((()=>{"use strict";var e=He(),t=rr(),i=si(),r=Bt(),n=Gn(),s=Ar(),a=wm(),o=Mt(),l=_i(),h=Do(),u=qr(),c=va(),p=Wh(),d=mi(),f=Mo(),m=Ya(),g=uv(),y=qh(),v=bw(),T=h1(),x=Hs(),b=ji(),_=yw(),E=a1(),w=Cn(),S=Rm(),I=c1(),M=ov(),A=Mm(),D=fi(),O=B2(),R=Ta(),C=k2(),N=Xa(),P=us(),L=Rs().forEach,F=I("hidden"),U="Symbol",k="prototype",B=P.set,H=P.getterFor(U),G=Object[k],z=t.Symbol,V=z&&z[k],j=t.TypeError,W=t.QObject,Y=x.f,X=b.f,q=v.f,Z=E.f,K=r([].push),J=S("symbols"),$=S("op-symbols"),Q=S("wks"),ee=!W||!W[k]||!W[k].findChild,te=s&&o((function(){return 7!=m(X({},"a",{get:function(){return X(this,"a",{value:7}).a}})).a}))?function(e,t,i){var r=Y(G,t);r&&delete G[t],X(e,t,i),r&&e!==G&&X(G,t,r)}:X,ie=function(e,t){var i=J[e]=m(V);return B(i,{type:U,tag:e,description:t}),s||(i.description=t),i},re=function(e,t,i){e===G&&re($,t,i),u(e);var r=p(t);return u(i),l(J,r)?(i.enumerable?(l(e,F)&&e[F][r]&&(e[F][r]=!1),i=m(i,{enumerable:f(0,!1)})):(l(e,F)||X(e,F,f(1,{})),e[F][r]=!0),te(e,r,i)):X(e,r,i)},ne=function(e,t){u(e);var r=c(t),n=g(r).concat(le(r));return L(n,(function(t){(!s||i(se,r,t))&&re(e,t,r[t])})),e},se=function(e){var t=p(e),r=i(Z,this,t);return!(this===G&&l(J,t)&&!l($,t))&&(!(r||!l(this,t)||!l(J,t)||l(this,F)&&this[F][t])||r)},ae=function(e,t){var i=c(e),r=p(t);if(i!==G||!l(J,r)||l($,r)){var n=Y(i,r);return n&&l(J,r)&&!(l(i,F)&&i[F][r])&&(n.enumerable=!0),n}},oe=function(e){var t=q(c(e)),i=[];return L(t,(function(e){!l(J,e)&&!l(M,e)&&K(i,e)})),i},le=function(e){var t=e===G,i=q(t?$:c(e)),r=[];return L(i,(function(e){l(J,e)&&(!t||l(G,e))&&K(r,J[e])})),r};a||(w(V=(z=function(){if(h(V,this))throw j("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?d(arguments[0]):void 0,t=A(e),r=function(e){this===G&&i(r,$,e),l(this,F)&&l(this[F],t)&&(this[F][t]=!1),te(this,t,f(1,e))};return s&&ee&&te(G,t,{configurable:!0,set:r}),ie(t,e)})[k],"toString",(function(){return H(this).tag})),w(z,"withoutSetter",(function(e){return ie(A(e),e)})),E.f=se,b.f=re,_.f=ne,x.f=ae,y.f=v.f=oe,T.f=le,O.f=function(e){return ie(D(e),e)},s&&(X(V,"description",{configurable:!0,get:function(){return H(this).description}}),n||w(G,"propertyIsEnumerable",se,{unsafe:!0}))),e({global:!0,constructor:!0,wrap:!0,forced:!a,sham:!a},{Symbol:z}),L(g(Q),(function(e){R(e)})),e({target:U,stat:!0,forced:!a},{useSetter:function(){ee=!0},useSimple:function(){ee=!1}}),e({target:"Object",stat:!0,forced:!a,sham:!s},{create:function(e,t){return void 0===t?m(e):ne(m(e),t)},defineProperty:re,defineProperties:ne,getOwnPropertyDescriptor:ae}),e({target:"Object",stat:!0,forced:!a},{getOwnPropertyNames:oe}),C(),N(z,U),M[F]=!0})),tN=z(((e,t)=>{var i=wm();t.exports=i&&!!Symbol.for&&!!Symbol.keyFor})),iW=z((()=>{var e=He(),t=In(),i=_i(),r=mi(),n=Rm(),s=tN(),a=n("string-to-symbol-registry"),o=n("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!s},{for:function(e){var n=r(e);if(i(a,n))return a[n];var s=t("Symbol")(n);return a[n]=s,o[s]=n,s}})})),sW=z((()=>{var e=He(),t=_i(),i=Dd(),r=Cd(),n=Rm(),s=tN(),a=n("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!s},{keyFor:function(e){if(!i(e))throw TypeError(r(e)+" is not a symbol");if(t(a,e))return a[e]}})})),Co=z(((e,t)=>{var i=sv(),r=Function.prototype,n=r.apply,s=r.call;t.exports="object"==typeof Reflect&&Reflect.apply||(i?s.bind(n):function(){return s.apply(n,arguments)})})),Pd=z(((e,t)=>{var i=Bt();t.exports=i([].slice)})),iN=z((()=>{var e=He(),t=In(),i=Co(),r=si(),n=Bt(),s=Mt(),a=Xh(),o=Ei(),l=ai(),h=Dd(),u=Pd(),c=wm(),p=t("JSON","stringify"),d=n(/./.exec),f=n("".charAt),m=n("".charCodeAt),g=n("".replace),y=n(1..toString),v=/[\uD800-\uDFFF]/g,T=/^[\uD800-\uDBFF]$/,x=/^[\uDC00-\uDFFF]$/,b=!c||s((function(){var e=t("Symbol")();return"[null]"!=p([e])||"{}"!=p({a:e})||"{}"!=p(Object(e))})),_=s((function(){return'"\\udf06\\ud834"'!==p("\udf06\ud834")||'"\\udead"'!==p("\udead")})),E=function(e,t){var n=u(arguments),s=t;if((l(t)||void 0!==e)&&!h(e))return a(t)||(t=function(e,t){if(o(s)&&(t=r(s,this,e,t)),!h(t))return t}),n[1]=t,i(p,null,n)},w=function(e,t,i){var r=f(i,t-1),n=f(i,t+1);return d(T,e)&&!d(x,n)||d(x,e)&&!d(T,r)?"\\u"+y(m(e,0),16):e};p&&e({target:"JSON",stat:!0,arity:3,forced:b||_},{stringify:function(e,t,r){var n=u(arguments),s=i(b?E:p,null,n);return _&&"string"==typeof s?g(s,v,w):s}})})),xW=z((()=>{var e=He(),t=wm(),i=Mt(),r=h1(),n=Hi();e({target:"Object",stat:!0,forced:!t||i((function(){r.f(1)}))},{getOwnPropertySymbols:function(e){var t=r.f;return t?t(n(e)):[]}})})),IW=z((()=>{eW(),iW(),sW(),iN(),xW()})),CW=z((()=>{"use strict";var e,t,i,r,n,s,a,o,l=He(),h=Ar(),u=rr(),c=Bt(),p=_i(),d=Ei(),f=Do(),m=mi(),g=ji().f,y=p1(),v=u.Symbol,T=v&&v.prototype;h&&d(v)&&(!("description"in T)||void 0!==v().description)&&(e={},y(t=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:m(arguments[0]),i=f(T,this)?new v(t):void 0===t?v():v(t);return""===t&&(e[i]=!0),i},v),t.prototype=T,T.constructor=t,i="Symbol(test)"==String(v("test")),r=c(T.valueOf),n=c(T.toString),s=/^Symbol\((.*)\)[^)]+$/,a=c("".replace),o=c("".slice),g(T,"description",{configurable:!0,get:function(){var t=r(this);if(p(e,t))return"";var l=n(t),h=i?o(l,7,-1):a(l,s,"$1");return""===h?void 0:h}}),l({global:!0,constructor:!0,forced:!0},{Symbol:t}))})),AW=z((()=>{Ta()("asyncIterator")})),OW=z((()=>{Ta()("hasInstance")})),PW=z((()=>{Ta()("isConcatSpreadable")})),NW=z((()=>{Ta()("iterator")})),LW=z((()=>{Ta()("match")})),FW=z((()=>{Ta()("matchAll")})),HW=z((()=>{Ta()("replace")})),UW=z((()=>{Ta()("search")})),BW=z((()=>{Ta()("species")})),kW=z((()=>{Ta()("split")})),GW=z((()=>{var e=Ta(),t=k2();e("toPrimitive"),t()})),VW=z((()=>{var e=In(),t=Ta(),i=Xa();t("toStringTag"),i(e("Symbol"),"Symbol")})),zW=z((()=>{Ta()("unscopables")})),sN=z(((e,t)=>{var i=Ei(),r=String,n=TypeError;t.exports=function(e){if("object"==typeof e||i(e))return e;throw n("Can't set "+r(e)+" as a prototype")}})),gc=z(((e,t)=>{var i=Bt(),r=qr(),n=sN();t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,s={};try{(e=i(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(s,[]),t=s instanceof Array}catch(e){}return function(i,s){return r(i),n(s),t?e(i,s):i.__proto__=s,i}}():void 0)})),aN=z(((e,t)=>{var i=ji().f;t.exports=function(e,t,r){r in e||i(e,r,{configurable:!0,get:function(){return t[r]},set:function(e){t[r]=e}})}})),Lm=z(((e,t)=>{var i=Ei(),r=ai(),n=gc();t.exports=function(e,t,s){var a,o;return n&&i(a=t.constructor)&&a!==s&&r(o=a.prototype)&&o!==s.prototype&&n(e,o),e}})),mv=z(((e,t)=>{var i=mi();t.exports=function(e,t){return void 0===e?arguments.length<2?"":t:i(e)}})),oN=z(((e,t)=>{var i=ai(),r=ya();t.exports=function(e,t){i(t)&&"cause"in t&&r(e,"cause",t.cause)}})),b1=z(((e,t)=>{var i=Bt(),r=Error,n=i("".replace),s=String(r("zxcasd").stack),a=/\n\s*at [^:]*:[^\n]*/,o=a.test(s);t.exports=function(e,t){if(o&&"string"==typeof e&&!r.prepareStackTrace)for(;t--;)e=n(e,a,"");return e}})),Cw=z(((e,t)=>{var i=Mt(),r=Mo();t.exports=!i((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",r(1,7)),7!==e.stack)}))})),cN=z(((e,t)=>{"use strict";var i=In(),r=_i(),n=ya(),s=Do(),a=gc(),o=p1(),l=aN(),h=Lm(),u=mv(),c=oN(),p=b1(),d=Cw(),f=Ar(),m=Gn();t.exports=function(e,t,g,y){var v="stackTraceLimit",T=y?2:1,x=e.split("."),b=x[x.length-1],_=i.apply(null,x);if(_){var E=_.prototype;if(!m&&r(E,"cause")&&delete E.cause,!g)return _;var w=i("Error"),S=t((function(e,t){var i=u(y?t:e,void 0),r=y?new _(e):new _;return void 0!==i&&n(r,"message",i),d&&n(r,"stack",p(r.stack,2)),this&&s(E,this)&&h(r,this,S),arguments.length>T&&c(r,arguments[T]),r}));if(S.prototype=E,"Error"!==b?a?a(S,w):o(S,w,{name:!0}):f&&v in _&&(l(S,_,v),l(S,_,"prepareStackTrace")),o(S,_),!m)try{E.name!==b&&n(E,"name",b),E.constructor=S}catch(e){}return S}}})),uq=z((()=>{var e=He(),t=rr(),i=Co(),r=cN(),n="WebAssembly",s=t[n],a=7!==Error("e",{cause:7}).cause,o=function(t,i){var n={};n[t]=r(t,i,a),e({global:!0,constructor:!0,arity:1,forced:a},n)},l=function(t,i){if(s&&s[t]){var o={};o[t]=r(n+"."+t,i,a),e({target:n,stat:!0,constructor:!0,arity:1,forced:a},o)}};o("Error",(function(e){return function(t){return i(e,this,arguments)}})),o("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),o("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),o("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),o("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),o("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),o("URIError",(function(e){return function(t){return i(e,this,arguments)}})),l("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),l("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),l("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))})),pN=z(((e,t)=>{"use strict";var i=Ar(),r=Mt(),n=qr(),s=Ya(),a=mv(),o=Error.prototype.toString,l=r((function(){if(i){var e=s(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==o.call(e))return!0}return"2: 1"!==o.call({message:1,name:2})||"Error"!==o.call({})}));t.exports=l?function(){var e=n(this),t=a(e.name,"Error"),i=a(e.message);return t?i?t+": "+i:t:i}:o})),mq=z((()=>{var e=Cn(),t=pN(),i=Error.prototype;i.toString!==t&&e(i,"toString",t)})),Pw=z(((e,t)=>{var i=Mt();t.exports=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))})),Ao=z(((e,t)=>{var i=_i(),r=Ei(),n=Hi(),s=c1(),a=Pw(),o=s("IE_PROTO"),l=Object,h=l.prototype;t.exports=a?l.getPrototypeOf:function(e){var t=n(e);if(i(t,o))return t[o];var s=t.constructor;return r(s)&&t instanceof s?s.prototype:t instanceof l?h:null}})),gv=z(((e,t)=>{t.exports={}})),Nw=z(((e,t)=>{var i=fi(),r=gv(),n=i("iterator"),s=Array.prototype;t.exports=function(e){return void 0!==e&&(r.Array===e||s[n]===e)}})),vv=z(((e,t)=>{var i=mc(),r=Iu(),n=ga(),s=gv(),a=fi()("iterator");t.exports=function(e){if(!n(e))return r(e,a)||r(e,"@@iterator")||s[i(e)]}})),x1=z(((e,t)=>{var i=si(),r=ms(),n=qr(),s=Cd(),a=vv(),o=TypeError;t.exports=function(e,t){var l=arguments.length<2?a(e):t;if(r(l))return n(i(l,e));throw o(s(e)+" is not iterable")}})),fN=z(((e,t)=>{var i=si(),r=qr(),n=Iu();t.exports=function(e,t,s){var a,o;r(e);try{if(!(a=n(e,"return"))){if("throw"===t)throw s;return s}a=i(a,e)}catch(e){o=!0,a=e}if("throw"===t)throw s;if(o)throw a;return r(a),s}})),vc=z(((e,t)=>{var i=pl(),r=si(),n=qr(),s=Cd(),a=Nw(),o=cn(),l=Do(),h=x1(),u=vv(),c=fN(),p=TypeError,d=function(e,t){this.stopped=e,this.result=t},f=d.prototype;t.exports=function(e,t,m){var g,y,v,T,x,b,_,E=m&&m.that,w=!(!m||!m.AS_ENTRIES),S=!(!m||!m.IS_RECORD),I=!(!m||!m.IS_ITERATOR),M=!(!m||!m.INTERRUPTED),A=i(t,E),D=function(e){return g&&c(g,"normal",e),new d(!0,e)},O=function(e){return w?(n(e),M?A(e[0],e[1],D):A(e[0],e[1])):M?A(e,D):A(e)};if(S)g=e.iterator;else if(I)g=e;else{if(!(y=u(e)))throw p(s(e)+" is not iterable");if(a(y)){for(v=0,T=o(e);T>v;v++)if((x=O(e[v]))&&l(f,x))return x;return new d(!1)}g=h(e,y)}for(b=S?e.next:g.next;!(_=r(b,g)).done;){try{x=O(_.value)}catch(e){c(g,"throw",e)}if("object"==typeof x&&x&&l(f,x))return x}return new d(!1)}})),Aq=z((()=>{"use strict";var e=He(),t=Do(),i=Ao(),r=gc(),n=p1(),s=Ya(),a=ya(),o=Mo(),l=b1(),h=oN(),u=vc(),c=mv(),p=fi(),d=Cw(),f=p("toStringTag"),m=Error,g=[].push,y=function(e,n){var o,p=arguments.length>2?arguments[2]:void 0,y=t(v,this);r?o=r(m(),y?i(this):v):(o=y?this:s(v),a(o,f,"Error")),void 0!==n&&a(o,"message",c(n)),d&&a(o,"stack",l(o.stack,1)),h(o,p);var T=[];return u(e,g,{that:T}),a(o,"errors",T),o};r?r(y,m):n(y,m,{name:!0});var v=y.prototype=s(m.prototype,{constructor:o(1,y),message:o(1,""),name:o(1,"AggregateError")});e({global:!0,constructor:!0,arity:2},{AggregateError:y})})),Oq=z((()=>{Aq()})),Fq=z((()=>{var e=He(),t=In(),i=Co(),r=Mt(),n=cN(),s="AggregateError",a=t(s),o=!r((function(){return 1!==a([1]).errors[0]}))&&r((function(){return 7!==a([1],s,{cause:7}).cause}));e({global:!0,constructor:!0,arity:2,forced:o},{AggregateError:n(s,(function(e){return function(t,r){return i(e,this,arguments)}}),o,!0)})})),fl=z(((e,t)=>{var i=fi(),r=Ya(),n=ji().f,s=i("unscopables"),a=Array.prototype;null==a[s]&&n(a,s,{configurable:!0,value:r(null)}),t.exports=function(e){a[s][e]=!0}})),Uq=z((()=>{"use strict";var e=He(),t=Hi(),i=cn(),r=gs(),n=fl();e({target:"Array",proto:!0},{at:function(e){var n=t(this),s=i(n),a=r(e),o=a>=0?a:s+a;return o<0||o>=s?void 0:n[o]}}),n("at")})),yv=z(((e,t)=>{var i=TypeError;t.exports=function(e){if(e>9007199254740991)throw i("Maximum allowed index exceeded");return e}})),Tv=z(((e,t)=>{var i=Mt(),r=fi(),n=xu(),s=r("species");t.exports=function(e){return n>=51||!i((function(){var t=[];return(t.constructor={})[s]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}})),jq=z((()=>{"use strict";var e=He(),t=Mt(),i=Xh(),r=ai(),n=Hi(),s=cn(),a=yv(),o=Su(),l=pv(),h=Tv(),u=fi(),c=xu(),p=u("isConcatSpreadable"),d=c>=51||!t((function(){var e=[];return e[p]=!1,e.concat()[0]!==e})),f=h("concat"),m=function(e){if(!r(e))return!1;var t=e[p];return void 0!==t?!!t:i(e)};e({target:"Array",proto:!0,arity:1,forced:!d||!f},{concat:function(e){var t,i,r,h,u,c=n(this),p=l(c,0),d=0;for(t=-1,r=arguments.length;t{"use strict";var i=Cd(),r=TypeError;t.exports=function(e,t){if(!delete e[t])throw r("Cannot delete property "+i(t)+" of "+i(e))}})),bN=z(((e,t)=>{"use strict";var i=Hi(),r=_u(),n=cn(),s=_1(),a=Math.min;t.exports=[].copyWithin||function(e,t){var o=i(this),l=n(o),h=r(e,l),u=r(t,l),c=arguments.length>2?arguments[2]:void 0,p=a((void 0===c?l:r(c,l))-u,l-h),d=1;for(u0;)u in o?o[h]=o[u]:s(o,h),h+=d,u+=d;return o}})),Xq=z((()=>{var e=He(),t=bN(),i=fl();e({target:"Array",proto:!0},{copyWithin:t}),i("copyWithin")})),Ru=z(((e,t)=>{"use strict";var i=Mt();t.exports=function(e,t){var r=[][e];return!!r&&i((function(){r.call(null,t||function(){return 1},1)}))}})),Kq=z((()=>{"use strict";var e=He(),t=Rs().every;e({target:"Array",proto:!0,forced:!Ru()("every")},{every:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Bw=z(((e,t)=>{"use strict";var i=Hi(),r=_u(),n=cn();t.exports=function(e){for(var t=i(this),s=n(t),a=arguments.length,o=r(a>1?arguments[1]:void 0,s),l=a>2?arguments[2]:void 0,h=void 0===l?s:r(l,s);h>o;)t[o++]=e;return t}})),Qq=z((()=>{var e=He(),t=Bw(),i=fl();e({target:"Array",proto:!0},{fill:t}),i("fill")})),eY=z((()=>{"use strict";var e=He(),t=Rs().filter;e({target:"Array",proto:!0,forced:!Tv()("filter")},{filter:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),rY=z((()=>{"use strict";var e=He(),t=Rs().find,i=fl(),r="find",n=!0;r in[]&&Array(1)[r]((function(){n=!1})),e({target:"Array",proto:!0,forced:n},{find:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i(r)})),nY=z((()=>{"use strict";var e=He(),t=Rs().findIndex,i=fl(),r="findIndex",n=!0;r in[]&&Array(1)[r]((function(){n=!1})),e({target:"Array",proto:!0,forced:n},{findIndex:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i(r)})),S1=z(((e,t)=>{var i=pl(),r=Sm(),n=Hi(),s=cn(),a=function(e){var t=1==e;return function(a,o,l){for(var h,u=n(a),c=r(u),p=i(o,l),d=s(c);d-- >0;)if(p(h=c[d],d,u))switch(e){case 0:return h;case 1:return d}return t?-1:void 0}};t.exports={findLast:a(0),findLastIndex:a(1)}})),oY=z((()=>{"use strict";var e=He(),t=S1().findLast,i=fl();e({target:"Array",proto:!0},{findLast:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i("findLast")})),lY=z((()=>{"use strict";var e=He(),t=S1().findLastIndex,i=fl();e({target:"Array",proto:!0},{findLastIndex:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i("findLastIndex")})),_N=z(((e,t)=>{"use strict";var i=Xh(),r=cn(),n=yv(),s=pl(),a=function(e,t,o,l,h,u,c,p){for(var d,f,m=h,g=0,y=!!c&&s(c,p);g0&&i(d)?(f=r(d),m=a(e,t,d,f,m,u-1)-1):(n(m+1),e[m]=d),m++),g++;return m};t.exports=a})),hY=z((()=>{"use strict";var e=He(),t=_N(),i=Hi(),r=cn(),n=gs(),s=pv();e({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,a=i(this),o=r(a),l=s(a,0);return l.length=t(l,a,a,o,0,void 0===e?1:n(e)),l}})})),pY=z((()=>{"use strict";var e=He(),t=_N(),i=ms(),r=Hi(),n=cn(),s=pv();e({target:"Array",proto:!0},{flatMap:function(e){var a,o=r(this),l=n(o);return i(e),(a=s(o,0)).length=t(a,o,o,l,0,1,e,arguments.length>1?arguments[1]:void 0),a}})})),SN=z(((e,t)=>{"use strict";var i=Rs().forEach,r=Ru()("forEach");t.exports=r?[].forEach:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})),mY=z((()=>{"use strict";var e=He(),t=SN();e({target:"Array",proto:!0,forced:[].forEach!=t},{forEach:t})})),vY=z(((e,t)=>{var i=qr(),r=fN();t.exports=function(e,t,n,s){try{return s?t(i(n)[0],n[1]):t(n)}catch(t){r(e,"throw",t)}}})),wN=z(((e,t)=>{"use strict";var i=pl(),r=si(),n=Hi(),s=vY(),a=Nw(),o=Om(),l=cn(),h=Su(),u=x1(),c=vv(),p=Array;t.exports=function(e){var t=n(e),d=o(this),f=arguments.length,m=f>1?arguments[1]:void 0,g=void 0!==m;g&&(m=i(m,f>2?arguments[2]:void 0));var y,v,T,x,b,_,E=c(t),w=0;if(!E||this===p&&a(E))for(y=l(t),v=d?new this(y):p(y);y>w;w++)_=g?m(t[w],w):t[w],h(v,w,_);else for(b=(x=u(t,E)).next,v=d?new this:[];!(T=r(b,x)).done;w++)_=g?s(x,m,[T.value,w],!0):T.value,h(v,w,_);return v.length=w,v}})),w1=z(((e,t)=>{var i,r,n=fi()("iterator"),s=!1;try{i=0,(r={next:function(){return{done:!!i++}},return:function(){s=!0}})[n]=function(){return this},Array.from(r,(function(){throw 2}))}catch(e){}t.exports=function(e,t){if(!t&&!s)return!1;var i=!1;try{var r={};r[n]=function(){return{next:function(){return{done:i=!0}}}},e(r)}catch(e){}return i}})),SY=z((()=>{var e=He(),t=wN();e({target:"Array",stat:!0,forced:!w1()((function(e){Array.from(e)}))},{from:t})})),wY=z((()=>{"use strict";var e=He(),t=lv().includes,i=Mt(),r=fl();e({target:"Array",proto:!0,forced:i((function(){return!Array(1).includes()}))},{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),r("includes")})),MY=z((()=>{"use strict";var e=He(),t=Yh(),i=lv().indexOf,r=Ru(),n=t([].indexOf),s=!!n&&1/n([1],1,-0)<0,a=r("indexOf");e({target:"Array",proto:!0,forced:s||!a},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return s?n(this,e,t)||0:i(this,e,t)}})})),DY=z((()=>{He()({target:"Array",stat:!0},{isArray:Xh()})})),ON=z(((e,t)=>{"use strict";var i,r,n,s=Mt(),a=Ei(),o=ai(),l=Ya(),h=Ao(),u=Cn(),c=fi(),p=Gn(),d=c("iterator"),f=!1;[].keys&&("next"in(n=[].keys())?(r=h(h(n)))!==Object.prototype&&(i=r):f=!0),!o(i)||s((function(){var e={};return i[d].call(e)!==e}))?i={}:p&&(i=l(i)),a(i[d])||u(i,d,(function(){return this})),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:f}})),kw=z(((e,t)=>{"use strict";var i=ON().IteratorPrototype,r=Ya(),n=Mo(),s=Xa(),a=gv(),o=function(){return this};t.exports=function(e,t,l,h){var u=t+" Iterator";return e.prototype=r(i,{next:n(+!h,l)}),s(e,u,!1,!0),a[u]=o,e}})),zw=z(((e,t)=>{"use strict";var i=He(),r=si(),n=Gn(),s=Cm(),a=Ei(),o=kw(),l=Ao(),h=gc(),u=Xa(),c=ya(),p=Cn(),d=fi(),f=gv(),m=ON(),g=s.PROPER,y=s.CONFIGURABLE,v=m.IteratorPrototype,T=m.BUGGY_SAFARI_ITERATORS,x=d("iterator"),b="keys",_="values",E="entries",w=function(){return this};t.exports=function(e,t,s,d,m,S,I){o(s,t,d);var M,A,D,O=function(e){if(e===m&&L)return L;if(!T&&e in N)return N[e];switch(e){case b:case _:case E:return function(){return new s(this,e)}}return function(){return new s(this)}},R=t+" Iterator",C=!1,N=e.prototype,P=N[x]||N["@@iterator"]||m&&N[m],L=!T&&P||O(m),F="Array"==t&&N.entries||P;if(F&&((M=l(F.call(new e)))!==Object.prototype&&M.next&&(!n&&l(M)!==v&&(h?h(M,v):a(M[x])||p(M,x,w)),u(M,R,!0,!0),n&&(f[R]=w))),g&&m==_&&P&&P.name!==_&&(!n&&y?c(N,"name",_):(C=!0,L=function(){return r(P,this)})),m)if(A={values:O(_),keys:S?L:O(b),entries:O(E)},I)for(D in A)(T||C||!(D in N))&&p(N,D,A[D]);else i({target:t,proto:!0,forced:T||C},A);return(!n||I)&&N[x]!==L&&p(N,x,L,{name:m}),f[t]=L,A}})),D1=z(((e,t)=>{t.exports=function(e,t){return{value:e,done:t}}})),C1=z(((e,t)=>{"use strict";var i=va(),r=fl(),n=gv(),s=us(),a=ji().f,o=zw(),l=D1(),h=Gn(),u=Ar(),c="Array Iterator",p=s.set,d=s.getterFor(c);t.exports=o(Array,"Array",(function(e,t){p(this,{type:c,target:i(e),index:0,kind:t})}),(function(){var e=d(this),t=e.target,i=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,l(void 0,!0)):l("keys"==i?r:"values"==i?t[r]:[r,t[r]],!1)}),"values");var f=n.Arguments=n.Array;if(r("keys"),r("values"),r("entries"),!h&&u&&"values"!==f.name)try{a(f,"name",{value:"values"})}catch(e){}})),KY=z((()=>{"use strict";var e=He(),t=Bt(),i=Sm(),r=va(),n=Ru(),s=t([].join),a=i!=Object,o=n("join",",");e({target:"Array",proto:!0,forced:a||!o},{join:function(e){return s(r(this),void 0===e?",":e)}})})),FN=z(((e,t)=>{"use strict";var i=Co(),r=va(),n=gs(),s=cn(),a=Ru(),o=Math.min,l=[].lastIndexOf,h=!!l&&1/[1].lastIndexOf(1,-0)<0,u=a("lastIndexOf"),c=h||!u;t.exports=c?function(e){if(h)return i(l,this,arguments)||0;var t=r(this),a=s(t),u=a-1;for(arguments.length>1&&(u=o(u,n(arguments[1]))),u<0&&(u=a+u);u>=0;u--)if(u in t&&t[u]===e)return u||0;return-1}:l})),eX=z((()=>{var e=He(),t=FN();e({target:"Array",proto:!0,forced:t!==[].lastIndexOf},{lastIndexOf:t})})),tX=z((()=>{"use strict";var e=He(),t=Rs().map;e({target:"Array",proto:!0,forced:!Tv()("map")},{map:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),iX=z((()=>{"use strict";var e=He(),t=Mt(),i=Om(),r=Su(),n=Array;e({target:"Array",stat:!0,forced:t((function(){function e(){}return!(n.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,s=new(i(this)?this:n)(t);t>e;)r(s,e,arguments[e++]);return s.length=t,s}})})),Ww=z(((e,t)=>{"use strict";var i=Ar(),r=Xh(),n=TypeError,s=Object.getOwnPropertyDescriptor,a=i&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();t.exports=a?function(e,t){if(r(e)&&!s(e,"length").writable)throw n("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}})),sX=z((()=>{"use strict";var e=He(),t=Hi(),i=cn(),r=Ww(),n=yv(),s=Mt()((function(){return 4294967297!==[].push.call({length:4294967296},1)})),a=!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}();e({target:"Array",proto:!0,arity:1,forced:s||a},{push:function(e){var s=t(this),a=i(s),o=arguments.length;n(a+o);for(var l=0;l{var i=ms(),r=Hi(),n=Sm(),s=cn(),a=TypeError,o=function(e){return function(t,o,l,h){i(o);var u=r(t),c=n(u),p=s(u),d=e?p-1:0,f=e?-1:1;if(l<2)for(;;){if(d in c){h=c[d],d+=f;break}if(d+=f,e?d<0:p<=d)throw a("Reduce of empty array with no initial value")}for(;e?d>=0:p>d;d+=f)d in c&&(h=o(h,c[d],d,u));return h}};t.exports={left:o(!1),right:o(!0)}})),Mu=z(((e,t)=>{var i=ma(),r=rr();t.exports="process"==i(r.process)})),uX=z((()=>{"use strict";var e=He(),t=A1().left,i=Ru(),r=xu(),n=Mu();e({target:"Array",proto:!0,forced:!i("reduce")||!n&&r>79&&r<83},{reduce:function(e){var i=arguments.length;return t(this,e,i,i>1?arguments[1]:void 0)}})})),pX=z((()=>{"use strict";var e=He(),t=A1().right,i=Ru(),r=xu(),n=Mu();e({target:"Array",proto:!0,forced:!i("reduceRight")||!n&&r>79&&r<83},{reduceRight:function(e){return t(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})})),fX=z((()=>{"use strict";var e=He(),t=Bt(),i=Xh(),r=t([].reverse),n=[1,2];e({target:"Array",proto:!0,forced:String(n)===String(n.reverse())},{reverse:function(){return i(this)&&(this.length=this.length),r(this)}})})),vX=z((()=>{"use strict";var e=He(),t=Xh(),i=Om(),r=ai(),n=_u(),s=cn(),a=va(),o=Su(),l=fi(),h=Tv(),u=Pd(),c=h("slice"),p=l("species"),d=Array,f=Math.max;e({target:"Array",proto:!0,forced:!c},{slice:function(e,l){var h,c,m,g=a(this),y=s(g),v=n(e,y),T=n(void 0===l?y:l,y);if(t(g)&&(h=g.constructor,i(h)&&(h===d||t(h.prototype))?h=void 0:r(h)&&(null===(h=h[p])&&(h=void 0)),h===d||void 0===h))return u(g,v,T);for(c=new(void 0===h?d:h)(f(T-v,0)),m=0;v{"use strict";var e=He(),t=Rs().some;e({target:"Array",proto:!0,forced:!Ru()("some")},{some:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),qw=z(((e,t)=>{var i=hv(),r=Math.floor,n=function(e,t){var o=e.length,l=r(o/2);return o<8?s(e,t):a(e,n(i(e,0,l),t),n(i(e,l),t),t)},s=function(e,t){for(var i,r,n=e.length,s=1;s0;)e[r]=e[--r];r!==s++&&(e[r]=i)}return e},a=function(e,t,i,r){for(var n=t.length,s=i.length,a=0,o=0;a{var i=bu().match(/firefox\/(\d+)/i);t.exports=!!i&&+i[1]})),kN=z(((e,t)=>{var i=bu();t.exports=/MSIE|Trident/.test(i)})),Yw=z(((e,t)=>{var i=bu().match(/AppleWebKit\/(\d+)\./);t.exports=!!i&&+i[1]})),NX=z((()=>{"use strict";var e=He(),t=Bt(),i=ms(),r=Hi(),n=cn(),s=_1(),a=mi(),o=Mt(),l=qw(),h=Ru(),u=BN(),c=kN(),p=xu(),d=Yw(),f=[],m=t(f.sort),g=t(f.push),y=o((function(){f.sort(void 0)})),v=o((function(){f.sort(null)})),T=h("sort"),x=!o((function(){if(p)return p<70;if(!(u&&u>3)){if(c)return!0;if(d)return d<603;var e,t,i,r,n="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(r=0;r<47;r++)f.push({k:t+r,v:i})}for(f.sort((function(e,t){return t.v-e.v})),r=0;ra(i)?1:-1}}(e)),o=n(u),h=0;h{"use strict";var i=In(),r=ji(),n=fi(),s=Ar(),a=n("species");t.exports=function(e){var t=i(e),n=r.f;s&&t&&!t[a]&&n(t,a,{configurable:!0,get:function(){return this}})}})),HX=z((()=>{Hm()("Array")})),UX=z((()=>{"use strict";var e=He(),t=Hi(),i=_u(),r=gs(),n=cn(),s=Ww(),a=yv(),o=pv(),l=Su(),h=_1(),u=Tv()("splice"),c=Math.max,p=Math.min;e({target:"Array",proto:!0,forced:!u},{splice:function(e,u){var d,f,m,g,y,v,T=t(this),x=n(T),b=i(e,x),_=arguments.length;for(0===_?d=f=0:1===_?(d=0,f=x-b):(d=_-2,f=p(c(r(u),0),x-b)),a(x+d-f),m=o(T,f),g=0;gx-f+d;g--)h(T,g-1)}else if(d>f)for(g=x-f;g>b;g--)v=g+d-1,(y=g+f-1)in T?T[v]=T[y]:h(T,v);for(g=0;g{fl()("flat")})),kX=z((()=>{fl()("flatMap")})),GX=z((()=>{"use strict";var e=He(),t=Hi(),i=cn(),r=Ww(),n=_1(),s=yv(),a=1!==[].unshift(0),o=!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(e){return e instanceof TypeError}}();e({target:"Array",proto:!0,arity:1,forced:a||o},{unshift:function(e){var a=t(this),o=i(a),l=arguments.length;if(l){s(o+l);for(var h=o;h--;){var u=h+l;h in a?a[u]=a[h]:n(a,u)}for(var c=0;c{t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView})),Ev=z(((e,t)=>{var i=Cn();t.exports=function(e,t,r){for(var n in t)i(e,n,t[n],r);return e}})),yc=z(((e,t)=>{var i=Do(),r=TypeError;t.exports=function(e,t){if(i(t,e))return e;throw r("Incorrect invocation")}})),zN=z(((e,t)=>{var i=gs(),r=qa(),n=RangeError;t.exports=function(e){if(void 0===e)return 0;var t=i(e),s=r(t);if(t!==s)throw n("Wrong length or index");return s}})),YX=z(((e,t)=>{var i=Array,r=Math.abs,n=Math.pow,s=Math.floor,a=Math.log,o=Math.LN2;t.exports={pack:function(e,t,l){var h,u,c,p=i(l),d=8*l-t-1,f=(1<>1,g=23===t?n(2,-24)-n(2,-77):0,y=e<0||0===e&&1/e<0?1:0,v=0;for((e=r(e))!=e||e===1/0?(u=e!=e?1:0,h=f):(h=s(a(e)/o),e*(c=n(2,-h))<1&&(h--,c*=2),(e+=h+m>=1?g/c:g*n(2,1-m))*c>=2&&(h++,c/=2),h+m>=f?(u=0,h=f):h+m>=1?(u=(e*c-1)*n(2,t),h+=m):(u=e*n(2,m-1)*n(2,t),h=0));t>=8;)p[v++]=255&u,u/=256,t-=8;for(h=h<0;)p[v++]=255&h,h/=256,d-=8;return p[--v]|=128*y,p},unpack:function(e,t){var i,r=e.length,s=8*r-t-1,a=(1<>1,l=s-7,h=r-1,u=e[h--],c=127&u;for(u>>=7;l>0;)c=256*c+e[h--],l-=8;for(i=c&(1<<-l)-1,c>>=-l,l+=t;l>0;)i=256*i+e[h--],l-=8;if(0===c)c=1-o;else{if(c===a)return i?NaN:u?-1/0:1/0;i+=n(2,t),c-=o}return(u?-1:1)*i*n(2,c-t)}}})),P1=z(((e,t)=>{"use strict";var i,r,n,s,a,o,l=rr(),h=Bt(),u=Ar(),c=Xw(),p=Cm(),d=ya(),f=Ev(),m=Mt(),g=yc(),y=gs(),v=qa(),T=zN(),x=YX(),b=Ao(),_=gc(),E=qh().f,w=ji().f,S=Bw(),I=hv(),M=Xa(),A=us(),D=p.PROPER,O=p.CONFIGURABLE,R=A.get,C=A.set,N="ArrayBuffer",P="DataView",L="prototype",F="Wrong index",U=l[N],k=U,B=k&&k[L],H=l[P],G=H&&H[L],z=Object.prototype,V=l.Array,j=l.RangeError,W=h(S),Y=h([].reverse),X=x.pack,q=x.unpack,Z=function(e){return[255&e]},K=function(e){return[255&e,e>>8&255]},J=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},$=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Q=function(e){return X(e,23,4)},ee=function(e){return X(e,52,8)},te=function(e,t){w(e[L],t,{get:function(){return R(this)[t]}})},ie=function(e,t,i,r){var n=T(i),s=R(e);if(n+t>s.byteLength)throw j(F);var a=R(s.buffer).bytes,o=n+s.byteOffset,l=I(a,o,o+t);return r?l:Y(l)},re=function(e,t,i,r,n,s){var a=T(i),o=R(e);if(a+t>o.byteLength)throw j(F);for(var l=R(o.buffer).bytes,h=a+o.byteOffset,u=r(+n),c=0;cn;)(s=r[n++])in k||d(k,s,U[s]);B.constructor=k}_&&b(G)!==z&&_(G,z),a=new H(new k(2)),o=h(G.setInt8),a.setInt8(0,2147483648),a.setInt8(1,2147483649),(a.getInt8(0)||!a.getInt8(1))&&f(G,{setInt8:function(e,t){o(this,e,t<<24>>24)},setUint8:function(e,t){o(this,e,t<<24>>24)}},{unsafe:!0})}else B=(k=function(e){g(this,B);var t=T(e);C(this,{bytes:W(V(t),0),byteLength:t}),u||(this.byteLength=t)})[L],G=(H=function(e,t,i){g(this,G),g(e,B);var r=R(e).byteLength,n=y(t);if(n<0||n>r)throw j("Wrong offset");if(n+(i=void 0===i?r-n:v(i))>r)throw j("Wrong length");C(this,{buffer:e,byteLength:i,byteOffset:n}),u||(this.buffer=e,this.byteLength=i,this.byteOffset=n)})[L],u&&(te(k,"byteLength"),te(H,"buffer"),te(H,"byteLength"),te(H,"byteOffset")),f(G,{getInt8:function(e){return ie(this,1,e)[0]<<24>>24},getUint8:function(e){return ie(this,1,e)[0]},getInt16:function(e){var t=ie(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=ie(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return $(ie(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return $(ie(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return q(ie(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return q(ie(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){re(this,1,e,Z,t)},setUint8:function(e,t){re(this,1,e,Z,t)},setInt16:function(e,t){re(this,2,e,K,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){re(this,2,e,K,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){re(this,4,e,J,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){re(this,4,e,J,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){re(this,4,e,Q,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){re(this,8,e,ee,t,arguments.length>2?arguments[2]:void 0)}});M(k,N),M(H,P),t.exports={ArrayBuffer:k,DataView:H}})),f$=z((()=>{"use strict";var e=He(),t=rr(),i=P1(),r=Hm(),n="ArrayBuffer",s=i[n];e({global:!0,constructor:!0,forced:t[n]!==s},{ArrayBuffer:s}),r(n)})),Si=z(((e,t)=>{"use strict";var i,r,n,s=Xw(),a=Ar(),o=rr(),l=Ei(),h=ai(),u=_i(),c=mc(),p=Cd(),d=ya(),f=Cn(),m=ji().f,g=Do(),y=Ao(),v=gc(),T=fi(),x=Mm(),b=us(),_=b.enforce,E=b.get,w=o.Int8Array,S=w&&w.prototype,I=o.Uint8ClampedArray,M=I&&I.prototype,A=w&&y(w),D=S&&y(S),O=Object.prototype,R=o.TypeError,C=T("toStringTag"),N=x("TYPED_ARRAY_TAG"),P="TypedArrayConstructor",L=s&&!!v&&"Opera"!==c(o.opera),F=!1,U={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},k={BigInt64Array:8,BigUint64Array:8},B=function(e){var t=y(e);if(h(t)){var i=E(t);return i&&u(i,P)?i[P]:B(t)}},H=function(e){if(!h(e))return!1;var t=c(e);return u(U,t)||u(k,t)};for(i in U)(n=(r=o[i])&&r.prototype)?_(n)[P]=r:L=!1;for(i in k)(n=(r=o[i])&&r.prototype)&&(_(n)[P]=r);if((!L||!l(A)||A===Function.prototype)&&(A=function(){throw R("Incorrect invocation")},L))for(i in U)o[i]&&v(o[i],A);if((!L||!D||D===O)&&(D=A.prototype,L))for(i in U)o[i]&&v(o[i].prototype,D);if(L&&y(M)!==D&&v(M,D),a&&!u(D,C))for(i in F=!0,m(D,C,{get:function(){return h(this)?this[N]:void 0}}),U)o[i]&&d(o[i],N,i);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:L,TYPED_ARRAY_TAG:F&&N,aTypedArray:function(e){if(H(e))return e;throw R("Target is not a typed array")},aTypedArrayConstructor:function(e){if(l(e)&&(!v||g(A,e)))return e;throw R(p(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,i,r){if(a){if(i)for(var n in U){var s=o[n];if(s&&u(s.prototype,e))try{delete s.prototype[e]}catch(i){try{s.prototype[e]=t}catch(e){}}}(!D[e]||i)&&f(D,e,i?t:L&&S[e]||t,r)}},exportTypedArrayStaticMethod:function(e,t,i){var r,n;if(a){if(v){if(i)for(r in U)if((n=o[r])&&u(n,e))try{delete n[e]}catch(e){}if(A[e]&&!i)return;try{return f(A,e,i?t:L&&A[e]||t)}catch(e){}}for(r in U)(n=o[r])&&(!n[e]||i)&&f(n,e,t)}},getTypedArrayConstructor:B,isView:function(e){if(!h(e))return!1;var t=c(e);return"DataView"===t||u(U,t)||u(k,t)},isTypedArray:H,TypedArray:A,TypedArrayPrototype:D}})),w$=z((()=>{var e=He(),t=Si();e({target:"ArrayBuffer",stat:!0,forced:!t.NATIVE_ARRAY_BUFFER_VIEWS},{isView:t.isView})})),aR=z(((e,t)=>{var i=Om(),r=Cd(),n=TypeError;t.exports=function(e){if(i(e))return e;throw n(r(e)+" is not a constructor")}})),Bm=z(((e,t)=>{var i=qr(),r=aR(),n=ga(),s=fi()("species");t.exports=function(e,t){var a,o=i(e).constructor;return void 0===o||n(a=i(o)[s])?t:r(a)}})),L$=z((()=>{"use strict";var e=He(),t=Yh(),i=Mt(),r=P1(),n=qr(),s=_u(),a=qa(),o=Bm(),l=r.ArrayBuffer,h=r.DataView,u=h.prototype,c=t(l.prototype.slice),p=t(u.getUint8),d=t(u.setUint8);e({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:i((function(){return!new l(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(c&&void 0===t)return c(n(this),e);for(var i=n(this).byteLength,r=s(e,i),u=s(void 0===t?i:t,i),f=new(o(this,l))(a(u-r)),m=new h(this),g=new h(f),y=0;r{var e=He(),t=P1();e({global:!0,constructor:!0,forced:!Xw()},{DataView:t.DataView})})),H$=z((()=>{F$()})),U$=z((()=>{"use strict";var e=He(),t=Bt(),i=Mt()((function(){return 120!==new Date(16e11).getYear()})),r=t(Date.prototype.getFullYear);e({target:"Date",proto:!0,forced:i},{getYear:function(){return r(this)-1900}})})),k$=z((()=>{var e=He(),t=Bt(),i=Date,r=t(i.prototype.getTime);e({target:"Date",stat:!0},{now:function(){return r(new i)}})})),z$=z((()=>{"use strict";var e=He(),t=Bt(),i=gs(),r=Date.prototype,n=t(r.getTime),s=t(r.setFullYear);e({target:"Date",proto:!0},{setYear:function(e){n(this);var t=i(e);return s(this,0<=t&&t<=99?t+1900:t)}})})),j$=z((()=>{He()({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})})),N1=z(((e,t)=>{"use strict";var i=gs(),r=mi(),n=cs(),s=RangeError;t.exports=function(e){var t=r(n(this)),a="",o=i(e);if(o<0||o==1/0)throw s("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(t+=t))1&o&&(a+=t);return a}})),oR=z(((e,t)=>{var i=Bt(),r=qa(),n=mi(),s=N1(),a=cs(),o=i(s),l=i("".slice),h=Math.ceil,u=function(e){return function(t,i,s){var u,c,p=n(a(t)),d=r(i),f=p.length,m=void 0===s?" ":n(s);return d<=f||""==m?p:((c=o(m,h((u=d-f)/m.length))).length>u&&(c=l(c,0,u)),e?p+c:c+p)}};t.exports={start:u(!1),end:u(!0)}})),J$=z(((e,t)=>{"use strict";var i=Bt(),r=Mt(),n=oR().start,s=RangeError,a=isFinite,o=Math.abs,l=Date.prototype,h=l.toISOString,u=i(l.getTime),c=i(l.getUTCDate),p=i(l.getUTCFullYear),d=i(l.getUTCHours),f=i(l.getUTCMilliseconds),m=i(l.getUTCMinutes),g=i(l.getUTCMonth),y=i(l.getUTCSeconds);t.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=h.call(new Date(-50000000000001))}))||!r((function(){h.call(new Date(NaN))}))?function(){if(!a(u(this)))throw s("Invalid time value");var e=this,t=p(e),i=f(e),r=t<0?"-":t>9999?"+":"";return r+n(o(t),r?6:4,0)+"-"+n(g(e)+1,2,0)+"-"+n(c(e),2,0)+"T"+n(d(e),2,0)+":"+n(m(e),2,0)+":"+n(y(e),2,0)+"."+n(i,3,0)+"Z"}:h})),eK=z((()=>{var e=He(),t=J$();e({target:"Date",proto:!0,forced:Date.prototype.toISOString!==t},{toISOString:t})})),tK=z((()=>{"use strict";var e=He(),t=Mt(),i=Hi(),r=o1();e({target:"Date",proto:!0,arity:1,forced:t((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),n=r(t,"number");return"number"!=typeof n||isFinite(n)?t.toISOString():null}})})),iK=z(((e,t)=>{"use strict";var i=qr(),r=m2(),n=TypeError;t.exports=function(e){if(i(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw n("Incorrect hint");return r(this,e)}})),aK=z((()=>{var e=_i(),t=Cn(),i=iK(),r=fi()("toPrimitive"),n=Date.prototype;e(n,r)||t(n,r,i)})),uK=z((()=>{var e=Bt(),t=Cn(),i=Date.prototype,r="Invalid Date",n="toString",s=e(i[n]),a=e(i.getTime);String(new Date(NaN))!=r&&t(i,n,(function(){var e=a(this);return e==e?s(this):r}))})),pK=z((()=>{"use strict";var e=He(),t=Bt(),i=mi(),r=t("".charAt),n=t("".charCodeAt),s=t(/./.exec),a=t(1..toString),o=t("".toUpperCase),l=/[\w*+\-./@]/,h=function(e,t){for(var i=a(e,16);i.length{"use strict";var i=Bt(),r=ms(),n=ai(),s=_i(),a=Pd(),o=sv(),l=Function,h=i([].concat),u=i([].join),c={},p=function(e,t,i){if(!s(c,t)){for(var r=[],n=0;n{var e=He(),t=hL();e({target:"Function",proto:!0,forced:Function.bind!==t},{bind:t})})),bK=z((()=>{"use strict";var e=Ei(),t=ai(),i=ji(),r=Ao(),n=fi(),s=dw(),a=n("hasInstance"),o=Function.prototype;a in o||i.f(o,a,{value:s((function(i){if(!e(this)||!t(i))return!1;var n=this.prototype;if(!t(n))return i instanceof this;for(;i=r(i);)if(n===i)return!0;return!1}),a)})})),SK=z((()=>{var e=Ar(),t=Cm().EXISTS,i=Bt(),r=ji().f,n=Function.prototype,s=i(n.toString),a=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,o=i(a.exec);e&&!t&&r(n,"name",{configurable:!0,get:function(){try{return o(a,s(this))[1]}catch(e){return""}}})})),wK=z((()=>{var e=He(),t=rr();e({global:!0,forced:t.globalThis!==t},{globalThis:t})})),RK=z((()=>{var e=rr();Xa()(e.JSON,"JSON",!0)})),lR=z(((e,t)=>{var i=Mt();t.exports=i((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))})),uR=z(((e,t)=>{var i=Mt(),r=ai(),n=ma(),s=lR(),a=Object.isExtensible,o=i((function(){a(1)}));t.exports=o||s?function(e){return!(!r(e)||s&&"ArrayBuffer"==n(e))&&(!a||a(e))}:a})),Gm=z(((e,t)=>{var i=Mt();t.exports=!i((function(){return Object.isExtensible(Object.preventExtensions({}))}))})),Gd=z(((e,t)=>{var i=He(),r=Bt(),n=ov(),s=ai(),a=_i(),o=ji().f,l=qh(),h=bw(),u=uR(),c=Mm(),p=Gm(),d=!1,f=c("meta"),m=0,g=function(e){o(e,f,{value:{objectID:"O"+m++,weakData:{}}})},y=t.exports={enable:function(){y.enable=function(){},d=!0;var e=l.f,t=r([].splice),n={};n[f]=1,e(n).length&&(l.f=function(i){for(var r=e(i),n=0,s=r.length;n{"use strict";var i=He(),r=rr(),n=Bt(),s=cv(),a=Cn(),o=Gd(),l=vc(),h=yc(),u=Ei(),c=ga(),p=ai(),d=Mt(),f=w1(),m=Xa(),g=Lm();t.exports=function(e,t,y){var v=-1!==e.indexOf("Map"),T=-1!==e.indexOf("Weak"),x=v?"set":"add",b=r[e],_=b&&b.prototype,E=b,w={},S=function(e){var t=n(_[e]);a(_,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(T&&!p(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return T&&!p(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(T&&!p(e))&&t(this,0===e?0:e)}:function(e,i){return t(this,0===e?0:e,i),this})};if(s(e,!u(b)||!(T||_.forEach&&!d((function(){(new b).entries().next()})))))E=y.getConstructor(t,e,v,x),o.enable();else if(s(e,!0)){var I=new E,M=I[x](T?{}:-0,1)!=I,A=d((function(){I.has(1)})),D=f((function(e){new b(e)})),O=!T&&d((function(){for(var e=new b,t=5;t--;)e[x](t,t);return!e.has(-0)}));D||((E=t((function(e,t){h(e,_);var i=g(new b,e,E);return c(t)||l(t,i[x],{that:i,AS_ENTRIES:v}),i}))).prototype=_,_.constructor=E),(A||O)&&(S("delete"),S("has"),v&&S("get")),(O||M)&&S(x),T&&_.clear&&delete _.clear}return w[e]=E,i({global:!0,constructor:!0,forced:E!=b},w),m(E,e),T||y.setStrong(E,e,v),E}})),EL=z(((e,t)=>{"use strict";var i=ji().f,r=Ya(),n=Ev(),s=pl(),a=yc(),o=ga(),l=vc(),h=zw(),u=D1(),c=Hm(),p=Ar(),d=Gd().fastKey,f=us(),m=f.set,g=f.getterFor;t.exports={getConstructor:function(e,t,h,u){var c=e((function(e,i){a(e,f),m(e,{type:t,index:r(null),first:void 0,last:void 0,size:0}),p||(e.size=0),o(i)||l(i,e[u],{that:e,AS_ENTRIES:h})})),f=c.prototype,y=g(t),v=function(e,t,i){var r,n,s=y(e),a=T(e,t);return a?a.value=i:(s.last=a={index:n=d(t,!0),key:t,value:i,previous:r=s.last,next:void 0,removed:!1},s.first||(s.first=a),r&&(r.next=a),p?s.size++:e.size++,"F"!==n&&(s.index[n]=a)),e},T=function(e,t){var i,r=y(e),n=d(t);if("F"!==n)return r.index[n];for(i=r.first;i;i=i.next)if(i.key==t)return i};return n(f,{clear:function(){for(var e=y(this),t=e.index,i=e.first;i;)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete t[i.index],i=i.next;e.first=e.last=void 0,p?e.size=0:this.size=0},delete:function(e){var t=this,i=y(t),r=T(t,e);if(r){var n=r.next,s=r.previous;delete i.index[r.index],r.removed=!0,s&&(s.next=n),n&&(n.previous=s),i.first==r&&(i.first=n),i.last==r&&(i.last=s),p?i.size--:t.size--}return!!r},forEach:function(e){for(var t,i=y(this),r=s(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:i.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!T(this,e)}}),n(f,h?{get:function(e){var t=T(this,e);return t&&t.value},set:function(e,t){return v(this,0===e?0:e,t)}}:{add:function(e){return v(this,e=0===e?0:e,e)}}),p&&i(f,"size",{get:function(){return y(this).size}}),c},setStrong:function(e,t,i){var r=t+" Iterator",n=g(t),s=g(r);h(e,t,(function(e,t){m(this,{type:r,target:e,state:n(e),kind:t,last:void 0})}),(function(){for(var e=s(this),t=e.kind,i=e.last;i&&i.removed;)i=i.previous;return e.target&&(e.last=i=i?i.next:e.state.first)?u("keys"==t?i.key:"values"==t?i.value:[i.key,i.value],!1):(e.target=void 0,u(void 0,!0))}),i?"entries":"values",!i,!0),c(t)}}})),VK=z((()=>{"use strict";F1()("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),EL())})),zK=z((()=>{VK()})),bL=z(((e,t)=>{var i=Math.log;t.exports=Math.log1p||function(e){var t=+e;return t>-1e-8&&t<1e-8?t-t*t/2:i(1+t)}})),qK=z((()=>{var e=He(),t=bL(),i=Math.acosh,r=Math.log,n=Math.sqrt,s=Math.LN2;e({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(e){var i=+e;return i<1?NaN:i>94906265.62425156?r(i)+s:t(i-1+n(i-1)*n(i+1))}})})),$K=z((()=>{var e=He(),t=Math.asinh,i=Math.log,r=Math.sqrt;e({target:"Math",stat:!0,forced:!(t&&1/t(0)>0)},{asinh:function e(t){var n=+t;return isFinite(n)&&0!=n?n<0?-e(-n):i(n+r(n*n+1)):n}})})),ZK=z((()=>{var e=He(),t=Math.atanh,i=Math.log;e({target:"Math",stat:!0,forced:!(t&&1/t(-0)<0)},{atanh:function(e){var t=+e;return 0==t?t:i((1+t)/(1-t))/2}})})),pR=z(((e,t)=>{t.exports=Math.sign||function(e){var t=+e;return 0==t||t!=t?t:t<0?-1:1}})),QK=z((()=>{var e=He(),t=pR(),i=Math.abs,r=Math.pow;e({target:"Math",stat:!0},{cbrt:function(e){var n=+e;return t(n)*r(i(n),1/3)}})})),eZ=z((()=>{var e=He(),t=Math.floor,i=Math.log,r=Math.LOG2E;e({target:"Math",stat:!0},{clz32:function(e){var n=e>>>0;return n?31-t(i(n+.5)*r):32}})})),B1=z(((e,t)=>{var i=Math.expm1,r=Math.exp;t.exports=!i||i(10)>22025.465794806718||i(10)<22025.465794806718||-2e-17!=i(-2e-17)?function(e){var t=+e;return 0==t?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:i})),iZ=z((()=>{var e=He(),t=B1(),i=Math.cosh,r=Math.abs,n=Math.E;e({target:"Math",stat:!0,forced:!i||i(710)===1/0},{cosh:function(e){var i=t(r(e)-1)+1;return(i+1/(i*n*n))*(n/2)}})})),sZ=z((()=>{var e=He(),t=B1();e({target:"Math",stat:!0,forced:t!=Math.expm1},{expm1:t})})),oZ=z(((e,t)=>{var i=pR(),r=Math.abs,n=Math.pow,s=n(2,-52),a=n(2,-23),o=n(2,127)*(2-a),l=n(2,-126);t.exports=Math.fround||function(e){var t,n,h=+e,u=r(h),c=i(h);return uo||n!=n?c*(1/0):c*n}})),lZ=z((()=>{He()({target:"Math",stat:!0},{fround:oZ()})})),uZ=z((()=>{var e=He(),t=Math.hypot,i=Math.abs,r=Math.sqrt;e({target:"Math",stat:!0,arity:2,forced:!!t&&t(1/0,NaN)!==1/0},{hypot:function(e,t){for(var n,s,a=0,o=0,l=arguments.length,h=0;o0?a+=(s=n/h)*s:a+=n;return h===1/0?1/0:h*r(a)}})})),pZ=z((()=>{var e=He(),t=Mt(),i=Math.imul;e({target:"Math",stat:!0,forced:t((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var i=65535,r=+e,n=+t,s=i&r,a=i&n;return 0|s*a+((i&r>>>16)*a+s*(i&n>>>16)<<16>>>0)}})})),wL=z(((e,t)=>{var i=Math.log,r=Math.LOG10E;t.exports=Math.log10||function(e){return i(e)*r}})),fZ=z((()=>{He()({target:"Math",stat:!0},{log10:wL()})})),mZ=z((()=>{He()({target:"Math",stat:!0},{log1p:bL()})})),gZ=z((()=>{var e=He(),t=Math.log,i=Math.LN2;e({target:"Math",stat:!0},{log2:function(e){return t(e)/i}})})),vZ=z((()=>{He()({target:"Math",stat:!0},{sign:pR()})})),EZ=z((()=>{var e=He(),t=Mt(),i=B1(),r=Math.abs,n=Math.exp,s=Math.E;e({target:"Math",stat:!0,forced:t((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){var t=+e;return r(t)<1?(i(t)-i(-t))/2:(n(t-1)-n(-t-1))*(s/2)}})})),IZ=z((()=>{var e=He(),t=B1(),i=Math.exp;e({target:"Math",stat:!0},{tanh:function(e){var r=+e,n=t(r),s=t(-r);return n==1/0?1:s==1/0?-1:(n-s)/(i(r)+i(-r))}})})),_Z=z((()=>{Xa()(Math,"Math",!0)})),SZ=z((()=>{He()({target:"Math",stat:!0},{trunc:A2()})})),k1=z(((e,t)=>{var i=Bt();t.exports=i(1..valueOf)})),G1=z(((e,t)=>{t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"})),Vm=z(((e,t)=>{var i=Bt(),r=cs(),n=mi(),s=G1(),a=i("".replace),o="["+s+"]",l=RegExp("^"+o+o+"*"),h=RegExp(o+o+"*$"),u=function(e){return function(t){var i=n(r(t));return 1&e&&(i=a(i,l,"")),2&e&&(i=a(i,h,"")),i}};t.exports={start:u(1),end:u(2),trim:u(3)}})),FZ=z((()=>{"use strict";var e=He(),t=Gn(),i=Ar(),r=rr(),n=xw(),s=Bt(),a=cv(),o=_i(),l=Lm(),h=Do(),u=Dd(),c=o1(),p=Mt(),d=qh().f,f=Hs().f,m=ji().f,g=k1(),y=Vm().trim,v="Number",T=r[v],x=n[v],b=T.prototype,_=r.TypeError,E=s("".slice),w=s("".charCodeAt),S=function(e){var t=c(e,"number");return"bigint"==typeof t?t:I(t)},I=function(e){var t,i,r,n,s,a,o,l,h=c(e,"number");if(u(h))throw _("Cannot convert a Symbol value to a number");if("string"==typeof h&&h.length>2)if(h=y(h),43===(t=w(h,0))||45===t){if(88===(i=w(h,2))||120===i)return NaN}else if(48===t){switch(w(h,1)){case 66:case 98:r=2,n=49;break;case 79:case 111:r=8,n=55;break;default:return+h}for(a=(s=E(h,2)).length,o=0;on)return NaN;return parseInt(s,r)}return+h},M=a(v,!T(" 0o1")||!T("0b1")||T("+0x1")),A=function(e){return h(b,e)&&p((function(){g(e)}))},D=function(e){var t=arguments.length<1?0:T(S(e));return A(this)?l(Object(t),this,D):t};D.prototype=b,M&&!t&&(b.constructor=D),e({global:!0,constructor:!0,wrap:!0,forced:M},{Number:D});var O=function(e,t){for(var r,n=i?d(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),s=0;n.length>s;s++)o(t,r=n[s])&&!o(e,r)&&m(e,r,f(t,r))};t&&x&&O(n[v],x),(M||t)&&O(n[v],T)})),HZ=z((()=>{He()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})})),BZ=z(((e,t)=>{var i=rr().isFinite;t.exports=Number.isFinite||function(e){return"number"==typeof e&&i(e)}})),kZ=z((()=>{He()({target:"Number",stat:!0},{isFinite:BZ()})})),yR=z(((e,t)=>{var i=ai(),r=Math.floor;t.exports=Number.isInteger||function(e){return!i(e)&&isFinite(e)&&r(e)===e}})),VZ=z((()=>{He()({target:"Number",stat:!0},{isInteger:yR()})})),zZ=z((()=>{He()({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})})),jZ=z((()=>{var e=He(),t=yR(),i=Math.abs;e({target:"Number",stat:!0},{isSafeInteger:function(e){return t(e)&&i(e)<=9007199254740991}})})),WZ=z((()=>{He()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})})),qZ=z((()=>{He()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})})),OL=z(((e,t)=>{var i=rr(),r=Mt(),n=Bt(),s=mi(),a=Vm().trim,o=G1(),l=n("".charAt),h=i.parseFloat,u=i.Symbol,c=u&&u.iterator,p=1/h(o+"-0")!=-1/0||c&&!r((function(){h(Object(c))}));t.exports=p?function(e){var t=a(s(e)),i=h(t);return 0===i&&"-"==l(t,0)?-0:i}:h})),JZ=z((()=>{var e=He(),t=OL();e({target:"Number",stat:!0,forced:Number.parseFloat!=t},{parseFloat:t})})),PL=z(((e,t)=>{var i=rr(),r=Mt(),n=Bt(),s=mi(),a=Vm().trim,o=G1(),l=i.parseInt,h=i.Symbol,u=h&&h.iterator,c=/^[+-]?0x/i,p=n(c.exec),d=8!==l(o+"08")||22!==l(o+"0x16")||u&&!r((function(){l(Object(u))}));t.exports=d?function(e,t){var i=a(s(e));return l(i,t>>>0||(p(c,i)?16:10))}:l})),aJ=z((()=>{var e=He(),t=PL();e({target:"Number",stat:!0,forced:Number.parseInt!=t},{parseInt:t})})),hJ=z((()=>{"use strict";var e=He(),t=Bt(),i=gs(),r=k1(),n=N1(),s=wL(),a=Mt(),o=RangeError,l=String,h=isFinite,u=Math.abs,c=Math.floor,p=Math.pow,d=Math.round,f=t(1..toExponential),m=t(n),g=t("".slice),y="-6.9000e-11"===f(-69e-12,4)&&"1.25e+0"===f(1.255,2)&&"1.235e+4"===f(12345,3)&&"3e+1"===f(25,0),v=a((function(){f(1,1/0)}))&&a((function(){f(1,-1/0)})),T=!a((function(){f(1/0,1/0)}))&&!a((function(){f(NaN,1/0)}));e({target:"Number",proto:!0,forced:!y||!v||!T},{toExponential:function(e){var t=r(this);if(void 0===e)return f(t);var n=i(e);if(!h(t))return String(t);if(n<0||n>20)throw o("Incorrect fraction digits");if(y)return f(t,n);var a="",v="",T=0,x="",b="";if(t<0&&(a="-",t=-t),0===t)T=0,v=m("0",n+1);else{var _=s(t);T=c(_);var E=0,w=p(10,T-n);2*t>=(2*(E=d(t/w))+1)*w&&(E+=1),E>=p(10,n+1)&&(E/=10,T+=1),v=l(E)}return 0!==n&&(v=g(v,0,1)+"."+g(v,1)),0===T?(x="+",b="0"):(x=T>0?"+":"-",b=l(u(T))),a+(v+="e"+x+b)}})})),vJ=z((()=>{"use strict";var e=He(),t=Bt(),i=gs(),r=k1(),n=N1(),s=Mt(),a=RangeError,o=String,l=Math.floor,h=t(n),u=t("".slice),c=t(1..toFixed),p=function(e,t,i){return 0===t?i:t%2==1?p(e,t-1,i*e):p(e*e,t/2,i)},d=function(e,t,i){for(var r=-1,n=i;++r<6;)n+=t*e[r],e[r]=n%1e7,n=l(n/1e7)},f=function(e,t){for(var i=6,r=0;--i>=0;)r+=e[i],e[i]=l(r/t),r=r%t*1e7},m=function(e){for(var t=6,i="";--t>=0;)if(""!==i||0===t||0!==e[t]){var r=o(e[t]);i=""===i?r:i+h("0",7-r.length)+r}return i};e({target:"Number",proto:!0,forced:s((function(){return"0.000"!==c(8e-5,3)||"1"!==c(.9,0)||"1.25"!==c(1.255,2)||"1000000000000000128"!==c(0xde0b6b3a7640080,0)}))||!s((function(){c({})}))},{toFixed:function(e){var t,n,s,l,c=r(this),g=i(e),y=[0,0,0,0,0,0],v="",T="0";if(g<0||g>20)throw a("Incorrect fraction digits");if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return o(c);if(c<0&&(v="-",c=-c),c>1e-21)if(t=function(e){for(var t=0,i=e;i>=4096;)t+=12,i/=4096;for(;i>=2;)t+=1,i/=2;return t}(c*p(2,69,1))-69,n=t<0?c*p(2,-t,1):c/p(2,t,1),n*=4503599627370496,(t=52-t)>0){for(d(y,0,n),s=g;s>=7;)d(y,1e7,0),s-=7;for(d(y,p(10,s,1),0),s=t-1;s>=23;)f(y,1<<23),s-=23;f(y,1<0?T=v+((l=T.length)<=g?"0."+h("0",g-l)+T:u(T,0,l-g)+"."+u(T,l-g)):T=v+T,T}})})),EJ=z((()=>{"use strict";var e=He(),t=Bt(),i=Mt(),r=k1(),n=t(1..toPrecision);e({target:"Number",proto:!0,forced:i((function(){return"1"!==n(1,void 0)}))||!i((function(){n({})}))},{toPrecision:function(e){return void 0===e?n(r(this)):n(r(this),e)}})})),BL=z(((e,t)=>{"use strict";var i=Ar(),r=Bt(),n=si(),s=Mt(),a=uv(),o=h1(),l=a1(),h=Hi(),u=Sm(),c=Object.assign,p=Object.defineProperty,d=r([].concat);t.exports=!c||s((function(){if(i&&1!==c({b:1},c(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach((function(e){t[e]=e})),7!=c({},e)[r]||a(c({},t)).join("")!=n}))?function(e,t){for(var r=h(e),s=arguments.length,c=1,p=o.f,f=l.f;s>c;)for(var m,g=u(arguments[c++]),y=p?d(a(g),p(g)):a(g),v=y.length,T=0;v>T;)m=y[T++],(!i||n(f,g,m))&&(r[m]=g[m]);return r}:c})),SJ=z((()=>{var e=He(),t=BL();e({target:"Object",stat:!0,arity:2,forced:Object.assign!==t},{assign:t})})),wJ=z((()=>{He()({target:"Object",stat:!0,sham:!Ar()},{create:Ya()})})),W1=z(((e,t)=>{"use strict";var i=Gn(),r=rr(),n=Mt(),s=Yw();t.exports=i||!n((function(){if(!(s&&s<535)){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete r[e]}}))})),DJ=z((()=>{"use strict";var e=He(),t=Ar(),i=W1(),r=ms(),n=Hi(),s=ji();t&&e({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){s.f(n(this),e,{get:r(t),enumerable:!0,configurable:!0})}})})),AJ=z((()=>{var e=He(),t=Ar(),i=yw().f;e({target:"Object",stat:!0,forced:Object.defineProperties!==i,sham:!t},{defineProperties:i})})),PJ=z((()=>{var e=He(),t=Ar(),i=ji().f;e({target:"Object",stat:!0,forced:Object.defineProperty!==i,sham:!t},{defineProperty:i})})),NJ=z((()=>{"use strict";var e=He(),t=Ar(),i=W1(),r=ms(),n=Hi(),s=ji();t&&e({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){s.f(n(this),e,{set:r(t),enumerable:!0,configurable:!0})}})})),kL=z(((e,t)=>{var i=Ar(),r=Bt(),n=uv(),s=va(),a=r(a1().f),o=r([].push),l=function(e){return function(t){for(var r,l=s(t),h=n(l),u=h.length,c=0,p=[];u>c;)r=h[c++],(!i||a(l,r))&&o(p,e?[r,l[r]]:l[r]);return p}};t.exports={entries:l(!0),values:l(!1)}})),UJ=z((()=>{var e=He(),t=kL().entries;e({target:"Object",stat:!0},{entries:function(e){return t(e)}})})),BJ=z((()=>{var e=He(),t=Gm(),i=Mt(),r=ai(),n=Gd().onFreeze,s=Object.freeze;e({target:"Object",stat:!0,forced:i((function(){s(1)})),sham:!t},{freeze:function(e){return s&&r(e)?s(n(e)):e}})})),kJ=z((()=>{var e=He(),t=vc(),i=Su();e({target:"Object",stat:!0},{fromEntries:function(e){var r={};return t(e,(function(e,t){i(r,e,t)}),{AS_ENTRIES:!0}),r}})})),zJ=z((()=>{var e=He(),t=Mt(),i=va(),r=Hs().f,n=Ar(),s=t((function(){r(1)}));e({target:"Object",stat:!0,forced:!n||s,sham:!n},{getOwnPropertyDescriptor:function(e,t){return r(i(e),t)}})})),jJ=z((()=>{var e=He(),t=Ar(),i=mw(),r=va(),n=Hs(),s=Su();e({target:"Object",stat:!0,sham:!t},{getOwnPropertyDescriptors:function(e){for(var t,a,o=r(e),l=n.f,h=i(o),u={},c=0;h.length>c;)void 0!==(a=l(o,t=h[c++]))&&s(u,t,a);return u}})})),WJ=z((()=>{var e=He(),t=Mt(),i=bw().f;e({target:"Object",stat:!0,forced:t((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})})),YJ=z((()=>{var e=He(),t=Mt(),i=Hi(),r=Ao(),n=Pw();e({target:"Object",stat:!0,forced:t((function(){r(1)})),sham:!n},{getPrototypeOf:function(e){return r(i(e))}})})),XJ=z((()=>{He()({target:"Object",stat:!0},{hasOwn:_i()})})),VL=z(((e,t)=>{t.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}})),KJ=z((()=>{He()({target:"Object",stat:!0},{is:VL()})})),JJ=z((()=>{var e=He(),t=uR();e({target:"Object",stat:!0,forced:Object.isExtensible!==t},{isExtensible:t})})),eQ=z((()=>{var e=He(),t=Mt(),i=ai(),r=ma(),n=lR(),s=Object.isFrozen;e({target:"Object",stat:!0,forced:t((function(){s(1)}))||n},{isFrozen:function(e){return!(i(e)&&(!n||"ArrayBuffer"!=r(e)))||!!s&&s(e)}})})),rQ=z((()=>{var e=He(),t=Mt(),i=ai(),r=ma(),n=lR(),s=Object.isSealed;e({target:"Object",stat:!0,forced:t((function(){s(1)}))||n},{isSealed:function(e){return!(i(e)&&(!n||"ArrayBuffer"!=r(e)))||!!s&&s(e)}})})),nQ=z((()=>{var e=He(),t=Hi(),i=uv();e({target:"Object",stat:!0,forced:Mt()((function(){i(1)}))},{keys:function(e){return i(t(e))}})})),sQ=z((()=>{"use strict";var e=He(),t=Ar(),i=W1(),r=Hi(),n=Wh(),s=Ao(),a=Hs().f;t&&e({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,i=r(this),o=n(e);do{if(t=a(i,o))return t.get}while(i=s(i))}})})),aQ=z((()=>{"use strict";var e=He(),t=Ar(),i=W1(),r=Hi(),n=Wh(),s=Ao(),a=Hs().f;t&&e({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,i=r(this),o=n(e);do{if(t=a(i,o))return t.set}while(i=s(i))}})})),oQ=z((()=>{var e=He(),t=ai(),i=Gd().onFreeze,r=Gm(),n=Mt(),s=Object.preventExtensions;e({target:"Object",stat:!0,forced:n((function(){s(1)})),sham:!r},{preventExtensions:function(e){return s&&t(e)?s(i(e)):e}})})),Vd=z(((e,t)=>{var i=dw(),r=ji();t.exports=function(e,t,n){return n.get&&i(n.get,t,{getter:!0}),n.set&&i(n.set,t,{setter:!0}),r.f(e,t,n)}})),mQ=z((()=>{"use strict";var e=Ar(),t=Vd(),i=ai(),r=Hi(),n=cs(),s=Object.getPrototypeOf,a=Object.setPrototypeOf,o=Object.prototype,l="__proto__";if(e&&s&&a&&!(l in o))try{t(o,l,{configurable:!0,get:function(){return s(r(this))},set:function(e){var t=n(this);!i(e)&&null!==e||!i(t)||a(t,e)}})}catch(e){}})),gQ=z((()=>{var e=He(),t=ai(),i=Gd().onFreeze,r=Gm(),n=Mt(),s=Object.seal;e({target:"Object",stat:!0,forced:n((function(){s(1)})),sham:!r},{seal:function(e){return s&&t(e)?s(i(e)):e}})})),vQ=z((()=>{He()({target:"Object",stat:!0},{setPrototypeOf:gc()})})),TQ=z(((e,t)=>{"use strict";var i=gw(),r=mc();t.exports=i?{}.toString:function(){return"[object "+r(this)+"]"}})),EQ=z((()=>{var e=gw(),t=Cn(),i=TQ();e||t(Object.prototype,"toString",i,{unsafe:!0})})),bQ=z((()=>{var e=He(),t=kL().values;e({target:"Object",stat:!0},{values:function(e){return t(e)}})})),IQ=z((()=>{var e=He(),t=OL();e({global:!0,forced:parseFloat!=t},{parseFloat:t})})),SQ=z((()=>{var e=He(),t=PL();e({global:!0,forced:parseInt!=t},{parseInt:t})})),ip=z(((e,t)=>{var i=TypeError;t.exports=function(e,t){if(e{var i=bu();t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(i)})),X1=z(((e,t)=>{var i,r,n,s,a=rr(),o=Co(),l=pl(),h=Ei(),u=_i(),c=Mt(),p=L2(),d=Pd(),f=l1(),m=ip(),g=YL(),y=Mu(),v=a.setImmediate,T=a.clearImmediate,x=a.process,b=a.Dispatch,_=a.Function,E=a.MessageChannel,w=a.String,S=0,I={},M="onreadystatechange";try{i=a.location}catch(e){}var A=function(e){if(u(I,e)){var t=I[e];delete I[e],t()}},D=function(e){return function(){A(e)}},O=function(e){A(e.data)},R=function(e){a.postMessage(w(e),i.protocol+"//"+i.host)};(!v||!T)&&(v=function(e){m(arguments.length,1);var t=h(e)?e:_(e),i=d(arguments,1);return I[++S]=function(){o(t,void 0,i)},r(S),S},T=function(e){delete I[e]},y?r=function(e){x.nextTick(D(e))}:b&&b.now?r=function(e){b.now(D(e))}:E&&!g?(s=(n=new E).port2,n.port1.onmessage=O,r=l(s.postMessage,s)):a.addEventListener&&h(a.postMessage)&&!a.importScripts&&i&&"file:"!==i.protocol&&!c(R)?(r=R,a.addEventListener("message",O,!1)):r=M in f("script")?function(e){p.appendChild(f("script"))[M]=function(){p.removeChild(this),A(e)}}:function(e){setTimeout(D(e),0)}),t.exports={set:v,clear:T}})),HQ=z(((e,t)=>{var i=bu(),r=rr();t.exports=/ipad|iphone|ipod/i.test(i)&&void 0!==r.Pebble})),BQ=z(((e,t)=>{var i=bu();t.exports=/web0s(?!.*chrome)/i.test(i)})),aF=z(((e,t)=>{var i,r,n,s,a,o,l,h,u=rr(),c=pl(),p=Hs().f,d=X1().set,f=YL(),m=HQ(),g=BQ(),y=Mu(),v=u.MutationObserver||u.WebKitMutationObserver,T=u.document,x=u.process,b=u.Promise,_=p(u,"queueMicrotask"),E=_&&_.value;E||(i=function(){var e,t;for(y&&(e=x.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(e){throw r?s():n=void 0,e}}n=void 0,e&&e.enter()},f||y||g||!v||!T?!m&&b&&b.resolve?((l=b.resolve(void 0)).constructor=b,h=c(l.then,l),s=function(){h(i)}):y?s=function(){x.nextTick(i)}:(d=c(d,u),s=function(){d(i)}):(a=!0,o=T.createTextNode(""),new v(i).observe(o,{characterData:!0}),s=function(){o.data=a=!a})),t.exports=E||function(e){var t={fn:e,next:void 0};n&&(n.next=t),r||(r=t,s()),n=t}})),$Q=z(((e,t)=>{var i=rr();t.exports=function(e,t){var r=i.console;r&&r.error&&(1==arguments.length?r.error(e):r.error(e,t))}})),Av=z(((e,t)=>{t.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}})),QQ=z(((e,t)=>{var i=function(){this.head=null,this.tail=null};i.prototype={add:function(e){var t={item:e,next:null};this.head?this.tail.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return this.head=e.next,this.tail===e&&(this.tail=null),e.item}},t.exports=i})),qm=z(((e,t)=>{var i=rr();t.exports=i.Promise})),_R=z(((e,t)=>{t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version})),oF=z(((e,t)=>{var i=_R(),r=Mu();t.exports=!i&&!r&&"object"==typeof window&&"object"==typeof document})),Ov=z(((e,t)=>{var i=rr(),r=qm(),n=Ei(),s=cv(),a=lw(),o=fi(),l=oF(),h=_R(),u=Gn(),c=xu(),p=r&&r.prototype,d=o("species"),f=!1,m=n(i.PromiseRejectionEvent),g=s("Promise",(function(){var e=a(r),t=e!==String(r);if(!t&&66===c||u&&(!p.catch||!p.finally))return!0;if(!c||c<51||!/native code/.test(e)){var i=new r((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};if((i.constructor={})[d]=n,!(f=i.then((function(){}))instanceof n))return!0}return!t&&(l||h)&&!m}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:m,SUBCLASSING:f}})),zd=z(((e,t)=>{"use strict";var i=ms(),r=TypeError,n=function(e){var t,n;this.promise=new e((function(e,i){if(void 0!==t||void 0!==n)throw r("Bad Promise constructor");t=e,n=i})),this.resolve=i(t),this.reject=i(n)};t.exports.f=function(e){return new n(e)}})),wee=z((()=>{"use strict";var e,t,i,r=He(),n=Gn(),s=Mu(),a=rr(),o=si(),l=Cn(),h=gc(),u=Xa(),c=Hm(),p=ms(),d=Ei(),f=ai(),m=yc(),g=Bm(),y=X1().set,v=aF(),T=$Q(),x=Av(),b=QQ(),_=us(),E=qm(),w=Ov(),S=zd(),I="Promise",M=w.CONSTRUCTOR,A=w.REJECTION_EVENT,D=w.SUBCLASSING,O=_.getterFor(I),R=_.set,C=E&&E.prototype,N=E,P=C,L=a.TypeError,F=a.document,U=a.process,k=S.f,B=k,H=!!(F&&F.createEvent&&a.dispatchEvent),G="unhandledrejection",z=function(e){var t;return!(!f(e)||!d(t=e.then))&&t},V=function(e,t){var i,r,n,s=t.value,a=1==t.state,l=a?e.ok:e.fail,h=e.resolve,u=e.reject,c=e.domain;try{l?(a||(2===t.rejection&&q(t),t.rejection=1),!0===l?i=s:(c&&c.enter(),i=l(s),c&&(c.exit(),n=!0)),i===e.promise?u(L("Promise-chain cycle")):(r=z(i))?o(r,i,h,u):h(i)):u(s)}catch(e){c&&!n&&c.exit(),u(e)}},j=function(e,t){e.notified||(e.notified=!0,v((function(){for(var i,r=e.reactions;i=r.get();)V(i,e);e.notified=!1,t&&!e.rejection&&Y(e)})))},W=function(e,t,i){var r,n;H?((r=F.createEvent("Event")).promise=t,r.reason=i,r.initEvent(e,!1,!0),a.dispatchEvent(r)):r={promise:t,reason:i},!A&&(n=a["on"+e])?n(r):e===G&&T("Unhandled promise rejection",i)},Y=function(e){o(y,a,(function(){var t,i=e.facade,r=e.value;if(X(e)&&(t=x((function(){s?U.emit("unhandledRejection",r,i):W(G,i,r)})),e.rejection=s||X(e)?2:1,t.error))throw t.value}))},X=function(e){return 1!==e.rejection&&!e.parent},q=function(e){o(y,a,(function(){var t=e.facade;s?U.emit("rejectionHandled",t):W("rejectionhandled",t,e.value)}))},Z=function(e,t,i){return function(r){e(t,r,i)}},K=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,j(e,!0))},J=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw L("Promise can't be resolved itself");var r=z(t);r?v((function(){var i={done:!1};try{o(r,t,Z(J,i,e),Z(K,i,e))}catch(t){K(i,t,e)}})):(e.value=t,e.state=1,j(e,!1))}catch(t){K({done:!1},t,e)}}};if(M&&(P=(N=function(t){m(this,P),p(t),o(e,this);var i=O(this);try{t(Z(J,i),Z(K,i))}catch(e){K(i,e)}}).prototype,(e=function(e){R(this,{type:I,done:!1,notified:!1,parent:!1,reactions:new b,rejection:!1,state:0,value:void 0})}).prototype=l(P,"then",(function(e,t){var i=O(this),r=k(g(this,N));return i.parent=!0,r.ok=!d(e)||e,r.fail=d(t)&&t,r.domain=s?U.domain:void 0,0==i.state?i.reactions.add(r):v((function(){V(r,i)})),r.promise})),t=function(){var t=new e,i=O(t);this.promise=t,this.resolve=Z(J,i),this.reject=Z(K,i)},S.f=k=function(e){return e===N||undefined===e?new t(e):B(e)},!n&&d(E)&&C!==Object.prototype)){i=C.then,D||l(C,"then",(function(e,t){var r=this;return new N((function(e,t){o(i,r,e,t)})).then(e,t)}),{unsafe:!0});try{delete C.constructor}catch(e){}h&&h(C,P)}r({global:!0,constructor:!0,wrap:!0,forced:M},{Promise:N}),u(N,I,!1,!0),c(I)})),yF=z(((e,t)=>{var i=qm(),r=w1(),n=Ov().CONSTRUCTOR;t.exports=n||!r((function(e){i.all(e).then(void 0,(function(){}))}))})),Mee=z((()=>{"use strict";var e=He(),t=si(),i=ms(),r=zd(),n=Av(),s=vc();e({target:"Promise",stat:!0,forced:yF()},{all:function(e){var a=this,o=r.f(a),l=o.resolve,h=o.reject,u=n((function(){var r=i(a.resolve),n=[],o=0,u=1;s(e,(function(e){var i=o++,s=!1;u++,t(r,a,e).then((function(e){s||(s=!0,n[i]=e,--u||l(n))}),h)})),--u||l(n)}));return u.error&&h(u.value),o.promise}})})),Cee=z((()=>{"use strict";var e,t=He(),i=Gn(),r=Ov().CONSTRUCTOR,n=qm(),s=In(),a=Ei(),o=Cn(),l=n&&n.prototype;t({target:"Promise",proto:!0,forced:r,real:!0},{catch:function(e){return this.then(void 0,e)}}),!i&&a(n)&&(e=s("Promise").prototype.catch,l.catch!==e&&o(l,"catch",e,{unsafe:!0}))})),Aee=z((()=>{"use strict";var e=He(),t=si(),i=ms(),r=zd(),n=Av(),s=vc();e({target:"Promise",stat:!0,forced:yF()},{race:function(e){var a=this,o=r.f(a),l=o.reject,h=n((function(){var r=i(a.resolve);s(e,(function(e){t(r,a,e).then(o.resolve,l)}))}));return h.error&&l(h.value),o.promise}})})),Oee=z((()=>{"use strict";var e=He(),t=si(),i=zd();e({target:"Promise",stat:!0,forced:Ov().CONSTRUCTOR},{reject:function(e){var r=i.f(this);return t(r.reject,void 0,e),r.promise}})})),bF=z(((e,t)=>{var i=qr(),r=ai(),n=zd();t.exports=function(e,t){if(i(e),r(t)&&t.constructor===e)return t;var s=n.f(e);return(0,s.resolve)(t),s.promise}})),Fee=z((()=>{"use strict";var e=He(),t=In(),i=Gn(),r=qm(),n=Ov().CONSTRUCTOR,s=bF(),a=t("Promise"),o=i&&!n;e({target:"Promise",stat:!0,forced:i||n},{resolve:function(e){return s(o&&this===a?r:this,e)}})})),Hee=z((()=>{wee(),Mee(),Cee(),Aee(),Oee(),Fee()})),Uee=z((()=>{"use strict";var e=He(),t=si(),i=ms(),r=zd(),n=Av(),s=vc();e({target:"Promise",stat:!0},{allSettled:function(e){var a=this,o=r.f(a),l=o.resolve,h=o.reject,u=n((function(){var r=i(a.resolve),n=[],o=0,h=1;s(e,(function(e){var i=o++,s=!1;h++,t(r,a,e).then((function(e){s||(s=!0,n[i]={status:"fulfilled",value:e},--h||l(n))}),(function(e){s||(s=!0,n[i]={status:"rejected",reason:e},--h||l(n))}))})),--h||l(n)}));return u.error&&h(u.value),o.promise}})})),kee=z((()=>{"use strict";var e=He(),t=si(),i=ms(),r=In(),n=zd(),s=Av(),a=vc(),o="No one promise resolved";e({target:"Promise",stat:!0},{any:function(e){var l=this,h=r("AggregateError"),u=n.f(l),c=u.resolve,p=u.reject,d=s((function(){var r=i(l.resolve),n=[],s=0,u=1,d=!1;a(e,(function(e){var i=s++,a=!1;u++,t(r,l,e).then((function(e){a||d||(d=!0,c(e))}),(function(e){a||d||(a=!0,n[i]=e,--u||p(new h(n,o)))}))})),--u||p(new h(n,o))}));return d.error&&p(d.value),u.promise}})})),jee=z((()=>{"use strict";var e,t=He(),i=Gn(),r=qm(),n=Mt(),s=In(),a=Ei(),o=Bm(),l=bF(),h=Cn(),u=r&&r.prototype;t({target:"Promise",proto:!0,real:!0,forced:!!r&&n((function(){u.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=o(this,s("Promise")),i=a(e);return this.then(i?function(i){return l(t,e()).then((function(){return i}))}:e,i?function(i){return l(t,e()).then((function(){throw i}))}:e)}}),!i&&a(r)&&(e=s("Promise").prototype.finally,u.finally!==e&&h(u,"finally",e,{unsafe:!0}))})),Wee=z((()=>{var e=He(),t=Co(),i=ms(),r=qr();e({target:"Reflect",stat:!0,forced:!Mt()((function(){Reflect.apply((function(){}))}))},{apply:function(e,n,s){return t(i(e),n,r(s))}})})),Jee=z((()=>{var e=He(),t=In(),i=Co(),r=hL(),n=aR(),s=qr(),a=ai(),o=Ya(),l=Mt(),h=t("Reflect","construct"),u=Object.prototype,c=[].push,p=l((function(){function e(){}return!(h((function(){}),[],e)instanceof e)})),d=!l((function(){h((function(){}))})),f=p||d;e({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){n(e),s(t);var l=arguments.length<3?e:n(arguments[2]);if(d&&!p)return h(e,t,l);if(e==l){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var f=[null];return i(c,f,t),new(i(r,e,f))}var m=l.prototype,g=o(a(m)?m:u),y=i(e,g,t);return a(y)?y:g}})})),tte=z((()=>{var e=He(),t=Ar(),i=qr(),r=Wh(),n=ji();e({target:"Reflect",stat:!0,forced:Mt()((function(){Reflect.defineProperty(n.f({},1,{value:1}),1,{value:2})})),sham:!t},{defineProperty:function(e,t,s){i(e);var a=r(t);i(s);try{return n.f(e,a,s),!0}catch(e){return!1}}})})),rte=z((()=>{var e=He(),t=qr(),i=Hs().f;e({target:"Reflect",stat:!0},{deleteProperty:function(e,r){var n=i(t(e),r);return!(n&&!n.configurable)&&delete e[r]}})})),wF=z(((e,t)=>{var i=_i();t.exports=function(e){return void 0!==e&&(i(e,"value")||i(e,"writable"))}})),ate=z((()=>{var e=He(),t=si(),i=ai(),r=qr(),n=wF(),s=Hs(),a=Ao();e({target:"Reflect",stat:!0},{get:function e(o,l){var h,u,c=arguments.length<3?o:arguments[2];return r(o)===c?o[l]:(h=s.f(o,l))?n(h)?h.value:void 0===h.get?void 0:t(h.get,c):i(u=a(o))?e(u,l,c):void 0}})})),ote=z((()=>{var e=He(),t=Ar(),i=qr(),r=Hs();e({target:"Reflect",stat:!0,sham:!t},{getOwnPropertyDescriptor:function(e,t){return r.f(i(e),t)}})})),lte=z((()=>{var e=He(),t=qr(),i=Ao();e({target:"Reflect",stat:!0,sham:!Pw()},{getPrototypeOf:function(e){return i(t(e))}})})),cte=z((()=>{He()({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})})),ute=z((()=>{var e=He(),t=qr(),i=uR();e({target:"Reflect",stat:!0},{isExtensible:function(e){return t(e),i(e)}})})),hte=z((()=>{He()({target:"Reflect",stat:!0},{ownKeys:mw()})})),pte=z((()=>{var e=He(),t=In(),i=qr();e({target:"Reflect",stat:!0,sham:!Gm()},{preventExtensions:function(e){i(e);try{var r=t("Object","preventExtensions");return r&&r(e),!0}catch(e){return!1}}})})),vte=z((()=>{var e=He(),t=si(),i=qr(),r=ai(),n=wF(),s=Mt(),a=ji(),o=Hs(),l=Ao(),h=Mo();e({target:"Reflect",stat:!0,forced:s((function(){var e=function(){},t=a.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)}))},{set:function e(s,u,c){var p,d,f,m=arguments.length<4?s:arguments[3],g=o.f(i(s),u);if(!g){if(r(d=l(s)))return e(d,u,c,m);g=h(0)}if(n(g)){if(!1===g.writable||!r(m))return!1;if(p=o.f(m,u)){if(p.get||p.set||!1===p.writable)return!1;p.value=c,a.f(m,u,p)}else a.f(m,u,h(0,c))}else{if(void 0===(f=g.set))return!1;t(f,m,c)}return!0}})})),Tte=z((()=>{var e=He(),t=qr(),i=sN(),r=gc();r&&e({target:"Reflect",stat:!0},{setPrototypeOf:function(e,n){t(e),i(n);try{return r(e,n),!0}catch(e){return!1}}})})),Ete=z((()=>{var e=He(),t=rr(),i=Xa();e({global:!0},{Reflect:{}}),i(t.Reflect,"Reflect",!0)})),Hv=z(((e,t)=>{var i=ai(),r=ma(),n=fi()("match");t.exports=function(e){var t;return i(e)&&(void 0!==(t=e[n])?!!t:"RegExp"==r(e))}})),OR=z(((e,t)=>{"use strict";var i=qr();t.exports=function(){var e=i(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}})),Uv=z(((e,t)=>{var i=si(),r=_i(),n=Do(),s=OR(),a=RegExp.prototype;t.exports=function(e){var t=e.flags;return void 0!==t||"flags"in a||r(e,"flags")||!n(a,e)?t:i(s,e)}})),J1=z(((e,t)=>{var i=Mt(),r=rr().RegExp,n=i((function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),s=n||i((function(){return!r("a","y").sticky})),a=n||i((function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));t.exports={BROKEN_CARET:a,MISSED_STICKY:s,UNSUPPORTED_Y:n}})),PR=z(((e,t)=>{var i=Mt(),r=rr().RegExp;t.exports=i((function(){var e=r(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))})),AF=z(((e,t)=>{var i=Mt(),r=rr().RegExp;t.exports=i((function(){var e=r("(?b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")}))})),Fte=z((()=>{var e,t,i,r=Ar(),n=rr(),s=Bt(),a=cv(),o=Lm(),l=ya(),h=qh().f,u=Do(),c=Hv(),p=mi(),d=Uv(),f=J1(),m=aN(),g=Cn(),y=Mt(),v=_i(),T=us().enforce,x=Hm(),b=fi(),_=PR(),E=AF(),w=b("match"),S=n.RegExp,I=S.prototype,M=n.SyntaxError,A=s(I.exec),D=s("".charAt),O=s("".replace),R=s("".indexOf),C=s("".slice),N=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,P=/a/g,L=/a/g,F=new S(P)!==P,U=f.MISSED_STICKY,k=f.UNSUPPORTED_Y,B=r&&(!F||U||_||E||y((function(){return L[w]=!1,S(P)!=P||S(L)==L||"/a/i"!=S(P,"i")})));if(a("RegExp",B)){for(e=function(t,i){var r,n,s,a,h,f,m=u(I,this),g=c(t),y=void 0===i,x=[],b=t;if(!m&&g&&y&&t.constructor===e)return t;if((g||u(I,t))&&(t=t.source,y&&(i=d(b))),t=void 0===t?"":p(t),i=void 0===i?"":p(i),b=t,_&&"dotAll"in P&&((n=!!i&&R(i,"s")>-1)&&(i=O(i,/s/g,""))),r=i,U&&"sticky"in P&&((s=!!i&&R(i,"y")>-1)&&k&&(i=O(i,/y/g,""))),E&&(a=function(e){for(var t,i=e.length,r=0,n="",s=[],a={},o=!1,l=!1,h=0,u="";r<=i;r++){if("\\"===(t=D(e,r)))t+=D(e,++r);else if("]"===t)o=!1;else if(!o)switch(!0){case"["===t:o=!0;break;case"("===t:A(N,C(e,r+1))&&(r+=2,l=!0),n+=t,h++;continue;case">"===t&&l:if(""===u||v(a,u))throw new M("Invalid capture group name");a[u]=!0,s[s.length]=[u,h],l=!1,u="";continue}l?u+=t:n+=t}return[n,s]}(t),t=a[0],x=a[1]),h=o(S(t,i),m?this:I,e),(n||s||x.length)&&(f=T(h),n&&(f.dotAll=!0,f.raw=e(function(e){for(var t,i=e.length,r=0,n="",s=!1;r<=i;r++)"\\"!==(t=D(e,r))?s||"."!==t?("["===t?s=!0:"]"===t&&(s=!1),n+=t):n+="[\\s\\S]":n+=t+D(e,++r);return n}(t),r)),s&&(f.sticky=!0),x.length&&(f.groups=x)),t!==b)try{l(h,"source",""===b?"(?:)":b)}catch(e){}return h},t=h(S),i=0;t.length>i;)m(e,S,t[i++]);I.constructor=e,e.prototype=I,g(n,"RegExp",e,{constructor:!0})}x("RegExp")})),Ute=z((()=>{var e=Ar(),t=PR(),i=ma(),r=Vd(),n=us().get,s=RegExp.prototype,a=TypeError;e&&t&&r(s,"dotAll",{configurable:!0,get:function(){if(this!==s){if("RegExp"===i(this))return!!n(this).dotAll;throw a("Incompatible receiver, RegExp required")}}})})),eb=z(((e,t)=>{"use strict";var i,r,n=si(),s=Bt(),a=mi(),o=OR(),l=J1(),h=Rm(),u=Ya(),c=us().get,p=PR(),d=AF(),f=h("native-string-replace",String.prototype.replace),m=RegExp.prototype.exec,g=m,y=s("".charAt),v=s("".indexOf),T=s("".replace),x=s("".slice),b=(r=/b*/g,n(m,i=/a/,"a"),n(m,r,"a"),0!==i.lastIndex||0!==r.lastIndex),_=l.BROKEN_CARET,E=void 0!==/()??/.exec("")[1];(b||E||_||p||d)&&(g=function(e){var t,i,r,s,l,h,p,d=this,w=c(d),S=a(e),I=w.raw;if(I)return I.lastIndex=d.lastIndex,t=n(g,I,S),d.lastIndex=I.lastIndex,t;var M=w.groups,A=_&&d.sticky,D=n(o,d),O=d.source,R=0,C=S;if(A&&(D=T(D,"y",""),-1===v(D,"g")&&(D+="g"),C=x(S,d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&"\n"!==y(S,d.lastIndex-1))&&(O="(?: "+O+")",C=" "+C,R++),i=new RegExp("^(?:"+O+")",D)),E&&(i=new RegExp("^"+O+"$(?!\\s)",D)),b&&(r=d.lastIndex),s=n(m,A?i:d,C),A?s?(s.input=x(s.input,R),s[0]=x(s[0],R),s.index=d.lastIndex,d.lastIndex+=s[0].length):d.lastIndex=0:b&&s&&(d.lastIndex=d.global?s.index+s[0].length:r),E&&s&&s.length>1&&n(f,s[0],i,(function(){for(l=1;l{"use strict";var e=He(),t=eb();e({target:"RegExp",proto:!0,forced:/./.exec!==t},{exec:t})})),jte=z((()=>{var e=rr(),t=Ar(),i=Vd(),r=OR(),n=Mt(),s=e.RegExp,a=s.prototype;t&&n((function(){var e=!0;try{s(".","d")}catch(t){e=!1}var t={},i="",r=e?"dgimsy":"gimsy",n=function(e,r){Object.defineProperty(t,e,{get:function(){return i+=r,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var l in e&&(o.hasIndices="d"),o)n(l,o[l]);return Object.getOwnPropertyDescriptor(a,"flags").get.call(t)!==r||i!==r}))&&i(a,"flags",{configurable:!0,get:r})})),qte=z((()=>{var e=Ar(),t=J1().MISSED_STICKY,i=ma(),r=Vd(),n=us().get,s=RegExp.prototype,a=TypeError;e&&t&&r(s,"sticky",{configurable:!0,get:function(){if(this!==s){if("RegExp"===i(this))return!!n(this).sticky;throw a("Incompatible receiver, RegExp required")}}})})),$te=z((()=>{"use strict";HR();var e,t,i=He(),r=si(),n=Ei(),s=qr(),a=mi(),o=(e=!1,(t=/[ac]/).exec=function(){return e=!0,/./.exec.apply(this,arguments)},!0===t.test("abc")&&e),l=/./.test;i({target:"RegExp",proto:!0,forced:!o},{test:function(e){var t=s(this),i=a(e),o=t.exec;if(!n(o))return r(l,t,i);var h=r(o,t,i);return null!==h&&(s(h),!0)}})})),Jte=z((()=>{"use strict";var e=Cm().PROPER,t=Cn(),i=qr(),r=mi(),n=Mt(),s=Uv(),a="toString",o=RegExp.prototype[a],l=n((function(){return"/a/b"!=o.call({source:"a",flags:"b"})})),h=e&&o.name!=a;(l||h)&&t(RegExp.prototype,a,(function(){var e=i(this);return"/"+r(e.source)+"/"+r(s(e))}),{unsafe:!0})})),Qte=z((()=>{"use strict";F1()("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),EL())})),ere=z((()=>{Qte()})),tre=z((()=>{"use strict";var e=He(),t=Bt(),i=cs(),r=gs(),n=mi(),s=Mt(),a=t("".charAt);e({target:"String",proto:!0,forced:s((function(){return"\ud842"!=="𠮷".at(-2)}))},{at:function(e){var t=n(i(this)),s=t.length,o=r(e),l=o>=0?o:s+o;return l<0||l>=s?void 0:a(t,l)}})})),tb=z(((e,t)=>{var i=Bt(),r=gs(),n=mi(),s=cs(),a=i("".charAt),o=i("".charCodeAt),l=i("".slice),h=function(e){return function(t,i){var h,u,c=n(s(t)),p=r(i),d=c.length;return p<0||p>=d?e?"":void 0:(h=o(c,p))<55296||h>56319||p+1===d||(u=o(c,p+1))<56320||u>57343?e?a(c,p):h:e?l(c,p,p+2):u-56320+(h-55296<<10)+65536}};t.exports={codeAt:h(!1),charAt:h(!0)}})),sre=z((()=>{"use strict";var e=He(),t=tb().codeAt;e({target:"String",proto:!0},{codePointAt:function(e){return t(this,e)}})})),UR=z(((e,t)=>{var i=Hv(),r=TypeError;t.exports=function(e){if(i(e))throw r("The method doesn't accept regular expressions");return e}})),BR=z(((e,t)=>{var i=fi()("match");t.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[i]=!1,"/./"[e](t)}catch(e){}}return!1}})),pre=z((()=>{"use strict";var e,t=He(),i=Yh(),r=Hs().f,n=qa(),s=mi(),a=UR(),o=cs(),l=BR(),h=Gn(),u=i("".endsWith),c=i("".slice),p=Math.min,d=l("endsWith");t({target:"String",proto:!0,forced:!!(h||d||(e=r(String.prototype,"endsWith"),!e||e.writable))&&!d},{endsWith:function(e){var t=s(o(this));a(e);var i=arguments.length>1?arguments[1]:void 0,r=t.length,l=void 0===i?r:p(n(i),r),h=s(e);return u?u(t,h,l):c(t,l-h.length,l)===h}})})),mre=z((()=>{var e=He(),t=Bt(),i=_u(),r=RangeError,n=String.fromCharCode,s=String.fromCodePoint,a=t([].join);e({target:"String",stat:!0,arity:1,forced:!!s&&1!=s.length},{fromCodePoint:function(e){for(var t,s=[],o=arguments.length,l=0;o>l;){if(t=+arguments[l++],i(t,1114111)!==t)throw r(t+" is not a valid code point");s[l]=t<65536?n(t):n(55296+((t-=65536)>>10),t%1024+56320)}return a(s,"")}})})),vre=z((()=>{"use strict";var e=He(),t=Bt(),i=UR(),r=cs(),n=mi(),s=BR(),a=t("".indexOf);e({target:"String",proto:!0,forced:!s("includes")},{includes:function(e){return!!~a(n(r(this)),n(i(e)),arguments.length>1?arguments[1]:void 0)}})})),VF=z((()=>{"use strict";var e=tb().charAt,t=mi(),i=us(),r=zw(),n=D1(),s="String Iterator",a=i.set,o=i.getterFor(s);r(String,"String",(function(e){a(this,{type:s,string:t(e),index:0})}),(function(){var t,i=o(this),r=i.string,s=i.index;return s>=r.length?n(void 0,!0):(t=e(r,s),i.index+=t.length,n(t,!1))}))})),rb=z(((e,t)=>{"use strict";HR();var i=Yh(),r=Cn(),n=eb(),s=Mt(),a=fi(),o=ya(),l=a("species"),h=RegExp.prototype;t.exports=function(e,t,u,c){var p=a(e),d=!s((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),f=d&&!s((function(){var t=!1,i=/a/;return"split"===e&&((i={}).constructor={},i.constructor[l]=function(){return i},i.flags="",i[p]=/./[p]),i.exec=function(){return t=!0,null},i[p](""),!t}));if(!d||!f||u){var m=i(/./[p]),g=t(p,""[e],(function(e,t,r,s,a){var o=i(e),l=t.exec;return l===n||l===h.exec?d&&!a?{done:!0,value:m(t,r,s)}:{done:!0,value:o(r,t,s)}:{done:!1}}));r(String.prototype,e,g[0]),r(h,p,g[1])}c&&o(h[p],"sham",!0)}})),ib=z(((e,t)=>{"use strict";var i=tb().charAt;t.exports=function(e,t,r){return t+(r?i(e,t).length:1)}})),Gv=z(((e,t)=>{var i=si(),r=qr(),n=Ei(),s=ma(),a=eb(),o=TypeError;t.exports=function(e,t){var l=e.exec;if(n(l)){var h=i(l,e,t);return null!==h&&r(h),h}if("RegExp"===s(e))return i(a,e,t);throw o("RegExp#exec called on incompatible receiver")}})),Cre=z((()=>{"use strict";var e=si(),t=rb(),i=qr(),r=ga(),n=qa(),s=mi(),a=cs(),o=Iu(),l=ib(),h=Gv();t("match",(function(t,u,c){return[function(i){var n=a(this),l=r(i)?void 0:o(i,t);return l?e(l,i,n):new RegExp(i)[t](s(n))},function(e){var t=i(this),r=s(e),a=c(u,t,r);if(a.done)return a.value;if(!t.global)return h(t,r);var o=t.unicode;t.lastIndex=0;for(var p,d=[],f=0;null!==(p=h(t,r));){var m=s(p[0]);d[f]=m,""===m&&(t.lastIndex=l(r,n(t.lastIndex),o)),f++}return 0===f?null:d}]}))})),kre=z((()=>{"use strict";var e=He(),t=si(),i=Yh(),r=kw(),n=D1(),s=cs(),a=qa(),o=mi(),l=qr(),h=ga(),u=ma(),c=Hv(),p=Uv(),d=Iu(),f=Cn(),m=Mt(),g=fi(),y=Bm(),v=ib(),T=Gv(),x=us(),b=Gn(),_=g("matchAll"),E="RegExp String",w=E+" Iterator",S=x.set,I=x.getterFor(w),M=RegExp.prototype,A=TypeError,D=i("".indexOf),O=i("".matchAll),R=!!O&&!m((function(){O("a",/./)})),C=r((function(e,t,i,r){S(this,{type:w,regexp:e,string:t,global:i,unicode:r,done:!1})}),E,(function(){var e=I(this);if(e.done)return n(void 0,!0);var t=e.regexp,i=e.string,r=T(t,i);return null===r?(e.done=!0,n(void 0,!0)):e.global?(""===o(r[0])&&(t.lastIndex=v(i,a(t.lastIndex),e.unicode)),n(r,!1)):(e.done=!0,n(r,!1))})),N=function(e){var t,i,r,n=l(this),s=o(e),h=y(n,RegExp),u=o(p(n));return t=new h(h===RegExp?n.source:n,u),i=!!~D(u,"g"),r=!!~D(u,"u"),t.lastIndex=a(n.lastIndex),new C(t,s,i,r)};e({target:"String",proto:!0,forced:R},{matchAll:function(e){var i,r,n,a,l=s(this);if(h(e)){if(R)return O(l,e)}else{if(c(e)&&(i=o(s(p(e))),!~D(i,"g")))throw A("`.matchAll` does not allow non-global regexes");if(R)return O(l,e);if(void 0===(n=d(e,_))&&b&&"RegExp"==u(e)&&(n=N),n)return t(n,e,l)}return r=o(l),a=new RegExp(e,"g"),b?t(N,a,r):a[_](r)}}),b||_ in M||f(M,_,N)})),$F=z(((e,t)=>{var i=bu();t.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(i)})),Vre=z((()=>{"use strict";var e=He(),t=oR().end;e({target:"String",proto:!0,forced:$F()},{padEnd:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),zre=z((()=>{"use strict";var e=He(),t=oR().start;e({target:"String",proto:!0,forced:$F()},{padStart:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Yre=z((()=>{var e=He(),t=Bt(),i=va(),r=Hi(),n=mi(),s=cn(),a=t([].push),o=t([].join);e({target:"String",stat:!0},{raw:function(e){for(var t=i(r(e).raw),l=s(t),h=arguments.length,u=[],c=0;l>c;){if(a(u,n(t[c++])),c===l)return o(u,"");c{He()({target:"String",proto:!0},{repeat:N1()})})),QF=z(((e,t)=>{var i=Bt(),r=Hi(),n=Math.floor,s=i("".charAt),a=i("".replace),o=i("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,h=/\$([$&'`]|\d{1,2})/g;t.exports=function(e,t,i,u,c,p){var d=i+e.length,f=u.length,m=h;return void 0!==c&&(c=r(c),m=l),a(p,m,(function(r,a){var l;switch(s(a,0)){case"$":return"$";case"&":return e;case"`":return o(t,0,i);case"'":return o(t,d);case"<":l=c[o(a,1,-1)];break;default:var h=+a;if(0===h)return r;if(h>f){var p=n(h/10);return 0===p?r:p<=f?void 0===u[p-1]?s(a,1):u[p-1]+s(a,1):r}l=u[h-1]}return void 0===l?"":l}))}})),eie=z((()=>{"use strict";var e=Co(),t=si(),i=Bt(),r=rb(),n=Mt(),s=qr(),a=Ei(),o=ga(),l=gs(),h=qa(),u=mi(),c=cs(),p=ib(),d=Iu(),f=QF(),m=Gv(),g=fi()("replace"),y=Math.max,v=Math.min,T=i([].concat),x=i([].push),b=i("".indexOf),_=i("".slice),E=function(e){return void 0===e?e:String(e)},w="$0"==="a".replace(/./,"$0"),S=!!/./[g]&&""===/./[g]("a","$0");r("replace",(function(i,r,n){var w=S?"$":"$0";return[function(e,i){var n=c(this),s=o(e)?void 0:d(e,g);return s?t(s,e,n,i):t(r,u(n),e,i)},function(t,i){var o=s(this),c=u(t);if("string"==typeof i&&-1===b(i,w)&&-1===b(i,"$<")){var d=n(r,o,c,i);if(d.done)return d.value}var g=a(i);g||(i=u(i));var S=o.global;if(S){var I=o.unicode;o.lastIndex=0}for(var M=[];;){var A=m(o,c);if(null===A||(x(M,A),!S))break;""===u(A[0])&&(o.lastIndex=p(c,h(o.lastIndex),I))}for(var D="",O=0,R=0;R=O&&(D+=_(c,O,N)+k,O=N+C.length)}return D+_(c,O)}]}),!!n((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}))||!w||S)})),sie=z((()=>{"use strict";var e=He(),t=si(),i=Bt(),r=cs(),n=Ei(),s=ga(),a=Hv(),o=mi(),l=Iu(),h=Uv(),u=QF(),c=fi(),p=Gn(),d=c("replace"),f=TypeError,m=i("".indexOf),g=i("".replace),y=i("".slice),v=Math.max,T=function(e,t,i){return i>e.length?-1:""===t?i:m(e,t,i)};e({target:"String",proto:!0},{replaceAll:function(e,i){var c,x,b,_,E,w,S,I,M,A=r(this),D=0,O=0,R="";if(!s(e)){if((c=a(e))&&(x=o(r(h(e))),!~m(x,"g")))throw f("`.replaceAll` does not allow non-global regexes");if(b=l(e,d))return t(b,e,A,i);if(p&&c)return g(o(A),e,i)}for(_=o(A),E=o(e),(w=n(i))||(i=o(i)),S=E.length,I=v(1,S),D=T(_,E,0);-1!==D;)M=w?o(i(E,D,_)):u(E,_,D,[],void 0,i),R+=y(_,O,D)+M,O=D+S,D=T(_,E,D+I);return O<_.length&&(R+=y(_,O)),R}})})),lie=z((()=>{"use strict";var e=si(),t=rb(),i=qr(),r=ga(),n=cs(),s=VL(),a=mi(),o=Iu(),l=Gv();t("search",(function(t,h,u){return[function(i){var s=n(this),l=r(i)?void 0:o(i,t);return l?e(l,i,s):new RegExp(i)[t](a(s))},function(e){var t=i(this),r=a(e),n=u(h,t,r);if(n.done)return n.value;var o=t.lastIndex;s(o,0)||(t.lastIndex=0);var c=l(t,r);return s(t.lastIndex,o)||(t.lastIndex=o),null===c?-1:c.index}]}))})),fie=z((()=>{"use strict";var e=Co(),t=si(),i=Bt(),r=rb(),n=qr(),s=ga(),a=Hv(),o=cs(),l=Bm(),h=ib(),u=qa(),c=mi(),p=Iu(),d=hv(),f=Gv(),m=eb(),g=J1(),y=Mt(),v=g.UNSUPPORTED_Y,T=4294967295,x=Math.min,b=[].push,_=i(/./.exec),E=i(b),w=i("".slice);r("split",(function(i,r,g){var y;return y="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(i,n){var s=c(o(this)),l=void 0===n?T:n>>>0;if(0===l)return[];if(void 0===i)return[s];if(!a(i))return t(r,s,i,l);for(var h,u,p,f=[],g=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(i.sticky?"y":""),y=0,v=new RegExp(i.source,g+"g");(h=t(m,v,s))&&!((u=v.lastIndex)>y&&(E(f,w(s,y,h.index)),h.length>1&&h.index=l));)v.lastIndex===h.index&&v.lastIndex++;return y===s.length?(p||!_(v,""))&&E(f,""):E(f,w(s,y)),f.length>l?d(f,0,l):f}:"0".split(void 0,0).length?function(e,i){return void 0===e&&0===i?[]:t(r,this,e,i)}:r,[function(e,r){var n=o(this),a=s(e)?void 0:p(e,i);return a?t(a,e,n,r):t(y,c(n),e,r)},function(e,t){var i=n(this),s=c(e),a=g(y,i,s,t,y!==r);if(a.done)return a.value;var o=l(i,RegExp),p=i.unicode,d=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(v?"g":"y"),m=new o(v?"^(?:"+i.source+")":i,d),b=void 0===t?T:t>>>0;if(0===b)return[];if(0===s.length)return null===f(m,s)?[s]:[];for(var _=0,S=0,I=[];S{"use strict";var e,t=He(),i=Yh(),r=Hs().f,n=qa(),s=mi(),a=UR(),o=cs(),l=BR(),h=Gn(),u=i("".startsWith),c=i("".slice),p=Math.min,d=l("startsWith");t({target:"String",proto:!0,forced:!!(h||d||(e=r(String.prototype,"startsWith"),!e||e.writable))&&!d},{startsWith:function(e){var t=s(o(this));a(e);var i=n(p(arguments.length>1?arguments[1]:void 0,t.length)),r=s(e);return u?u(t,r,i):c(t,i,i+r.length)===r}})})),bie=z((()=>{"use strict";var e=He(),t=Bt(),i=cs(),r=gs(),n=mi(),s=t("".slice),a=Math.max,o=Math.min;e({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(e,t){var l,h,u=n(i(this)),c=u.length,p=r(e);return p===1/0&&(p=0),p<0&&(p=a(c+p,0)),(l=void 0===t?c:r(t))<=0||l===1/0?"":p>=(h=o(p+l,c))?"":s(u,p,h)}})})),jR=z(((e,t)=>{var i=Cm().PROPER,r=Mt(),n=G1();t.exports=function(e){return r((function(){return!!n[e]()||"​…᠎"!=="​…᠎"[e]()||i&&n[e].name!==e}))}})),Sie=z((()=>{"use strict";var e=He(),t=Vm().trim;e({target:"String",proto:!0,forced:jR()("trim")},{trim:function(){return t(this)}})})),s5=z(((e,t)=>{"use strict";var i=Vm().end,r=jR();t.exports=r("trimEnd")?function(){return i(this)}:"".trimEnd})),Mie=z((()=>{var e=He(),t=s5();e({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==t},{trimRight:t})})),Cie=z((()=>{Mie();var e=He(),t=s5();e({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==t},{trimEnd:t})})),a5=z(((e,t)=>{"use strict";var i=Vm().start,r=jR();t.exports=r("trimStart")?function(){return i(this)}:"".trimStart})),Pie=z((()=>{var e=He(),t=a5();e({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==t},{trimLeft:t})})),Lie=z((()=>{Pie();var e=He(),t=a5();e({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==t},{trimStart:t})})),Za=z(((e,t)=>{var i=Bt(),r=cs(),n=mi(),s=/"/g,a=i("".replace);t.exports=function(e,t,i,o){var l=n(r(e)),h="<"+t;return""!==i&&(h+=" "+i+'="'+a(n(o),s,""")+'"'),h+">"+l+""}})),Ja=z(((e,t)=>{var i=Mt();t.exports=function(e){return i((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}})),Bie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("anchor")},{anchor:function(e){return t(this,"a","name",e)}})})),kie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("big")},{big:function(){return t(this,"big","","")}})})),Gie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("blink")},{blink:function(){return t(this,"blink","","")}})})),Vie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("bold")},{bold:function(){return t(this,"b","","")}})})),zie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("fixed")},{fixed:function(){return t(this,"tt","","")}})})),jie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("fontcolor")},{fontcolor:function(e){return t(this,"font","color",e)}})})),Wie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("fontsize")},{fontsize:function(e){return t(this,"font","size",e)}})})),qie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("italics")},{italics:function(){return t(this,"i","","")}})})),Yie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("link")},{link:function(e){return t(this,"a","href",e)}})})),Xie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("small")},{small:function(){return t(this,"small","","")}})})),$ie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("strike")},{strike:function(){return t(this,"strike","","")}})})),Kie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("sub")},{sub:function(){return t(this,"sub","","")}})})),Zie=z((()=>{"use strict";var e=He(),t=Za();e({target:"String",proto:!0,forced:Ja()("sup")},{sup:function(){return t(this,"sup","","")}})})),WR=z(((e,t)=>{var i=rr(),r=Mt(),n=w1(),s=Si().NATIVE_ARRAY_BUFFER_VIEWS,a=i.ArrayBuffer,o=i.Int8Array;t.exports=!s||!r((function(){o(1)}))||!r((function(){new o(-1)}))||!n((function(e){new o,new o(null),new o(1.5),new o(e)}),!0)||r((function(){return 1!==new o(new a(2),1,void 0).length}))})),tne=z(((e,t)=>{var i=gs(),r=RangeError;t.exports=function(e){var t=i(e);if(t<0)throw r("The argument can't be less than 0");return t}})),l5=z(((e,t)=>{var i=tne(),r=RangeError;t.exports=function(e,t){var n=i(e);if(n%t)throw r("Wrong offset");return n}})),nne=z(((e,t)=>{var i=mc(),r=Bt()("".slice);t.exports=function(e){return"Big"===r(i(e),0,3)}})),c5=z(((e,t)=>{var i=o1(),r=TypeError;t.exports=function(e){var t=i(e,"number");if("number"==typeof t)throw r("Can't convert number to bigint");return BigInt(t)}})),u5=z(((e,t)=>{var i=pl(),r=si(),n=aR(),s=Hi(),a=cn(),o=x1(),l=vv(),h=Nw(),u=nne(),c=Si().aTypedArrayConstructor,p=c5();t.exports=function(e){var t,d,f,m,g,y,v,T,x=n(this),b=s(e),_=arguments.length,E=_>1?arguments[1]:void 0,w=void 0!==E,S=l(b);if(S&&!h(S))for(T=(v=o(b,S)).next,b=[];!(y=r(T,v)).done;)b.push(y.value);for(w&&_>2&&(E=i(E,arguments[2])),d=a(b),f=new(c(x))(d),m=u(f),t=0;d>t;t++)g=w?E(b[t],t):b[t],f[t]=m?p(g):+g;return f}})),Ou=z(((e,t)=>{"use strict";var i=He(),r=rr(),n=si(),s=Ar(),a=WR(),o=Si(),l=P1(),h=yc(),u=Mo(),c=ya(),p=yR(),d=qa(),f=zN(),m=l5(),g=Wh(),y=_i(),v=mc(),T=ai(),x=Dd(),b=Ya(),_=Do(),E=gc(),w=qh().f,S=u5(),I=Rs().forEach,M=Hm(),A=ji(),D=Hs(),O=us(),R=Lm(),C=O.get,N=O.set,P=O.enforce,L=A.f,F=D.f,U=Math.round,k=r.RangeError,B=l.ArrayBuffer,H=B.prototype,G=l.DataView,z=o.NATIVE_ARRAY_BUFFER_VIEWS,V=o.TYPED_ARRAY_TAG,j=o.TypedArray,W=o.TypedArrayPrototype,Y=o.aTypedArrayConstructor,X=o.isTypedArray,q="BYTES_PER_ELEMENT",Z="Wrong length",K=function(e,t){Y(e);for(var i=0,r=t.length,n=new e(r);r>i;)n[i]=t[i++];return n},J=function(e,t){L(e,t,{get:function(){return C(this)[t]}})},$=function(e){var t;return _(H,e)||"ArrayBuffer"==(t=v(e))||"SharedArrayBuffer"==t},Q=function(e,t){return X(e)&&!x(t)&&t in e&&p(+t)&&t>=0},ee=function(e,t){return t=g(t),Q(e,t)?u(2,e[t]):F(e,t)},te=function(e,t,i){return t=g(t),!(Q(e,t)&&T(i)&&y(i,"value"))||y(i,"get")||y(i,"set")||i.configurable||y(i,"writable")&&!i.writable||y(i,"enumerable")&&!i.enumerable?L(e,t,i):(e[t]=i.value,e)};s?(z||(D.f=ee,A.f=te,J(W,"buffer"),J(W,"byteOffset"),J(W,"byteLength"),J(W,"length")),i({target:"Object",stat:!0,forced:!z},{getOwnPropertyDescriptor:ee,defineProperty:te}),t.exports=function(e,t,s){var o=e.match(/\d+$/)[0]/8,l=e+(s?"Clamped":"")+"Array",u="get"+e,p="set"+e,g=r[l],y=g,v=y&&y.prototype,x={},_=function(e,t){L(e,t,{get:function(){return function(e,t){var i=C(e);return i.view[u](t*o+i.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,i){var r=C(e);s&&(i=(i=U(i))<0?0:i>255?255:255&i),r.view[p](t*o+r.byteOffset,i,!0)}(this,t,e)},enumerable:!0})};z?a&&(y=t((function(e,t,i,r){return h(e,v),R(T(t)?$(t)?void 0!==r?new g(t,m(i,o),r):void 0!==i?new g(t,m(i,o)):new g(t):X(t)?K(y,t):n(S,y,t):new g(f(t)),e,y)})),E&&E(y,j),I(w(g),(function(e){e in y||c(y,e,g[e])})),y.prototype=v):(y=t((function(e,t,i,r){h(e,v);var s,a,l,u=0,c=0;if(T(t)){if(!$(t))return X(t)?K(y,t):n(S,y,t);s=t,c=m(i,o);var p=t.byteLength;if(void 0===r){if(p%o||(a=p-c)<0)throw k(Z)}else if((a=d(r)*o)+c>p)throw k(Z);l=a/o}else l=f(t),s=new B(a=l*o);for(N(e,{buffer:s,byteOffset:c,byteLength:a,length:l,view:new G(s)});u{Ou()("Float32",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),wne=z((()=>{Ou()("Float64",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),Rne=z((()=>{Ou()("Int8",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),Mne=z((()=>{Ou()("Int16",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),Dne=z((()=>{Ou()("Int32",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),Cne=z((()=>{Ou()("Uint8",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),Ane=z((()=>{Ou()("Uint8",(function(e){return function(t,i,r){return e(this,t,i,r)}}),!0)})),One=z((()=>{Ou()("Uint16",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),Pne=z((()=>{Ou()("Uint32",(function(e){return function(t,i,r){return e(this,t,i,r)}}))})),Lne=z((()=>{"use strict";var e=Si(),t=cn(),i=gs(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("at",(function(e){var n=r(this),s=t(n),a=i(e),o=a>=0?a:s+a;return o<0||o>=s?void 0:n[o]}))})),Hne=z((()=>{"use strict";var e=Bt(),t=Si(),i=e(bN()),r=t.aTypedArray;(0,t.exportTypedArrayMethod)("copyWithin",(function(e,t){return i(r(this),e,t,arguments.length>2?arguments[2]:void 0)}))})),Bne=z((()=>{"use strict";var e=Si(),t=Rs().every,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("every",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Gne=z((()=>{"use strict";var e=Si(),t=Bw(),i=c5(),r=mc(),n=si(),s=Bt(),a=Mt(),o=e.aTypedArray,l=e.exportTypedArrayMethod,h=s("".slice);l("fill",(function(e){var s=arguments.length;o(this);var a="Big"===h(r(this),0,3)?i(e):+e;return n(t,this,a,s>1?arguments[1]:void 0,s>2?arguments[2]:void 0)}),a((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e})))})),zne=z(((e,t)=>{var i=cn();t.exports=function(e,t){for(var r=0,n=i(t),s=new e(n);n>r;)s[r]=t[r++];return s}})),ub=z(((e,t)=>{var i=Si(),r=Bm(),n=i.aTypedArrayConstructor,s=i.getTypedArrayConstructor;t.exports=function(e){return n(r(e,s(e)))}})),Yne=z(((e,t)=>{var i=zne(),r=ub();t.exports=function(e,t){return i(r(e),t)}})),$ne=z((()=>{"use strict";var e=Si(),t=Rs().filter,i=Yne(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("filter",(function(e){var n=t(r(this),e,arguments.length>1?arguments[1]:void 0);return i(this,n)}))})),Zne=z((()=>{"use strict";var e=Si(),t=Rs().find,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("find",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Qne=z((()=>{"use strict";var e=Si(),t=Rs().findIndex,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("findIndex",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),tse=z((()=>{"use strict";var e=Si(),t=S1().findLast,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("findLast",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),ise=z((()=>{"use strict";var e=Si(),t=S1().findLastIndex,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("findLastIndex",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),sse=z((()=>{"use strict";var e=Si(),t=Rs().forEach,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("forEach",(function(e){t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),ase=z((()=>{"use strict";var e=WR();(0,Si().exportTypedArrayStaticMethod)("from",u5(),e)})),lse=z((()=>{"use strict";var e=Si(),t=lv().includes,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("includes",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),use=z((()=>{"use strict";var e=Si(),t=lv().indexOf,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("indexOf",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),mse=z((()=>{"use strict";var e=rr(),t=Mt(),i=Bt(),r=Si(),n=C1(),s=fi()("iterator"),a=e.Uint8Array,o=i(n.values),l=i(n.keys),h=i(n.entries),u=r.aTypedArray,c=r.exportTypedArrayMethod,p=a&&a.prototype,d=!t((function(){p[s].call([1])})),f=!!p&&p.values&&p[s]===p.values&&"values"===p.values.name,m=function(){return o(u(this))};c("entries",(function(){return h(u(this))}),d),c("keys",(function(){return l(u(this))}),d),c("values",m,d||!f,{name:"values"}),c(s,m,d||!f,{name:"values"})})),vse=z((()=>{"use strict";var e=Si(),t=Bt(),i=e.aTypedArray,r=e.exportTypedArrayMethod,n=t([].join);r("join",(function(e){return n(i(this),e)}))})),Tse=z((()=>{"use strict";var e=Si(),t=Co(),i=FN(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("lastIndexOf",(function(e){var n=arguments.length;return t(i,r(this),n>1?[e,arguments[1]]:[e])}))})),bse=z((()=>{"use strict";var e=Si(),t=Rs().map,i=ub(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("map",(function(e){return t(r(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(i(e))(t)}))}))})),Ise=z((()=>{"use strict";var e=Si(),t=WR(),i=e.aTypedArrayConstructor;(0,e.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,r=new(i(this))(t);t>e;)r[e]=arguments[e++];return r}),t)})),Sse=z((()=>{"use strict";var e=Si(),t=A1().left,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("reduce",(function(e){var r=arguments.length;return t(i(this),e,r,r>1?arguments[1]:void 0)}))})),Rse=z((()=>{"use strict";var e=Si(),t=A1().right,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("reduceRight",(function(e){var r=arguments.length;return t(i(this),e,r,r>1?arguments[1]:void 0)}))})),Dse=z((()=>{"use strict";var e=Si(),t=e.aTypedArray,i=e.exportTypedArrayMethod,r=Math.floor;i("reverse",(function(){for(var e,i=this,n=t(i).length,s=r(n/2),a=0;a{"use strict";var e=rr(),t=si(),i=Si(),r=cn(),n=l5(),s=Hi(),a=Mt(),o=e.RangeError,l=e.Int8Array,h=l&&l.prototype,u=h&&h.set,c=i.aTypedArray,p=i.exportTypedArrayMethod,d=!a((function(){var e=new Uint8ClampedArray(2);return t(u,e,{length:1,0:3},1),3!==e[1]})),f=d&&i.NATIVE_ARRAY_BUFFER_VIEWS&&a((function(){var e=new l(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));p("set",(function(e){c(this);var i=n(arguments.length>1?arguments[1]:void 0,1),a=s(e);if(d)return t(u,this,a,i);var l=this.length,h=r(a),p=0;if(h+i>l)throw o("Wrong length");for(;p{"use strict";var e=Si(),t=ub(),i=Mt(),r=Pd(),n=e.aTypedArray;(0,e.exportTypedArrayMethod)("slice",(function(e,i){for(var s=r(n(this),e,i),a=t(this),o=0,l=s.length,h=new a(l);l>o;)h[o]=s[o++];return h}),i((function(){new Int8Array(1).slice()})))})),Bse=z((()=>{"use strict";var e=Si(),t=Rs().some,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("some",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Wse=z((()=>{"use strict";var e=rr(),t=Yh(),i=Mt(),r=ms(),n=qw(),s=Si(),a=BN(),o=kN(),l=xu(),h=Yw(),u=s.aTypedArray,c=s.exportTypedArrayMethod,p=e.Uint16Array,d=p&&t(p.prototype.sort),f=!(!d||i((function(){d(new p(2),null)}))&&i((function(){d(new p(2),{})}))),m=!!d&&!i((function(){if(l)return l<74;if(a)return a<67;if(o)return!0;if(h)return h<602;var e,t,i=new p(516),r=Array(516);for(e=0;e<516;e++)t=e%4,i[e]=515-e,r[e]=e-2*t+3;for(d(i,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(i[e]!==r[e])return!0}));c("sort",(function(e){return void 0!==e&&r(e),m?d(this,e):n(u(this),(t=e,function(e,i){return void 0!==t?+t(e,i)||0:i!=i?-1:e!=e?1:0===e&&0===i?1/e>0&&1/i<0?1:-1:e>i}));var t}),!m||f)})),Xse=z((()=>{"use strict";var e=Si(),t=qa(),i=_u(),r=ub(),n=e.aTypedArray;(0,e.exportTypedArrayMethod)("subarray",(function(e,s){var a=n(this),o=a.length,l=i(e,o);return new(r(a))(a.buffer,a.byteOffset+l*a.BYTES_PER_ELEMENT,t((void 0===s?o:i(s,o))-l))}))})),Qse=z((()=>{"use strict";var e=rr(),t=Co(),i=Si(),r=Mt(),n=Pd(),s=e.Int8Array,a=i.aTypedArray,o=i.exportTypedArrayMethod,l=[].toLocaleString,h=!!s&&r((function(){l.call(new s(1))}));o("toLocaleString",(function(){return t(l,h?n(a(this)):a(this),n(arguments))}),r((function(){return[1,2].toLocaleString()!=new s([1,2]).toLocaleString()}))||!r((function(){s.prototype.toLocaleString.call([1,2])})))})),tae=z((()=>{"use strict";var e=Si().exportTypedArrayMethod,t=Mt(),i=rr(),r=Bt(),n=i.Uint8Array,s=n&&n.prototype||{},a=[].toString,o=r([].join);t((function(){a.call({})}))&&(a=function(){return o(this)});var l=s.toString!=a;e("toString",a,l)})),aae=z((()=>{"use strict";var e=He(),t=Bt(),i=mi(),r=String.fromCharCode,n=t("".charAt),s=t(/./.exec),a=t("".slice),o=/^[\da-f]{2}$/i,l=/^[\da-f]{4}$/i;e({global:!0},{unescape:function(e){for(var t,h,u=i(e),c="",p=u.length,d=0;d{"use strict";var i=Bt(),r=Ev(),n=Gd().getWeakData,s=yc(),a=qr(),o=ga(),l=ai(),h=vc(),u=Rs(),c=_i(),p=us(),d=p.set,f=p.getterFor,m=u.find,g=u.findIndex,y=i([].splice),v=0,T=function(e){return e.frozen||(e.frozen=new x)},x=function(){this.entries=[]},b=function(e,t){return m(e.entries,(function(e){return e[0]===t}))};x.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var i=b(this,e);i?i[1]=t:this.entries.push([e,t])},delete:function(e){var t=g(this.entries,(function(t){return t[0]===e}));return~t&&y(this.entries,t,1),!!~t}},t.exports={getConstructor:function(e,t,i,u){var p=e((function(e,r){s(e,m),d(e,{type:t,id:v++,frozen:void 0}),o(r)||h(r,e[u],{that:e,AS_ENTRIES:i})})),m=p.prototype,g=f(t),y=function(e,t,i){var r=g(e),s=n(a(t),!0);return!0===s?T(r).set(t,i):s[r.id]=i,e};return r(m,{delete:function(e){var t=g(this);if(!l(e))return!1;var i=n(e);return!0===i?T(t).delete(e):i&&c(i,t.id)&&delete i[t.id]},has:function(e){var t=g(this);if(!l(e))return!1;var i=n(e);return!0===i?T(t).has(e):i&&c(i,t.id)}}),r(m,i?{get:function(e){var t=g(this);if(l(e)){var i=n(e);return!0===i?T(t).get(e):i?i[t.id]:void 0}},set:function(e,t){return y(this,e,t)}}:{add:function(e){return y(this,e,!0)}}),p}}})),xae=z((()=>{"use strict";var e,t,i,r,n=Gm(),s=rr(),a=Bt(),o=Ev(),l=Gd(),h=F1(),u=O5(),c=ai(),p=us().enforce,d=Mt(),f=w2(),m=Object,g=Array.isArray,y=m.isExtensible,v=m.isFrozen,T=m.isSealed,x=m.freeze,b=m.seal,_={},E={},w=!s.ActiveXObject&&"ActiveXObject"in s,S=function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},I=h("WeakMap",S,u),M=I.prototype,A=a(M.set);f&&(w?(e=u.getConstructor(S,"WeakMap",!0),l.enable(),t=a(M.delete),i=a(M.has),r=a(M.get),o(M,{delete:function(i){if(c(i)&&!y(i)){var r=p(this);return r.frozen||(r.frozen=new e),t(this,i)||r.frozen.delete(i)}return t(this,i)},has:function(t){if(c(t)&&!y(t)){var r=p(this);return r.frozen||(r.frozen=new e),i(this,t)||r.frozen.has(t)}return i(this,t)},get:function(t){if(c(t)&&!y(t)){var n=p(this);return n.frozen||(n.frozen=new e),i(this,t)?r(this,t):n.frozen.get(t)}return r(this,t)},set:function(t,r){if(c(t)&&!y(t)){var n=p(this);n.frozen||(n.frozen=new e),i(this,t)?A(this,t,r):n.frozen.set(t,r)}else A(this,t,r);return this}})):n&&d((function(){var e=x([]);return A(new I,e,1),!v(e)}))&&o(M,{set:function(e,t){var i;return g(e)&&(v(e)?i=_:T(e)&&(i=E)),A(this,e,t),i==_&&x(e),i==E&&b(e),this}}))})),Iae=z((()=>{xae()})),_ae=z((()=>{"use strict";F1()("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),O5())})),Sae=z((()=>{_ae()})),L5=z(((e,t)=>{var i,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n={};for(i=0;i<66;i++)n[r.charAt(i)]=i;t.exports={itoc:r,ctoi:n}})),Nae=z((()=>{var e=He(),t=In(),i=Bt(),r=Mt(),n=mi(),s=_i(),a=ip(),o=L5().ctoi,l=/[^\d+/a-z]/i,h=/[\t\n\f\r ]+/g,u=/[=]+$/,c=t("atob"),p=String.fromCharCode,d=i("".charAt),f=i("".replace),m=i(l.exec),g=r((function(){return""!==c(" ")})),y=!r((function(){c("a")})),v=!g&&!y&&!r((function(){c()})),T=!g&&!y&&1!==c.length;e({global:!0,enumerable:!0,forced:g||y||v||T},{atob:function(e){if(a(arguments.length,1),v||T)return c(e);var i,r,g=f(n(e),h,""),y="",x=0,b=0;if(g.length%4==0&&(g=f(g,u,"")),g.length%4==1||m(l,g))throw new(t("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;i=d(g,x++);)s(o,i)&&(r=b%4?64*r+o[i]:o[i],b++%4&&(y+=p(255&r>>(-2*b&6))));return y}})})),zae=z((()=>{var e=He(),t=In(),i=Bt(),r=Mt(),n=mi(),s=ip(),a=L5().itoc,o=t("btoa"),l=i("".charAt),h=i("".charCodeAt),u=!!o&&!r((function(){o()})),c=!!o&&r((function(){return"bnVsbA=="!==o(null)})),p=!!o&&1!==o.length;e({global:!0,enumerable:!0,forced:u||c||p},{btoa:function(e){if(s(arguments.length,1),u||c||p)return o(n(e));for(var i,r,d=n(e),f="",m=0,g=a;l(d,m)||(g="=",m%1);){if((r=h(d,m+=3/4))>255)throw new(t("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");f+=l(g,63&(i=i<<8|r)>>8-m%1*8)}return f}})})),G5=z(((e,t)=>{t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}})),z5=z(((e,t)=>{var i=l1()("span").classList,r=i&&i.constructor&&i.constructor.prototype;t.exports=r===Object.prototype?void 0:r})),Kae=z((()=>{var e,t=rr(),i=G5(),r=z5(),n=SN(),s=ya(),a=function(e){if(e&&e.forEach!==n)try{s(e,"forEach",n)}catch(t){e.forEach=n}};for(e in i)i[e]&&a(t[e]&&t[e].prototype);a(r)})),roe=z((()=>{var e,t=rr(),i=G5(),r=z5(),n=C1(),s=ya(),a=fi(),o=a("iterator"),l=a("toStringTag"),h=n.values,u=function(e,t){if(e){if(e[o]!==h)try{s(e,o,h)}catch(t){e[o]=h}if(e[l]||s(e,l,t),i[t])for(var r in n)if(e[r]!==n[r])try{s(e,r,n[r])}catch(t){e[r]=n[r]}}};for(e in i)u(t[e]&&t[e].prototype,e);u(r,"DOMTokenList")})),noe=z(((e,t)=>{var i=Mu();t.exports=function(e){try{if(i)return Function('return require("'+e+'")')()}catch(e){}}})),X5=z(((e,t)=>{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}}})),goe=z((()=>{"use strict";var e=He(),t=noe(),i=In(),r=Mt(),n=Ya(),s=Mo(),a=ji().f,o=Cn(),l=Vd(),h=_i(),u=yc(),c=qr(),p=pN(),d=mv(),f=X5(),m=b1(),g=us(),y=Ar(),v=Gn(),T="DOMException",x="DATA_CLONE_ERR",b=i("Error"),_=i(T)||function(){try{(new(i("MessageChannel")||t("worker_threads").MessageChannel)).port1.postMessage(new WeakMap)}catch(e){if(e.name==x&&25==e.code)return e.constructor}}(),E=_&&_.prototype,w=b.prototype,S=g.set,I=g.getterFor(T),M="stack"in b(T),A=function(e){return h(f,e)&&f[e].m?f[e].c:0},D=function(){u(this,O);var e=arguments.length,t=d(e<1?void 0:arguments[0]),i=d(e<2?void 0:arguments[1],"Error"),r=A(i);if(S(this,{type:T,name:i,message:t,code:r}),y||(this.name=i,this.message=t,this.code=r),M){var n=b(t);n.name=T,a(this,"stack",s(1,m(n.stack,1)))}},O=D.prototype=n(w),R=function(e){return{enumerable:!0,configurable:!0,get:e}},C=function(e){return R((function(){return I(this)[e]}))};y&&(l(O,"code",C("code")),l(O,"message",C("message")),l(O,"name",C("name"))),a(O,"constructor",s(1,D));var N=r((function(){return!(new _ instanceof b)})),P=N||r((function(){return w.toString!==p||"2: 1"!==String(new _(1,2))})),L=N||r((function(){return 25!==new _(1,"DataCloneError").code})),F=N||25!==_[x]||25!==E[x],U=v?P||L||F:N;e({global:!0,constructor:!0,forced:U},{DOMException:U?D:_});var k,B,H,G,z=i(T),V=z.prototype;for(G in P&&(v||_===z)&&o(V,"toString",p),L&&y&&_===z&&l(V,"code",R((function(){return A(c(this).name)}))),f)h(f,G)&&(B=(k=f[G]).s,H=s(6,k.c),h(z,B)||a(z,B,H),h(V,B)||a(V,B,H))})),Ioe=z((()=>{"use strict";var e=He(),t=rr(),i=In(),r=Mo(),n=ji().f,s=_i(),a=yc(),o=Lm(),l=mv(),h=X5(),u=b1(),c=Ar(),p=Gn(),d="DOMException",f=i("Error"),m=i(d),g=function(){a(this,y);var e=arguments.length,t=l(e<1?void 0:arguments[0]),i=l(e<2?void 0:arguments[1],"Error"),s=new m(t,i),h=f(t);return h.name=d,n(s,"stack",r(1,u(h.stack,1))),o(s,this,g),s},y=g.prototype=m.prototype,v="stack"in f(d),T="stack"in new m(1,2),x=m&&c&&Object.getOwnPropertyDescriptor(t,d),b=!(!x||x.writable&&x.configurable),_=v&&!b&&!T;e({global:!0,constructor:!0,forced:p||_},{DOMException:_?g:m});var E,w,S,I=i(d),M=I.prototype;if(M.constructor!==I)for(S in p||n(M,"constructor",r(1,I)),h)s(h,S)&&(s(I,w=(E=h[S]).s)||n(I,w,r(6,E.c)))})),Soe=z((()=>{var e=In(),t="DOMException";Xa()(e(t),t)})),Roe=z((()=>{var e=He(),t=rr(),i=X1().clear;e({global:!0,bind:!0,enumerable:!0,forced:t.clearImmediate!==i},{clearImmediate:i})})),Doe=z(((e,t)=>{t.exports="function"==typeof Bun&&Bun&&"string"==typeof Bun.version})),gM=z(((e,t)=>{"use strict";var i,r=rr(),n=Co(),s=Ei(),a=Doe(),o=bu(),l=Pd(),h=ip(),u=r.Function,c=/MSIE .\./.test(o)||a&&((i=r.Bun.version.split(".")).length<3||0==i[0]&&(i[1]<3||3==i[1]&&0==i[2]));t.exports=function(e,t){var i=t?2:1;return c?function(r,a){var o=h(arguments.length,1)>i,c=s(r)?r:u(r),p=o?l(arguments,i):[],d=o?function(){n(c,this,p)}:c;return t?e(d,a):e(d)}:e}})),Loe=z((()=>{var e=He(),t=rr(),i=X1().set,r=gM(),n=t.setImmediate?r(i,!1):i;e({global:!0,bind:!0,enumerable:!0,forced:t.setImmediate!==n},{setImmediate:n})})),Foe=z((()=>{Roe(),Loe()})),Hoe=z((()=>{var e=He(),t=rr(),i=aF(),r=ms(),n=ip(),s=Mu(),a=t.process;e({global:!0,enumerable:!0,dontCallGetSet:!0},{queueMicrotask:function(e){n(arguments.length,1),r(e);var t=s&&a.domain;i(t?t.bind(e):e)}})})),Boe=z((()=>{"use strict";var e,t=He(),i=rr(),r=Vd(),n=Ar(),s=TypeError,a=Object.defineProperty,o=i.self!==i;try{n?(e=Object.getOwnPropertyDescriptor(i,"self"),(o||!e||!e.get||!e.enumerable)&&r(i,"self",{get:function(){return i},set:function(e){if(this!==i)throw s("Illegal invocation");a(i,"self",{value:e,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})):t({global:!0,simple:!0,forced:o},{self:i})}catch(e){}})),Goe=z(((e,t)=>{var i=Bt(),r=Map.prototype;t.exports={Map:Map,set:i(r.set),get:i(r.get),has:i(r.has),remove:i(r.delete),proto:r}})),zoe=z(((e,t)=>{var i=Bt(),r=Set.prototype;t.exports={Set:Set,add:i(r.add),has:i(r.has),remove:i(r.delete),proto:r,$has:r.has,$keys:r.keys}})),Qoe=z((()=>{var e,t=Gn(),i=He(),r=rr(),n=In(),s=Bt(),a=Mt(),o=Mm(),l=Ei(),h=Om(),u=ga(),c=ai(),p=Dd(),d=vc(),f=qr(),m=mc(),g=_i(),y=Su(),v=ya(),T=cn(),x=ip(),b=Uv(),_=Goe(),E=zoe(),w=Cw(),S=xu(),I=oF(),M=_R(),A=Mu(),D=r.Object,O=r.Array,R=r.Date,C=r.Error,N=r.EvalError,P=r.RangeError,L=r.ReferenceError,F=r.SyntaxError,U=r.TypeError,k=r.URIError,B=r.PerformanceMark,H=r.WebAssembly,G=H&&H.CompileError||C,z=H&&H.LinkError||C,V=H&&H.RuntimeError||C,j=n("DOMException"),W=_.Map,Y=_.has,X=_.get,q=_.set,Z=E.Set,K=E.add,J=n("Object","keys"),$=s([].push),Q=s((!0).valueOf),ee=s(1..valueOf),te=s("".valueOf),ie=s(R.prototype.getTime),re=o("structuredClone"),ne="DataCloneError",se="Transferring",ae=function(e){return!a((function(){var t=new r.Set([7]),i=e(t),n=e(D(7));return i==t||!i.has(7)||"object"!=typeof n||7!=n}))&&e},oe=function(e,t){return!a((function(){var i=new t,r=e({a:i,b:i});return!(r&&r.a===r.b&&r.a instanceof t&&r.a.stack===i.stack)}))},le=r.structuredClone,he=t||!oe(le,C)||!oe(le,j)||(e=le,!!a((function(){var t=e(new r.AggregateError([1],re,{cause:3}));return"AggregateError"!=t.name||1!=t.errors[0]||t.message!=re||3!=t.cause}))),ue=!le&&ae((function(e){return new B(re,{detail:e}).detail})),ce=ae(le)||ue,pe=function(e){throw new j("Uncloneable type: "+e,ne)},de=function(e,t){throw new j((t||"Cloning")+" of "+e+" cannot be properly polyfilled in this engine",ne)},fe=function(e,t){if(p(e)&&pe("Symbol"),!c(e))return e;if(t){if(Y(t,e))return X(t,e)}else t=new W;var i,s,a,o,h,u,d,f,x,_,E=m(e),S=!1;switch(E){case"Array":a=O(T(e)),S=!0;break;case"Object":a={},S=!0;break;case"Map":a=new W,S=!0;break;case"Set":a=new Z,S=!0;break;case"RegExp":a=new RegExp(e.source,b(e));break;case"Error":switch(s=e.name){case"AggregateError":a=n("AggregateError")([]);break;case"EvalError":a=N();break;case"RangeError":a=P();break;case"ReferenceError":a=L();break;case"SyntaxError":a=F();break;case"TypeError":a=U();break;case"URIError":a=k();break;case"CompileError":a=G();break;case"LinkError":a=z();break;case"RuntimeError":a=V();break;default:a=C()}S=!0;break;case"DOMException":a=new j(e.message,e.name),S=!0;break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":i=r[E],c(i)||de(E),a=new i(fe(e.buffer,t),e.byteOffset,"DataView"===E?e.byteLength:e.length);break;case"DOMQuad":try{a=new DOMQuad(fe(e.p1,t),fe(e.p2,t),fe(e.p3,t),fe(e.p4,t))}catch(t){ce?a=ce(e):de(E)}break;case"FileList":if(o=function(){var e;try{e=new r.DataTransfer}catch(t){try{e=new r.ClipboardEvent("").clipboardData}catch(e){}}return e&&e.items&&e.files?e:null}(),o){for(h=0,u=T(e);h92||A&&S>94||I&&S>97)return!1;var e=new ArrayBuffer(8),t=le(e,{transfer:[e]});return 0!=e.byteLength||8!=t.byteLength})),ge=function(e,t){if(!c(e))throw U("Transfer option cannot be converted to a sequence");var i=[];d(e,(function(e){$(i,f(e))}));var n,s,a,o,u,p,g=0,y=T(i);if(me)for(o=le(i,{transfer:i});g1&&!u(arguments[1])?f(arguments[1]):void 0,r=i?i.transfer:void 0;return void 0!==r&&(t=new W,ge(r,t)),fe(e,t)}})})),rle=z((()=>{var e=He(),t=rr(),i=gM()(t.setInterval,!0);e({global:!0,bind:!0,forced:t.setInterval!==i},{setInterval:i})})),sle=z((()=>{var e=He(),t=rr(),i=gM()(t.setTimeout,!0);e({global:!0,bind:!0,forced:t.setTimeout!==i},{setTimeout:i})})),ale=z((()=>{rle(),sle()})),I6=z(((e,t)=>{var i=Mt(),r=fi(),n=Gn(),s=r("iterator");t.exports=!i((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,i="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),i+=r+e})),n&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==i||"x"!==new URL("http://x",void 0).host}))})),gle=z(((e,t)=>{"use strict";var i=Bt(),r=2147483647,n=/[^\0-\u007E]/,s=/[.\u3002\uFF0E\uFF61]/g,a="Overflow: input needs wider integers to process",o=RangeError,l=i(s.exec),h=Math.floor,u=String.fromCharCode,c=i("".charCodeAt),p=i([].join),d=i([].push),f=i("".replace),m=i("".split),g=i("".toLowerCase),y=function(e){return e+22+75*(e<26)},v=function(e,t,i){var r=0;for(e=i?h(e/700):e>>1,e+=h(e/t);e>455;)e=h(e/35),r+=36;return h(r+36*e/(e+38))},T=function(e){var t=[];e=function(e){for(var t=[],i=0,r=e.length;i=55296&&n<=56319&&i=l&&nh((r-f)/b))throw o(a);for(f+=(x-l)*b,l=x,i=0;ir)throw o(a);if(n==l){for(var _=f,E=36;;){var w=E<=m?1:E>=m+26?26:E-m;if(_{"use strict";C1();var i=He(),r=rr(),n=si(),s=Bt(),a=Ar(),o=I6(),l=Cn(),h=Ev(),u=Xa(),c=kw(),p=us(),d=yc(),f=Ei(),m=_i(),g=pl(),y=mc(),v=qr(),T=ai(),x=mi(),b=Ya(),_=Mo(),E=x1(),w=vv(),S=ip(),I=fi(),M=qw(),A=I("iterator"),D="URLSearchParams",O=D+"Iterator",R=p.set,C=p.getterFor(D),N=p.getterFor(O),P=Object.getOwnPropertyDescriptor,L=function(e){if(!a)return r[e];var t=P(r,e);return t&&t.value},F=L("fetch"),U=L("Request"),k=L("Headers"),B=U&&U.prototype,H=k&&k.prototype,G=r.RegExp,z=r.TypeError,V=r.decodeURIComponent,j=r.encodeURIComponent,W=s("".charAt),Y=s([].join),X=s([].push),q=s("".replace),Z=s([].shift),K=s([].splice),J=s("".split),$=s("".slice),Q=/\+/g,ee=Array(4),te=function(e){return ee[e-1]||(ee[e-1]=G("((?:%[\\da-f]{2}){"+e+"})","gi"))},ie=function(e){try{return V(e)}catch(t){return e}},re=function(e){var t=q(e,Q," "),i=4;try{return V(t)}catch(e){for(;i;)t=q(t,te(i--),ie);return t}},ne=/[!'()~]|%20/g,se={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ae=function(e){return se[e]},oe=function(e){return q(j(e),ne,ae)},le=c((function(e,t){R(this,{type:O,iterator:E(C(e).entries),kind:t})}),"Iterator",(function(){var e=N(this),t=e.kind,i=e.iterator.next(),r=i.value;return i.done||(i.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),i}),!0),he=function(e){this.entries=[],this.url=null,void 0!==e&&(T(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===W(e,0)?$(e,1):e:x(e)))};he.prototype={type:D,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,i,r,s,a,o,l,h=w(e);if(h)for(i=(t=E(e,h)).next;!(r=n(i,t)).done;){if(a=(s=E(v(r.value))).next,(o=n(a,s)).done||(l=n(a,s)).done||!n(a,s).done)throw z("Expected sequence with length 2");X(this.entries,{key:x(o.value),value:x(l.value)})}else for(var u in e)m(e,u)&&X(this.entries,{key:u,value:x(e[u])})},parseQuery:function(e){if(e)for(var t,i,r=J(e,"&"),n=0;n0?arguments[0]:void 0;R(this,new he(e))},me=fe.prototype;h(me,{append:function(e,t){S(arguments.length,2);var i=C(this);X(i.entries,{key:x(e),value:x(t)}),i.updateURL()},delete:function(e){S(arguments.length,1);for(var t=C(this),i=t.entries,r=x(e),n=0;nt.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,i=C(this).entries,r=g(e,arguments.length>1?arguments[1]:void 0),n=0;n1?pe(arguments[1]):{})}}),f(U)&&(de=function(e){return d(this,B),new U(e,arguments.length>1?pe(arguments[1]):{})},B.constructor=de,de.prototype=B,i({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:de}))),t.exports={URLSearchParams:fe,getState:C}})),tce=z((()=>{"use strict";VF();var e,t=He(),i=Ar(),r=I6(),n=rr(),s=pl(),a=Bt(),o=Cn(),l=Vd(),h=yc(),u=_i(),c=BL(),p=wN(),d=hv(),f=tb().codeAt,m=gle(),g=mi(),y=Xa(),v=ip(),T=H6(),x=us(),b=x.set,_=x.getterFor("URL"),E=T.URLSearchParams,w=T.getState,S=n.URL,I=n.TypeError,M=n.parseInt,A=Math.floor,D=Math.pow,O=a("".charAt),R=a(/./.exec),C=a([].join),N=a(1..toString),P=a([].pop),L=a([].push),F=a("".replace),U=a([].shift),k=a("".split),B=a("".slice),H=a("".toLowerCase),G=a([].unshift),z="Invalid scheme",V="Invalid host",j="Invalid port",W=/[a-z]/i,Y=/[\d+-.a-z]/i,X=/\d/,q=/^0x/i,Z=/^[0-7]+$/,K=/^\d+$/,J=/^[\da-f]+$/i,$=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Q=/[\0\t\n\r #/:<>?@[\\\]^|]/,ee=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,te=/[\t\n\r]/g,ie=function(e){var t,i,r,n;if("number"==typeof e){for(t=[],i=0;i<4;i++)G(t,e%256),e=A(e/256);return C(t,".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,i=1,r=null,n=0,s=0;s<8;s++)0!==e[s]?(n>i&&(t=r,i=n),r=null,n=0):(null===r&&(r=s),++n);return n>i&&(t=r,i=n),t}(e),i=0;i<8;i++)n&&0===e[i]||(n&&(n=!1),r===i?(t+=i?":":"::",n=!0):(t+=N(e[i],16),i<7&&(t+=":")));return"["+t+"]"}return e},re={},ne=c({},re,{" ":1,'"':1,"<":1,">":1,"`":1}),se=c({},ne,{"#":1,"?":1,"{":1,"}":1}),ae=c({},se,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),oe=function(e,t){var i=f(e,0);return i>32&&i<127&&!u(t,e)?e:encodeURIComponent(e)},le={ftp:21,file:null,http:80,https:443,ws:80,wss:443},he=function(e,t){var i;return 2==e.length&&R(W,O(e,0))&&(":"==(i=O(e,1))||!t&&"|"==i)},ue=function(e){var t;return e.length>1&&he(B(e,0,2))&&(2==e.length||"/"===(t=O(e,2))||"\\"===t||"?"===t||"#"===t)},ce=function(e){return"."===e||"%2e"===H(e)},pe=function(e){return".."===(e=H(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},de={},fe={},me={},ge={},ye={},ve={},Te={},xe={},be={},_e={},Ee={},we={},Se={},Ie={},Me={},Ae={},De={},Oe={},Re={},Ce={},Ne={},Pe=function(e,t,i){var r,n,s,a=g(e);if(t){if(n=this.parse(a))throw I(n);this.searchParams=null}else{if(void 0!==i&&(r=new Pe(i,!0)),n=this.parse(a,null,r))throw I(n);(s=w(new E)).bindURL(this),this.searchParams=s}};Pe.prototype={type:"URL",parse:function(t,i,r){var n,s,a,o,l=this,h=i||de,c=0,f="",m=!1,y=!1,v=!1;for(t=g(t),i||(l.scheme="",l.username="",l.password="",l.host=null,l.port=null,l.path=[],l.query=null,l.fragment=null,l.cannotBeABaseURL=!1,t=F(t,ee,"")),t=F(t,te,""),n=p(t);c<=n.length;){switch(s=n[c],h){case de:if(!s||!R(W,s)){if(i)return z;h=me;continue}f+=H(s),h=fe;break;case fe:if(s&&(R(Y,s)||"+"==s||"-"==s||"."==s))f+=H(s);else{if(":"!=s){if(i)return z;f="",h=me,c=0;continue}if(i&&(l.isSpecial()!=u(le,f)||"file"==f&&(l.includesCredentials()||null!==l.port)||"file"==l.scheme&&!l.host))return;if(l.scheme=f,i)return void(l.isSpecial()&&le[l.scheme]==l.port&&(l.port=null));f="","file"==l.scheme?h=Ie:l.isSpecial()&&r&&r.scheme==l.scheme?h=ge:l.isSpecial()?h=xe:"/"==n[c+1]?(h=ye,c++):(l.cannotBeABaseURL=!0,L(l.path,""),h=Re)}break;case me:if(!r||r.cannotBeABaseURL&&"#"!=s)return z;if(r.cannotBeABaseURL&&"#"==s){l.scheme=r.scheme,l.path=d(r.path),l.query=r.query,l.fragment="",l.cannotBeABaseURL=!0,h=Ne;break}h="file"==r.scheme?Ie:ve;continue;case ge:if("/"!=s||"/"!=n[c+1]){h=ve;continue}h=be,c++;break;case ye:if("/"==s){h=_e;break}h=Oe;continue;case ve:if(l.scheme=r.scheme,s==e)l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=d(r.path),l.query=r.query;else if("/"==s||"\\"==s&&l.isSpecial())h=Te;else if("?"==s)l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=d(r.path),l.query="",h=Ce;else{if("#"!=s){l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=d(r.path),l.path.length--,h=Oe;continue}l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=d(r.path),l.query=r.query,l.fragment="",h=Ne}break;case Te:if(!l.isSpecial()||"/"!=s&&"\\"!=s){if("/"!=s){l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,h=Oe;continue}h=_e}else h=be;break;case xe:if(h=be,"/"!=s||"/"!=O(f,c+1))continue;c++;break;case be:if("/"!=s&&"\\"!=s){h=_e;continue}break;case _e:if("@"==s){m&&(f="%40"+f),m=!0,a=p(f);for(var T=0;T65535)return j;l.port=l.isSpecial()&&_===le[l.scheme]?null:_,f=""}if(i)return;h=De;continue}return j}f+=s;break;case Ie:if(l.scheme="file","/"==s||"\\"==s)h=Me;else{if(!r||"file"!=r.scheme){h=Oe;continue}if(s==e)l.host=r.host,l.path=d(r.path),l.query=r.query;else if("?"==s)l.host=r.host,l.path=d(r.path),l.query="",h=Ce;else{if("#"!=s){ue(C(d(n,c),""))||(l.host=r.host,l.path=d(r.path),l.shortenPath()),h=Oe;continue}l.host=r.host,l.path=d(r.path),l.query=r.query,l.fragment="",h=Ne}}break;case Me:if("/"==s||"\\"==s){h=Ae;break}r&&"file"==r.scheme&&!ue(C(d(n,c),""))&&(he(r.path[0],!0)?L(l.path,r.path[0]):l.host=r.host),h=Oe;continue;case Ae:if(s==e||"/"==s||"\\"==s||"?"==s||"#"==s){if(!i&&he(f))h=Oe;else if(""==f){if(l.host="",i)return;h=De}else{if(o=l.parseHost(f))return o;if("localhost"==l.host&&(l.host=""),i)return;f="",h=De}continue}f+=s;break;case De:if(l.isSpecial()){if(h=Oe,"/"!=s&&"\\"!=s)continue}else if(i||"?"!=s)if(i||"#"!=s){if(s!=e&&(h=Oe,"/"!=s))continue}else l.fragment="",h=Ne;else l.query="",h=Ce;break;case Oe:if(s==e||"/"==s||"\\"==s&&l.isSpecial()||!i&&("?"==s||"#"==s)){if(pe(f)?(l.shortenPath(),"/"!=s&&!("\\"==s&&l.isSpecial())&&L(l.path,"")):ce(f)?"/"!=s&&!("\\"==s&&l.isSpecial())&&L(l.path,""):("file"==l.scheme&&!l.path.length&&he(f)&&(l.host&&(l.host=""),f=O(f,0)+":"),L(l.path,f)),f="","file"==l.scheme&&(s==e||"?"==s||"#"==s))for(;l.path.length>1&&""===l.path[0];)U(l.path);"?"==s?(l.query="",h=Ce):"#"==s&&(l.fragment="",h=Ne)}else f+=oe(s,se);break;case Re:"?"==s?(l.query="",h=Ce):"#"==s?(l.fragment="",h=Ne):s!=e&&(l.path[0]+=oe(s,re));break;case Ce:i||"#"!=s?s!=e&&("'"==s&&l.isSpecial()?l.query+="%27":l.query+="#"==s?"%23":oe(s,re)):(l.fragment="",h=Ne);break;case Ne:s!=e&&(l.fragment+=oe(s,ne))}c++}},parseHost:function(e){var t,i,r;if("["==O(e,0)){if("]"!=O(e,e.length-1)||(t=function(e){var t,i,r,n,s,a,o,l=[0,0,0,0,0,0,0,0],h=0,u=null,c=0,p=function(){return O(e,c)};if(":"==p()){if(":"!=O(e,1))return;c+=2,u=++h}for(;p();){if(8==h)return;if(":"!=p()){for(t=i=0;i<4&&R(J,p());)t=16*t+M(p(),16),c++,i++;if("."==p()){if(0==i||(c-=i,h>6))return;for(r=0;p();){if(n=null,r>0){if(!("."==p()&&r<4))return;c++}if(!R(X,p()))return;for(;R(X,p());){if(s=M(p(),10),null===n)n=s;else{if(0==n)return;n=10*n+s}if(n>255)return;c++}l[h]=256*l[h]+n,(2==++r||4==r)&&h++}if(4!=r)return;break}if(":"==p()){if(c++,!p())return}else if(p())return;l[h++]=t}else{if(null!==u)return;c++,u=++h}}if(null!==u)for(a=h-u,h=7;0!=h&&a>0;)o=l[h],l[h--]=l[u+a-1],l[u+--a]=o;else if(8!=h)return;return l}(B(e,1,-1)),!t))return V;this.host=t}else if(this.isSpecial()){if(e=m(e),R($,e)||(t=function(e){var t,i,r,n,s,a,o,l=k(e,".");if(l.length&&""==l[l.length-1]&&l.length--,(t=l.length)>4)return e;for(i=[],r=0;r1&&"0"==O(n,0)&&(s=R(q,n)?16:8,n=B(n,8==s?1:2)),""===n)a=0;else{if(!R(10==s?K:8==s?Z:J,n))return e;a=M(n,s)}L(i,a)}for(r=0;r=D(256,5-t))return null}else if(a>255)return null;for(o=P(i),r=0;r1?arguments[1]:void 0,n=b(t,new Pe(e,!1,r));i||(t.href=n.serialize(),t.origin=n.getOrigin(),t.protocol=n.getProtocol(),t.username=n.getUsername(),t.password=n.getPassword(),t.host=n.getHost(),t.hostname=n.getHostname(),t.port=n.getPort(),t.pathname=n.getPathname(),t.search=n.getSearch(),t.searchParams=n.getSearchParams(),t.hash=n.getHash())},ke=Ue.prototype,Be=function(e,t){return{get:function(){return _(this)[e]()},set:t&&function(e){return _(this)[t](e)},configurable:!0,enumerable:!0}};i&&(l(ke,"href",Be("serialize","setHref")),l(ke,"origin",Be("getOrigin")),l(ke,"protocol",Be("getProtocol","setProtocol")),l(ke,"username",Be("getUsername","setUsername")),l(ke,"password",Be("getPassword","setPassword")),l(ke,"host",Be("getHost","setHost")),l(ke,"hostname",Be("getHostname","setHostname")),l(ke,"port",Be("getPort","setPort")),l(ke,"pathname",Be("getPathname","setPathname")),l(ke,"search",Be("getSearch","setSearch")),l(ke,"searchParams",Be("getSearchParams")),l(ke,"hash",Be("getHash","setHash"))),o(ke,"toJSON",(function(){return _(this).serialize()}),{enumerable:!0}),o(ke,"toString",(function(){return _(this).serialize()}),{enumerable:!0}),S&&(Le=S.createObjectURL,Fe=S.revokeObjectURL,Le&&o(Ue,"createObjectURL",s(Le,S)),Fe&&o(Ue,"revokeObjectURL",s(Fe,S))),y(Ue,"URL"),t({global:!0,constructor:!0,forced:!r,sham:!i},{URL:Ue})})),rce=z((()=>{tce()})),ice=z((()=>{"use strict";var e=He(),t=si();e({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return t(URL.prototype.toString,this)}})})),nce=z((()=>{H6()})),ace=z(((e,t)=>{IW(),CW(),AW(),OW(),PW(),NW(),LW(),FW(),HW(),UW(),BW(),kW(),GW(),VW(),zW(),uq(),mq(),Oq(),Fq(),Uq(),jq(),Xq(),Kq(),Qq(),eY(),rY(),nY(),oY(),lY(),hY(),pY(),mY(),SY(),wY(),MY(),DY(),C1(),KY(),eX(),tX(),iX(),sX(),uX(),pX(),fX(),vX(),yX(),NX(),HX(),UX(),BX(),kX(),GX(),f$(),w$(),L$(),H$(),U$(),k$(),z$(),j$(),eK(),tK(),aK(),uK(),pK(),yK(),bK(),SK(),wK(),iN(),RK(),zK(),qK(),$K(),ZK(),QK(),eZ(),iZ(),sZ(),lZ(),uZ(),pZ(),fZ(),mZ(),gZ(),vZ(),EZ(),IZ(),_Z(),SZ(),FZ(),HZ(),kZ(),VZ(),zZ(),jZ(),WZ(),qZ(),JZ(),aJ(),hJ(),vJ(),EJ(),SJ(),wJ(),DJ(),AJ(),PJ(),NJ(),UJ(),BJ(),kJ(),zJ(),jJ(),WJ(),YJ(),XJ(),KJ(),JJ(),eQ(),rQ(),nQ(),sQ(),aQ(),oQ(),mQ(),gQ(),vQ(),EQ(),bQ(),IQ(),SQ(),Hee(),Uee(),kee(),jee(),Wee(),Jee(),tte(),rte(),ate(),ote(),lte(),cte(),ute(),hte(),pte(),vte(),Tte(),Ete(),Fte(),Ute(),HR(),jte(),qte(),$te(),Jte(),ere(),tre(),sre(),pre(),mre(),vre(),VF(),Cre(),kre(),Vre(),zre(),Yre(),Xre(),eie(),sie(),lie(),fie(),Tie(),bie(),Sie(),Cie(),Lie(),Bie(),kie(),Gie(),Vie(),zie(),jie(),Wie(),qie(),Yie(),Xie(),$ie(),Kie(),Zie(),Sne(),wne(),Rne(),Mne(),Dne(),Cne(),Ane(),One(),Pne(),Lne(),Hne(),Bne(),Gne(),$ne(),Zne(),Qne(),tse(),ise(),sse(),ase(),lse(),use(),mse(),vse(),Tse(),bse(),Ise(),Sse(),Rse(),Dse(),Lse(),Hse(),Bse(),Wse(),Xse(),Qse(),tae(),aae(),Iae(),Sae(),Nae(),zae(),Kae(),roe(),goe(),Ioe(),Soe(),Foe(),Hoe(),Boe(),Qoe(),ale(),rce(),ice(),nce(),t.exports=xw()})),oce=z(((e,t)=>{var i=function(e){"use strict";var t,i=Object.prototype,r=i.hasOwnProperty,n=Object.defineProperty||function(e,t,i){e[t]=i.value},s="function"==typeof Symbol?Symbol:{},a=s.iterator||"@@iterator",o=s.asyncIterator||"@@asyncIterator",l=s.toStringTag||"@@toStringTag";function h(e,t,i){return Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{h({},"")}catch(e){h=function(e,t,i){return e[t]=i}}function u(e,t,i,r){var s=t&&t.prototype instanceof g?t:g,a=Object.create(s.prototype),o=new D(r||[]);return n(a,"_invoke",{value:S(e,i,o)}),a}function c(e,t,i){try{return{type:"normal",arg:e.call(t,i)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var p="suspendedStart",d="executing",f="completed",m={};function g(){}function y(){}function v(){}var T={};h(T,a,(function(){return this}));var x=Object.getPrototypeOf,b=x&&x(x(O([])));b&&b!==i&&r.call(b,a)&&(T=b);var _=v.prototype=g.prototype=Object.create(T);function E(e){["next","throw","return"].forEach((function(t){h(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function i(n,s,a,o){var l=c(e[n],e,s);if("throw"!==l.type){var h=l.arg,u=h.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){i("next",e,a,o)}),(function(e){i("throw",e,a,o)})):t.resolve(u).then((function(e){h.value=e,a(h)}),(function(e){return i("throw",e,a,o)}))}o(l.arg)}var s;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){i(e,r,t,n)}))}return s=s?s.then(n,n):n()}})}function S(e,t,i){var r=p;return function(n,s){if(r===d)throw new Error("Generator is already running");if(r===f){if("throw"===n)throw s;return R()}for(i.method=n,i.arg=s;;){var a=i.delegate;if(a){var o=I(a,i);if(o){if(o===m)continue;return o}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(r===p)throw r=f,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);r=d;var l=c(e,t,i);if("normal"===l.type){if(r=i.done?f:"suspendedYield",l.arg===m)continue;return{value:l.arg,done:i.done}}"throw"===l.type&&(r=f,i.method="throw",i.arg=l.arg)}}}function I(e,i){var r=i.method,n=e.iterator[r];if(n===t)return i.delegate=null,"throw"===r&&e.iterator.return&&(i.method="return",i.arg=t,I(e,i),"throw"===i.method)||"return"!==r&&(i.method="throw",i.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var s=c(n,e.iterator,i.arg);if("throw"===s.type)return i.method="throw",i.arg=s.arg,i.delegate=null,m;var a=s.arg;return a?a.done?(i[e.resultName]=a.value,i.next=e.nextLoc,"return"!==i.method&&(i.method="next",i.arg=t),i.delegate=null,m):a:(i.method="throw",i.arg=new TypeError("iterator result is not an object"),i.delegate=null,m)}function M(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(M,this),this.reset(!0)}function O(e){if(e){var i=e[a];if(i)return i.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,s=function i(){for(;++n=0;--s){var a=this.tryEntries[s],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),h=r.call(a,"finallyLoc");if(l&&h){if(this.prev=0;--i){var n=this.tryEntries[i];if(n.tryLoc<=this.prev&&r.call(n,"finallyLoc")&&this.prev=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),A(i),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var r=i.completion;if("throw"===r.type){var n=r.arg;A(i)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,i,r){return this.delegate={iterator:O(e),resultName:i,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}("object"==typeof t?t.exports:{});try{regeneratorRuntime=i}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=i:Function("r","regeneratorRuntime = r")(i)}})),ope=z(((e,t)=>{!function(e,i){"use strict";"function"==typeof define&&define.amd?define(i):"object"==typeof t&&t.exports?t.exports=i():e.log=i()}(e,(function(){"use strict";var e=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"];function n(e,t){var i=e[t];if("function"==typeof i.bind)return i.bind(e);try{return Function.prototype.bind.call(i,e)}catch(t){return function(){return Function.prototype.apply.apply(i,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function a(r){return"debug"===r&&(r="log"),typeof console!==t&&("trace"===r&&i?s:void 0!==console[r]?n(console,r):void 0!==console.log?n(console,"log"):e)}function o(t,i){for(var n=0;n=0&&i<=a.levels.SILENT))throw"log.setLevel() called with invalid level: "+i;if(s=i,!1!==n&&function(e){var i=(r[e]||"silent").toUpperCase();if(typeof window!==t&&l){try{return void(window.localStorage[l]=i)}catch(e){}try{window.document.cookie=encodeURIComponent(l)+"="+i+";"}catch(e){}}}(i),o.call(a,i,e),typeof console===t&&i{var i,r;i=e,r=function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var i=0;it?1:e0))break;if(null===t.right)break;if(i(e,t.right.key)>0&&(l=t.right,t.right=l.left,l.left=t,null===(t=l).right))break;s.right=t,s=t,t=t.right}}return s.right=t.left,a.left=t.right,t.left=n.right,t.right=n.left,t}function a(e,t,i,n){var a=new r(e,t);if(null===i)return a.left=a.right=null,a;var o=n(e,(i=s(e,i,n)).key);return o<0?(a.left=i.left,a.right=i,i.left=null):o>=0&&(a.right=i.right,a.left=i,i.right=null),a}function o(e,t,i){var r=null,n=null;if(t){var a=i((t=s(e,t,i)).key,e);0===a?(r=t.left,n=t.right):a<0?(n=t.right,t.right=null,r=t):(r=t.left,t.left=null,n=t)}return{left:r,right:n}}function l(e,t,i,r,n){if(e){r(t+(i?"└── ":"├── ")+n(e)+"\n");var s=t+(i?" ":"│ ");e.left&&l(e.left,s,!1,r,n),e.right&&l(e.right,s,!0,r,n)}}var h=function(){function e(e){void 0===e&&(e=n),this._root=null,this._size=0,this._comparator=e}return e.prototype.insert=function(e,t){return this._size++,this._root=a(e,t,this._root,this._comparator)},e.prototype.add=function(e,t){var i=new r(e,t);null===this._root&&(i.left=i.right=null,this._size++,this._root=i);var n=this._comparator,a=s(e,this._root,n),o=n(e,a.key);return 0===o?this._root=a:(o<0?(i.left=a.left,i.right=a,a.left=null):o>0&&(i.right=a.right,i.left=a,a.right=null),this._size++,this._root=i),this._root},e.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},e.prototype._remove=function(e,t,i){var r;return null===t?null:0===i(e,(t=s(e,t,i)).key)?(null===t.left?r=t.right:(r=s(e,t.left,i)).right=t.right,this._size--,r):t},e.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=s(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},e.prototype.findStatic=function(e){for(var t=this._root,i=this._comparator;t;){var r=i(e,t.key);if(0===r)return t;t=r<0?t.left:t.right}return null},e.prototype.find=function(e){return this._root&&(this._root=s(e,this._root,this._comparator),0!==this._comparator(e,this._root.key))?null:this._root},e.prototype.contains=function(e){for(var t=this._root,i=this._comparator;t;){var r=i(e,t.key);if(0===r)return!0;t=r<0?t.left:t.right}return!1},e.prototype.forEach=function(e,t){for(var i=this._root,r=[],n=!1;!n;)null!==i?(r.push(i),i=i.left):0!==r.length?(i=r.pop(),e.call(t,i),i=i.right):n=!0;return this},e.prototype.range=function(e,t,i,r){for(var n=[],s=this._comparator,a=this._root;0!==n.length||a;)if(a)n.push(a),a=a.left;else{if(s((a=n.pop()).key,t)>0)break;if(s(a.key,e)>=0&&i.call(r,a))return this;a=a.right}return this},e.prototype.keys=function(){var e=[];return this.forEach((function(t){var i=t.key;return e.push(i)})),e},e.prototype.values=function(){var e=[];return this.forEach((function(t){var i=t.data;return e.push(i)})),e},e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},e.prototype.minNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.left;)e=e.left;return e},e.prototype.maxNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.right;)e=e.right;return e},e.prototype.at=function(e){for(var t=this._root,i=!1,r=0,n=[];!i;)if(t)n.push(t),t=t.left;else if(n.length>0){if(t=n.pop(),r===e)return t;r++,t=t.right}else i=!0;return null},e.prototype.next=function(e){var t=this._root,i=null;if(e.right){for(i=e.right;i.left;)i=i.left;return i}for(var r=this._comparator;t;){var n=r(e.key,t.key);if(0===n)break;n<0?(i=t,t=t.left):t=t.right}return i},e.prototype.prev=function(e){var t=this._root,i=null;if(null!==e.left){for(i=e.left;i.right;)i=i.right;return i}for(var r=this._comparator;t;){var n=r(e.key,t.key);if(0===n)break;n<0?t=t.left:(i=t,t=t.right)}return i},e.prototype.clear=function(){return this._root=null,this._size=0,this},e.prototype.toList=function(){return function(e){for(var t=e,i=[],n=!1,s=new r(null,null),a=s;!n;)t?(i.push(t),t=t.left):i.length>0?t=(t=a=a.next=i.pop()).right:n=!0;return a.next=null,s.next}(this._root)},e.prototype.load=function(e,t,i){void 0===t&&(t=[]),void 0===i&&(i=!1);var n=e.length,s=this._comparator;if(i&&p(e,t,0,n-1,s),null===this._root)this._root=u(e,t,0,n),this._size=n;else{var a=function(e,t,i){for(var n=new r(null,null),s=n,a=e,o=t;null!==a&&null!==o;)i(a.key,o.key)<0?(s.next=a,a=a.next):(s.next=o,o=o.next),s=s.next;return null!==a?s.next=a:null!==o&&(s.next=o),n.next}(this.toList(),function(e,t){for(var i=new r(null,null),n=i,s=0;s0){var a=i+Math.floor(s/2),o=e[a],l=t[a],h=new r(o,l);return h.left=u(e,t,i,a),h.right=u(e,t,a+1,n),h}return null}function c(e,t,i){var r=i-t;if(r>0){var n=t+Math.floor(r/2),s=c(e,t,n),a=e.head;return a.left=s,e.head=e.head.next,a.right=c(e,n+1,i),a}return null}function p(e,t,i,r,n){if(!(i>=r)){for(var s=e[i+r>>1],a=i-1,o=r+1;;){do{a++}while(n(e[a],s)<0);do{o--}while(n(e[o],s)>0);if(a>=o)break;var l=e[a];e[a]=e[o],e[o]=l,l=t[a],t[a]=t[o],t[o]=l}p(e,t,i,o,n),p(e,t,o+1,r,n)}}var d=function(e,t){return e.ll.x<=t.x&&t.x<=e.ur.x&&e.ll.y<=t.y&&t.y<=e.ur.y},f=function(e,t){if(t.ur.xt.x?1:e.yt.y?1:0}}]),i(t,[{key:"link",value:function(e){if(e.point===this.point)throw new Error("Tried to link already linked events");for(var t=e.point.events,i=0,r=t.length;i=0&&l>=0?ah?-1:0:s<0&&l<0?ah?1:0:ls?1:0}}}]),t}(),O=0,R=function(){function t(i,r,n,s){e(this,t),this.id=++O,this.leftSE=i,i.segment=this,i.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=i,this.rings=n,this.windings=s}return i(t,null,[{key:"compare",value:function(e,t){var i=e.leftSE.point.x,r=t.leftSE.point.x,n=e.rightSE.point.x,s=t.rightSE.point.x;if(sa&&o>l)return-1;var u=e.comparePoint(t.leftSE.point);if(u<0)return 1;if(u>0)return-1;var c=t.comparePoint(e.rightSE.point);return 0!==c?c:-1}if(i>r){if(ao&&a>h)return 1;var p=t.comparePoint(e.leftSE.point);if(0!==p)return p;var d=e.comparePoint(t.rightSE.point);return d<0?1:d>0?-1:1}if(ao)return 1;if(ns){var m=e.comparePoint(t.rightSE.point);if(m<0)return 1;if(m>0)return-1}if(n!==s){var g=l-a,y=n-i,v=h-o,T=s-r;if(g>y&&vT)return-1}return n>s?1:nh?1:e.idt.id?1:0}}]),i(t,[{key:"replaceRightSE",value:function(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:et?e:t}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}},{key:"comparePoint",value:function(e){if(this.isAnEndpoint(e))return 0;var t=this.leftSE.point,i=this.rightSE.point,r=this.vector();if(t.x===i.x)return e.x===t.x?0:e.x0&&o.swapEvents(),D.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(n.checkForConsuming(),s.checkForConsuming()),i}},{key:"swapEvents",value:function(){var e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var t=0,i=this.windings.length;t0){var s=i;i=r,r=s}if(i.prev===r){var a=i;i=r,r=a}for(var o=0,l=r.rings.length;o0))throw new Error("Tried to create degenerate segment at [".concat(e.x,", ").concat(e.y,"]"));n=i,s=e,a=-1}return new t(new D(n,!0),new D(s,!1),[r],[a])}}]),t}(),C=function(){function t(i,r,n){if(e(this,t),!Array.isArray(i)||0===i.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=n,this.segments=[],"number"!=typeof i[0][0]||"number"!=typeof i[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var s=x.round(i[0][0],i[0][1]);this.bbox={ll:{x:s.x,y:s.y},ur:{x:s.x,y:s.y}};for(var a=s,o=1,l=i.length;othis.bbox.ur.x&&(this.bbox.ur.x=h.x),h.y>this.bbox.ur.y&&(this.bbox.ur.y=h.y),a=h)}(s.x!==a.x||s.y!==a.y)&&this.segments.push(R.fromRing(a,s,this))}return i(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,i=this.segments.length;tthis.bbox.ur.x&&(this.bbox.ur.x=a.bbox.ur.x),a.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=a.bbox.ur.y),this.interiorRings.push(a)}this.multiPoly=r}return i(t,[{key:"getSweepEvents",value:function(){for(var e=this.exteriorRing.getSweepEvents(),t=0,i=this.interiorRings.length;tthis.bbox.ur.x&&(this.bbox.ur.x=a.bbox.ur.x),a.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=a.bbox.ur.y),this.polys.push(a)}this.isSubject=r}return i(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,i=this.polys.length;t0&&(e=r)}for(var n=e.segment.prevInResult(),s=n?n.prevInResult():null;;){if(!n)return null;if(!s)return n.ringOut;if(s.ringOut!==n.ringOut)return s.ringOut.enclosingRing()!==n.ringOut?n.ringOut:n.ringOut.enclosingRing();n=s.prevInResult(),s=n?n.prevInResult():null}}}]),t}(),F=function(){function t(i){e(this,t),this.exteriorRing=i,i.poly=this,this.interiorRings=[]}return i(t,[{key:"addInterior",value:function(e){this.interiorRings.push(e),e.poly=this}},{key:"getGeom",value:function(){var e=[this.exteriorRing.getGeom()];if(null===e[0])return null;for(var t=0,i=this.interiorRings.length;t1&&void 0!==arguments[1]?arguments[1]:R.compare;e(this,t),this.queue=i,this.tree=new h(r),this.segments=[]}return i(t,[{key:"process",value:function(e){var t=e.segment,i=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(t),i;var r=e.isLeft?this.tree.insert(t):this.tree.find(t);if(!r)throw new Error("Unable to find segment #".concat(t.id," ")+"[".concat(t.leftSE.point.x,", ").concat(t.leftSE.point.y,"] -> ")+"[".concat(t.rightSE.point.x,", ").concat(t.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var n=r,s=r,a=void 0,o=void 0;void 0===a;)null===(n=this.tree.prev(n))?a=null:void 0===n.key.consumedBy&&(a=n.key);for(;void 0===o;)null===(s=this.tree.next(s))?o=null:void 0===s.key.consumedBy&&(o=s.key);if(e.isLeft){var l=null;if(a){var h=a.getIntersection(t);if(null!==h&&(t.isAnEndpoint(h)||(l=h),!a.isAnEndpoint(h)))for(var u=this._splitSafely(a,h),c=0,p=u.length;c0?(this.tree.remove(t),i.push(e)):(this.segments.push(t),t.prev=a)}else{if(a&&o){var _=a.getIntersection(o);if(null!==_){if(!a.isAnEndpoint(_))for(var E=this._splitSafely(a,_),w=0,S=E.length;wB)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var _=new k(m),E=m.size,w=m.pop();w;){var S=w.key;if(m.size===E){var I=S.segment;throw new Error("Unable to pop() ".concat(S.isLeft?"left":"right"," SweepEvent ")+"[".concat(S.point.x,", ").concat(S.point.y,"] from segment #").concat(I.id," ")+"[".concat(I.leftSE.point.x,", ").concat(I.leftSE.point.y,"] -> ")+"[".concat(I.rightSE.point.x,", ").concat(I.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(m.size>B)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(_.segments.length>H)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var M=_.process(S),A=0,O=M.length;A1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r{"use strict";t.exports=function(e,t,r){var n=e*t,s=i*e,a=s-(s-e),o=e-a,l=i*t,h=l-(l-t),u=t-h,c=o*u-(n-a*h-o*h-a*u);return r?(r[0]=c,r[1]=n,r):[c,n]};var i=+(Math.pow(2,27)+1)})),FB=z(((e,t)=>{"use strict";t.exports=function(e,t){var i=0|e.length,r=0|t.length;if(1===i&&1===r)return function(e,t){var i=e+t,r=i-e,n=i-r,s=t-r,a=e-n,o=a+s;return o?[o,i]:[i]}(e[0],t[0]);var n,s,a=new Array(i+r),o=0,l=0,h=0,u=Math.abs,c=e[l],p=u(c),d=t[h],f=u(d);p=r?(n=c,(l+=1){"use strict";t.exports=function(e,t,i){var r=e+t,n=r-e,s=t-n,a=e-(r-n);return i?(i[0]=a+s,i[1]=r,i):[a+s,r]}})),UB=z(((e,t)=>{"use strict";var i=VC(),r=Hpe();t.exports=function(e,t){var n=e.length;if(1===n){var s=i(e[0],t);return s[0]?s:[s[1]]}var a=new Array(2*n),o=[.1,.1],l=[.1,.1],h=0;i(e[0],t,o),o[0]&&(a[h++]=o[0]);for(var u=1;u{"use strict";t.exports=function(e){for(var t=e.length,i=e[e.length-1],r=t,n=t-2;n>=0;--n){var s=i;(l=(o=e[n])-((i=s+o)-s))&&(e[--r]=i,i=l)}var a=0;for(n=r;n{"use strict";t.exports=function(e,t){var i=0|e.length,r=0|t.length;if(1===i&&1===r)return function(e,t){var i=e+t,r=i-e,n=i-r,s=t-r,a=e-n,o=a+s;return o?[o,i]:[i]}(e[0],-t[0]);var n,s,a=new Array(i+r),o=0,l=0,h=0,u=Math.abs,c=e[l],p=u(c),d=-t[h],f=u(d);p=r?(n=c,(l+=1){"use strict";var i=VC(),r=FB(),n=UB(),s=Vpe();function a(e,t,i,r){return function(i,n,s){var a=e(e(t(n[1],s[0]),t(-s[1],n[0])),e(t(i[1],n[0]),t(-n[1],i[0]))),o=e(t(i[1],s[0]),t(-s[1],i[0])),l=r(a,o);return l[l.length-1]}}function o(e,t,i,r){return function(n,s,a,o){var l=e(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),s[2]),e(i(e(t(s[1],o[0]),t(-o[1],s[0])),-a[2]),i(e(t(s[1],a[0]),t(-a[1],s[0])),o[2]))),e(i(e(t(s[1],o[0]),t(-o[1],s[0])),n[2]),e(i(e(t(n[1],o[0]),t(-o[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),o[2])))),h=e(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),n[2]),e(i(e(t(n[1],o[0]),t(-o[1],n[0])),-a[2]),i(e(t(n[1],a[0]),t(-a[1],n[0])),o[2]))),e(i(e(t(s[1],a[0]),t(-a[1],s[0])),n[2]),e(i(e(t(n[1],a[0]),t(-a[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),a[2])))),u=r(l,h);return u[u.length-1]}}function l(e,t,i,r){return function(n,s,a,o,l){var h=e(e(e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),a[2]),e(i(e(t(a[1],l[0]),t(-l[1],a[0])),-o[2]),i(e(t(a[1],o[0]),t(-o[1],a[0])),l[2]))),s[3]),e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),s[2]),e(i(e(t(s[1],l[0]),t(-l[1],s[0])),-o[2]),i(e(t(s[1],o[0]),t(-o[1],s[0])),l[2]))),-a[3]),i(e(i(e(t(a[1],l[0]),t(-l[1],a[0])),s[2]),e(i(e(t(s[1],l[0]),t(-l[1],s[0])),-a[2]),i(e(t(s[1],a[0]),t(-a[1],s[0])),l[2]))),o[3]))),e(i(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),s[2]),e(i(e(t(s[1],o[0]),t(-o[1],s[0])),-a[2]),i(e(t(s[1],a[0]),t(-a[1],s[0])),o[2]))),-l[3]),e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),s[2]),e(i(e(t(s[1],l[0]),t(-l[1],s[0])),-o[2]),i(e(t(s[1],o[0]),t(-o[1],s[0])),l[2]))),n[3]),i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),n[2]),e(i(e(t(n[1],l[0]),t(-l[1],n[0])),-o[2]),i(e(t(n[1],o[0]),t(-o[1],n[0])),l[2]))),-s[3])))),e(e(i(e(i(e(t(s[1],l[0]),t(-l[1],s[0])),n[2]),e(i(e(t(n[1],l[0]),t(-l[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),l[2]))),o[3]),e(i(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),n[2]),e(i(e(t(n[1],o[0]),t(-o[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),o[2]))),-l[3]),i(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),s[2]),e(i(e(t(s[1],o[0]),t(-o[1],s[0])),-a[2]),i(e(t(s[1],a[0]),t(-a[1],s[0])),o[2]))),n[3]))),e(i(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),n[2]),e(i(e(t(n[1],o[0]),t(-o[1],n[0])),-a[2]),i(e(t(n[1],a[0]),t(-a[1],n[0])),o[2]))),-s[3]),e(i(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),n[2]),e(i(e(t(n[1],o[0]),t(-o[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),o[2]))),a[3]),i(e(i(e(t(s[1],a[0]),t(-a[1],s[0])),n[2]),e(i(e(t(n[1],a[0]),t(-a[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),a[2]))),-o[3]))))),u=e(e(e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),a[2]),e(i(e(t(a[1],l[0]),t(-l[1],a[0])),-o[2]),i(e(t(a[1],o[0]),t(-o[1],a[0])),l[2]))),n[3]),i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),n[2]),e(i(e(t(n[1],l[0]),t(-l[1],n[0])),-o[2]),i(e(t(n[1],o[0]),t(-o[1],n[0])),l[2]))),-a[3])),e(i(e(i(e(t(a[1],l[0]),t(-l[1],a[0])),n[2]),e(i(e(t(n[1],l[0]),t(-l[1],n[0])),-a[2]),i(e(t(n[1],a[0]),t(-a[1],n[0])),l[2]))),o[3]),i(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),n[2]),e(i(e(t(n[1],o[0]),t(-o[1],n[0])),-a[2]),i(e(t(n[1],a[0]),t(-a[1],n[0])),o[2]))),-l[3]))),e(e(i(e(i(e(t(a[1],l[0]),t(-l[1],a[0])),s[2]),e(i(e(t(s[1],l[0]),t(-l[1],s[0])),-a[2]),i(e(t(s[1],a[0]),t(-a[1],s[0])),l[2]))),n[3]),i(e(i(e(t(a[1],l[0]),t(-l[1],a[0])),n[2]),e(i(e(t(n[1],l[0]),t(-l[1],n[0])),-a[2]),i(e(t(n[1],a[0]),t(-a[1],n[0])),l[2]))),-s[3])),e(i(e(i(e(t(s[1],l[0]),t(-l[1],s[0])),n[2]),e(i(e(t(n[1],l[0]),t(-l[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),l[2]))),a[3]),i(e(i(e(t(s[1],a[0]),t(-a[1],s[0])),n[2]),e(i(e(t(n[1],a[0]),t(-a[1],n[0])),-s[2]),i(e(t(n[1],s[0]),t(-s[1],n[0])),a[2]))),-l[3])))),c=r(h,u);return c[c.length-1]}}function h(e){return(3===e?a:4===e?o:l)(r,i,n,s)}var u=h(3),c=h(4),p=[function(){return 0},function(){return 0},function(e,t){return t[0]-e[0]},function(e,t,i){var r,n=(e[1]-i[1])*(t[0]-i[0]),s=(e[0]-i[0])*(t[1]-i[1]),a=n-s;if(n>0){if(s<=0)return a;r=n+s}else{if(!(n<0))return a;if(s>=0)return a;r=-(n+s)}var o=33306690738754716e-32*r;return a>=o||a<=-o?a:u(e,t,i)},function(e,t,i,r){var n=e[0]-r[0],s=t[0]-r[0],a=i[0]-r[0],o=e[1]-r[1],l=t[1]-r[1],h=i[1]-r[1],u=e[2]-r[2],p=t[2]-r[2],d=i[2]-r[2],f=s*h,m=a*l,g=a*o,y=n*h,v=n*l,T=s*o,x=u*(f-m)+p*(g-y)+d*(v-T),b=7771561172376103e-31*((Math.abs(f)+Math.abs(m))*Math.abs(u)+(Math.abs(g)+Math.abs(y))*Math.abs(p)+(Math.abs(v)+Math.abs(T))*Math.abs(d));return x>b||-x>b?x:c(e,t,i,r)}];function d(e){var t=p[e.length];return t||(t=p[e.length]=h(e.length)),t.apply(void 0,e)}function f(e,t,i,r,n,s,a){return function(t,i,o,l,h){switch(arguments.length){case 0:case 1:return 0;case 2:return r(t,i);case 3:return n(t,i,o);case 4:return s(t,i,o,l);case 5:return a(t,i,o,l,h)}for(var u=new Array(arguments.length),c=0;c{"use strict";t.exports=function(e,t,r,n){var s=i(e,r,n),a=i(t,r,n);if(s>0&&a>0||s<0&&a<0)return!1;var o=i(r,e,t),l=i(n,e,t);return!(o>0&&l>0||o<0&&l<0)&&(0!==s||0!==a||0!==o||0!==l||function(e,t,i,r){for(var n=0;n<2;++n){var s=e[n],a=t[n],o=Math.min(s,a),l=Math.max(s,a),h=i[n],u=r[n],c=Math.min(h,u);if(Math.max(h,u){"use strict";t.exports=function(e,t,o,l){if(!a(e,t,o,l))return[[0],[0],[0]];var h=r([o[1]],[-l[1]]),u=r([-o[0]],[l[0]]),c=r(r(n(u,e[1]),n(u,-t[1])),r(n(h,e[0]),n(h,-t[0]))),p=r(i(-e[0],t[1]),i(e[1],t[0])),d=r(i(-o[0],l[1]),i(o[1],l[0])),f=r(r(n(d,e[0]),n(d,-t[0])),r(n(p,-o[0]),n(p,l[0]))),m=r(r(n(d,e[1]),n(d,-t[1])),r(n(p,-o[1]),n(p,l[1])));return[s(f),s(m),s(c)]};var i=VC(),r=FB(),n=UB(),s=kpe(),a=qpe()})),Kpe=z(((e,t)=>{t.exports=function(e){var t=0,i=e.length;switch(i){case 1:t=e[0];break;case 2:t=e[0]+e[1];break;case 3:t=e[0]+e[1]+e[2];break;case 4:t=e[0]+e[1]+e[2]+e[3];break;default:for(var r=0;r{var i=Xpe(),r=Kpe();function n(e,t){return e[0]===t[0]&&e[1]===t[1]}t.exports=function(e,t){for(var u={},c=e.length,p=[],d=0;d{!function(){"use strict";function e(e,t){var i=e.x-t.x,r=e.y-t.y;return i*i+r*r}function i(e,t,i){var r=t.x,n=t.y,s=i.x-r,a=i.y-n;if(0!==s||0!==a){var o=((e.x-r)*s+(e.y-n)*a)/(s*s+a*a);o>1?(r=i.x,n=i.y):o>0&&(r+=s*o,n+=a*o)}return(s=e.x-r)*s+(a=e.y-n)*a}function r(e,t,n,s,a){for(var o,l=s,h=t+1;hl&&(o=h,l=u)}l>s&&(o-t>1&&r(e,t,o,s,a),a.push(e[o]),n-o>1&&r(e,o,n,s,a))}function n(e,t){var i=e.length-1,n=[e[0]];return r(e,0,i,t,n),n.push(e[i]),n}function s(t,i,r){if(t.length<=2)return t;var s=void 0!==i?i*i:1;return t=r?t:function(t,i){for(var r,n=t[0],s=[n],a=1,o=t.length;ai&&(s.push(r),n=r);return n!==r&&s.push(r),s}(t,s),t=n(t,s)}"function"==typeof define&&define.amd?define((function(){return s})):void 0!==t?(t.exports=s,t.exports.default=s):"undefined"!=typeof self?self.simplify=s:window.simplify=s}()})),dde=z(((e,t)=>{var i,r;i=e,r=function(){"use strict";var e=Math.imul,t=Math.clz32;function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){for(var i,r=0;re.length)&&(t=e.length);for(var i=0,r=Array(t);id.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");return i}!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&s(e,t)}(d,e);var f=function(e){var t=a();return function(){var i,r=n(e);if(t){var s=n(this).constructor;i=Reflect.construct(r,arguments,s)}else i=r.apply(this,arguments);return u(this,i)}}(d);return function(e,t,i){t&&r(e.prototype,t),i&&r(e,i),Object.defineProperty(e,"prototype",{writable:!1})}(d,[{key:"toDebugString",value:function(){var e,t=["BigInt["],i=function(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=p(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,o=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return a=e.done,e},e:function(e){o=!0,s=e},f:function(){try{a||null==i.return||i.return()}finally{if(o)throw s}}}}(this);try{for(i.s();!(e=i.n()).done;){var r=e.value;t.push((r&&(r>>>0).toString(16))+", ")}}catch(e){i.e(e)}finally{i.f()}return t.push("]"),t.join("")}},{key:"toString",value:function(){var e=0e||36this.length&&(i=this.length);for(var r=32767&e,n=e>>>15,s=0,a=t,o=0;o>>15,c=d.__imul(h,r),p=d.__imul(h,n),f=d.__imul(u,r),m=a+c+s;s=m>>>30,m&=1073741823,s+=(m+=((32767&p)<<15)+((32767&f)<<15))>>>30,a=d.__imul(u,n)+(p>>>15)+(f>>>15),this.__setDigit(o,1073741823&m)}if(0!==s||0!==a)throw new Error("implementation bug")}},{key:"__inplaceAdd",value:function(e,t,i){for(var r,n=0,s=0;s>>15,this.__setHalfDigit(t+s,32767&r);return n}},{key:"__inplaceSub",value:function(e,t,i){var r=0;if(1&t){t>>=1;for(var n=this.__digit(t),s=32767&n,a=0;a>>1;a++){var o=e.__digit(a),l=(n>>>15)-(32767&o)-r;r=1&l>>>15,this.__setDigit(t+a,(32767&l)<<15|32767&s),r=1&(s=(32767&(n=this.__digit(t+a+1)))-(o>>>15)-r)>>>15}var h=e.__digit(a),u=(n>>>15)-(32767&h)-r;if(r=1&u>>>15,this.__setDigit(t+a,(32767&u)<<15|32767&s),t+a+1>=this.length)throw new RangeError("out of bounds");!(1&i)&&(r=1&(s=(32767&(n=this.__digit(t+a+1)))-(h>>>15)-r)>>>15,this.__setDigit(t+e.length,1073709056&n|32767&s))}else{t>>=1;for(var c=0;c>>15)-(d>>>15)-(r=1&f>>>15);r=1&m>>>15,this.__setDigit(t+c,(32767&m)<<15|32767&f)}var g=this.__digit(t+c),y=e.__digit(c),v=(32767&g)-(32767&y)-r;r=1&v>>>15;var T=0;!(1&i)&&(r=1&(T=(g>>>15)-(y>>>15)-r)>>>15),this.__setDigit(t+c,(32767&T)<<15|32767&v)}return r}},{key:"__inplaceRightShift",value:function(e){if(0!==e){for(var t,i=this.__digit(0)>>>e,r=this.length-1,n=0;n>>e;this.__setDigit(r,i)}}},{key:"__digit",value:function(e){return this[e]}},{key:"__unsignedDigit",value:function(e){return this[e]>>>0}},{key:"__setDigit",value:function(e,t){this[e]=0|t}},{key:"__setDigitGrow",value:function(e,t){this[e]=0|t}},{key:"__halfDigitLength",value:function(){var e=this.length;return 32767>=this.__unsignedDigit(e-1)?2*e-1:2*e}},{key:"__halfDigit",value:function(e){return 32767&this[e>>>1]>>>15*(1&e)}},{key:"__setHalfDigit",value:function(e,t){var i=e>>>1,r=this.__digit(i),n=1&e?32767&r|t<<15:1073709056&r|32767&t;this.__setDigit(i,n)}}],[{key:"BigInt",value:function(e){var t=Number.isFinite;if("number"==typeof e){if(0===e)return d.__zero();if(d.__isOneDigitInt(e))return 0>e?d.__oneDigit(-e,!0):d.__oneDigit(e,!1);if(!t(e)||l(e)!==e)throw new RangeError("The number "+e+" cannot be converted to BigInt because it is not an integer");return d.__fromDouble(e)}if("string"==typeof e){var r=d.__fromString(e);if(null===r)throw new SyntaxError("Cannot convert "+e+" to a BigInt");return r}if("boolean"==typeof e)return!0===e?d.__oneDigit(1,!1):d.__zero();if("object"===i(e)){if(e.constructor===d)return e;var n=d.__toPrimitive(e);return d.BigInt(n)}throw new TypeError("Cannot convert "+e+" to a BigInt")}},{key:"toNumber",value:function(e){var t=e.length;if(0===t)return 0;if(1===t){var i=e.__unsignedDigit(0);return e.sign?-i:i}var r=e.__digit(t-1),n=d.__clz30(r),s=30*t-n;if(1024>>=12;var c=h-12,p=12<=h?0:o<<20+h,f=20+h;for(0>>30-c,p=o<>>30-f,f-=30;var m=d.__decideRounding(e,f,l,o);if((1===m||0===m&&1==(1&p))&&0==(p=p+1>>>0)&&++u>>>20!=0&&(u=0,1023<++a))return e.sign?-1/0:1/0;var g=e.sign?-2147483648:0;return a=a+1023<<20,d.__kBitConversionInts[1]=g|a|u,d.__kBitConversionInts[0]=p,d.__kBitConversionDouble[0]}},{key:"unaryMinus",value:function(e){if(0===e.length)return e;var t=e.__copy();return t.sign=!e.sign,t}},{key:"bitwiseNot",value:function(e){return e.sign?d.__absoluteSubOne(e).__trim():d.__absoluteAddOne(e,!0)}},{key:"exponentiate",value:function(e,t){if(t.sign)throw new RangeError("Exponent must be positive");if(0===t.length)return d.__oneDigit(1,!1);if(0===e.length)return e;if(1===e.length&&1===e.__digit(0))return!e.sign||1&t.__digit(0)?e:d.unaryMinus(e);if(1=d.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===e.length&&2===e.__digit(0)){var r=1+(0|i/30),n=new d(r,e.sign&&0!=(1&i));n.__initializeDigits();var s=1<>=1;0!==i;i>>=1)o=d.multiply(o,o),1&i&&(a=null===a?o:d.multiply(a,o));return a}},{key:"multiply",value:function(e,t){if(0===e.length)return e;if(0===t.length)return t;var i=e.length+t.length;30<=e.__clzmsd()+t.__clzmsd()&&i--;var r=new d(i,e.sign!==t.sign);r.__initializeDigits();for(var n=0;nd.__absoluteCompare(e,t))return d.__zero();var i,r=e.sign!==t.sign,n=t.__unsignedDigit(0);if(1===t.length&&32767>=n){if(1===n)return r===e.sign?e:d.unaryMinus(e);i=d.__absoluteDivSmall(e,n,null)}else i=d.__absoluteDivLarge(e,t,!0,!1);return i.sign=r,i.__trim()}},{key:"remainder",value:function(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>d.__absoluteCompare(e,t))return e;var i=t.__unsignedDigit(0);if(1===t.length&&32767>=i){if(1===i)return d.__zero();var r=d.__absoluteModSmall(e,i);return 0===r?d.__zero():d.__oneDigit(r,e.sign)}var n=d.__absoluteDivLarge(e,t,!1,!0);return n.sign=e.sign,n.__trim()}},{key:"add",value:function(e,t){var i=e.sign;return i===t.sign?d.__absoluteAdd(e,t,i):0<=d.__absoluteCompare(e,t)?d.__absoluteSub(e,t,i):d.__absoluteSub(t,e,!i)}},{key:"subtract",value:function(e,t){var i=e.sign;return i===t.sign?0<=d.__absoluteCompare(e,t)?d.__absoluteSub(e,t,i):d.__absoluteSub(t,e,!i):d.__absoluteAdd(e,t,i)}},{key:"leftShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?d.__rightShiftByAbsolute(e,t):d.__leftShiftByAbsolute(e,t)}},{key:"signedRightShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?d.__leftShiftByAbsolute(e,t):d.__rightShiftByAbsolute(e,t)}},{key:"unsignedRightShift",value:function(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}},{key:"lessThan",value:function(e,t){return 0>d.__compareToBigInt(e,t)}},{key:"lessThanOrEqual",value:function(e,t){return 0>=d.__compareToBigInt(e,t)}},{key:"greaterThan",value:function(e,t){return 0(e=l(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return d.__zero();if(e>=d.__kMaxLengthBits)return t;var i=0|(e+29)/30;if(t.length(e=l(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return d.__zero();if(t.sign){if(e>d.__kMaxLengthBits)throw new RangeError("BigInt too big");return d.__truncateAndSubFromPowerOfTwo(e,t,!1)}if(e>=d.__kMaxLengthBits)return t;var i=0|(e+29)/30;if(t.length>>r))return t}return d.__truncateToNBits(e,t)}},{key:"ADD",value:function(e,t){if(e=d.__toPrimitive(e),t=d.__toPrimitive(t),"string"==typeof e)return"string"!=typeof t&&(t=t.toString()),e+t;if("string"==typeof t)return e.toString()+t;if(e=d.__toNumeric(e),t=d.__toNumeric(t),d.__isBigInt(e)&&d.__isBigInt(t))return d.add(e,t);if("number"==typeof e&&"number"==typeof t)return e+t;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}},{key:"LT",value:function(e,t){return d.__compare(e,t,0)}},{key:"LE",value:function(e,t){return d.__compare(e,t,1)}},{key:"GT",value:function(e,t){return d.__compare(e,t,2)}},{key:"GE",value:function(e,t){return d.__compare(e,t,3)}},{key:"EQ",value:function(e,t){for(;;){if(d.__isBigInt(e))return d.__isBigInt(t)?d.equal(e,t):d.EQ(t,e);if("number"==typeof e){if(d.__isBigInt(t))return d.__equalToNumber(t,e);if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else if("string"==typeof e){if(d.__isBigInt(t))return null!==(e=d.__fromString(e))&&d.equal(e,t);if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else if("boolean"==typeof e){if(d.__isBigInt(t))return d.__equalToNumber(t,+e);if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else if("symbol"===i(e)){if(d.__isBigInt(t))return!1;if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else{if("object"!==i(e))return e==t;if("object"===i(t)&&t.constructor!==d)return e==t;e=d.__toPrimitive(e)}}}},{key:"NE",value:function(e,t){return!d.EQ(e,t)}},{key:"DataViewGetBigInt64",value:function(e,t){var i=2>>30),h.__setDigit(2,o>>>28),h.__trim()}},{key:"DataViewSetBigInt64",value:function(e,t,i){var r=3>>2,2t)n=-t-1;else{if(0===i)return-1;i--,r=e.__digit(i),n=29}var s=1<>>20)-1023,r=1+(0|i/30),n=new d(r,0>e),s=1048575&d.__kBitConversionInts[1]|1048576,a=d.__kBitConversionInts[0],o=i%30,l=0;if(o<20){var h=20-o;l=h+32,t=s>>>h,s=s<<32-h|a>>>h,a<<=32-h}else if(20===o)l=32,t=s,s=a,a=0;else{var u=o-20;l=32-u,t=s<>>32-u,s=a<>>2,s=s<<30|a>>>2,a<<=30):t=0,n.__setDigit(c,t);return n.__trim()}},{key:"__isWhitespace",value:function(e){return 13>=e&&9<=e||(159>=e?32==e:131071>=e?160==e||5760==e:196607>=e?10>=(e&=131071)||40==e||41==e||47==e||95==e||4096==e:65279==e)}},{key:"__fromString",value:function(e){var t=11073741824/o)return null;var h=o*a+l>>>d.__kBitsPerCharTableShift,u=new d(0|(h+29)/30,!1),c=10>t?t:10,p=10>>0>>0>>d.__kBitsPerCharTableShift)/30;u.__inplaceMultiplyAdd(v,y,x)}while(!f)}else{o>>=d.__kBitsPerCharTableShift;var b=[],_=[],E=!1;do{for(var w,S=0,I=0;;){if(w=void 0,s-48>>>0>>0>>l-(s-=30))}if(0!==n){if(r>=e.length)throw new Error("implementation bug");e.__setDigit(r++,n)}for(;r>>1)+(85&r))>>>2)+(51&r))>>>4)+(15&r),s=t-1,a=e.__digit(i-1),o=0|(30*i-d.__clz30(a)+n-1)/n;if(e.sign&&o++,268435456>>g,c=30-g;c>=n;)l[h--]=d.__kConversionChars[u&s],u>>>=n,c-=n}var y=(u|a<>>n-c;0!==u;)l[h--]=d.__kConversionChars[u&s],u>>>=n;if(e.sign&&(l[h--]="-"),-1!==h)throw new Error("implementation bug");return l.join("")}},{key:"__toStringGeneric",value:function(e,t,i){var r=e.length;if(0===r)return"";if(1===r){var n=e.__unsignedDigit(0).toString(t);return!1===i&&e.sign&&(n="-"+n),n}var s,a,o=30*r-d.__clz30(e.__digit(r-1)),l=d.__kMaxBitsPerChar[t]-1,h=o*d.__kBitsPerCharTableMultiplier,u=1+(h=0|(h+=l-1)/l)>>1,c=d.exponentiate(d.__oneDigit(t,!1),d.__oneDigit(u,!1)),p=c.__unsignedDigit(0);if(1===c.length&&32767>=p){(s=new d(e.length,!1)).__initializeDigits();for(var f,m=0,g=2*e.length-1;0<=g;g--)f=m<<15|e.__halfDigit(g),s.__setHalfDigit(g,0|f/p),m=0|f%p;a=m.toString(t)}else{var y=d.__absoluteDivLarge(e,c,!0,!0);s=y.quotient;var v=y.remainder.__trim();a=d.__toStringGeneric(v,t,!0)}s.__trim();for(var T=d.__toStringGeneric(s,t,!0);a.lengthr?d.__absoluteLess(i):0}},{key:"__compareToNumber",value:function(e,i){if(d.__isOneDigitInt(i)){var r=e.sign,n=0>i;if(r!==n)return d.__unequalSign(r);if(0===e.length){if(n)throw new Error("implementation bug");return 0===i?0:-1}if(1s?d.__absoluteGreater(r):at)return d.__unequalSign(i);if(0===t)throw new Error("implementation bug: should be handled elsewhere");if(0===e.length)return-1;d.__kBitConversionDouble[0]=t;var r=2047&d.__kBitConversionInts[1]>>>20;if(2047==r)throw new Error("implementation bug: handled elsewhere");var n=r-1023;if(0>n)return d.__absoluteGreater(i);var s=e.length,a=e.__digit(s-1),o=d.__clz30(a),l=30*s-o,h=n+1;if(lh)return d.__absoluteGreater(i);var u=1048576|1048575&d.__kBitConversionInts[1],c=d.__kBitConversionInts[0],p=29-o;if(p!==(0|(l-1)%30))throw new Error("implementation bug");var f,m=0;if(p<20){var g=20-p;m=g+32,f=u>>>g,u=u<<32-g|c>>>g,c<<=32-g}else if(20===p)m=32,f=u,u=c,c=0;else{var y=p-20;m=32-y,f=u<>>32-y,u=c<>>=0)>(f>>>=0))return d.__absoluteGreater(i);if(a>>2,u=u<<30|c>>>2,c<<=30):f=0;var T=e.__unsignedDigit(v);if(T>f)return d.__absoluteGreater(i);if(Ti&&e.__unsignedDigit(0)===t(i):0===d.__compareToDouble(e,i)}},{key:"__comparisonResultToBool",value:function(e,t){return 0===t?0>e:1===t?0>=e:2===t?0t;case 3:return e>=t}if(d.__isBigInt(e)&&"string"==typeof t)return null!==(t=d.__fromString(t))&&d.__comparisonResultToBool(d.__compareToBigInt(e,t),i);if("string"==typeof e&&d.__isBigInt(t))return null!==(e=d.__fromString(e))&&d.__comparisonResultToBool(d.__compareToBigInt(e,t),i);if(e=d.__toNumeric(e),t=d.__toNumeric(t),d.__isBigInt(e)){if(d.__isBigInt(t))return d.__comparisonResultToBool(d.__compareToBigInt(e,t),i);if("number"!=typeof t)throw new Error("implementation bug");return d.__comparisonResultToBool(d.__compareToNumber(e,t),i)}if("number"!=typeof e)throw new Error("implementation bug");if(d.__isBigInt(t))return d.__comparisonResultToBool(d.__compareToNumber(t,e),2^i);if("number"!=typeof t)throw new Error("implementation bug");return 0===i?et:3===i?e>=t:void 0}},{key:"__absoluteAdd",value:function(e,t,i){if(e.length>>30,s.__setDigit(o,1073741823&n);for(;o>>30,s.__setDigit(o,1073741823&l)}return o>>30,n.__setDigit(a,1073741823&r);for(;a>>30,n.__setDigit(a,1073741823&o)}return n.__trim()}},{key:"__absoluteAddOne",value:function(e,t){var i=2>>30,i.__setDigit(a,1073741823&n);return 0!==s&&i.__setDigitGrow(r,1),i}},{key:"__absoluteSubOne",value:function(e,t){for(var i,r=e.length,n=new d(t=t||r,!1),s=1,a=0;a>>30,n.__setDigit(a,1073741823&i);if(0!==s)throw new Error("implementation bug");for(var o=r;or?0:e.__unsignedDigit(r)>t.__unsignedDigit(r)?1:-1}},{key:"__multiplyAccumulate",value:function(e,t,i,r){if(0!==t){for(var n=32767&t,s=t>>>15,a=0,o=0,l=0;l>>15,f=d.__imul(c,n),m=d.__imul(c,s),g=d.__imul(p,n);a=(h+=o+f+a)>>>30,h&=1073741823,a+=(h+=((32767&m)<<15)+((32767&g)<<15))>>>30,o=d.__imul(p,s)+(m>>>15)+(g>>>15),i.__setDigit(r,1073741823&h)}for(;0!==a||0!==o;r++){var y=i.__digit(r);y+=a+o,o=0,a=y>>>30,i.__setDigit(r,1073741823&y)}}}},{key:"__internalMultiplyAdd",value:function(e,t,i,r,n){for(var s=i,a=0,o=0;o>>15,t),c=h+((32767&u)<<15)+a+s;s=c>>>30,a=u>>>15,n.__setDigit(o,1073741823&c)}if(n.length>r)for(n.__setDigit(r++,s+a);r>>0,a=0|s/t,o=0|(s=((r=0|s%t)<<15|e.__halfDigit(n-1))>>>0)/t;r=0|s%t,i.__setDigit(n>>>1,a<<15|o)}return i}},{key:"__absoluteModSmall",value:function(e,t){for(var i=0,r=2*e.length-1;0<=r;r--)i=0|((i<<15|e.__halfDigit(r))>>>0)%t;return i}},{key:"__absoluteDivLarge",value:function(e,t,i,r){var n=t.__halfDigitLength(),s=t.length,a=e.__halfDigitLength()-n,o=null;i&&(o=new d(a+2>>>1,!1)).__initializeDigits();var l=new d(n+2>>>1,!1);l.__initializeDigits();var h=d.__clz15(t.__halfDigit(n-1));0>>0;m=0|y/c;for(var v=0|y%c,T=t.__halfDigit(n-2),x=u.__halfDigit(f+n-2);d.__imul(m,T)>>>0>(v<<16|x)>>>0&&(m--,!(32767<(v+=c))););}d.__internalMultiplyAdd(t,m,0,s,l);var b=u.__inplaceSub(l,f,n+1);0!==b&&(b=u.__inplaceAdd(t,f,n),u.__setHalfDigit(f+n,32767&u.__halfDigit(f+n)+b),m--),i&&(1&f?p=m<<15:o.__setDigit(f>>>1,p|m))}if(r)return u.__inplaceRightShift(h),i?{quotient:o,remainder:u}:u;if(i)return o;throw new Error("unreachable")}},{key:"__clz15",value:function(e){return d.__clz30(e)-15}},{key:"__specialLeftShift",value:function(e,t,i){var r=e.length,n=new d(r+i,!1);if(0===t){for(var s=0;s>>30-t;return 0i)throw new RangeError("BigInt too big");var r=0|i/30,n=i%30,s=e.length,a=0!==n&&e.__digit(s-1)>>>30-n!=0,o=s+r+(a?1:0),l=new d(o,e.sign);if(0===n){for(var h=0;h>>30-n;if(a)l.__setDigit(s+r,u);else if(0!==u)throw new Error("implementation bug")}return l.__trim()}},{key:"__rightShiftByAbsolute",value:function(e,t){var i=e.length,r=e.sign,n=d.__toShiftAmount(t);if(0>n)return d.__rightShiftByMaximum(r);var s=0|n/30,a=n%30,o=i-s;if(0>=o)return d.__rightShiftByMaximum(r);var l=!1;if(r)if(e.__digit(s)&(1<>>a,m=i-s-1,g=0;g>>a;u.__setDigit(m,f)}return l&&(u=d.__absoluteAddOne(u,!0,u)),u.__trim()}},{key:"__rightShiftByMaximum",value:function(e){return e?d.__oneDigit(1,!0):d.__zero()}},{key:"__toShiftAmount",value:function(e){if(1d.__kMaxLengthBits?-1:t}},{key:"__toPrimitive",value:function(e){var t=1>>o}return r.__setDigit(n,a),r.__trim()}},{key:"__truncateAndSubFromPowerOfTwo",value:function(e,t,i){for(var r,n=Math.min,s=0|(e+29)/30,a=new d(s,i),o=0,l=s-1,h=0,u=n(l,t.length);o>>30,a.__setDigit(o,1073741823&r);for(;o>>m)-h,c&=g-1}return a.__setDigit(l,c),a.__trim()}},{key:"__digitPow",value:function(e,t){for(var i=1;0>>=1,e*=e;return i}},{key:"__isOneDigitInt",value:function(e){return(1073741823&e)===e}}]),d}(l(Array));return f.__kMaxLength=33554432,f.__kMaxLengthBits=f.__kMaxLength<<5,f.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],f.__kBitsPerCharTableShift=5,f.__kBitsPerCharTableMultiplier=1<>>0)/t)},f.__imul=e||function(e,t){return 0|e*t},f},"object"==typeof e&&void 0!==t?t.exports=r():"function"==typeof define&&define.amd?define(r):(i=i||self).JSBI=r()})),mRe=z(((e,t)=>{var i,r;i=e,r=function(){"use strict";function e(e,r,n,s,a){!function e(i,r,n,s,a){for(;s>n;){if(s-n>600){var o=s-n+1,l=r-n+1,h=Math.log(o),u=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*u*(o-u)/o)*(l-o/2<0?-1:1);e(i,r,Math.max(n,Math.floor(r-l*u/o+c)),Math.min(s,Math.floor(r+(o-l)*u/o+c)),a)}var p=i[r],d=n,f=s;for(t(i,n,r),a(i[s],p)>0&&t(i,n,s);d0;)f--}0===a(i[n],p)?t(i,n,f):t(i,++f,s),f<=r&&(n=f+1),r<=f&&(s=f-1)}}(e,r,n||0,s||e.length-1,a||i)}function t(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}function i(e,t){return et?1:0}var r=function(e){void 0===e&&(e=9),this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function n(e,t,i){if(!i)return t.indexOf(e);for(var r=0;r=e.minX&&t.maxY>=e.minY}function f(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function m(t,i,r,n,s){for(var a=[i,r];a.length;)if(!((r=a.pop())-(i=a.pop())<=n)){var o=i+Math.ceil((r-i)/n/2)*n;e(t,o,i,r,s),a.push(i,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(e){var t=this.data,i=[];if(!d(e,t))return i;for(var r=this.toBBox,n=[];t;){for(var s=0;s=0&&n[t].children.length>this._maxEntries;)this._split(n,t),t--;this._adjustParentBBoxes(r,n,t)},r.prototype._split=function(e,t){var i=e[t],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var a=this._chooseSplitIndex(i,n,r),o=f(i.children.splice(a,i.children.length-a));o.height=i.height,o.leaf=i.leaf,s(i,this.toBBox),s(o,this.toBBox),t?e[t-1].children.push(o):this._splitRoot(i,o)},r.prototype._splitRoot=function(e,t){this.data=f([e,t]),this.data.height=e.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(e,t,i){for(var r,n,s,o,l,h,c,p=1/0,d=1/0,f=t;f<=i-t;f++){var m=a(e,0,f,this.toBBox),g=a(e,f,i,this.toBBox),y=(n=m,s=g,o=Math.max(n.minX,s.minX),l=Math.max(n.minY,s.minY),h=Math.min(n.maxX,s.maxX),c=Math.min(n.maxY,s.maxY),Math.max(0,h-o)*Math.max(0,c-l)),v=u(m)+u(g);y=t;d--){var f=e.children[d];o(l,e.leaf?n(f):f),h+=c(l)}return h},r.prototype._adjustParentBBoxes=function(e,t,i){for(var r=i;r>=0;r--)o(t[r],e)},r.prototype._condense=function(e){for(var t=e.length-1,i=void 0;t>=0;t--)0===e[t].children.length?t>0?(i=e[t-1].children).splice(i.indexOf(e[t]),1):this.clear():s(e[t],this.toBBox)},r},"object"==typeof e&&void 0!==t?t.exports=r():"function"==typeof define&&define.amd?define(r):(i=i||self).RBush=r()})),gRe=z(((e,t)=>{var i,r;i=e,r=function(){"use strict";var e=function(e,i){if(void 0===e&&(e=[]),void 0===i&&(i=t),this.data=e,this.length=this.data.length,this.compare=i,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)};function t(e,t){return et?1:0}return e.prototype.push=function(e){this.data.push(e),this.length++,this._up(this.length-1)},e.prototype.pop=function(){if(0!==this.length){var e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}},e.prototype.peek=function(){return this.data[0]},e.prototype._up=function(e){for(var t=this.data,i=this.compare,r=t[e];e>0;){var n=e-1>>1,s=t[n];if(i(r,s)>=0)break;t[e]=s,e=n}t[e]=r},e.prototype._down=function(e){for(var t=this.data,i=this.compare,r=this.length>>1,n=t[e];e=0)break;t[e]=a,e=s}t[e]=n},e},"object"==typeof e&&void 0!==t?t.exports=r():"function"==typeof define&&define.amd?define(r):(i=i||self).TinyQueue=r()})),yRe=z(((e,t)=>{t.exports=function(e,t,i,r){var n=e[0],s=e[1],a=!1;void 0===i&&(i=0),void 0===r&&(r=t.length);for(var o=(r-i)/2,l=0,h=o-1;ls!=d>s&&n<(p-u)*(s-c)/(d-c)+u&&(a=!a)}return a}})),ERe=z(((e,t)=>{t.exports=function(e,t,i,r){var n=e[0],s=e[1],a=!1;void 0===i&&(i=0),void 0===r&&(r=t.length);for(var o=r-i,l=0,h=o-1;ls!=d>s&&n<(p-u)*(s-c)/(d-c)+u&&(a=!a)}return a}})),IRe=z(((e,t)=>{var i=yRe(),r=ERe();t.exports=function(e,t,n,s){return t.length>0&&Array.isArray(t[0])?r(e,t,n,s):i(e,t,n,s)},t.exports.nested=r,t.exports.flat=i})),SRe=z(((e,t)=>{var i,r;i=e,r=function(e){"use strict";function t(e,t,i,r,n){let s,a,o,l,h=t[0],u=r[0],c=0,p=0;u>h==u>-h?(s=h,h=t[++c]):(s=u,u=r[++p]);let d=0;if(ch==u>-h?(o=s-((a=h+s)-h),h=t[++c]):(o=s-((a=u+s)-u),u=r[++p]),s=a,0!==o&&(n[d++]=o);ch==u>-h?(o=s-((a=s+h)-(l=a-s))+(h-l),h=t[++c]):(o=s-((a=s+u)-(l=a-s))+(u-l),u=r[++p]),s=a,0!==o&&(n[d++]=o);for(;c0!=d>0)return f;let m=Math.abs(p+d);return Math.abs(f)>=33306690738754716e-32*m?f:-function(e,i,l,h,u,c,p){let d,f,m,g,y,v,T,x,b,_,E,w,S,I,M,A,D,O,R=e-u,C=l-u,N=i-c,P=h-c;y=(M=(x=R-(T=(v=134217729*R)-(v-R)))*(_=P-(b=(v=134217729*P)-(v-P)))-((I=R*P)-T*b-x*b-T*_))-(E=M-(D=(x=N-(T=(v=134217729*N)-(v-N)))*(_=C-(b=(v=134217729*C)-(v-C)))-((A=N*C)-T*b-x*b-T*_))),r[0]=M-(E+y)+(y-D),y=(S=I-((w=I+E)-(y=w-I))+(E-y))-(E=S-A),r[1]=S-(E+y)+(y-A),y=(O=w+E)-w,r[2]=w-(O-y)+(E-y),r[3]=O;let L=function(e,t){let i=t[0];for(let e=1;e<4;e++)i+=t[e];return i}(0,r),F=22204460492503146e-32*p;if(L>=F||-L>=F||(d=e-(R+(y=e-R))+(y-u),m=l-(C+(y=l-C))+(y-u),f=i-(N+(y=i-N))+(y-c),g=h-(P+(y=h-P))+(y-c),0===d&&0===f&&0===m&&0===g)||(F=11093356479670487e-47*p+33306690738754706e-32*Math.abs(L),(L+=R*g+P*d-(N*m+C*f))>=F||-L>=F))return L;y=(M=(x=d-(T=(v=134217729*d)-(v-d)))*(_=P-(b=(v=134217729*P)-(v-P)))-((I=d*P)-T*b-x*b-T*_))-(E=M-(D=(x=f-(T=(v=134217729*f)-(v-f)))*(_=C-(b=(v=134217729*C)-(v-C)))-((A=f*C)-T*b-x*b-T*_))),o[0]=M-(E+y)+(y-D),y=(S=I-((w=I+E)-(y=w-I))+(E-y))-(E=S-A),o[1]=S-(E+y)+(y-A),y=(O=w+E)-w,o[2]=w-(O-y)+(E-y),o[3]=O;let U=t(4,r,4,o,n);y=(M=(x=R-(T=(v=134217729*R)-(v-R)))*(_=g-(b=(v=134217729*g)-(v-g)))-((I=R*g)-T*b-x*b-T*_))-(E=M-(D=(x=N-(T=(v=134217729*N)-(v-N)))*(_=m-(b=(v=134217729*m)-(v-m)))-((A=N*m)-T*b-x*b-T*_))),o[0]=M-(E+y)+(y-D),y=(S=I-((w=I+E)-(y=w-I))+(E-y))-(E=S-A),o[1]=S-(E+y)+(y-A),y=(O=w+E)-w,o[2]=w-(O-y)+(E-y),o[3]=O;let k=t(U,n,4,o,s);y=(M=(x=d-(T=(v=134217729*d)-(v-d)))*(_=g-(b=(v=134217729*g)-(v-g)))-((I=d*g)-T*b-x*b-T*_))-(E=M-(D=(x=f-(T=(v=134217729*f)-(v-f)))*(_=m-(b=(v=134217729*m)-(v-m)))-((A=f*m)-T*b-x*b-T*_))),o[0]=M-(E+y)+(y-D),y=(S=I-((w=I+E)-(y=w-I))+(E-y))-(E=S-A),o[1]=S-(E+y)+(y-A),y=(O=w+E)-w,o[2]=w-(O-y)+(E-y),o[3]=O;let B=t(k,s,4,o,a);return a[B-1]}(e,i,l,h,u,c,m)},e.orient2dfast=function(e,t,i,r,n,s){return(t-s)*(i-n)-(e-n)*(r-s)},Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof e&&void 0!==t?r(e):"function"==typeof define&&define.amd?define(["exports"],r):r((i=i||self).predicates={})})),ARe=z(((e,t)=>{"use strict";var i=mRe(),r=gRe(),n=IRe(),s=SRe().orient2d;function a(e,t,r){t=Math.max(0,void 0===t?2:t),r=r||0;var s=function(e){for(var t=e[0],i=e[0],r=e[0],s=e[0],a=0;ar[0]&&(r=o),o[1]s[1]&&(s=o)}var l=[t,i,r,s],h=l.slice();for(a=0;a=2&&p(t[t.length-2],t[t.length-1],e[i])<=0;)t.pop();t.push(e[i])}for(var r=[],n=e.length-1;n>=0;n--){for(;r.length>=2&&p(r[r.length-2],r[r.length-1],e[n])<=0;)r.pop();r.push(e[n])}return r.pop(),t.pop(),t.concat(r)}(h)}(e),a=new i(16);a.toBBox=function(e){return{minX:e[0],minY:e[1],maxX:e[0],maxY:e[1]}},a.compareMinX=function(e,t){return e[0]-t[0]},a.compareMinY=function(e,t){return e[1]-t[1]},a.load(e);for(var l,h=[],u=0;ua||u.push({node:f,dist:m})}for(;u.length&&!u.peek().node.children;){var g=u.pop(),v=g.node,T=y(v,t,i),x=y(v,n,s);if(g.dist=t.minX&&e[0]<=t.maxX&&e[1]>=t.minY&&e[1]<=t.maxY}function c(e,t,i){for(var r=Math.min(e[0],t[0]),n=Math.min(e[1],t[1]),s=Math.max(e[0],t[0]),a=Math.max(e[1],t[1]),o=i.search({minX:r,minY:n,maxX:s,maxY:a}),l=0;l0!=p(e,t,r)>0&&p(i,r,e)>0!=p(i,r,t)>0}function f(e){var t=e.p,i=e.next.p;return e.minX=Math.min(t[0],i[0]),e.minY=Math.min(t[1],i[1]),e.maxX=Math.max(t[0],i[0]),e.maxY=Math.max(t[1],i[1]),e}function m(e,t){var i={p:e,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return t?(i.next=t.next,i.prev=t,t.next.prev=i,t.next=i):(i.prev=i,i.next=i),i}function g(e,t){var i=e[0]-t[0],r=e[1]-t[1];return i*i+r*r}function y(e,t,i){var r=t[0],n=t[1],s=i[0]-r,a=i[1]-n;if(0!==s||0!==a){var o=((e[0]-r)*s+(e[1]-n)*a)/(s*s+a*a);o>1?(r=i[0],n=i[1]):o>0&&(r+=s*o,n+=a*o)}return(s=e[0]-r)*s+(a=e[1]-n)*a}function v(e,t,i,r,n,s,a,o){var l,h,u,c,p=i-e,d=r-t,f=a-n,m=o-s,g=e-n,y=t-s,v=p*p+d*d,T=p*f+d*m,x=f*f+m*m,b=p*g+d*y,_=f*g+m*y,E=v*x-T*T,w=E,S=E;0===E?(h=0,w=1,c=_,S=x):(c=v*_-T*b,(h=T*_-x*b)<0?(h=0,c=_,S=x):h>w&&(h=w,c=_+T,S=x)),c<0?(c=0,-b<0?h=0:-b>v?h=w:(h=-b,w=v)):c>S&&(c=S,-b+T<0?h=0:-b+T>v?h=w:(h=-b+T,w=v));var I=(1-(u=0===c?0:c/S))*n+u*a-((1-(l=0===h?0:h/w))*e+l*i),M=(1-u)*s+u*o-((1-l)*t+l*r);return I*I+M*M}function T(e,t){return e[0]===t[0]?e[1]-t[1]:e[0]-t[0]}r.default&&(r=r.default),t.exports=a,t.exports.default=a})),JRe=z(((e,t)=>{t.exports=function(){var e,t=0,i=!1;function r(t,i){return e.list.push({type:t,data:i?JSON.parse(JSON.stringify(i)):void 0}),e}return e={list:[],segmentId:function(){return t++},checkIntersection:function(e,t){return r("check",{seg1:e,seg2:t})},segmentChop:function(e,t){return r("div_seg",{seg:e,pt:t}),r("chop",{seg:e,pt:t})},statusRemove:function(e){return r("pop_seg",{seg:e})},segmentUpdate:function(e){return r("seg_update",{seg:e})},segmentNew:function(e,t){return r("new_seg",{seg:e,primary:t})},segmentRemove:function(e){return r("rem_seg",{seg:e})},tempStatus:function(e,t,i){return r("temp_status",{seg:e,above:t,below:i})},rewind:function(e){return r("rewind",{seg:e})},status:function(e,t,i){return r("status",{seg:e,above:t,below:i})},vert:function(t){return t===i?e:(i=t,r("vert",{x:t}))},log:function(e){return"string"!=typeof e&&(e=JSON.stringify(e,!1," ")),r("log",{txt:e})},reset:function(){return r("reset")},selected:function(e){return r("selected",{segs:e})},chainStart:function(e){return r("chain_start",{seg:e})},chainRemoveHead:function(e,t){return r("chain_rem_head",{index:e,pt:t})},chainRemoveTail:function(e,t){return r("chain_rem_tail",{index:e,pt:t})},chainNew:function(e,t){return r("chain_new",{pt1:e,pt2:t})},chainMatch:function(e){return r("chain_match",{index:e})},chainClose:function(e){return r("chain_close",{index:e})},chainAddHead:function(e,t){return r("chain_add_head",{index:e,pt:t})},chainAddTail:function(e,t){return r("chain_add_tail",{index:e,pt:t})},chainConnect:function(e,t){return r("chain_con",{index1:e,index2:t})},chainReverse:function(e){return r("chain_rev",{index:e})},chainJoin:function(e,t){return r("chain_join",{index1:e,index2:t})},done:function(){return r("done")}}}})),eMe=z(((e,t)=>{t.exports=function(e){"number"!=typeof e&&(e=1e-10);var t={epsilon:function(t){return"number"==typeof t&&(e=t),e},pointAboveOrOnLine:function(t,i,r){var n=i[0],s=i[1],a=r[0],o=r[1],l=t[0];return(a-n)*(t[1]-s)-(o-s)*(l-n)>=-e},pointBetween:function(t,i,r){var n=t[1]-i[1],s=r[0]-i[0],a=t[0]-i[0],o=r[1]-i[1],l=a*s+n*o;return!(l-e)},pointsSameX:function(t,i){return Math.abs(t[0]-i[0])e!=a-n>e&&(s-h)*(n-u)/(a-u)+h-r>e&&(o=!o),s=h,a=u}return o}};return t}})),rMe=z(((e,t)=>{t.exports={create:function(){var e={root:{root:!0,next:null},exists:function(t){return!(null===t||t===e.root)},isEmpty:function(){return null===e.root.next},getHead:function(){return e.root.next},insertBefore:function(t,i){for(var r=e.root,n=e.root.next;null!==n;){if(i(n))return t.prev=n.prev,t.next=n,n.prev.next=t,void(n.prev=t);r=n,n=n.next}r.next=t,t.prev=r,t.next=null},findTransition:function(t){for(var i=e.root,r=e.root.next;null!==r&&!t(r);)i=r,r=r.next;return{before:i===e.root?null:i,after:r,insert:function(e){return e.prev=i,e.next=r,i.next=e,null!==r&&(r.prev=e),e}}}};return e},node:function(e){return e.prev=null,e.next=null,e.remove=function(){e.prev.next=e.next,e.next&&(e.next.prev=e.prev),e.prev=null,e.next=null},e}}})),nMe=z(((e,t)=>{var i=rMe();t.exports=function(e,t,r){function n(e,t){return{id:r?r.segmentId():-1,start:e,end:t,myFill:{above:null,below:null},otherFill:null}}function s(e,t,i){return{id:r?r.segmentId():-1,start:e,end:t,myFill:{above:i.myFill.above,below:i.myFill.below},otherFill:null}}var a=i.create();function o(e,i){a.insertBefore(e,(function(r){var n=function(e,i,r,n,s,a){var o=t.pointsCompare(i,s);return 0!==o?o:t.pointsSame(r,a)?0:e!==n?e?1:-1:t.pointAboveOrOnLine(r,n?s:a,n?a:s)?1:-1}(e.isStart,e.pt,i,r.isStart,r.pt,r.other.pt);return n<0}))}function l(e,t){var r=function(e,t){var r=i.node({isStart:!0,pt:e.start,seg:e,primary:t,other:null,status:null});return o(r,e.end),r}(e,t);return function(e,t,r){var n=i.node({isStart:!1,pt:t.end,seg:t,primary:r,other:e,status:null});e.other=n,o(n,e.pt)}(r,e,t),r}function h(e,t){var i=s(t,e.seg.end,e.seg);return function(e,t){r&&r.segmentChop(e.seg,t),e.other.remove(),e.seg.end=t,e.other.pt=t,o(e.other,e.pt)}(e,t),l(i,e.primary)}function u(n,s){var o=i.create();function l(e){return o.findTransition((function(i){var r=function(e,i){var r=e.seg.start,n=e.seg.end,s=i.seg.start,a=i.seg.end;return t.pointsCollinear(r,s,a)?t.pointsCollinear(n,s,a)||t.pointAboveOrOnLine(n,s,a)?1:-1:t.pointAboveOrOnLine(r,s,a)?1:-1}(e,i.ev);return r>0}))}function u(e,i){var n=e.seg,s=i.seg,a=n.start,o=n.end,l=s.start,u=s.end;r&&r.checkIntersection(n,s);var c=t.linesIntersect(a,o,l,u);if(!1===c){if(!t.pointsCollinear(a,o,l)||t.pointsSame(a,u)||t.pointsSame(o,l))return!1;var p=t.pointsSame(a,l),d=t.pointsSame(o,u);if(p&&d)return i;var f=!p&&t.pointBetween(a,l,u),m=!d&&t.pointBetween(o,l,u);if(p)return m?h(i,o):h(e,u),i;f&&(d||(m?h(i,o):h(e,u)),h(i,a))}else 0===c.alongA&&(-1===c.alongB?h(e,l):0===c.alongB?h(e,c.pt):1===c.alongB&&h(e,u)),0===c.alongB&&(-1===c.alongA?h(i,a):0===c.alongA?h(i,c.pt):1===c.alongA&&h(i,o));return!1}for(var c=[];!a.isEmpty();){var p=a.getHead();if(r&&r.vert(p.pt[0]),p.isStart){let t=function(){if(f){var e=u(p,f);if(e)return e}return!!m&&u(p,m)};r&&r.segmentNew(p.seg,p.primary);var d=l(p),f=d.before?d.before.ev:null,m=d.after?d.after.ev:null;r&&r.tempStatus(p.seg,!!f&&f.seg,!!m&&m.seg);var g=t();if(g){var y;if(e)(y=null===p.seg.myFill.below||p.seg.myFill.above!==p.seg.myFill.below)&&(g.seg.myFill.above=!g.seg.myFill.above);else g.seg.otherFill=p.seg.myFill;r&&r.segmentUpdate(g.seg),p.other.remove(),p.remove()}if(a.getHead()!==p){r&&r.rewind(p.seg);continue}if(e)y=null===p.seg.myFill.below||p.seg.myFill.above!==p.seg.myFill.below,p.seg.myFill.below=m?m.seg.myFill.above:n,p.seg.myFill.above=y?!p.seg.myFill.below:p.seg.myFill.below;else if(null===p.seg.otherFill){var v;v=m?p.primary===m.primary?m.seg.otherFill.above:m.seg.myFill.above:p.primary?s:n,p.seg.otherFill={above:v,below:v}}r&&r.status(p.seg,!!f&&f.seg,!!m&&m.seg),p.other.status=d.insert(i.node({ev:p}))}else{var T=p.status;if(null===T)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(o.exists(T.prev)&&o.exists(T.next)&&u(T.prev.ev,T.next.ev),r&&r.statusRemove(T.ev.seg),T.remove(),!p.primary){var x=p.seg.myFill;p.seg.myFill=p.seg.otherFill,p.seg.otherFill=x}c.push(p.seg)}a.getHead().remove()}return r&&r.done(),c}return e?{addRegion:function(e){for(var i,r=e[e.length-1],s=0;s{t.exports=function(e,t,i){var r=[],n=[];return e.forEach((function(e){var s=e.start,a=e.end;if(t.pointsSame(s,a))console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");else{i&&i.chainStart(e);for(var o={index:0,matches_head:!1,matches_pt1:!1},l={index:0,matches_head:!1,matches_pt1:!1},h=o,u=0;u{function i(e,t,i){var r=[];return e.forEach((function(e){var n=(e.myFill.above?8:0)+(e.myFill.below?4:0)+(e.otherFill&&e.otherFill.above?2:0)+(e.otherFill&&e.otherFill.below?1:0);0!==t[n]&&r.push({id:i?i.segmentId():-1,start:e.start,end:e.end,myFill:{above:1===t[n],below:2===t[n]},otherFill:null})})),i&&i.selected(r),r}var r={union:function(e,t){return i(e,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],t)},intersect:function(e,t){return i(e,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],t)},difference:function(e,t){return i(e,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],t)},differenceRev:function(e,t){return i(e,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],t)},xor:function(e,t){return i(e,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],t)}};t.exports=r})),uMe=z(((e,t)=>{var i={toPolygon:function(e,t){function i(t){if(t.length<=0)return e.segments({inverted:!1,regions:[]});function i(t){var i=t.slice(0,t.length-1);return e.segments({inverted:!1,regions:[i]})}for(var r=i(t[0]),n=1;n{var i,r=JRe(),n=eMe(),s=nMe(),a=aMe(),o=lMe(),l=uMe(),h=!1,u=n();function c(e,t,r){var n=i.segments(e),s=i.segments(t),a=r(i.combine(n,s));return i.polygon(a)}i={buildLog:function(e){return!0===e?h=r():!1===e&&(h=!1),!1!==h&&h.list},epsilon:function(e){return u.epsilon(e)},segments:function(e){var t=s(!0,u,h);return e.regions.forEach(t.addRegion),{segments:t.calculate(e.inverted),inverted:e.inverted}},combine:function(e,t){return{combined:s(!1,u,h).calculate(e.segments,e.inverted,t.segments,t.inverted),inverted1:e.inverted,inverted2:t.inverted}},selectUnion:function(e){return{segments:o.union(e.combined,h),inverted:e.inverted1||e.inverted2}},selectIntersect:function(e){return{segments:o.intersect(e.combined,h),inverted:e.inverted1&&e.inverted2}},selectDifference:function(e){return{segments:o.difference(e.combined,h),inverted:e.inverted1&&!e.inverted2}},selectDifferenceRev:function(e){return{segments:o.differenceRev(e.combined,h),inverted:!e.inverted1&&e.inverted2}},selectXor:function(e){return{segments:o.xor(e.combined,h),inverted:e.inverted1!==e.inverted2}},polygon:function(e){return{regions:a(e.segments,u,h),inverted:e.inverted}},polygonFromGeoJSON:function(e){return l.toPolygon(i,e)},polygonToGeoJSON:function(e){return l.fromPolygon(i,u,e)},union:function(e,t){return c(e,t,i.selectUnion)},intersect:function(e,t){return c(e,t,i.selectIntersect)},difference:function(e,t){return c(e,t,i.selectDifference)},differenceRev:function(e,t){return c(e,t,i.selectDifferenceRev)},xor:function(e,t){return c(e,t,i.selectXor)}},"object"==typeof window&&(window.PolyBool=i),t.exports=i})),vMe=z(((e,t)=>{function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e)}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){var i=this;function r(){i.off(e,r),t.apply(this,arguments)}return this._callbacks=this._callbacks||{},r.fn=t,this.on(e,r),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var r,n=0;n{var i=vMe();function r(){i.call(this)}r.prototype=new i,t.exports=r,r.Stream=r,r.prototype.pipe=function(e,t){var i=this;function r(t){e.writable&&!1===e.write(t)&&i.pause&&i.pause()}function n(){i.readable&&i.resume&&i.resume()}i.on("data",r),e.on("drain",n),!e._isStdio&&(!t||!1!==t.end)&&(i.on("end",a),i.on("close",o));var s=!1;function a(){s||(s=!0,e.end())}function o(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(h(),!this.hasListeners("error"))throw e}function h(){i.off("data",r),e.off("drain",n),i.off("end",a),i.off("close",o),i.off("error",l),e.off("error",l),i.off("end",h),i.off("close",h),e.off("end",h),e.off("close",h)}return i.on("error",l),e.on("error",l),i.on("end",h),i.on("close",h),e.on("end",h),e.on("close",h),e.emit("pipe",i),e}})),ql=z(((e,t)=>{(function(){var i,r="Expected a function",n="__lodash_hash_undefined__",s="__lodash_placeholder__",a=16,o=32,l=64,h=128,u=256,c=1/0,p=9007199254740991,d=NaN,f=4294967295,m=[["ary",h],["bind",1],["bindKey",2],["curry",8],["curryRight",a],["flip",512],["partial",o],["partialRight",l],["rearg",u]],g="[object Arguments]",y="[object Array]",v="[object Boolean]",T="[object Date]",x="[object Error]",b="[object Function]",_="[object GeneratorFunction]",E="[object Map]",w="[object Number]",S="[object Object]",I="[object Promise]",M="[object RegExp]",A="[object Set]",D="[object String]",O="[object Symbol]",R="[object WeakMap]",C="[object ArrayBuffer]",N="[object DataView]",P="[object Float32Array]",L="[object Float64Array]",F="[object Int8Array]",U="[object Int16Array]",k="[object Int32Array]",B="[object Uint8Array]",H="[object Uint8ClampedArray]",G="[object Uint16Array]",z="[object Uint32Array]",V=/\b__p \+= '';/g,j=/\b(__p \+=) '' \+/g,W=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Y=/&(?:amp|lt|gt|quot|#39);/g,X=/[&<>"']/g,q=RegExp(Y.source),Z=RegExp(X.source),K=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,$=/<%=([\s\S]+?)%>/g,Q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ee=/^\w*$/,te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ie=/[\\^$.*+?()[\]{}|]/g,re=RegExp(ie.source),ne=/^\s+/,se=/\s/,ae=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,oe=/\{\n\/\* \[wrapped with (.+)\] \*/,le=/,? & /,he=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ue=/[()=,{}\[\]\/\s]/,ce=/\\(\\)?/g,pe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,de=/\w*$/,fe=/^[-+]0x[0-9a-f]+$/i,me=/^0b[01]+$/i,ge=/^\[object .+?Constructor\]$/,ye=/^0o[0-7]+$/i,ve=/^(?:0|[1-9]\d*)$/,Te=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,xe=/($^)/,be=/['\n\r\u2028\u2029\\]/g,_e="\\ud800-\\udfff",Ee="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",we="\\u2700-\\u27bf",Se="a-z\\xdf-\\xf6\\xf8-\\xff",Ie="A-Z\\xc0-\\xd6\\xd8-\\xde",Me="\\ufe0e\\ufe0f",Ae="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",De="['’]",Oe="["+_e+"]",Re="["+Ae+"]",Ce="["+Ee+"]",Ne="\\d+",Pe="["+we+"]",Le="["+Se+"]",Fe="[^"+_e+Ae+Ne+we+Se+Ie+"]",Ue="\\ud83c[\\udffb-\\udfff]",ke="[^"+_e+"]",Be="(?:\\ud83c[\\udde6-\\uddff]){2}",He="[\\ud800-\\udbff][\\udc00-\\udfff]",Ge="["+Ie+"]",ze="\\u200d",Ve="(?:"+Le+"|"+Fe+")",je="(?:"+Ge+"|"+Fe+")",We="(?:['’](?:d|ll|m|re|s|t|ve))?",Ye="(?:['’](?:D|LL|M|RE|S|T|VE))?",Xe="(?:"+Ce+"|"+Ue+")"+"?",qe="["+Me+"]?",Ze=qe+Xe+("(?:"+ze+"(?:"+[ke,Be,He].join("|")+")"+qe+Xe+")*"),Ke="(?:"+[Pe,Be,He].join("|")+")"+Ze,Je="(?:"+[ke+Ce+"?",Ce,Be,He,Oe].join("|")+")",$e=RegExp(De,"g"),Qe=RegExp(Ce,"g"),et=RegExp(Ue+"(?="+Ue+")|"+Je+Ze,"g"),tt=RegExp([Ge+"?"+Le+"+"+We+"(?="+[Re,Ge,"$"].join("|")+")",je+"+"+Ye+"(?="+[Re,Ge+Ve,"$"].join("|")+")",Ge+"?"+Ve+"+"+We,Ge+"+"+Ye,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ne,Ke].join("|"),"g"),it=RegExp("["+ze+_e+Ee+Me+"]"),rt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,nt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],st=-1,at={};at[P]=at[L]=at[F]=at[U]=at[k]=at[B]=at[H]=at[G]=at[z]=!0,at[g]=at[y]=at[C]=at[v]=at[N]=at[T]=at[x]=at[b]=at[E]=at[w]=at[S]=at[M]=at[A]=at[D]=at[R]=!1;var ot={};ot[g]=ot[y]=ot[C]=ot[N]=ot[v]=ot[T]=ot[P]=ot[L]=ot[F]=ot[U]=ot[k]=ot[E]=ot[w]=ot[S]=ot[M]=ot[A]=ot[D]=ot[O]=ot[B]=ot[H]=ot[G]=ot[z]=!0,ot[x]=ot[b]=ot[R]=!1;var lt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ht=parseFloat,ut=parseInt,ct="object"==typeof global&&global&&global.Object===Object&&global,pt="object"==typeof self&&self&&self.Object===Object&&self,dt=ct||pt||Function("return this")(),ft="object"==typeof e&&e&&!e.nodeType&&e,mt=ft&&"object"==typeof t&&t&&!t.nodeType&&t,gt=mt&&mt.exports===ft,yt=gt&&ct.process,vt=function(){try{return mt&&mt.require&&mt.require("util").types||yt&&yt.binding&&yt.binding("util")}catch(e){}}(),Tt=vt&&vt.isArrayBuffer,xt=vt&&vt.isDate,bt=vt&&vt.isMap,_t=vt&&vt.isRegExp,Et=vt&&vt.isSet,wt=vt&&vt.isTypedArray;function St(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}function It(e,t,i,r){for(var n=-1,s=null==e?0:e.length;++n-1}function Ct(e,t,i){for(var r=-1,n=null==e?0:e.length;++r-1;);return i}function ti(e,t){for(var i=e.length;i--&&Gt(t,e[i],0)>-1;);return i}function ii(e,t){for(var i=e.length,r=0;i--;)e[i]===t&&++r;return r}var ri=Yt({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),ni=Yt({"&":"&","<":"<",">":">",'"':""","'":"'"});function si(e){return"\\"+lt[e]}function ai(e){return it.test(e)}function oi(e){var t=-1,i=Array(e.size);return e.forEach((function(e,r){i[++t]=[r,e]})),i}function li(e,t){return function(i){return e(t(i))}}function hi(e,t){for(var i=-1,r=e.length,n=0,a=[];++i",""":'"',"'":"'"});var mi=function e(t){var se,_e=(t=null==t?dt:mi.defaults(dt.Object(),t,mi.pick(dt,nt))).Array,Ee=t.Date,we=t.Error,Se=t.Function,Ie=t.Math,Me=t.Object,Ae=t.RegExp,De=t.String,Oe=t.TypeError,Re=_e.prototype,Ce=Se.prototype,Ne=Me.prototype,Pe=t["__core-js_shared__"],Le=Ce.toString,Fe=Ne.hasOwnProperty,Ue=0,ke=(se=/[^.]+$/.exec(Pe&&Pe.keys&&Pe.keys.IE_PROTO||""))?"Symbol(src)_1."+se:"",Be=Ne.toString,He=Le.call(Me),Ge=dt._,ze=Ae("^"+Le.call(Fe).replace(ie,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ve=gt?t.Buffer:i,je=t.Symbol,We=t.Uint8Array,Ye=Ve?Ve.allocUnsafe:i,Xe=li(Me.getPrototypeOf,Me),qe=Me.create,Ze=Ne.propertyIsEnumerable,Ke=Re.splice,Je=je?je.isConcatSpreadable:i,et=je?je.iterator:i,it=je?je.toStringTag:i,lt=function(){try{var e=ps(Me,"defineProperty");return e({},"",{}),e}catch(e){}}(),ct=t.clearTimeout!==dt.clearTimeout&&t.clearTimeout,pt=Ee&&Ee.now!==dt.Date.now&&Ee.now,ft=t.setTimeout!==dt.setTimeout&&t.setTimeout,mt=Ie.ceil,yt=Ie.floor,vt=Me.getOwnPropertySymbols,kt=Ve?Ve.isBuffer:i,Yt=t.isFinite,gi=Re.join,yi=li(Me.keys,Me),vi=Ie.max,Ti=Ie.min,xi=Ee.now,bi=t.parseInt,_i=Ie.random,Ei=Re.reverse,wi=ps(t,"DataView"),Si=ps(t,"Map"),Ii=ps(t,"Promise"),Mi=ps(t,"Set"),Ai=ps(t,"WeakMap"),Di=ps(Me,"create"),Oi=Ai&&new Ai,Ri={},Ci=Bs(wi),Ni=Bs(Si),Pi=Bs(Ii),Li=Bs(Mi),Fi=Bs(Ai),Ui=je?je.prototype:i,ki=Ui?Ui.valueOf:i,Bi=Ui?Ui.toString:i;function Hi(e){if(io(e)&&!Wa(e)&&!(e instanceof ji)){if(e instanceof Vi)return e;if(Fe.call(e,"__wrapped__"))return Hs(e)}return new Vi(e)}var Gi=function(){function e(){}return function(t){if(!to(t))return{};if(qe)return qe(t);e.prototype=t;var r=new e;return e.prototype=i,r}}();function zi(){}function Vi(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function ji(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=f,this.__views__=[]}function Wi(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function lr(e,t,r,n,s,a){var o,l=1&t,h=2&t,u=4&t;if(r&&(o=s?r(e,n,s,a):r(e)),o!==i)return o;if(!to(e))return e;var c=Wa(e);if(c){if(o=function(e){var t=e.length,i=new e.constructor(t);return t&&"string"==typeof e[0]&&Fe.call(e,"index")&&(i.index=e.index,i.input=e.input),i}(e),!l)return On(e,o)}else{var p=ms(e),d=p==b||p==_;if(Za(e))return wn(e,l);if(p==S||p==g||d&&!s){if(o=h||d?{}:ys(e),!l)return h?function(e,t){return Rn(e,fs(e),t)}(e,function(e,t){return e&&Rn(t,Po(t),e)}(o,e)):function(e,t){return Rn(e,ds(e),t)}(e,nr(o,e))}else{if(!ot[p])return s?e:{};o=function(e,t,i){var r=e.constructor;switch(t){case C:return Sn(e);case v:case T:return new r(+e);case N:return function(e,t){var i=t?Sn(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.byteLength)}(e,i);case P:case L:case F:case U:case k:case B:case H:case G:case z:return In(e,i);case E:return new r;case w:case D:return new r(e);case M:return function(e){var t=new e.constructor(e.source,de.exec(e));return t.lastIndex=e.lastIndex,t}(e);case A:return new r;case O:return function(e){return ki?Me(ki.call(e)):{}}(e)}}(e,p,l)}}a||(a=new Zi);var f=a.get(e);if(f)return f;a.set(e,o),oo(e)?e.forEach((function(i){o.add(lr(i,t,r,i,e,a))})):ro(e)&&e.forEach((function(i,n){o.set(n,lr(i,t,r,n,e,a))}));var m=c?i:(u?h?ss:ns:h?Po:No)(e);return Mt(m||e,(function(i,n){m&&(i=e[n=i]),tr(o,n,lr(i,t,r,n,e,a))})),o}function hr(e,t,r){var n=r.length;if(null==e)return!n;for(e=Me(e);n--;){var s=r[n],a=t[s],o=e[s];if(o===i&&!(s in e)||!a(o))return!1}return!0}function ur(e,t,n){if("function"!=typeof e)throw new Oe(r);return Cs((function(){e.apply(i,n)}),t)}function cr(e,t,i,r){var n=-1,s=Rt,a=!0,o=e.length,l=[],h=t.length;if(!o)return l;i&&(t=Nt(t,Jt(i))),r?(s=Ct,a=!1):t.length>=200&&(s=Qt,a=!1,t=new qi(t));e:for(;++n-1},Yi.prototype.set=function(e,t){var i=this.__data__,r=ir(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this},Xi.prototype.clear=function(){this.size=0,this.__data__={hash:new Wi,map:new(Si||Yi),string:new Wi}},Xi.prototype.delete=function(e){var t=us(this,e).delete(e);return this.size-=t?1:0,t},Xi.prototype.get=function(e){return us(this,e).get(e)},Xi.prototype.has=function(e){return us(this,e).has(e)},Xi.prototype.set=function(e,t){var i=us(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this},qi.prototype.add=qi.prototype.push=function(e){return this.__data__.set(e,n),this},qi.prototype.has=function(e){return this.__data__.has(e)},Zi.prototype.clear=function(){this.__data__=new Yi,this.size=0},Zi.prototype.delete=function(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i},Zi.prototype.get=function(e){return this.__data__.get(e)},Zi.prototype.has=function(e){return this.__data__.has(e)},Zi.prototype.set=function(e,t){var i=this.__data__;if(i instanceof Yi){var r=i.__data__;if(!Si||r.length<199)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new Xi(r)}return i.set(e,t),this.size=i.size,this};var pr=Pn(xr),dr=Pn(br,!0);function fr(e,t){var i=!0;return pr(e,(function(e,r,n){return i=!!t(e,r,n)})),i}function mr(e,t,r){for(var n=-1,s=e.length;++n0&&i(o)?t>1?yr(o,t-1,i,r,n):Pt(n,o):r||(n[n.length]=o)}return n}var vr=Ln(),Tr=Ln(!0);function xr(e,t){return e&&vr(e,t,No)}function br(e,t){return e&&Tr(e,t,No)}function _r(e,t){return Ot(t,(function(t){return $a(e[t])}))}function Er(e,t){for(var r=0,n=(t=xn(t,e)).length;null!=e&&rt}function Mr(e,t){return null!=e&&Fe.call(e,t)}function Ar(e,t){return null!=e&&t in Me(e)}function Dr(e,t,r){for(var n=r?Ct:Rt,s=e[0].length,a=e.length,o=a,l=_e(a),h=1/0,u=[];o--;){var c=e[o];o&&t&&(c=Nt(c,Jt(t))),h=Ti(c.length,h),l[o]=!r&&(t||s>=120&&c.length>=120)?new qi(o&&c):i}c=e[0];var p=-1,d=l[0];e:for(;++p=o?l:l*("desc"==i[r]?-1:1)}return e.index-t.index}(e,t,i)}))}function Wr(e,t,i){for(var r=-1,n=t.length,s={};++r-1;)o!==e&&Ke.call(o,l,1),Ke.call(e,l,1);return e}function Xr(e,t){for(var i=e?t.length:0,r=i-1;i--;){var n=t[i];if(i==r||n!==s){var s=n;Ts(n)?Ke.call(e,n,1):pn(e,n)}}return e}function qr(e,t){return e+yt(_i()*(t-e+1))}function Zr(e,t){var i="";if(!e||t<1||t>p)return i;do{t%2&&(i+=e),(t=yt(t/2))&&(e+=e)}while(t);return i}function Kr(e,t){return Ns(Ms(e,t,sl),e+"")}function Jr(e){return Ji(zo(e))}function $r(e,t){var i=zo(e);return Fs(i,or(t,0,i.length))}function Qr(e,t,r,n){if(!to(e))return e;for(var s=-1,a=(t=xn(t,e)).length,o=a-1,l=e;null!=l&&++sn?0:n+t),(i=i>n?n:i)<0&&(i+=n),n=t>i?0:i-t>>>0,t>>>=0;for(var s=_e(n);++r>>1,a=e[s];null!==a&&!ho(a)&&(i?a<=t:a=200){var h=t?null:Kn(e);if(h)return ui(h);a=!1,n=Qt,l=new qi}else l=t?[]:o;e:for(;++r=n?e:nn(e,t,r)}var En=ct||function(e){return dt.clearTimeout(e)};function wn(e,t){if(t)return e.slice();var i=e.length,r=Ye?Ye(i):new e.constructor(i);return e.copy(r),r}function Sn(e){var t=new e.constructor(e.byteLength);return new We(t).set(new We(e)),t}function In(e,t){var i=t?Sn(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.length)}function Mn(e,t){if(e!==t){var r=e!==i,n=null===e,s=e==e,a=ho(e),o=t!==i,l=null===t,h=t==t,u=ho(t);if(!l&&!u&&!a&&e>t||a&&o&&h&&!l&&!u||n&&o&&h||!r&&h||!s)return 1;if(!n&&!a&&!u&&e1?r[s-1]:i,o=s>2?r[2]:i;for(a=e.length>3&&"function"==typeof a?(s--,a):i,o&&xs(r[0],r[1],o)&&(a=s<3?i:a,s=1),t=Me(t);++n-1?s[a?t[o]:o]:i}}function Hn(e){return rs((function(t){var n=t.length,s=n,a=Vi.prototype.thru;for(e&&t.reverse();s--;){var o=t[s];if("function"!=typeof o)throw new Oe(r);if(a&&!l&&"wrapper"==os(o))var l=new Vi([],!0)}for(s=l?s:n;++s1&&v.reverse(),p&&ul))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var p=-1,d=!0,f=2&r?new qi:i;for(a.set(e,t),a.set(t,e);++p-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(i>2?", ":" "),e.replace(ae,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Mt(m,(function(i){var r="_."+i[0];t&i[1]&&!Rt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(oe);return t?t[1].split(le):[]}(r),i)))}function Ls(e){var t=0,r=0;return function(){var n=xi(),s=16-(n-r);if(r=n,s>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(i,arguments)}}function Fs(e,t){var r=-1,n=e.length,s=n-1;for(t=t===i?n:t;++r1?e[t-1]:i;return r="function"==typeof r?(e.pop(),r):i,aa(e,r)}));function da(e){var t=Hi(e);return t.__chain__=!0,t}function fa(e,t){return t(e)}var ma=rs((function(e){var t=e.length,r=t?e[0]:0,n=this.__wrapped__,s=function(t){return ar(t,e)};return!(t>1||this.__actions__.length)&&n instanceof ji&&Ts(r)?((n=n.slice(r,+r+(t?1:0))).__actions__.push({func:fa,args:[s],thisArg:i}),new Vi(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(i),e}))):this.thru(s)}));var ga=Cn((function(e,t,i){Fe.call(e,i)?++e[i]:sr(e,i,1)}));var ya=Bn(js),va=Bn(Ws);function Ta(e,t){return(Wa(e)?Mt:pr)(e,hs(t,3))}function xa(e,t){return(Wa(e)?At:dr)(e,hs(t,3))}var ba=Cn((function(e,t,i){Fe.call(e,i)?e[i].push(t):sr(e,i,[t])}));var _a=Kr((function(e,t,i){var r=-1,n="function"==typeof t,s=Xa(e)?_e(e.length):[];return pr(e,(function(e){s[++r]=n?St(t,e,i):Or(e,t,i)})),s})),Ea=Cn((function(e,t,i){sr(e,i,t)}));function wa(e,t){return(Wa(e)?Nt:Br)(e,hs(t,3))}var Sa=Cn((function(e,t,i){e[i?0:1].push(t)}),(function(){return[[],[]]}));var Ia=Kr((function(e,t){if(null==e)return[];var i=t.length;return i>1&&xs(e,t[0],t[1])?t=[]:i>2&&xs(t[0],t[1],t[2])&&(t=[t[0]]),jr(e,yr(t,1),[])})),Ma=pt||function(){return dt.Date.now()};function Aa(e,t,r){return t=r?i:t,t=e&&null==t?e.length:t,$n(e,h,i,i,i,i,t)}function Da(e,t){var n;if("function"!=typeof t)throw new Oe(r);return e=go(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=i),n}}var Oa=Kr((function(e,t,i){var r=1;if(i.length){var n=hi(i,ls(Oa));r|=o}return $n(e,r,t,i,n)})),Ra=Kr((function(e,t,i){var r=3;if(i.length){var n=hi(i,ls(Ra));r|=o}return $n(t,r,e,i,n)}));function Ca(e,t,n){var s,a,o,l,h,u,c=0,p=!1,d=!1,f=!0;if("function"!=typeof e)throw new Oe(r);function m(t){var r=s,n=a;return s=a=i,c=t,l=e.apply(n,r)}function g(e){return c=e,h=Cs(v,t),p?m(e):l}function y(e){var r=e-u;return u===i||r>=t||r<0||d&&e-c>=o}function v(){var e=Ma();if(y(e))return T(e);h=Cs(v,function(e){var i=t-(e-u);return d?Ti(i,o-(e-c)):i}(e))}function T(e){return h=i,f&&s?m(e):(s=a=i,l)}function x(){var e=Ma(),r=y(e);if(s=arguments,a=this,u=e,r){if(h===i)return g(u);if(d)return En(h),h=Cs(v,t),m(u)}return h===i&&(h=Cs(v,t)),l}return t=vo(t)||0,to(n)&&(p=!!n.leading,o=(d="maxWait"in n)?vi(vo(n.maxWait)||0,t):o,f="trailing"in n?!!n.trailing:f),x.cancel=function(){h!==i&&En(h),c=0,s=u=a=h=i},x.flush=function(){return h===i?l:T(Ma())},x}var Na=Kr((function(e,t){return ur(e,1,t)})),Pa=Kr((function(e,t,i){return ur(e,vo(t)||0,i)}));function La(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Oe(r);var i=function(){var r=arguments,n=t?t.apply(this,r):r[0],s=i.cache;if(s.has(n))return s.get(n);var a=e.apply(this,r);return i.cache=s.set(n,a)||s,a};return i.cache=new(La.Cache||Xi),i}function Fa(e){if("function"!=typeof e)throw new Oe(r);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}La.Cache=Xi;var Ua=bn((function(e,t){var i=(t=1==t.length&&Wa(t[0])?Nt(t[0],Jt(hs())):Nt(yr(t,1),Jt(hs()))).length;return Kr((function(r){for(var n=-1,s=Ti(r.length,i);++n=t})),ja=Rr(function(){return arguments}())?Rr:function(e){return io(e)&&Fe.call(e,"callee")&&!Ze.call(e,"callee")},Wa=_e.isArray,Ya=Tt?Jt(Tt):function(e){return io(e)&&Sr(e)==C};function Xa(e){return null!=e&&eo(e.length)&&!$a(e)}function qa(e){return io(e)&&Xa(e)}var Za=kt||vl,Ka=xt?Jt(xt):function(e){return io(e)&&Sr(e)==T};function Ja(e){if(!io(e))return!1;var t=Sr(e);return t==x||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!so(e)}function $a(e){if(!to(e))return!1;var t=Sr(e);return t==b||t==_||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Qa(e){return"number"==typeof e&&e==go(e)}function eo(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=p}function to(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function io(e){return null!=e&&"object"==typeof e}var ro=bt?Jt(bt):function(e){return io(e)&&ms(e)==E};function no(e){return"number"==typeof e||io(e)&&Sr(e)==w}function so(e){if(!io(e)||Sr(e)!=S)return!1;var t=Xe(e);if(null===t)return!0;var i=Fe.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&Le.call(i)==He}var ao=_t?Jt(_t):function(e){return io(e)&&Sr(e)==M};var oo=Et?Jt(Et):function(e){return io(e)&&ms(e)==A};function lo(e){return"string"==typeof e||!Wa(e)&&io(e)&&Sr(e)==D}function ho(e){return"symbol"==typeof e||io(e)&&Sr(e)==O}var uo=wt?Jt(wt):function(e){return io(e)&&eo(e.length)&&!!at[Sr(e)]};var co=Xn(kr),po=Xn((function(e,t){return e<=t}));function fo(e){if(!e)return[];if(Xa(e))return lo(e)?pi(e):On(e);if(et&&e[et])return function(e){for(var t,i=[];!(t=e.next()).done;)i.push(t.value);return i}(e[et]());var t=ms(e);return(t==E?oi:t==A?ui:zo)(e)}function mo(e){return e?(e=vo(e))===c||e===-c?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function go(e){var t=mo(e),i=t%1;return t==t?i?t-i:t:0}function yo(e){return e?or(go(e),0,f):0}function vo(e){if("number"==typeof e)return e;if(ho(e))return d;if(to(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=to(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Kt(e);var i=me.test(e);return i||ye.test(e)?ut(e.slice(2),i?2:8):fe.test(e)?d:+e}function To(e){return Rn(e,Po(e))}function xo(e){return null==e?"":un(e)}var bo=Nn((function(e,t){if(ws(t)||Xa(t))Rn(t,No(t),e);else for(var i in t)Fe.call(t,i)&&tr(e,i,t[i])})),_o=Nn((function(e,t){Rn(t,Po(t),e)})),Eo=Nn((function(e,t,i,r){Rn(t,Po(t),e,r)})),wo=Nn((function(e,t,i,r){Rn(t,No(t),e,r)})),So=rs(ar);var Io=Kr((function(e,t){e=Me(e);var r=-1,n=t.length,s=n>2?t[2]:i;for(s&&xs(t[0],t[1],s)&&(n=1);++r1),t})),Rn(e,ss(e),i),r&&(i=lr(i,7,ts));for(var n=t.length;n--;)pn(i,t[n]);return i}));var ko=rs((function(e,t){return null==e?{}:function(e,t){return Wr(e,t,(function(t,i){return Do(e,i)}))}(e,t)}));function Bo(e,t){if(null==e)return{};var i=Nt(ss(e),(function(e){return[e]}));return t=hs(t),Wr(e,i,(function(e,i){return t(e,i[0])}))}var Ho=Jn(No),Go=Jn(Po);function zo(e){return null==e?[]:$t(e,No(e))}var Vo=Un((function(e,t,i){return t=t.toLowerCase(),e+(i?jo(t):t)}));function jo(e){return $o(xo(e).toLowerCase())}function Wo(e){return(e=xo(e))&&e.replace(Te,ri).replace(Qe,"")}var Yo=Un((function(e,t,i){return e+(i?"-":"")+t.toLowerCase()})),Xo=Un((function(e,t,i){return e+(i?" ":"")+t.toLowerCase()})),qo=Fn("toLowerCase");var Zo=Un((function(e,t,i){return e+(i?"_":"")+t.toLowerCase()}));var Ko=Un((function(e,t,i){return e+(i?" ":"")+$o(t)}));var Jo=Un((function(e,t,i){return e+(i?" ":"")+t.toUpperCase()})),$o=Fn("toUpperCase");function Qo(e,t,r){return e=xo(e),(t=r?i:t)===i?function(e){return rt.test(e)}(e)?function(e){return e.match(tt)||[]}(e):function(e){return e.match(he)||[]}(e):e.match(t)||[]}var el=Kr((function(e,t){try{return St(e,i,t)}catch(e){return Ja(e)?e:new we(e)}})),tl=rs((function(e,t){return Mt(t,(function(t){t=ks(t),sr(e,t,Oa(e[t],e))})),e}));function il(e){return function(){return e}}var rl=Hn(),nl=Hn(!0);function sl(e){return e}function al(e){return Lr("function"==typeof e?e:lr(e,1))}var ol=Kr((function(e,t){return function(i){return Or(i,e,t)}})),ll=Kr((function(e,t){return function(i){return Or(e,i,t)}}));function hl(e,t,i){var r=No(t),n=_r(t,r);null==i&&(!to(t)||!n.length&&r.length)&&(i=t,t=e,e=this,n=_r(t,No(t)));var s=!(to(i)&&"chain"in i&&!i.chain),a=$a(e);return Mt(n,(function(i){var r=t[i];e[i]=r,a&&(e.prototype[i]=function(){var t=this.__chain__;if(s||t){var i=e(this.__wrapped__),n=i.__actions__=On(this.__actions__);return n.push({func:r,args:arguments,thisArg:e}),i.__chain__=t,i}return r.apply(e,Pt([this.value()],arguments))})})),e}function ul(){}var cl=jn(Nt),pl=jn(Dt),dl=jn(Ut);function fl(e){return bs(e)?Wt(ks(e)):function(e){return function(t){return Er(t,e)}}(e)}var ml=Yn(),gl=Yn(!0);function yl(){return[]}function vl(){return!1}var Tl=Vn((function(e,t){return e+t}),0),xl=Zn("ceil"),bl=Vn((function(e,t){return e/t}),1),_l=Zn("floor");var El=Vn((function(e,t){return e*t}),1),wl=Zn("round"),Sl=Vn((function(e,t){return e-t}),0);return Hi.after=function(e,t){if("function"!=typeof t)throw new Oe(r);return e=go(e),function(){if(--e<1)return t.apply(this,arguments)}},Hi.ary=Aa,Hi.assign=bo,Hi.assignIn=_o,Hi.assignInWith=Eo,Hi.assignWith=wo,Hi.at=So,Hi.before=Da,Hi.bind=Oa,Hi.bindAll=tl,Hi.bindKey=Ra,Hi.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Wa(e)?e:[e]},Hi.chain=da,Hi.chunk=function(e,t,r){t=(r?xs(e,t,r):t===i)?1:vi(go(t),0);var n=null==e?0:e.length;if(!n||t<1)return[];for(var s=0,a=0,o=_e(mt(n/t));ss?0:s+r),(n=n===i||n>s?s:go(n))<0&&(n+=s),n=r>n?0:yo(n);r>>0)?(e=xo(e))&&("string"==typeof t||null!=t&&!ao(t))&&(!(t=un(t))&&ai(e))?_n(pi(e),0,r):e.split(t,r):[]},Hi.spread=function(e,t){if("function"!=typeof e)throw new Oe(r);return t=null==t?0:vi(go(t),0),Kr((function(i){var r=i[t],n=_n(i,0,t);return r&&Pt(n,r),St(e,this,n)}))},Hi.tail=function(e){var t=null==e?0:e.length;return t?nn(e,1,t):[]},Hi.take=function(e,t,r){return e&&e.length?nn(e,0,(t=r||t===i?1:go(t))<0?0:t):[]},Hi.takeRight=function(e,t,r){var n=null==e?0:e.length;return n?nn(e,(t=n-(t=r||t===i?1:go(t)))<0?0:t,n):[]},Hi.takeRightWhile=function(e,t){return e&&e.length?fn(e,hs(t,3),!1,!0):[]},Hi.takeWhile=function(e,t){return e&&e.length?fn(e,hs(t,3)):[]},Hi.tap=function(e,t){return t(e),e},Hi.throttle=function(e,t,i){var n=!0,s=!0;if("function"!=typeof e)throw new Oe(r);return to(i)&&(n="leading"in i?!!i.leading:n,s="trailing"in i?!!i.trailing:s),Ca(e,t,{leading:n,maxWait:t,trailing:s})},Hi.thru=fa,Hi.toArray=fo,Hi.toPairs=Ho,Hi.toPairsIn=Go,Hi.toPath=function(e){return Wa(e)?Nt(e,ks):ho(e)?[e]:On(Us(xo(e)))},Hi.toPlainObject=To,Hi.transform=function(e,t,i){var r=Wa(e),n=r||Za(e)||uo(e);if(t=hs(t,4),null==i){var s=e&&e.constructor;i=n?r?new s:[]:to(e)&&$a(s)?Gi(Xe(e)):{}}return(n?Mt:xr)(e,(function(e,r,n){return t(i,e,r,n)})),i},Hi.unary=function(e){return Aa(e,1)},Hi.union=ia,Hi.unionBy=ra,Hi.unionWith=na,Hi.uniq=function(e){return e&&e.length?cn(e):[]},Hi.uniqBy=function(e,t){return e&&e.length?cn(e,hs(t,2)):[]},Hi.uniqWith=function(e,t){return t="function"==typeof t?t:i,e&&e.length?cn(e,i,t):[]},Hi.unset=function(e,t){return null==e||pn(e,t)},Hi.unzip=sa,Hi.unzipWith=aa,Hi.update=function(e,t,i){return null==e?e:dn(e,t,Tn(i))},Hi.updateWith=function(e,t,r,n){return n="function"==typeof n?n:i,null==e?e:dn(e,t,Tn(r),n)},Hi.values=zo,Hi.valuesIn=function(e){return null==e?[]:$t(e,Po(e))},Hi.without=oa,Hi.words=Qo,Hi.wrap=function(e,t){return ka(Tn(t),e)},Hi.xor=la,Hi.xorBy=ha,Hi.xorWith=ua,Hi.zip=ca,Hi.zipObject=function(e,t){return yn(e||[],t||[],tr)},Hi.zipObjectDeep=function(e,t){return yn(e||[],t||[],Qr)},Hi.zipWith=pa,Hi.entries=Ho,Hi.entriesIn=Go,Hi.extend=_o,Hi.extendWith=Eo,hl(Hi,Hi),Hi.add=Tl,Hi.attempt=el,Hi.camelCase=Vo,Hi.capitalize=jo,Hi.ceil=xl,Hi.clamp=function(e,t,r){return r===i&&(r=t,t=i),r!==i&&(r=(r=vo(r))==r?r:0),t!==i&&(t=(t=vo(t))==t?t:0),or(vo(e),t,r)},Hi.clone=function(e){return lr(e,4)},Hi.cloneDeep=function(e){return lr(e,5)},Hi.cloneDeepWith=function(e,t){return lr(e,5,t="function"==typeof t?t:i)},Hi.cloneWith=function(e,t){return lr(e,4,t="function"==typeof t?t:i)},Hi.conformsTo=function(e,t){return null==t||hr(e,t,No(t))},Hi.deburr=Wo,Hi.defaultTo=function(e,t){return null==e||e!=e?t:e},Hi.divide=bl,Hi.endsWith=function(e,t,r){e=xo(e),t=un(t);var n=e.length,s=r=r===i?n:or(go(r),0,n);return(r-=t.length)>=0&&e.slice(r,s)==t},Hi.eq=Ga,Hi.escape=function(e){return(e=xo(e))&&Z.test(e)?e.replace(X,ni):e},Hi.escapeRegExp=function(e){return(e=xo(e))&&re.test(e)?e.replace(ie,"\\$&"):e},Hi.every=function(e,t,r){var n=Wa(e)?Dt:fr;return r&&xs(e,t,r)&&(t=i),n(e,hs(t,3))},Hi.find=ya,Hi.findIndex=js,Hi.findKey=function(e,t){return Bt(e,hs(t,3),xr)},Hi.findLast=va,Hi.findLastIndex=Ws,Hi.findLastKey=function(e,t){return Bt(e,hs(t,3),br)},Hi.floor=_l,Hi.forEach=Ta,Hi.forEachRight=xa,Hi.forIn=function(e,t){return null==e?e:vr(e,hs(t,3),Po)},Hi.forInRight=function(e,t){return null==e?e:Tr(e,hs(t,3),Po)},Hi.forOwn=function(e,t){return e&&xr(e,hs(t,3))},Hi.forOwnRight=function(e,t){return e&&br(e,hs(t,3))},Hi.get=Ao,Hi.gt=za,Hi.gte=Va,Hi.has=function(e,t){return null!=e&&gs(e,t,Mr)},Hi.hasIn=Do,Hi.head=Xs,Hi.identity=sl,Hi.includes=function(e,t,i,r){e=Xa(e)?e:zo(e),i=i&&!r?go(i):0;var n=e.length;return i<0&&(i=vi(n+i,0)),lo(e)?i<=n&&e.indexOf(t,i)>-1:!!n&&Gt(e,t,i)>-1},Hi.indexOf=function(e,t,i){var r=null==e?0:e.length;if(!r)return-1;var n=null==i?0:go(i);return n<0&&(n=vi(r+n,0)),Gt(e,t,n)},Hi.inRange=function(e,t,r){return t=mo(t),r===i?(r=t,t=0):r=mo(r),function(e,t,i){return e>=Ti(t,i)&&e=-p&&e<=p},Hi.isSet=oo,Hi.isString=lo,Hi.isSymbol=ho,Hi.isTypedArray=uo,Hi.isUndefined=function(e){return e===i},Hi.isWeakMap=function(e){return io(e)&&ms(e)==R},Hi.isWeakSet=function(e){return io(e)&&"[object WeakSet]"==Sr(e)},Hi.join=function(e,t){return null==e?"":gi.call(e,t)},Hi.kebabCase=Yo,Hi.last=Js,Hi.lastIndexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var s=n;return r!==i&&(s=(s=go(r))<0?vi(n+s,0):Ti(s,n-1)),t==t?function(e,t,i){for(var r=i+1;r--;)if(e[r]===t)return r;return r}(e,t,s):Ht(e,Vt,s,!0)},Hi.lowerCase=Xo,Hi.lowerFirst=qo,Hi.lt=co,Hi.lte=po,Hi.max=function(e){return e&&e.length?mr(e,sl,Ir):i},Hi.maxBy=function(e,t){return e&&e.length?mr(e,hs(t,2),Ir):i},Hi.mean=function(e){return jt(e,sl)},Hi.meanBy=function(e,t){return jt(e,hs(t,2))},Hi.min=function(e){return e&&e.length?mr(e,sl,kr):i},Hi.minBy=function(e,t){return e&&e.length?mr(e,hs(t,2),kr):i},Hi.stubArray=yl,Hi.stubFalse=vl,Hi.stubObject=function(){return{}},Hi.stubString=function(){return""},Hi.stubTrue=function(){return!0},Hi.multiply=El,Hi.nth=function(e,t){return e&&e.length?Vr(e,go(t)):i},Hi.noConflict=function(){return dt._===this&&(dt._=Ge),this},Hi.noop=ul,Hi.now=Ma,Hi.pad=function(e,t,i){e=xo(e);var r=(t=go(t))?ci(e):0;if(!t||r>=t)return e;var n=(t-r)/2;return Wn(yt(n),i)+e+Wn(mt(n),i)},Hi.padEnd=function(e,t,i){e=xo(e);var r=(t=go(t))?ci(e):0;return t&&rt){var n=e;e=t,t=n}if(r||e%1||t%1){var s=_i();return Ti(e+s*(t-e+ht("1e-"+((s+"").length-1))),t)}return qr(e,t)},Hi.reduce=function(e,t,i){var r=Wa(e)?Lt:Xt,n=arguments.length<3;return r(e,hs(t,4),i,n,pr)},Hi.reduceRight=function(e,t,i){var r=Wa(e)?Ft:Xt,n=arguments.length<3;return r(e,hs(t,4),i,n,dr)},Hi.repeat=function(e,t,r){return t=(r?xs(e,t,r):t===i)?1:go(t),Zr(xo(e),t)},Hi.replace=function(){var e=arguments,t=xo(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Hi.result=function(e,t,r){var n=-1,s=(t=xn(t,e)).length;for(s||(s=1,e=i);++np)return[];var i=f,r=Ti(e,f);t=hs(t),e-=f;for(var n=Zt(r,t);++i=a)return e;var l=r-ci(n);if(l<1)return n;var h=o?_n(o,0,l).join(""):e.slice(0,l);if(s===i)return h+n;if(o&&(l+=h.length-l),ao(s)){if(e.slice(l).search(s)){var u,c=h;for(s.global||(s=Ae(s.source,xo(de.exec(s))+"g")),s.lastIndex=0;u=s.exec(c);)var p=u.index;h=h.slice(0,p===i?l:p)}}else if(e.indexOf(un(s),l)!=l){var d=h.lastIndexOf(s);d>-1&&(h=h.slice(0,d))}return h+n},Hi.unescape=function(e){return(e=xo(e))&&q.test(e)?e.replace(Y,fi):e},Hi.uniqueId=function(e){var t=++Ue;return xo(e)+t},Hi.upperCase=Jo,Hi.upperFirst=$o,Hi.each=Ta,Hi.eachRight=xa,Hi.first=Xs,hl(Hi,function(){var e={};return xr(Hi,(function(t,i){Fe.call(Hi.prototype,i)||(e[i]=t)})),e}(),{chain:!1}),Hi.VERSION="4.17.21",Mt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Hi[e].placeholder=Hi})),Mt(["drop","take"],(function(e,t){ji.prototype[e]=function(r){r=r===i?1:vi(go(r),0);var n=this.__filtered__&&!t?new ji(this):this.clone();return n.__filtered__?n.__takeCount__=Ti(r,n.__takeCount__):n.__views__.push({size:Ti(r,f),type:e+(n.__dir__<0?"Right":"")}),n},ji.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Mt(["filter","map","takeWhile"],(function(e,t){var i=t+1,r=1==i||3==i;ji.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:hs(e,3),type:i}),t.__filtered__=t.__filtered__||r,t}})),Mt(["head","last"],(function(e,t){var i="take"+(t?"Right":"");ji.prototype[e]=function(){return this[i](1).value()[0]}})),Mt(["initial","tail"],(function(e,t){var i="drop"+(t?"":"Right");ji.prototype[e]=function(){return this.__filtered__?new ji(this):this[i](1)}})),ji.prototype.compact=function(){return this.filter(sl)},ji.prototype.find=function(e){return this.filter(e).head()},ji.prototype.findLast=function(e){return this.reverse().find(e)},ji.prototype.invokeMap=Kr((function(e,t){return"function"==typeof e?new ji(this):this.map((function(i){return Or(i,e,t)}))})),ji.prototype.reject=function(e){return this.filter(Fa(hs(e)))},ji.prototype.slice=function(e,t){e=go(e);var r=this;return r.__filtered__&&(e>0||t<0)?new ji(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),t!==i&&(r=(t=go(t))<0?r.dropRight(-t):r.take(t-e)),r)},ji.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},ji.prototype.toArray=function(){return this.take(f)},xr(ji.prototype,(function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),s=Hi[n?"take"+("last"==t?"Right":""):t],a=n||/^find/.test(t);s&&(Hi.prototype[t]=function(){var t=this.__wrapped__,o=n?[1]:arguments,l=t instanceof ji,h=o[0],u=l||Wa(t),c=function(e){var t=s.apply(Hi,Pt([e],o));return n&&p?t[0]:t};u&&r&&"function"==typeof h&&1!=h.length&&(l=u=!1);var p=this.__chain__,d=!!this.__actions__.length,f=a&&!p,m=l&&!d;if(!a&&u){t=m?t:new ji(this);var g=e.apply(t,o);return g.__actions__.push({func:fa,args:[c],thisArg:i}),new Vi(g,p)}return f&&m?e.apply(this,o):(g=this.thru(c),f?n?g.value()[0]:g.value():g)})})),Mt(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Re[e],i=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Hi.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var n=this.value();return t.apply(Wa(n)?n:[],e)}return this[i]((function(i){return t.apply(Wa(i)?i:[],e)}))}})),xr(ji.prototype,(function(e,t){var i=Hi[t];if(i){var r=i.name+"";Fe.call(Ri,r)||(Ri[r]=[]),Ri[r].push({name:t,func:i})}})),Ri[Gn(i,2).name]=[{name:"wrapper",func:i}],ji.prototype.clone=function(){var e=new ji(this.__wrapped__);return e.__actions__=On(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=On(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=On(this.__views__),e},ji.prototype.reverse=function(){if(this.__filtered__){var e=new ji(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},ji.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,i=Wa(e),r=t<0,n=i?e.length:0,s=function(e,t,i){for(var r=-1,n=i.length;++r=this.__values__.length;return{done:e,value:e?i:this.__values__[this.__index__++]}},Hi.prototype.plant=function(e){for(var t,r=this;r instanceof zi;){var n=Hs(r);n.__index__=0,n.__values__=i,t?s.__wrapped__=n:t=n;var s=n;r=r.__wrapped__}return s.__wrapped__=e,t},Hi.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof ji){var t=e;return this.__actions__.length&&(t=new ji(this)),(t=t.reverse()).__actions__.push({func:fa,args:[ta],thisArg:i}),new Vi(t,this.__chain__)}return this.thru(ta)},Hi.prototype.toJSON=Hi.prototype.valueOf=Hi.prototype.value=function(){return mn(this.__wrapped__,this.__actions__)},Hi.prototype.first=Hi.prototype.head,et&&(Hi.prototype[et]=function(){return this}),Hi}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(dt._=mi,define((function(){return mi}))):mt?((mt.exports=mi)._=mi,ft._=mi):dt._=mi}).call(e)}));!function(){if("undefined"!=typeof document&&!document.getElementById("fc9e2da07139cefaa9ac130a040be6afc71db71f412dd9abe895a85128468a55")){var e=document.createElement("style");e.id="fc9e2da07139cefaa9ac130a040be6afc71db71f412dd9abe895a85128468a55",e.textContent='@import"https://at.alicdn.com/t/font_2809422_tyv73h24h8.css";@import"https://at.alicdn.com/t/c/font_2802048_la37g7yevws.css";.axesRenderer{width:100px;height:100px;position:absolute;display:block;bottom:1px;left:10px;background:#ffffff00}.overview-map{width:200px;height:200px;top:10px;left:10px;position:absolute;z-index:1;border:1px #50505090 solid;background-color:#80808030}.statsOutput{position:absolute;opacity:.6;top:1px;left:1px}#navCube{position:absolute;bottom:10px;right:10px;z-index:1;pointer-events:none;cursor:pointer}#navCube:hover{opacity:1}.css3d-navcube .navcube-plane{backface-visibility:hidden;z-index:1;transition:all .2s}.css3d-navcube .navcube-plane.outer{opacity:.7;background:linear-gradient(-45deg,transparent 15px,#efefef 0) bottom right,linear-gradient(-135deg,transparent 15px,#efefef 0) top right,linear-gradient(135deg,transparent 15px,#efefef 0) top left,linear-gradient(45deg,transparent 15px,#efefef 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane.inner{margin:2px;font-size:30px;text-align:center;line-height:100px;background:linear-gradient(-45deg,transparent 14px,#2c7be5 0) bottom right,linear-gradient(-135deg,transparent 14px,#2c7be5 0) top right,linear-gradient(135deg,transparent 14px,#2c7be5 0) top left,linear-gradient(45deg,transparent 14px,#2c7be5 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane:hover{opacity:1!important}.css3d-navcube .navcube-edge{opacity:0;z-index:2;transition:all .2s}.css3d-navcube .navcube-edge:hover{opacity:1!important}.css3d-navcube .navcube-corner{opacity:.7;backface-visibility:hidden;box-sizing:content-box;transform-origin:50% 33%;top:4px;z-index:3;transition:all .2s}.css3d-navcube .navcube-corner-plane{opacity:0;backface-visibility:hidden;transform-origin:bottom;top:-6.5px;z-index:3;transition:all .2s}.css3d-navcube .highlight{opacity:1}.progress-bar{z-index:3;bottom:20%;left:25%;position:absolute;color:#ffffffa0;width:50%;user-select:none}.progress-bar.hidden{display:none}.progress-bar .progress-bar-item{width:100%;text-align:center;padding:2px}.pop-panel{z-index:99999999;top:calc(70% - 100px);left:calc(90% - 160px);position:absolute;background:#ffffff;color:#333;border-radius:4px;width:160px;box-shadow:0 12px 48px 16px #00000008,0 9px 28px #0000000d,0 6px 16px -8px #00000014}.pop-panel .pop-panel-header{font-size:16px;font-weight:bolder;padding:16px 24px 8px;color:#333;border-bottom:1px solid #EFEFEF;cursor:move;user-select:none}.pop-panel .pop-panel-body{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 24px}.pop-panel .pop-panel-body .pop-panel-item{display:inline-block;cursor:pointer;margin-right:16px;font-size:16px}.pop-panel .pop-panel-body .pop-panel-item .gemini-viewer-icon{font-size:24px}.pop-panel .pop-panel-body .pop-panel-item:last-child{margin-right:0}.pop-panel .pop-panel-body .pop-panel-item:hover,.pop-panel .pop-panel-body .pop-panel-item.active{color:#2c7be5}.pop-panel .pop-panel-body .pop-panel-item.disable{color:#999;cursor:not-allowed}.model-layout-switch-bar{position:absolute;bottom:0;width:100%;height:24px;background:#ffffff;opacity:.7;display:flex;font-size:14px;line-height:1;overflow-x:scroll;z-index:1}.model-layout-switch-bar .model-layout-switch-bar-content{white-space:nowrap}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item{position:relative;display:inline-block;padding:3px 10px 0;color:#000;height:22px;cursor:pointer;transform:translate(0)}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;border:1px solid #000;border-top:0px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:hover{color:#8080f0}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:nth-child(n+2){margin-left:-1px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate{color:#fff!important}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate:before{background:#212830!important}.model-layout-switch-bar.hidden{display:none}.follow-tooltip{z-index:99999999;position:absolute;left:-500px;padding:6px;background:rgba(25,25,25,.3);color:#fffc;font-size:12px;border-radius:2px}.context-menu{position:absolute;box-sizing:border-box;background-color:#fff;width:200px;padding:2px;border-radius:2px;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;cursor:pointer;z-index:2}.context-menu ul{list-style:none;padding:0}.context-menu ul:last-child li{border-bottom:0px}.context-menu li{height:2rem;padding:.5rem;box-sizing:border-box}.context-menu li:hover{background-color:#d3d3d3}.context-menu li.disabled{color:#ccc;cursor:not-allowed}.context-menu li:last-child{border-bottom:1px solid #000}.toolbar{position:absolute;display:flex;box-sizing:border-box;height:68px;left:50%;bottom:40px;padding:8px 20px;border:rgba(153,153,153,.8) 1px solid;border-radius:4px;background:rgba(255,255,255,.8);transform:translate(-50%);align-items:center;z-index:10;user-select:none}.toolbar .toolbar-group{display:flex;padding:0 2px;box-sizing:border-box}.toolbar .toolbar-group-division{width:1px;background-color:#999c;height:60%}.toolbar .toolbar-menu{display:flex;box-sizing:border-box;flex-direction:column;width:50px;height:50px;padding:3px 0;margin:0 2px;transition:all .3s;cursor:pointer;color:#666;border-radius:4px}.toolbar .toolbar-menu.active{color:#2c7be5}.toolbar .toolbar-menu .icon{width:24px;height:24px;margin:auto;font-size:24px;line-height:normal}.toolbar .toolbar-menu span{display:block;width:100%;margin:auto;font-size:.75em;text-align:center;user-select:none}.toolbar .toolbar-menu:hover{color:#2c7be5;background-color:#fffc}.toolbar .toolbar-parent-menu{position:relative}.toolbar .toolbar-parent-menu:hover .toolbar-sub-menu{display:block}.toolbar .toolbar-parent-menu:hover .toolbar-sub-menu-list{background:rgba(255,255,255,.8)}.toolbar .toolbar-parent-menu:after{content:"";position:absolute;box-sizing:border-box;width:0;height:0;right:2px;top:2px;border-width:4px;border-style:solid;border-top-color:#666;border-right-color:#666;border-bottom-color:transparent;border-left-color:transparent;border-radius:1px}.toolbar .toolbar-sub-menu{display:none;position:absolute;width:50px;bottom:100%}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list{margin-bottom:2px;border-radius:4px}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list .toolbar-menu{margin:0}.bottom-bar{position:absolute;bottom:0;right:0;display:flex;color:#666;z-index:3;overflow:hidden;user-select:none}.bottom-bar i{font-size:18px;padding:3px;align-self:center;opacity:.4;cursor:pointer;line-height:1}.bottom-bar i:hover,.bottom-bar i.active{color:#2c7be5;opacity:1}.bottom-bar .fps{width:4rem}.bottom-bar span{align-self:center;padding:4px;font-size:14px}#statistics-tooltip,#tips-tooltip,#cameraInfo-tooltip{position:absolute;right:5px;bottom:30px;background:#666666;color:#fff;padding:8px 8px 5px;font-size:.8rem;border-radius:4px;z-index:3;opacity:.9;user-select:none}#statistics-tooltip p,#tips-tooltip p,#cameraInfo-tooltip p{padding-bottom:3px;margin:3px}#statistics-tooltip p span,#tips-tooltip p span,#cameraInfo-tooltip p span{float:left;margin-right:10px}.hide{display:none}.bim-viewer-spinner{position:absolute;display:flex;top:calc(50% - 20px);left:calc(50% - 20px);opacity:.8;justify-content:center;align-items:center;z-index:10}.bim-viewer-spinner>div{font-size:3rem;animation:spin 1s infinite linear;color:#2c7be5}.bim-viewer-spinner.hidden{display:none}.svg-renderer{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.spinner{position:absolute;display:flex;width:100%;height:100%;opacity:.8;background-color:#fff;justify-content:center;align-items:center;z-index:10}.spinner>div{font-size:3rem;animation:spin 1s infinite linear;color:#2c7be5}.spinner.hidden{display:none}.compare-markups-canvas{position:absolute;top:0;left:0;pointer-events:none;user-select:none}.anchor{position:absolute;top:0;left:0;opacity:0;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;user-select:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADjRJREFUeF7tXQnQttUYvq4Zxr5MqBgaihRlKakUU7SYSBQljUhaxijtso2MTCrRn8YoldKIUlIIJRplSyKyqzGyJDSDLGHmMtfvvOb19n7fe7Zn+/7nnnnn+/7/O8t9zrne+5xzn3sh1hCS9GUA20UO9xqS20eWHXQxDpr7BOZHAMyfrBEA8+dllAAJX65BFB0lwCgBxjPAHAyMW8C4BQxCghczOW4B4xYwbgHjFjDqAWYxMJ4BxjNA8fY6iAbGM8B4BhjPAGvKGUDSYwA8FcAmAJ4EYOPw8/6R4upvAH4I4Efh580AbiJ5W2T9wRRbEWcASTuFBX/a1KLfq/Iq/HsKDN8NgLiych+tNzdYAEh6JoAXAdgtLHrrkwfAkuEyAJeTvL4LBkr7HBQAJK0fFtwLH/u0WzpHsfWvMRAMCJK3xlbqutwgACDplVMLf++uJ21B//+aAsL5PecVvQaApB0BHA3AP4dIVwE4maR/9pJ6CYBwij8GwOt7OWvpTJ0O4KQ+3iJ6BwBJXnQvvq9yK4l8hTQIDIbeUG8AsALEfeyi9mpb6AUAJL0bwBtjZ3CFlDuR5LFdj6VzAEi6EMCeXU9ER/1fRHKvjvpe3W1nAJC0NoDPAnhGwxNwF4DbZz6/m/q3u183fNaZ+n3yfw9smL8bALyA5B0N9zO3+U4AIMmL/gUAazU0aKtor/CH5M9K+pD0BAC7hI9Vzk3QnQB2JmkwtEqtA0DS7gAuqTxKn7C96F8EcBXJP1Zuf3Vzkh4WdBI7ADAYat9U9iD5ySZ4X6rNVgEg6TAA76s4wKsBnBa+6X6saY0k+bHJkuFQAM+r2PHhJE+t2N6yTbUGAEkHADiz0sBu8sKTPKdSe0XNSHpNAIKfoGvQgSQ/VKOhRW20AoDwcvfNRcxE/P034Rvvxf97RPnWiki6XwCBJcKjKnS8ZRsvjI0DILzg3VI4IX5gsahf1Ud16vTYghr7DQEMpQ9XGzT9stgoACQ9BMD3Cw9LlhyvI3ljIYharS5pMwAfALBlQcc+3G5K8k8FbXR3BpDkE+1LCpj3+/o+JH2XHxxJsg7ho8FwJZf/S0n65tQINSYBJH0QwEEFXJ9F0gfHwZMkH+heWzCQM0geXFB/yaqNAEDS8QDeUsDwsSRPLKjfu6qS/NbhN49cehfJt+ZWXqpedQCEV70SY8ltSX619kD70J6kbQBcV8DLTrWNS5oAgBc/y4KHZHV+Cia7saqSlNm4tZxV1dFVJzwYc7w/c3BPJPnTzLqDqiZpQwA/yWT6kJpGJdUAEO6/Ft05+vFdSX4mc0IGWU3SCwF8OoN5Xw23qaUPqQkAf/NzbPiOJPnejIkYfBVJRwA4JWMgp5M8JKPePapUAUDBwa+x602NyWmjjYLrcpUDYS0A5Bz87Ky5C8l/tDHRs31IesTUdnUbyd93xMd9g+1CalzCKgfCYgAEp42PJE6edftbtaXeDWrZ59ryJiz6owHcZ4bnuwH8CoD3WFsqfall/r4BIPXtYF+SRc4nNQBwMYA9EgFwCsmjEuskFZe0c7A1tAuZXcpyyC5edvmy7Z4tmBojSe8BcGRiB5eQfGlinf8rXgSA8NL340Tk+knX3/5GXK0l+U3ehievLpmYOXXPBXAqSdsiVKdwi7IUSHlKtiTdqOTFsBQAhwNIPcE3ouaVZN9/q0q9+H6bb4Jsg2BrneNJOoZAVcpUFx9BMtvKqhQAKVE3PFn+9mxd25hD0tMB+PHJLuNtkF3BDyb5nZqdBaOSr4dYB7FNF4W1zQZAppXP/rXNuCS9HMDHYmercrm9SX68ZpvBvOzsxDazrYdKAJD64nc1SVvTViNJbwdwXLUG8xo6juQ78qrOryXJ1s0phqbZL4UlALClj2PwxNJuJG3gUYXCKf/zVRorb+RZJC26q5AkB8Bw5JFYupnkprGFp8tlASBD8/dbAOuRrGK6XeFZNWeuFtV5HMlfLCoU8/dgcv5LAI+MKR/KZGkGcwHg+6rvrbF0Acl9YgsvVy5c8+z1k3JdqtH1ojasDfWj1j8XFYz5uySbkr0ipmwocxTJ5HeFXAD4TvyqBOaq2blL8jaya0LfbRY9geSba3SY4UdxHslk3UcuAL4NwFavsbRODefHgifUWD5Ly1lP4GtusbIoOM/aiTWWbiS5eWzhSblkAEiy6PVeF6u3vpbkc1IZm1e+59/+Ccvnktyv0ni/AuDZkW1ZK/hYkta0RlMOAGySlKIXr6L5G8C3f3rSn1/j7SBDM2gP4yR7zBwApKp/Nybp94IiknQBgL2LGmmvctZ+PMuepI1CuNpYzpPVwjkAsJbKzpAxdBfJB8UUXK6MJLfxawDFbZXyElnf9gXrRZZdtpikvwCIDVJxDsn9U/rNAYBdtWJ17j8n6QALRSRpXwDnFTXSfuUqyiFJDnDx+Ej2ryeZ5IrGEEc/sv3VxbYA8IDICteRjD3ELNlkBRezSHarFnsbSavLi0jStQC2jWzkrwC+FVl2dTEDINdGPaafi0m+LKbggi2gSR5L2VuqftEr3aRRSZ8AUGT0sdwAmwZAsfWqpAcDaMw7tqnVB3ALyVjRvZz0y7W2jhpa0wAoFoOSbL/XiPVQ1AzlF7qbpA0+i0iSjVzeWdTIMpWbBsABJM8qYV6SM378oKSNDuuuXWptLMlexY2Fi2kaAMUeP5K2BvC1DhexpOvNSy2Lm1aAjQAoWd7Fddd4AIxbQKHDydC3gPEQuFhKLFti6IfA8RpYDoBBXwNHRVA5ABpXBNm2P4X8DhCbgLGWKjjVPCplPE2VPZpkitncXD4SVcF2VklKX5fzGGRdc2yI91qPQQ4112oQ5QqoKL4BmIfEx6AbSPqtJppyAGBPYKdxi6Faz8F+DrXnrgNPDoFuJblBDUYTn4PPJ+mX02jKAYDTnJwQ3QOwYWnM/vBNSAFeAnuNFE1+l5/HRchVkBI36U0kk0LR5QAgNbbNYSRXlU5z0xqxUv5m6tcyCXPM4ZTQ8cma1xwAOAiU/eZjkzNfSdK++sW0BhqF2vYyNiycnW7WT3W7TwZAEMc2e35Kwoo+vEYWjwFIgZpm4c5O8oeEOf4eyeR8BbkASL2WVfOi7bkUqOkYkur1nOV9lQsA5/M9KQGdZ5MsCZb8v64kbQXgcwAemtB/G0V9/96+VuAISX5GTzHwPIbkyakDzQVAqm+ADTq8P9VyDrXPnKVQn2izWgEjgnOoz1kpQTeTfQI8eVkACOeArt3DHSjRWUT6QNW2uDC3/XYPD0yOASL+C701NkCE3wRSE0E1ESLGV8yuAkVUue9Pi7DBhIgJUqAvQaIch/+iFmMG2AFzz9p5DQYVJCoAINVP0NWqOIvObvwhcIStZ5uOHeAI3zZ0KXYBnzOGnKwiyf6A0/1mHwIDAByBs2+BIq2qPrABIHjhz2wqrP0gA0UGEPQ1VKyB4Ouif+Y6ldox03kMrGRpNJ/BIEPFBgD4abi3waKDZ7HtCV6ckMLuUgCfAuCUbQZBoxSCWQ8zWHQAQU64eN8gdmg7J2BwNbO7mT8T+wK7nv3ZH5L+2RqF3IKOC5jk1RuypMc+FC05nqIzwKTVjLBxk6qXk9yttdnuYUeSHA/Qip9UygoLN9tJFQAEKZBrvbpiEkSmrmBBQslia+sJrzUBYL11btKoRq6GqQvSZvmM+D8T9vqZNCpIASeNyk0bt2ITRs6575ckkOxn2rip80DOgXB19TFx5EIZVCVP0HQv1baACgfCSRMrNoFkYcJIz0+Vg1+jAAhbgS1TrdbMpWTjxtyO2qpXwZztRJK2yK5K1SXAlCS4MCRtymV4xSSULEgQOZk7J63aK3cil6vXGACCJEjxIprH5xnOAdRVbsHSCZfkEDE26z6ooK1kb5+UvpoGwNoh0uVaKUzNlPWTs0Oh31jQRutVg3rXvoGpCSGneb0TgCOt3tHUABoFQJAC9iNMil03Z7AOhGzzr1Wpdu9NTdxS7YZXPTt0HJoQUHup5rYgeUOTY2gcAAEEuwO4pMJAbIhhIJxWO/NYKW/BmMOL7k+NZBZ7kGzcIbYVAAQQOJ9fdn67mQWyMYZBcE7pwtWoH8y4vPDJjhlL9H84yRSXsOxhtAaAAIIDbFSRze09K14dJMIVtUzOY3kLptu7hG98SoavRV1Uy66yqCP/vVUABBDkGJMuGouTUvmw6Dy/lzV1aApZPPx66XzEPtylJHVaNAb/PTv/X0zj88q0DoAAApuSebFSHB9SxugAy84AbjAU5SoIMfu96M48Xhz4eolB+IFnu5IcwCmTM122EwAEENgY48MJVjq5Y7wLwO0zH+fimfyf2103fNaZ+n3yf7Gx+nP5s/XRfiQ7iYfcGQAmsyXJOX9LFCW5E9+HemeQPLhLRjoHQJAGqV5GXc5Zrb6z073WYqCTQ+BSzAezMnsd71hzgD1s6yoAJ5P0z86pFxJgehYk2ajkmAYPiF1Nug96J5E8vSsGenMLWDQBQZ1qEBgMK4G86F783uU96J0EmJEG3g6GvC30StwPRgLMMirJzie+i9t8OjZjaVeSww9Xzm9sHcT5XTER22+vJcAcIFiBNAGCtXF9Iiu2Jgvv6B6DoEEBYGZ7sErZEsGA2KSj2b7Z33QvPMmkGL0d8XuPbgcLgDlnBYet23TqU3ursGh3WJzJx2HZenGVKwHTigDAnK3C7/GWCk8OPye/xya8dAJGJ6ryN9yf1b+nZuYuWZi26q5IAMybvJAhNfbcUCXpY1uLWNLPCID5szcCoARVfaw7SoD5qzJKgFEC9PH7Wp+nUQKMEiAlpN14Bqj/Hey2xVECjBJglABzMDAeAsdDYLeiua3exy1g3ALGLWDcAlY7dMTQGnML+A8qtnUcTFYqYAAAAABJRU5ErkJggg==) no-repeat center center;background-size:100% 100%;background-blend-mode:lighten;filter:invert(61%) sepia(87%) saturate(845%) hue-rotate(120deg) brightness(94%) contrast(101%);transition:opacity .5s ease-in-out}.anchor.active{opacity:1}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}\n',document.head.appendChild(e)}}();var ANe=fetch;window.fetch=(...e)=>Promise.resolve(ANe(...e));var _5r=kn(r9(),1),S5r=kn(ace(),1),w5r=kn(oce(),1),Lt={};QS(Lt,{ACESFilmicToneMapping:()=>$ue,AddEquation:()=>Sa,AddOperation:()=>Wue,AdditiveAnimationBlendMode:()=>HU,AdditiveBlending:()=>vp,AlphaFormat:()=>rhe,AlwaysDepth:()=>Uue,AlwaysStencilFunc:()=>mhe,AmbientLight:()=>Cl,AmbientLightProbe:()=>X4,AnimationClip:()=>so,AnimationLoader:()=>k4,AnimationMixer:()=>rU,AnimationObjectGroup:()=>eU,AnimationUtils:()=>lvt,ArcCurve:()=>xg,ArrayCamera:()=>PD,ArrowHelper:()=>Ug,Audio:()=>QD,AudioAnalyser:()=>J4,AudioContext:()=>xx,AudioListener:()=>K4,AudioLoader:()=>q4,AxesHelper:()=>mU,BackSide:()=>zn,BasicDepthPacking:()=>dhe,BasicShadowMap:()=>ipt,Bone:()=>Sl,BooleanKeyframeTrack:()=>Pp,Box2:()=>rs,Box3:()=>Dt,Box3Helper:()=>dU,BoxBufferGeometry:()=>gU,BoxGeometry:()=>eo,BoxHelper:()=>Hg,BufferAttribute:()=>Wt,BufferGeometry:()=>lt,BufferGeometryLoader:()=>JD,ByteType:()=>Zue,Cache:()=>Ng,Camera:()=>bp,CameraHelper:()=>wx,CanvasTexture:()=>L4,CapsuleBufferGeometry:()=>vU,CapsuleGeometry:()=>_g,CatmullRomCurve3:()=>HD,CineonToneMapping:()=>Xue,CircleBufferGeometry:()=>yU,CircleGeometry:()=>Sg,ClampToEdgeWrapping:()=>gn,Clock:()=>Al,Color:()=>je,ColorKeyframeTrack:()=>yx,ColorManagement:()=>Ys,CompressedArrayTexture:()=>N4,CompressedTexture:()=>ux,CompressedTextureLoader:()=>G4,ConeBufferGeometry:()=>TU,ConeGeometry:()=>wg,CubeCamera:()=>AD,CubeReflectionMapping:()=>af,CubeRefractionMapping:()=>of,CubeTexture:()=>Eg,CubeTextureLoader:()=>Tx,CubeUVReflectionMapping:()=>zy,CubicBezierCurve:()=>hx,CubicBezierCurve3:()=>UD,CubicInterpolant:()=>qD,CullFaceBack:()=>UH,CullFaceFront:()=>Due,CullFaceFrontBack:()=>rpt,CullFaceNone:()=>Mue,Curve:()=>Ma,CurvePath:()=>kD,CustomBlending:()=>Fp,CustomToneMapping:()=>Kue,CylinderBufferGeometry:()=>EU,CylinderGeometry:()=>Rl,Cylindrical:()=>oU,Data3DTexture:()=>ox,DataArrayTexture:()=>Ay,DataTexture:()=>Il,DataTextureLoader:()=>Fg,DataUtils:()=>Yy,DecrementStencilOp:()=>dpt,DecrementWrapStencilOp:()=>mpt,DefaultLoadingManager:()=>ao,DepthFormat:()=>sf,DepthStencilFormat:()=>Tp,DepthTexture:()=>cf,DirectionalLight:()=>$s,DirectionalLightHelper:()=>Sx,DiscreteInterpolant:()=>YD,DodecahedronBufferGeometry:()=>bU,DodecahedronGeometry:()=>Rg,DoubleSide:()=>gi,DstAlphaFactor:()=>Gy,DstColorFactor:()=>Vy,DynamicCopyUsage:()=>Cpt,DynamicDrawUsage:()=>_pt,DynamicReadUsage:()=>Rpt,EdgesGeometry:()=>Rp,EllipseCurve:()=>wp,EqualDepth:()=>kue,EqualStencilFunc:()=>Tpt,EquirectangularReflectionMapping:()=>yg,EquirectangularRefractionMapping:()=>tx,Euler:()=>xr,EventDispatcher:()=>Bo,ExtrudeBufferGeometry:()=>xU,ExtrudeGeometry:()=>Mp,FileLoader:()=>ui,Float16BufferAttribute:()=>x4,Float32BufferAttribute:()=>dt,Float64BufferAttribute:()=>I4,FloatType:()=>wa,Fog:()=>Uu,FogExp2:()=>Ny,FramebufferTexture:()=>P4,FrontSide:()=>tn,Frustum:()=>Xs,GLBufferAttribute:()=>sU,GLSL1:()=>Opt,GLSL3:()=>p4,GreaterDepth:()=>Vue,GreaterEqualDepth:()=>Gue,GreaterEqualStencilFunc:()=>Ipt,GreaterStencilFunc:()=>bpt,GridHelper:()=>_x,Group:()=>ur,HalfFloatType:()=>Uo,HemisphereLight:()=>df,HemisphereLightHelper:()=>hU,HemisphereLightProbe:()=>Y4,IcosahedronBufferGeometry:()=>IU,IcosahedronGeometry:()=>Dg,ImageBitmapLoader:()=>bx,ImageLoader:()=>Lg,ImageUtils:()=>ax,IncrementStencilOp:()=>ppt,IncrementWrapStencilOp:()=>fpt,InstancedBufferAttribute:()=>Sp,InstancedBufferGeometry:()=>ZD,InstancedInterleavedBuffer:()=>nU,InstancedMesh:()=>rn,Int16BufferAttribute:()=>E4,Int32BufferAttribute:()=>b4,Int8BufferAttribute:()=>v4,IntType:()=>Que,InterleavedBuffer:()=>_p,InterleavedBufferAttribute:()=>to,Interpolant:()=>Op,InterpolateDiscrete:()=>Ep,InterpolateLinear:()=>Hu,InterpolateSmooth:()=>SD,InvertStencilOp:()=>gpt,KeepStencilOp:()=>wD,KeyframeTrack:()=>Go,LOD:()=>FD,LatheBufferGeometry:()=>_U,LatheGeometry:()=>uf,Layers:()=>Oy,LessDepth:()=>Bue,LessEqualDepth:()=>MD,LessEqualStencilFunc:()=>Ept,LessStencilFunc:()=>ypt,Light:()=>Dl,LightProbe:()=>Hy,Line:()=>Ir,Line3:()=>Ca,LineBasicMaterial:()=>vr,LineCurve:()=>Fy,LineCurve3:()=>BD,LineDashedMaterial:()=>Ap,LineLoop:()=>Ly,LineSegments:()=>li,LinearEncoding:()=>_l,LinearFilter:()=>oi,LinearInterpolant:()=>vx,LinearMipMapLinearFilter:()=>lpt,LinearMipMapNearestFilter:()=>opt,LinearMipmapLinearFilter:()=>Ra,LinearMipmapNearestFilter:()=>Bg,LinearSRGBColorSpace:()=>Cy,LinearToneMapping:()=>que,Loader:()=>ci,LoaderUtils:()=>Bs,LoadingManager:()=>Lp,LoopOnce:()=>uhe,LoopPingPong:()=>phe,LoopRepeat:()=>hhe,LuminanceAlphaFormat:()=>ihe,LuminanceFormat:()=>nC,MOUSE:()=>rC,Material:()=>zr,MaterialLoader:()=>Uy,MathUtils:()=>_r,Matrix3:()=>Pi,Matrix4:()=>Be,MaxEquation:()=>VH,Mesh:()=>rt,MeshBasicMaterial:()=>or,MeshDepthMaterial:()=>Ip,MeshDistanceMaterial:()=>cx,MeshLambertMaterial:()=>io,MeshMatcapMaterial:()=>WD,MeshNormalMaterial:()=>pf,MeshPhongMaterial:()=>Es,MeshPhysicalMaterial:()=>Ml,MeshStandardMaterial:()=>Gu,MeshToonMaterial:()=>jD,MinEquation:()=>GH,MirroredRepeatWrapping:()=>yp,MixOperation:()=>jue,MultiplyBlending:()=>kH,MultiplyOperation:()=>Dx,NearestFilter:()=>Di,NearestMipMapLinearFilter:()=>apt,NearestMipMapNearestFilter:()=>spt,NearestMipmapLinearFilter:()=>mp,NearestMipmapNearestFilter:()=>lf,NeverDepth:()=>Hue,NeverStencilFunc:()=>vpt,NoBlending:()=>Ui,NoColorSpace:()=>cpt,NoToneMapping:()=>Lu,NormalAnimationBlendMode:()=>aC,NormalBlending:()=>mg,NotEqualDepth:()=>zue,NotEqualStencilFunc:()=>xpt,NumberKeyframeTrack:()=>Cc,Object3D:()=>cr,ObjectLoader:()=>W4,ObjectSpaceNormalMap:()=>fhe,OctahedronBufferGeometry:()=>SU,OctahedronGeometry:()=>hf,OneFactor:()=>ky,OneMinusDstAlphaFactor:()=>Nue,OneMinusDstColorFactor:()=>Lue,OneMinusSrcAlphaFactor:()=>FU,OneMinusSrcColorFactor:()=>Pue,OrthographicCamera:()=>Ji,PCFShadowMap:()=>LU,PCFSoftShadowMap:()=>By,PMREMGenerator:()=>xp,Path:()=>ku,PerspectiveCamera:()=>Xr,Plane:()=>bi,PlaneBufferGeometry:()=>wU,PlaneGeometry:()=>ts,PlaneHelper:()=>fU,PointLight:()=>Ac,PointLightHelper:()=>uU,Points:()=>nn,PointsMaterial:()=>jn,PolarGridHelper:()=>pU,PolyhedronBufferGeometry:()=>RU,PolyhedronGeometry:()=>Dc,PositionalAudio:()=>Z4,PropertyBinding:()=>Rr,PropertyMixer:()=>eC,QuadraticBezierCurve:()=>px,QuadraticBezierCurve3:()=>dx,Quaternion:()=>Hr,QuaternionKeyframeTrack:()=>Da,QuaternionLinearInterpolant:()=>XD,RED_GREEN_RGTC2_Format:()=>u4,RED_RGTC1_Format:()=>che,REVISION:()=>tC,RGBADepthPacking:()=>Wy,RGBAFormat:()=>Us,RGBAIntegerFormat:()=>ohe,RGBA_ASTC_10x10_Format:()=>a4,RGBA_ASTC_10x5_Format:()=>i4,RGBA_ASTC_10x6_Format:()=>n4,RGBA_ASTC_10x8_Format:()=>s4,RGBA_ASTC_12x10_Format:()=>o4,RGBA_ASTC_12x12_Format:()=>l4,RGBA_ASTC_4x4_Format:()=>$H,RGBA_ASTC_5x4_Format:()=>KH,RGBA_ASTC_5x5_Format:()=>ZH,RGBA_ASTC_6x5_Format:()=>JH,RGBA_ASTC_6x6_Format:()=>QH,RGBA_ASTC_8x5_Format:()=>e4,RGBA_ASTC_8x6_Format:()=>t4,RGBA_ASTC_8x8_Format:()=>r4,RGBA_BPTC_Format:()=>_D,RGBA_ETC2_EAC_Format:()=>XH,RGBA_PVRTC_2BPPV1_Format:()=>qH,RGBA_PVRTC_4BPPV1_Format:()=>WH,RGBA_S3TC_DXT1_Format:()=>bD,RGBA_S3TC_DXT3_Format:()=>xD,RGBA_S3TC_DXT5_Format:()=>ID,RGB_ETC1_Format:()=>lhe,RGB_ETC2_Format:()=>YH,RGB_PVRTC_2BPPV1_Format:()=>jH,RGB_PVRTC_4BPPV1_Format:()=>zH,RGB_S3TC_DXT1_Format:()=>ED,RGFormat:()=>she,RGIntegerFormat:()=>ahe,RawShaderMaterial:()=>zD,Ray:()=>ko,Raycaster:()=>Oc,RectAreaLight:()=>$D,RedFormat:()=>sC,RedIntegerFormat:()=>nhe,ReinhardToneMapping:()=>Yue,RepeatWrapping:()=>vn,ReplaceStencilOp:()=>hpt,ReverseSubtractEquation:()=>Aue,RingBufferGeometry:()=>MU,RingGeometry:()=>Cg,SIGNED_RED_GREEN_RGTC2_Format:()=>h4,SIGNED_RED_RGTC1_Format:()=>c4,SRGBColorSpace:()=>wc,Scene:()=>Pn,ShaderChunk:()=>Yr,ShaderLib:()=>Rc,ShaderMaterial:()=>Yt,ShadowMaterial:()=>VD,Shape:()=>Qa,ShapeBufferGeometry:()=>DU,ShapeGeometry:()=>Dp,ShapePath:()=>Rx,ShapeUtils:()=>es,ShortType:()=>Jue,Skeleton:()=>wl,SkeletonHelper:()=>cU,SkinnedMesh:()=>Bu,Source:()=>Mc,Sphere:()=>Wi,SphereBufferGeometry:()=>CU,SphereGeometry:()=>ro,Spherical:()=>ff,SphericalHarmonics3:()=>KD,SplineCurve:()=>Ig,SpotLight:()=>Vu,SpotLightHelper:()=>lU,Sprite:()=>LD,SpriteMaterial:()=>bg,SrcAlphaFactor:()=>Mx,SrcAlphaSaturateFactor:()=>Fue,SrcColorFactor:()=>Oue,StaticCopyUsage:()=>Dpt,StaticDrawUsage:()=>ix,StaticReadUsage:()=>wpt,StereoCamera:()=>$4,StreamCopyUsage:()=>Apt,StreamDrawUsage:()=>Spt,StreamReadUsage:()=>Mpt,StringKeyframeTrack:()=>Np,SubtractEquation:()=>Cue,SubtractiveBlending:()=>BH,TOUCH:()=>tpt,TangentSpaceNormalMap:()=>gf,TetrahedronBufferGeometry:()=>AU,TetrahedronGeometry:()=>Ag,Texture:()=>Bi,TextureLoader:()=>bs,TorusBufferGeometry:()=>OU,TorusGeometry:()=>Cp,TorusKnotBufferGeometry:()=>PU,TorusKnotGeometry:()=>Og,Triangle:()=>hn,TriangleFanDrawMode:()=>jy,TriangleStripDrawMode:()=>Ax,TrianglesDrawMode:()=>UU,TubeBufferGeometry:()=>NU,TubeGeometry:()=>Pg,TwoPassDoubleSide:()=>npt,UVMapping:()=>iC,Uint16BufferAttribute:()=>Tg,Uint32BufferAttribute:()=>lx,Uint8BufferAttribute:()=>y4,Uint8ClampedBufferAttribute:()=>T4,Uniform:()=>Ix,UniformsGroup:()=>iU,UniformsLib:()=>At,UniformsUtils:()=>pn,UnsignedByteType:()=>Fu,UnsignedInt248Type:()=>gp,UnsignedIntType:()=>nf,UnsignedShort4444Type:()=>ehe,UnsignedShort5551Type:()=>the,UnsignedShortType:()=>Cx,VSMShadowMap:()=>Sy,Vector2:()=>le,Vector3:()=>A,Vector4:()=>Gr,VectorKeyframeTrack:()=>no,VideoTexture:()=>O4,WebGL1Renderer:()=>ND,WebGL3DRenderTarget:()=>m4,WebGLArrayRenderTarget:()=>f4,WebGLCubeRenderTarget:()=>OD,WebGLMultipleRenderTargets:()=>g4,WebGLRenderTarget:()=>Vr,WebGLRenderer:()=>Ol,WebGLUtils:()=>She,WireframeGeometry:()=>GD,WrapAroundEnding:()=>rx,ZeroCurvatureEnding:()=>pg,ZeroFactor:()=>mf,ZeroSlopeEnding:()=>dg,ZeroStencilOp:()=>upt,_SRGBAFormat:()=>DD,sRGBEncoding:()=>gr});var tC="149",rC={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},tpt={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Mue=0,UH=1,Due=2,rpt=3,ipt=0,LU=1,By=2,Sy=3,tn=0,zn=1,gi=2,npt=2,Ui=0,mg=1,vp=2,BH=3,kH=4,Fp=5,Sa=100,Cue=101,Aue=102,GH=103,VH=104,mf=200,ky=201,Oue=202,Pue=203,Mx=204,FU=205,Gy=206,Nue=207,Vy=208,Lue=209,Fue=210,Hue=0,Uue=1,Bue=2,MD=3,kue=4,Gue=5,Vue=6,zue=7,Dx=0,jue=1,Wue=2,Lu=0,que=1,Yue=2,Xue=3,$ue=4,Kue=5,iC=300,af=301,of=302,yg=303,tx=304,zy=306,vn=1e3,gn=1001,yp=1002,Di=1003,lf=1004,spt=1004,mp=1005,apt=1005,oi=1006,Bg=1007,opt=1007,Ra=1008,lpt=1008,Fu=1009,Zue=1010,Jue=1011,Cx=1012,Que=1013,nf=1014,wa=1015,Uo=1016,ehe=1017,the=1018,gp=1020,rhe=1021,Us=1023,nC=1024,ihe=1025,sf=1026,Tp=1027,sC=1028,nhe=1029,she=1030,ahe=1031,ohe=1033,ED=33776,bD=33777,xD=33778,ID=33779,zH=35840,jH=35841,WH=35842,qH=35843,lhe=36196,YH=37492,XH=37496,$H=37808,KH=37809,ZH=37810,JH=37811,QH=37812,e4=37813,t4=37814,r4=37815,i4=37816,n4=37817,s4=37818,a4=37819,o4=37820,l4=37821,_D=36492,che=36283,c4=36284,u4=36285,h4=36286,uhe=2200,hhe=2201,phe=2202,Ep=2300,Hu=2301,SD=2302,pg=2400,dg=2401,rx=2402,aC=2500,HU=2501,UU=0,Ax=1,jy=2,_l=3e3,gr=3001,dhe=3200,Wy=3201,gf=0,fhe=1,cpt="",wc="srgb",Cy="srgb-linear",upt=0,wD=7680,hpt=7681,ppt=7682,dpt=7683,fpt=34055,mpt=34056,gpt=5386,vpt=512,ypt=513,Tpt=514,Ept=515,bpt=516,xpt=517,Ipt=518,mhe=519,ix=35044,_pt=35048,Spt=35040,wpt=35045,Rpt=35049,Mpt=35041,Dpt=35046,Cpt=35050,Apt=35042,Opt="100",p4="300 es",DD=1035,Bo=class{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let i=this._listeners;void 0===i[e]&&(i[e]=[]),-1===i[e].indexOf(t)&&i[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let i=this._listeners;return void 0!==i[e]&&-1!==i[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let i=this._listeners[e];if(void 0!==i){let e=i.indexOf(t);-1!==e&&i.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let i=t.slice(0);for(let t=0,r=i.length;t>8&255]+qs[e>>16&255]+qs[e>>24&255]+"-"+qs[255&t]+qs[t>>8&255]+"-"+qs[t>>16&15|64]+qs[t>>24&255]+"-"+qs[63&i|128]+qs[i>>8&255]+"-"+qs[i>>16&255]+qs[i>>24&255]+qs[255&r]+qs[r>>8&255]+qs[r>>16&255]+qs[r>>24&255]).toLowerCase()}function Qn(e,t,i){return Math.max(t,Math.min(i,e))}function BU(e,t){return(e%t+t)%t}function Ppt(e,t,i,r,n){return r+(e-t)*(n-r)/(i-t)}function Npt(e,t,i){return e!==t?(i-e)/(t-e):0}function Zb(e,t,i){return(1-i)*e+i*t}function Lpt(e,t,i,r){return Zb(e,t,1-Math.exp(-i*r))}function Fpt(e,t=1){return t-Math.abs(BU(e,2*t)-t)}function Hpt(e,t,i){return e<=t?0:e>=i?1:(e=(e-t)/(i-t))*e*(3-2*e)}function Upt(e,t,i){return e<=t?0:e>=i?1:(e=(e-t)/(i-t))*e*e*(e*(6*e-15)+10)}function Bpt(e,t){return e+Math.floor(Math.random()*(t-e+1))}function kpt(e,t){return e+Math.random()*(t-e)}function Gpt(e){return e*(.5-Math.random())}function Vpt(e){void 0!==e&&(lce=e);let t=lce+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296}function zpt(e){return e*gg}function jpt(e){return e*nx}function d4(e){return 0==(e&e-1)&&0!==e}function ghe(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function CD(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function Wpt(e,t,i,r,n){let s=Math.cos,a=Math.sin,o=s(i/2),l=a(i/2),h=s((t+r)/2),u=a((t+r)/2),c=s((t-r)/2),p=a((t-r)/2),d=s((r-t)/2),f=a((r-t)/2);switch(n){case"XYX":e.set(o*u,l*c,l*p,o*h);break;case"YZY":e.set(l*p,o*u,l*c,o*h);break;case"ZXZ":e.set(l*c,l*p,o*u,o*h);break;case"XZX":e.set(o*u,l*f,l*d,o*h);break;case"YXY":e.set(l*d,o*u,l*f,o*h);break;case"ZYZ":e.set(l*f,l*d,o*u,o*h);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+n)}}function fp(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function un(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}}var _r=Object.freeze({__proto__:null,DEG2RAD:gg,RAD2DEG:nx,ceilPowerOfTwo:ghe,clamp:Qn,damp:Lpt,degToRad:zpt,denormalize:fp,euclideanModulo:BU,floorPowerOfTwo:CD,generateUUID:Ho,inverseLerp:Npt,isPowerOfTwo:d4,lerp:Zb,mapLinear:Ppt,normalize:un,pingpong:Fpt,radToDeg:jpt,randFloat:kpt,randFloatSpread:Gpt,randInt:Bpt,seededRandom:Vpt,setQuaternionFromProperEuler:Wpt,smootherstep:Upt,smoothstep:Hpt}),le=class{constructor(e=0,t=0){le.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.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(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let i=Math.cos(t),r=Math.sin(t),n=this.x-e.x,s=this.y-e.y;return this.x=n*i-s*r+e.x,this.y=n*r+s*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Pi=class{constructor(){Pi.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,i,r,n,s,a,o,l){let h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=n,h[5]=o,h[6]=i,h[7]=s,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,r=t.elements,n=this.elements,s=i[0],a=i[3],o=i[6],l=i[1],h=i[4],u=i[7],c=i[2],p=i[5],d=i[8],f=r[0],m=r[3],g=r[6],y=r[1],v=r[4],T=r[7],x=r[2],b=r[5],_=r[8];return n[0]=s*f+a*y+o*x,n[3]=s*m+a*v+o*b,n[6]=s*g+a*T+o*_,n[1]=l*f+h*y+u*x,n[4]=l*m+h*v+u*b,n[7]=l*g+h*T+u*_,n[2]=c*f+p*y+d*x,n[5]=c*m+p*v+d*b,n[8]=c*g+p*T+d*_,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[1],r=e[2],n=e[3],s=e[4],a=e[5],o=e[6],l=e[7],h=e[8];return t*s*h-t*a*l-i*n*h+i*a*o+r*n*l-r*s*o}invert(){let e=this.elements,t=e[0],i=e[1],r=e[2],n=e[3],s=e[4],a=e[5],o=e[6],l=e[7],h=e[8],u=h*s-a*l,c=a*o-h*n,p=l*n-s*o,d=t*u+i*c+r*p;if(0===d)return this.set(0,0,0,0,0,0,0,0,0);let f=1/d;return e[0]=u*f,e[1]=(r*l-h*i)*f,e[2]=(a*i-r*s)*f,e[3]=c*f,e[4]=(h*t-r*o)*f,e[5]=(r*n-a*t)*f,e[6]=p*f,e[7]=(i*o-l*t)*f,e[8]=(s*t-i*n)*f,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,n,s,a){let o=Math.cos(n),l=Math.sin(n);return this.set(i*o,i*l,-i*(o*s+l*a)+s+e,-r*l,r*o,-r*(-l*s+o*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(sH.makeScale(e,t)),this}rotate(e){return this.premultiply(sH.makeRotation(-e)),this}translate(e,t){return this.premultiply(sH.makeTranslation(e,t)),this}makeTranslation(e,t){return this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,i=e.elements;for(let e=0;e<9;e++)if(t[e]!==i[e])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return(new this.constructor).fromArray(this.elements)}},sH=new Pi;function vhe(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}var qpt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function wy(e,t){return new qpt[e](t)}function sx(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function vg(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function RD(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}var aH={[wc]:{[Cy]:vg},[Cy]:{[wc]:RD}},Ys={legacyMode:!0,get workingColorSpace(){return Cy},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,i){if(this.legacyMode||t===i||!t||!i)return e;if(aH[t]&&void 0!==aH[t][i]){let r=aH[t][i];return e.r=r(e.r),e.g=r(e.g),e.b=r(e.b),e}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}},yhe={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},vs={r:0,g:0,b:0},Ic={h:0,s:0,l:0},LM={h:0,s:0,l:0};function oH(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+6*(t-e)*(2/3-i):e}function FM(e,t){return t.r=e.r,t.g=e.g,t.b=e.b,t}var je=class{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===t&&void 0===i?this.set(e):this.setRGB(e,t,i)}set(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=wc){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,Ys.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=Ys.workingColorSpace){return this.r=e,this.g=t,this.b=i,Ys.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=Ys.workingColorSpace){if(e=BU(e,1),t=Qn(t,0,1),i=Qn(i,0,1),0===t)this.r=this.g=this.b=i;else{let r=i<=.5?i*(1+t):i+t-i*t,n=2*i-r;this.r=oH(n,r,e+1/3),this.g=oH(n,r,e),this.b=oH(n,r,e-1/3)}return Ys.toWorkingColorSpace(this,r),this}setStyle(e,t=wc){function i(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let e,n=r[1],s=r[2];switch(n){case"rgb":case"rgba":if(e=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.r=Math.min(255,parseInt(e[1],10))/255,this.g=Math.min(255,parseInt(e[2],10))/255,this.b=Math.min(255,parseInt(e[3],10))/255,Ys.toWorkingColorSpace(this,t),i(e[4]),this;if(e=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.r=Math.min(100,parseInt(e[1],10))/100,this.g=Math.min(100,parseInt(e[2],10))/100,this.b=Math.min(100,parseInt(e[3],10))/100,Ys.toWorkingColorSpace(this,t),i(e[4]),this;break;case"hsl":case"hsla":if(e=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s)){let r=parseFloat(e[1])/360,n=parseFloat(e[2])/100,s=parseFloat(e[3])/100;return i(e[4]),this.setHSL(r,n,s,t)}}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){let e=r[1],i=e.length;if(3===i)return this.r=parseInt(e.charAt(0)+e.charAt(0),16)/255,this.g=parseInt(e.charAt(1)+e.charAt(1),16)/255,this.b=parseInt(e.charAt(2)+e.charAt(2),16)/255,Ys.toWorkingColorSpace(this,t),this;if(6===i)return this.r=parseInt(e.charAt(0)+e.charAt(1),16)/255,this.g=parseInt(e.charAt(2)+e.charAt(3),16)/255,this.b=parseInt(e.charAt(4)+e.charAt(5),16)/255,Ys.toWorkingColorSpace(this,t),this}return e&&e.length>0?this.setColorName(e,t):this}setColorName(e,t=wc){let i=yhe[e.toLowerCase()];return void 0!==i?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=vg(e.r),this.g=vg(e.g),this.b=vg(e.b),this}copyLinearToSRGB(e){return this.r=RD(e.r),this.g=RD(e.g),this.b=RD(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=wc){return Ys.fromWorkingColorSpace(FM(this,vs),e),Qn(255*vs.r,0,255)<<16^Qn(255*vs.g,0,255)<<8^Qn(255*vs.b,0,255)<<0}getHexString(e=wc){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Ys.workingColorSpace){Ys.fromWorkingColorSpace(FM(this,vs),t);let i,r,n=vs.r,s=vs.g,a=vs.b,o=Math.max(n,s,a),l=Math.min(n,s,a),h=(l+o)/2;if(l===o)i=0,r=0;else{let e=o-l;switch(r=h<=.5?e/(o+l):e/(2-o-l),o){case n:i=(s-a)/e+(s2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){let t=sx("canvas");t.width=e.width,t.height=e.height;let i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);let r=i.getImageData(0,0,e.width,e.height),n=r.data;for(let e=0;e0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==iC)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case vn:e.x=e.x-Math.floor(e.x);break;case gn:e.x=e.x<0?0:1;break;case yp:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case vn:e.y=e.y-Math.floor(e.y);break;case gn:e.y=e.y<0?0:1;break;case yp:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}};Bi.DEFAULT_IMAGE=null,Bi.DEFAULT_MAPPING=iC,Bi.DEFAULT_ANISOTROPY=1;var Gr=class{constructor(e=0,t=0,i=0,r=1){Gr.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){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: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,i=this.y,r=this.z,n=this.w,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r+s[12]*n,this.y=s[1]*t+s[5]*i+s[9]*r+s[13]*n,this.z=s[2]*t+s[6]*i+s[10]*r+s[14]*n,this.w=s[3]*t+s[7]*i+s[11]*r+s[15]*n,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,n,s=e.elements,a=s[0],o=s[4],l=s[8],h=s[1],u=s[5],c=s[9],p=s[2],d=s[6],f=s[10];if(Math.abs(o-h)<.01&&Math.abs(l-p)<.01&&Math.abs(c-d)<.01){if(Math.abs(o+h)<.1&&Math.abs(l+p)<.1&&Math.abs(c+d)<.1&&Math.abs(a+u+f-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let e=(a+1)/2,s=(u+1)/2,m=(f+1)/2,g=(o+h)/4,y=(l+p)/4,v=(c+d)/4;return e>s&&e>m?e<.01?(i=0,r=.707106781,n=.707106781):(i=Math.sqrt(e),r=g/i,n=y/i):s>m?s<.01?(i=.707106781,r=0,n=.707106781):(r=Math.sqrt(s),i=g/r,n=v/r):m<.01?(i=.707106781,r=.707106781,n=0):(n=Math.sqrt(m),i=y/n,r=v/n),this.set(i,r,n,t),this}let m=Math.sqrt((d-c)*(d-c)+(l-p)*(l-p)+(h-o)*(h-o));return Math.abs(m)<.001&&(m=1),this.x=(d-c)/m,this.y=(l-p)/m,this.z=(h-o)/m,this.w=Math.acos((a+u+f-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),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}},Vr=class extends Bo{constructor(e=1,t=1,i={}){super(),this.isWebGLRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new Gr(0,0,e,t),this.scissorTest=!1,this.viewport=new Gr(0,0,e,t);let r={width:e,height:t,depth:1};this.texture=new Bi(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=void 0!==i.generateMipmaps&&i.generateMipmaps,this.texture.internalFormat=void 0!==i.internalFormat?i.internalFormat:null,this.texture.minFilter=void 0!==i.minFilter?i.minFilter:oi,this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0!==i.stencilBuffer&&i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null,this.samples=void 0!==i.samples?i.samples:0}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return(new this.constructor).copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;let t=Object.assign({},e.texture.image);return this.texture.source=new Mc(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,null!==e.depthTexture&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},Ay=class extends Bi{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Di,this.minFilter=Di,this.wrapR=gn,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},f4=class extends Vr{constructor(e=1,t=1,i=1){super(e,t),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new Ay(null,e,t,i),this.texture.isRenderTargetTexture=!0}},ox=class extends Bi{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Di,this.minFilter=Di,this.wrapR=gn,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},m4=class extends Vr{constructor(e=1,t=1,i=1){super(e,t),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new ox(null,e,t,i),this.texture.isRenderTargetTexture=!0}},g4=class extends Vr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;let n=this.texture;this.texture=[];for(let e=0;e=0?1:-1,r=1-t*t;if(r>Number.EPSILON){let n=Math.sqrt(r),s=Math.atan2(n,t*i);e=Math.sin(e*s)/n,a=Math.sin(a*s)/n}let n=a*i;if(o=o*e+c*n,l=l*e+p*n,h=h*e+d*n,u=u*e+f*n,e===1-a){let e=1/Math.sqrt(o*o+l*l+h*h+u*u);o*=e,l*=e,h*=e,u*=e}}e[t]=o,e[t+1]=l,e[t+2]=h,e[t+3]=u}static multiplyQuaternionsFlat(e,t,i,r,n,s){let a=i[r],o=i[r+1],l=i[r+2],h=i[r+3],u=n[s],c=n[s+1],p=n[s+2],d=n[s+3];return e[t]=a*d+h*u+o*p-l*c,e[t+1]=o*d+h*c+l*u-a*p,e[t+2]=l*d+h*p+a*c-o*u,e[t+3]=h*d-a*u-o*c-l*p,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){let i=e._x,r=e._y,n=e._z,s=e._order,a=Math.cos,o=Math.sin,l=a(i/2),h=a(r/2),u=a(n/2),c=o(i/2),p=o(r/2),d=o(n/2);switch(s){case"XYZ":this._x=c*h*u+l*p*d,this._y=l*p*u-c*h*d,this._z=l*h*d+c*p*u,this._w=l*h*u-c*p*d;break;case"YXZ":this._x=c*h*u+l*p*d,this._y=l*p*u-c*h*d,this._z=l*h*d-c*p*u,this._w=l*h*u+c*p*d;break;case"ZXY":this._x=c*h*u-l*p*d,this._y=l*p*u+c*h*d,this._z=l*h*d+c*p*u,this._w=l*h*u-c*p*d;break;case"ZYX":this._x=c*h*u-l*p*d,this._y=l*p*u+c*h*d,this._z=l*h*d-c*p*u,this._w=l*h*u+c*p*d;break;case"YZX":this._x=c*h*u+l*p*d,this._y=l*p*u+c*h*d,this._z=l*h*d-c*p*u,this._w=l*h*u-c*p*d;break;case"XZY":this._x=c*h*u-l*p*d,this._y=l*p*u-c*h*d,this._z=l*h*d+c*p*u,this._w=l*h*u+c*p*d;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,i=t[0],r=t[4],n=t[8],s=t[1],a=t[5],o=t[9],l=t[2],h=t[6],u=t[10],c=i+a+u;if(c>0){let e=.5/Math.sqrt(c+1);this._w=.25/e,this._x=(h-o)*e,this._y=(n-l)*e,this._z=(s-r)*e}else if(i>a&&i>u){let e=2*Math.sqrt(1+i-a-u);this._w=(h-o)/e,this._x=.25*e,this._y=(r+s)/e,this._z=(n+l)/e}else if(a>u){let e=2*Math.sqrt(1+a-i-u);this._w=(n-l)/e,this._x=(r+s)/e,this._y=.25*e,this._z=(o+h)/e}else{let e=2*Math.sqrt(1+u-i-a);this._w=(s-r)/e,this._x=(n+l)/e,this._y=(o+h)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Qn(this.dot(e),-1,1)))}rotateTowards(e,t){let i=this.angleTo(e);if(0===i)return this;let r=Math.min(1,t/i);return this.slerp(e,r),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(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._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 e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let i=e._x,r=e._y,n=e._z,s=e._w,a=t._x,o=t._y,l=t._z,h=t._w;return this._x=i*h+s*a+r*l-n*o,this._y=r*h+s*o+n*a-i*l,this._z=n*h+s*l+i*o-r*a,this._w=s*h-i*a-r*o-n*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);let i=this._x,r=this._y,n=this._z,s=this._w,a=s*e._w+i*e._x+r*e._y+n*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=s,this._x=i,this._y=r,this._z=n,this;let o=1-a*a;if(o<=Number.EPSILON){let e=1-t;return this._w=e*s+t*this._w,this._x=e*i+t*this._x,this._y=e*r+t*this._y,this._z=e*n+t*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(o),h=Math.atan2(l,a),u=Math.sin((1-t)*h)/l,c=Math.sin(t*h)/l;return this._w=s*u+this._w*c,this._x=i*u+this._x*c,this._y=r*u+this._y*c,this._z=n*u+this._z*c,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){let e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),n=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(n),i*Math.cos(n),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},A=class{constructor(e=0,t=0,i=0){A.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return void 0===i&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(cce.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(cce.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,i=this.y,r=this.z,n=e.elements;return this.x=n[0]*t+n[3]*i+n[6]*r,this.y=n[1]*t+n[4]*i+n[7]*r,this.z=n[2]*t+n[5]*i+n[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,i=this.y,r=this.z,n=e.elements,s=1/(n[3]*t+n[7]*i+n[11]*r+n[15]);return this.x=(n[0]*t+n[4]*i+n[8]*r+n[12])*s,this.y=(n[1]*t+n[5]*i+n[9]*r+n[13])*s,this.z=(n[2]*t+n[6]*i+n[10]*r+n[14])*s,this}applyQuaternion(e){let t=this.x,i=this.y,r=this.z,n=e.x,s=e.y,a=e.z,o=e.w,l=o*t+s*r-a*i,h=o*i+a*t-n*r,u=o*r+n*i-s*t,c=-n*t-s*i-a*r;return this.x=l*o+c*-n+h*-a-u*-s,this.y=h*o+c*-s+u*-n-l*-a,this.z=u*o+c*-a+l*-s-h*-n,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,i=this.y,r=this.z,n=e.elements;return this.x=n[0]*t+n[4]*i+n[8]*r,this.y=n[1]*t+n[5]*i+n[9]*r,this.z=n[2]*t+n[6]*i+n[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let i=e.x,r=e.y,n=e.z,s=t.x,a=t.y,o=t.z;return this.x=r*o-n*a,this.y=n*s-i*o,this.z=i*a-r*s,this}projectOnVector(e){let t=e.lengthSq();if(0===t)return this.set(0,0,0);let i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return cH.copy(this).projectOnVector(e),this.sub(cH)}reflect(e){return this.sub(cH.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Qn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){let r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=2*(Math.random()-.5),t=Math.random()*Math.PI*2,i=Math.sqrt(1-jh(e,2));return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},cH=new A,cce=new Hr,Dt=class{constructor(e=new A(1/0,1/0,1/0),t=new A(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,i=1/0,r=1/0,n=-1/0,s=-1/0,a=-1/0;for(let o=0,l=e.length;on&&(n=l),h>s&&(s=h),u>a&&(a=u)}return this.min.set(t,i,r),this.max.set(n,s,a),this}setFromBufferAttribute(e){let t=1/0,i=1/0,r=1/0,n=-1/0,s=-1/0,a=-1/0;for(let o=0,l=e.count;on&&(n=l),h>s&&(s=h),u>a&&(a=u)}return this.min.set(t,i,r),this.max.set(n,s,a),this}setFromPoints(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,rg),rg.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Ub),HM.subVectors(this.max,Ub),ly.subVectors(e.a,Ub),cy.subVectors(e.b,Ub),uy.subVectors(e.c,Ub),Jd.subVectors(cy,ly),Qd.subVectors(uy,cy),ig.subVectors(ly,uy);let t=[0,-Jd.z,Jd.y,0,-Qd.z,Qd.y,0,-ig.z,ig.y,Jd.z,0,-Jd.x,Qd.z,0,-Qd.x,ig.z,0,-ig.x,-Jd.y,Jd.x,0,-Qd.y,Qd.x,0,-ig.y,ig.x,0];return!(!hH(t,ly,cy,uy,HM)||(t=[1,0,0,0,1,0,0,0,1],!hH(t,ly,cy,uy,HM)))&&(UM.crossVectors(Jd,Qd),t=[UM.x,UM.y,UM.z],hH(t,ly,cy,uy,HM))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return rg.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=.5*this.getSize(rg).length(),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(op[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),op[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),op[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),op[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),op[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),op[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),op[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),op[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(op)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},op=[new A,new A,new A,new A,new A,new A,new A,new A],rg=new A,uH=new Dt,ly=new A,cy=new A,uy=new A,Jd=new A,Qd=new A,ig=new A,Ub=new A,HM=new A,UM=new A,ng=new A;function hH(e,t,i,r,n){for(let s=0,a=e.length-3;s<=a;s+=3){ng.fromArray(e,s);let a=n.x*Math.abs(ng.x)+n.y*Math.abs(ng.y)+n.z*Math.abs(ng.z),o=t.dot(ng),l=i.dot(ng),h=r.dot(ng);if(Math.max(-Math.max(o,l,h),Math.min(o,l,h))>a)return!1}return!0}var Xpt=new Dt,Bb=new A,pH=new A,Wi=class{constructor(e=new A,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let i=this.center;void 0!==t?i.copy(t):Xpt.setFromPoints(e).getCenter(i);let r=0;for(let t=0,n=e.length;tthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Bb.subVectors(e,this.center);let t=Bb.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),i=.5*(e-this.radius);this.center.addScaledVector(Bb,i/e),this.radius+=i}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(pH.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Bb.copy(e.center).add(pH)),this.expandByPoint(Bb.copy(e.center).sub(pH))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}},lp=new A,dH=new A,BM=new A,ef=new A,fH=new A,kM=new A,mH=new A,ko=class{constructor(e=new A,t=new A(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,lp)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(i).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=lp.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(lp.copy(this.direction).multiplyScalar(t).add(this.origin),lp.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){dH.copy(e).add(t).multiplyScalar(.5),BM.copy(t).sub(e).normalize(),ef.copy(this.origin).sub(dH);let n,s,a,o,l=.5*e.distanceTo(t),h=-this.direction.dot(BM),u=ef.dot(this.direction),c=-ef.dot(BM),p=ef.lengthSq(),d=Math.abs(1-h*h);if(d>0)if(n=h*c-u,s=h*u-c,o=l*d,n>=0)if(s>=-o)if(s<=o){let e=1/d;n*=e,s*=e,a=n*(n+h*s+2*u)+s*(h*n+s+2*c)+p}else s=l,n=Math.max(0,-(h*s+u)),a=-n*n+s*(s+2*c)+p;else s=-l,n=Math.max(0,-(h*s+u)),a=-n*n+s*(s+2*c)+p;else s<=-o?(n=Math.max(0,-(-h*l+u)),s=n>0?-l:Math.min(Math.max(-l,-c),l),a=-n*n+s*(s+2*c)+p):s<=o?(n=0,s=Math.min(Math.max(-l,-c),l),a=s*(s+2*c)+p):(n=Math.max(0,-(h*l+u)),s=n>0?l:Math.min(Math.max(-l,-c),l),a=-n*n+s*(s+2*c)+p);else s=h>0?-l:l,n=Math.max(0,-(h*s+u)),a=-n*n+s*(s+2*c)+p;return i&&i.copy(this.direction).multiplyScalar(n).add(this.origin),r&&r.copy(BM).multiplyScalar(s).add(dH),a}intersectSphere(e,t){lp.subVectors(e.center,this.origin);let i=lp.dot(this.direction),r=lp.dot(lp)-i*i,n=e.radius*e.radius;if(r>n)return null;let s=Math.sqrt(n-r),a=i-s,o=i+s;return a<0&&o<0?null:a<0?this.at(o,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;let i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){let i=this.distanceToPlane(e);return null===i?null:this.at(i,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return 0===t||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,n,s,a,o,l=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,c=this.origin;return l>=0?(i=(e.min.x-c.x)*l,r=(e.max.x-c.x)*l):(i=(e.max.x-c.x)*l,r=(e.min.x-c.x)*l),h>=0?(n=(e.min.y-c.y)*h,s=(e.max.y-c.y)*h):(n=(e.max.y-c.y)*h,s=(e.min.y-c.y)*h),i>s||n>r||((n>i||isNaN(i))&&(i=n),(s=0?(a=(e.min.z-c.z)*u,o=(e.max.z-c.z)*u):(a=(e.max.z-c.z)*u,o=(e.min.z-c.z)*u),i>o||a>r)||((a>i||i!=i)&&(i=a),(o=0?i:r,t)}intersectsBox(e){return null!==this.intersectBox(e,lp)}intersectTriangle(e,t,i,r,n){fH.subVectors(t,e),kM.subVectors(i,e),mH.crossVectors(fH,kM);let s,a=this.direction.dot(mH);if(a>0){if(r)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ef.subVectors(this.origin,e);let o=s*this.direction.dot(kM.crossVectors(ef,kM));if(o<0)return null;let l=s*this.direction.dot(fH.cross(ef));if(l<0||o+l>a)return null;let h=-s*ef.dot(mH);return h<0?null:this.at(h/a,n)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}},Be=class{constructor(){Be.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m){let g=this.elements;return g[0]=e,g[4]=t,g[8]=i,g[12]=r,g[1]=n,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=h,g[10]=u,g[14]=c,g[3]=p,g[7]=d,g[11]=f,g[15]=m,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 Be).fromArray(this.elements)}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){let t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,i=e.elements,r=1/hy.setFromMatrixColumn(e,0).length(),n=1/hy.setFromMatrixColumn(e,1).length(),s=1/hy.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*n,t[5]=i[5]*n,t[6]=i[6]*n,t[7]=0,t[8]=i[8]*s,t[9]=i[9]*s,t[10]=i[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,i=e.x,r=e.y,n=e.z,s=Math.cos(i),a=Math.sin(i),o=Math.cos(r),l=Math.sin(r),h=Math.cos(n),u=Math.sin(n);if("XYZ"===e.order){let e=s*h,i=s*u,r=a*h,n=a*u;t[0]=o*h,t[4]=-o*u,t[8]=l,t[1]=i+r*l,t[5]=e-n*l,t[9]=-a*o,t[2]=n-e*l,t[6]=r+i*l,t[10]=s*o}else if("YXZ"===e.order){let e=o*h,i=o*u,r=l*h,n=l*u;t[0]=e+n*a,t[4]=r*a-i,t[8]=s*l,t[1]=s*u,t[5]=s*h,t[9]=-a,t[2]=i*a-r,t[6]=n+e*a,t[10]=s*o}else if("ZXY"===e.order){let e=o*h,i=o*u,r=l*h,n=l*u;t[0]=e-n*a,t[4]=-s*u,t[8]=r+i*a,t[1]=i+r*a,t[5]=s*h,t[9]=n-e*a,t[2]=-s*l,t[6]=a,t[10]=s*o}else if("ZYX"===e.order){let e=s*h,i=s*u,r=a*h,n=a*u;t[0]=o*h,t[4]=r*l-i,t[8]=e*l+n,t[1]=o*u,t[5]=n*l+e,t[9]=i*l-r,t[2]=-l,t[6]=a*o,t[10]=s*o}else if("YZX"===e.order){let e=s*o,i=s*l,r=a*o,n=a*l;t[0]=o*h,t[4]=n-e*u,t[8]=r*u+i,t[1]=u,t[5]=s*h,t[9]=-a*h,t[2]=-l*h,t[6]=i*u+r,t[10]=e-n*u}else if("XZY"===e.order){let e=s*o,i=s*l,r=a*o,n=a*l;t[0]=o*h,t[4]=-u,t[8]=l*h,t[1]=e*u+n,t[5]=s*h,t[9]=i*u-r,t[2]=r*u-i,t[6]=a*h,t[10]=n*u+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose($pt,e,Kpt)}lookAt(e,t,i){let r=this.elements;return Lo.subVectors(e,t),0===Lo.lengthSq()&&(Lo.z=1),Lo.normalize(),tf.crossVectors(i,Lo),0===tf.lengthSq()&&(1===Math.abs(i.z)?Lo.x+=1e-4:Lo.z+=1e-4,Lo.normalize(),tf.crossVectors(i,Lo)),tf.normalize(),GM.crossVectors(Lo,tf),r[0]=tf.x,r[4]=GM.x,r[8]=Lo.x,r[1]=tf.y,r[5]=GM.y,r[9]=Lo.y,r[2]=tf.z,r[6]=GM.z,r[10]=Lo.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,r=t.elements,n=this.elements,s=i[0],a=i[4],o=i[8],l=i[12],h=i[1],u=i[5],c=i[9],p=i[13],d=i[2],f=i[6],m=i[10],g=i[14],y=i[3],v=i[7],T=i[11],x=i[15],b=r[0],_=r[4],E=r[8],w=r[12],S=r[1],I=r[5],M=r[9],A=r[13],D=r[2],O=r[6],R=r[10],C=r[14],N=r[3],P=r[7],L=r[11],F=r[15];return n[0]=s*b+a*S+o*D+l*N,n[4]=s*_+a*I+o*O+l*P,n[8]=s*E+a*M+o*R+l*L,n[12]=s*w+a*A+o*C+l*F,n[1]=h*b+u*S+c*D+p*N,n[5]=h*_+u*I+c*O+p*P,n[9]=h*E+u*M+c*R+p*L,n[13]=h*w+u*A+c*C+p*F,n[2]=d*b+f*S+m*D+g*N,n[6]=d*_+f*I+m*O+g*P,n[10]=d*E+f*M+m*R+g*L,n[14]=d*w+f*A+m*C+g*F,n[3]=y*b+v*S+T*D+x*N,n[7]=y*_+v*I+T*O+x*P,n[11]=y*E+v*M+T*R+x*L,n[15]=y*w+v*A+T*C+x*F,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[4],r=e[8],n=e[12],s=e[1],a=e[5],o=e[9],l=e[13],h=e[2],u=e[6],c=e[10],p=e[14];return e[3]*(+n*o*u-r*l*u-n*a*c+i*l*c+r*a*p-i*o*p)+e[7]*(+t*o*p-t*l*c+n*s*c-r*s*p+r*l*h-n*o*h)+e[11]*(+t*l*u-t*a*p-n*s*u+i*s*p+n*a*h-i*l*h)+e[15]*(-r*a*h-t*o*u+t*a*c+r*s*u-i*s*c+i*o*h)}transpose(){let e,t=this.elements;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(e,t,i){let r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){let e=this.elements,t=e[0],i=e[1],r=e[2],n=e[3],s=e[4],a=e[5],o=e[6],l=e[7],h=e[8],u=e[9],c=e[10],p=e[11],d=e[12],f=e[13],m=e[14],g=e[15],y=u*m*l-f*c*l+f*o*p-a*m*p-u*o*g+a*c*g,v=d*c*l-h*m*l-d*o*p+s*m*p+h*o*g-s*c*g,T=h*f*l-d*u*l+d*a*p-s*f*p-h*a*g+s*u*g,x=d*u*o-h*f*o-d*a*c+s*f*c+h*a*m-s*u*m,b=t*y+i*v+r*T+n*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let _=1/b;return e[0]=y*_,e[1]=(f*c*n-u*m*n-f*r*p+i*m*p+u*r*g-i*c*g)*_,e[2]=(a*m*n-f*o*n+f*r*l-i*m*l-a*r*g+i*o*g)*_,e[3]=(u*o*n-a*c*n-u*r*l+i*c*l+a*r*p-i*o*p)*_,e[4]=v*_,e[5]=(h*m*n-d*c*n+d*r*p-t*m*p-h*r*g+t*c*g)*_,e[6]=(d*o*n-s*m*n-d*r*l+t*m*l+s*r*g-t*o*g)*_,e[7]=(s*c*n-h*o*n+h*r*l-t*c*l-s*r*p+t*o*p)*_,e[8]=T*_,e[9]=(d*u*n-h*f*n-d*i*p+t*f*p+h*i*g-t*u*g)*_,e[10]=(s*f*n-d*a*n+d*i*l-t*f*l-s*i*g+t*a*g)*_,e[11]=(h*a*n-s*u*n-h*i*l+t*u*l+s*i*p-t*a*p)*_,e[12]=x*_,e[13]=(h*f*r-d*u*r+d*i*c-t*f*c-h*i*m+t*u*m)*_,e[14]=(d*a*r-s*f*r-d*i*o+t*f*o+s*i*m-t*a*m)*_,e[15]=(s*u*r-h*a*r+h*i*o-t*u*o-s*i*c+t*a*c)*_,this}scale(e){let t=this.elements,i=e.x,r=e.y,n=e.z;return t[0]*=i,t[4]*=r,t[8]*=n,t[1]*=i,t[5]*=r,t[9]*=n,t[2]*=i,t[6]*=r,t[10]*=n,t[3]*=i,t[7]*=r,t[11]*=n,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let i=Math.cos(t),r=Math.sin(t),n=1-i,s=e.x,a=e.y,o=e.z,l=n*s,h=n*a;return this.set(l*s+i,l*a-r*o,l*o+r*a,0,l*a+r*o,h*a+i,h*o-r*s,0,l*o-r*a,h*o+r*s,n*o*o+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,n,s){return this.set(1,i,n,0,e,1,s,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){let r=this.elements,n=t._x,s=t._y,a=t._z,o=t._w,l=n+n,h=s+s,u=a+a,c=n*l,p=n*h,d=n*u,f=s*h,m=s*u,g=a*u,y=o*l,v=o*h,T=o*u,x=i.x,b=i.y,_=i.z;return r[0]=(1-(f+g))*x,r[1]=(p+T)*x,r[2]=(d-v)*x,r[3]=0,r[4]=(p-T)*b,r[5]=(1-(c+g))*b,r[6]=(m+y)*b,r[7]=0,r[8]=(d+v)*_,r[9]=(m-y)*_,r[10]=(1-(c+f))*_,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){let r=this.elements,n=hy.set(r[0],r[1],r[2]).length(),s=hy.set(r[4],r[5],r[6]).length(),a=hy.set(r[8],r[9],r[10]).length();this.determinant()<0&&(n=-n),e.x=r[12],e.y=r[13],e.z=r[14],_c.copy(this);let o=1/n,l=1/s,h=1/a;return _c.elements[0]*=o,_c.elements[1]*=o,_c.elements[2]*=o,_c.elements[4]*=l,_c.elements[5]*=l,_c.elements[6]*=l,_c.elements[8]*=h,_c.elements[9]*=h,_c.elements[10]*=h,t.setFromRotationMatrix(_c),i.x=n,i.y=s,i.z=a,this}makePerspective(e,t,i,r,n,s){let a=this.elements,o=2*n/(t-e),l=2*n/(i-r),h=(t+e)/(t-e),u=(i+r)/(i-r),c=-(s+n)/(s-n),p=-2*s*n/(s-n);return a[0]=o,a[4]=0,a[8]=h,a[12]=0,a[1]=0,a[5]=l,a[9]=u,a[13]=0,a[2]=0,a[6]=0,a[10]=c,a[14]=p,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,i,r,n,s){let a=this.elements,o=1/(t-e),l=1/(i-r),h=1/(s-n),u=(t+e)*o,c=(i+r)*l,p=(s+n)*h;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-u,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-c,a[2]=0,a[6]=0,a[10]=-2*h,a[14]=-p,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){let t=this.elements,i=e.elements;for(let e=0;e<16;e++)if(t[e]!==i[e])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}},hy=new A,_c=new Be,$pt=new A(0,0,0),Kpt=new A(1,1,1),tf=new A,GM=new A,Lo=new A,uce=new Be,hce=new Hr,xr=class{constructor(e=0,t=0,i=0,r=xr.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){let r=e.elements,n=r[0],s=r[4],a=r[8],o=r[1],l=r[5],h=r[9],u=r[2],c=r[6],p=r[10];switch(t){case"XYZ":this._y=Math.asin(Qn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,p),this._z=Math.atan2(-s,n)):(this._x=Math.atan2(c,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Qn(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,p),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-u,n),this._z=0);break;case"ZXY":this._x=Math.asin(Qn(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(-u,p),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,n));break;case"ZYX":this._y=Math.asin(-Qn(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(c,p),this._z=Math.atan2(o,n)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Qn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-u,n)):(this._x=0,this._y=Math.atan2(a,p));break;case"XZY":this._z=Math.asin(-Qn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(c,l),this._y=Math.atan2(a,n)):(this._x=Math.atan2(-h,p),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===i&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return uce.makeRotationFromQuaternion(e),this.setFromRotationMatrix(uce,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return hce.setFromEuler(this),this.setFromQuaternion(hce,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};xr.DEFAULT_ORDER="XYZ";var Oy=class{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(i=i.concat(n))}return i}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(kb,e,Jpt),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(kb,Qpt,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);let t=this.children;for(let i=0,r=t.length;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(r.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=n(e.geometries,this.geometry);let t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){let i=t.shapes;if(Array.isArray(i))for(let t=0,r=i.length;t0){r.children=[];for(let t=0;t0){r.animations=[];for(let t=0;t0&&(i.geometries=t),r.length>0&&(i.materials=r),n.length>0&&(i.textures=n),a.length>0&&(i.images=a),o.length>0&&(i.shapes=o),l.length>0&&(i.skeletons=l),h.length>0&&(i.animations=h),u.length>0&&(i.nodes=u)}return i.object=r,i;function s(e){let t=[];for(let i in e){let r=e[i];delete r.metadata,t.push(r)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let t=0;t0?r.multiplyScalar(1/Math.sqrt(n)):r.set(0,0,0)}static getBarycoord(e,t,i,r,n){Sc.subVectors(r,t),up.subVectors(i,t),gH.subVectors(e,t);let s=Sc.dot(Sc),a=Sc.dot(up),o=Sc.dot(gH),l=up.dot(up),h=up.dot(gH),u=s*l-a*a;if(0===u)return n.set(-2,-1,-1);let c=1/u,p=(l*o-a*h)*c,d=(s*h-a*o)*c;return n.set(1-p-d,d,p)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,hp),hp.x>=0&&hp.y>=0&&hp.x+hp.y<=1}static getUV(e,t,i,r,n,s,a,o){return this.getBarycoord(e,t,i,r,hp),o.set(0,0),o.addScaledVector(n,hp.x),o.addScaledVector(s,hp.y),o.addScaledVector(a,hp.z),o}static isFrontFacing(e,t,i,r){return Sc.subVectors(i,t),up.subVectors(e,t),Sc.cross(up).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return(new this.constructor).copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Sc.subVectors(this.c,this.b),up.subVectors(this.a,this.b),.5*Sc.cross(up).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return hn.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return hn.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,i,r,n){return hn.getUV(e,this.a,this.b,this.c,t,i,r,n)}containsPoint(e){return hn.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return hn.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let i,r,n=this.a,s=this.b,a=this.c;dy.subVectors(s,n),fy.subVectors(a,n),vH.subVectors(e,n);let o=dy.dot(vH),l=fy.dot(vH);if(o<=0&&l<=0)return t.copy(n);yH.subVectors(e,s);let h=dy.dot(yH),u=fy.dot(yH);if(h>=0&&u<=h)return t.copy(s);let c=o*u-h*l;if(c<=0&&o>=0&&h<=0)return i=o/(o-h),t.copy(n).addScaledVector(dy,i);TH.subVectors(e,a);let p=dy.dot(TH),d=fy.dot(TH);if(d>=0&&p<=d)return t.copy(a);let f=p*l-o*d;if(f<=0&&l>=0&&d<=0)return r=l/(l-d),t.copy(n).addScaledVector(fy,r);let m=h*d-p*u;if(m<=0&&u-h>=0&&p-d>=0)return vce.subVectors(a,s),r=(u-h)/(u-h+(p-d)),t.copy(s).addScaledVector(vce,r);let g=1/(m+f+c);return i=f*g,r=c*g,t.copy(n).addScaledVector(dy,i).addScaledVector(fy,r)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},tdt=0,zr=class extends Bo{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:tdt++}),this.uuid=Ho(),this.name="",this.type="Material",this.blending=mg,this.side=tn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=Mx,this.blendDst=FU,this.blendEquation=Sa,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=MD,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=mhe,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=wD,this.stencilZFail=wD,this.stencilZPass=wD,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(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(let t in e){let i=e[t];if(void 0===i){console.warn("THREE.Material: '"+t+"' parameter is undefined.");continue}let r=this[t];void 0!==r?r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i:console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.")}}toJSON(e){let t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});let i={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function r(e){let t=[];for(let i in e){let r=e[i];delete r.metadata,t.push(r)}return t}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==mg&&(i.blending=this.blending),this.side!==tn&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(i.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(i.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=this.flatShading),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData),t){let t=r(e.textures),n=r(e.images);t.length>0&&(i.textures=t),n.length>0&&(i.images=n)}return i}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,i=null;if(null!==t){let e=t.length;i=new Array(e);for(let r=0;r!==e;++r)i[r]=t[r].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}},or=class extends zr{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new je(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.combine=Dx,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},hs=new A,zM=new le,Wt=class{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=i,this.usage=ix,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,n=this.itemSize;r0&&(e.userData=this.userData),void 0!==this.parameters){let t=this.parameters;for(let i in t)void 0!==t[i]&&(e[i]=t[i]);return e}e.data={attributes:{}};let t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let i=this.attributes;for(let t in i){let r=i[t];e.data.attributes[t]=r.toJSON(e.data)}let r={},n=!1;for(let t in this.morphAttributes){let i=this.morphAttributes[t],s=[];for(let t=0,r=i.length;t0&&(r[t]=s,n=!0)}n&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);let s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));let a=this.boundingSphere;return null!==a&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return(new this.constructor).copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let i=e.index;null!==i&&this.setIndex(i.clone(t));let r=e.attributes;for(let e in r){let i=r[e];this.setAttribute(e,i.clone(t))}let n=e.morphAttributes;for(let e in n){let i=[],r=n[e];for(let e=0,n=r.length;e0){let i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;ei.far?null:{distance:h,point:XM.clone(),object:e}}function $M(e,t,i,r,n,s,a,o,l){e.getVertexPosition(a,Vb),e.getVertexPosition(o,zb),e.getVertexPosition(l,jb);let h=idt(e,t,i,r,Vb,zb,jb,IH);if(h){n&&(WM.fromBufferAttribute(n,a),qM.fromBufferAttribute(n,o),YM.fromBufferAttribute(n,l),h.uv=hn.getUV(IH,Vb,zb,jb,WM,qM,YM,new le)),s&&(WM.fromBufferAttribute(s,a),qM.fromBufferAttribute(s,o),YM.fromBufferAttribute(s,l),h.uv2=hn.getUV(IH,Vb,zb,jb,WM,qM,YM,new le));let e={a:a,b:o,c:l,normal:new A,materialIndex:0};hn.getNormal(Vb,zb,jb,e.normal),h.face=e}return h}var eo=class extends lt{constructor(e=1,t=1,i=1,r=1,n=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:n,depthSegments:s};let a=this;r=Math.floor(r),n=Math.floor(n),s=Math.floor(s);let o=[],l=[],h=[],u=[],c=0,p=0;function d(e,t,i,r,n,s,d,f,m,g,y){let v=s/m,T=d/g,x=s/2,b=d/2,_=f/2,E=m+1,w=g+1,S=0,I=0,M=new A;for(let s=0;s0?1:-1,h.push(M.x,M.y,M.z),u.push(o/m),u.push(1-s/g),S+=1}}for(let e=0;e0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;let i={};for(let e in this.extensions)!0===this.extensions[e]&&(i[e]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}},bp=class extends cr{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Be,this.projectionMatrix=new Be,this.projectionMatrixInverse=new Be}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}},Xr=class extends bp{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=2*nx*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(.5*gg*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*nx*Math.atan(Math.tan(.5*gg*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,i,r,n,s){this.aspect=e/t,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=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=n,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(.5*gg*this.fov)/this.zoom,i=2*t,r=this.aspect*i,n=-.5*r,s=this.view;if(null!==this.view&&this.view.enabled){let e=s.fullWidth,a=s.fullHeight;n+=s.offsetX*r/e,t-=s.offsetY*i/a,r*=s.width/e,i*=s.height/a}let a=this.filmOffset;0!==a&&(n+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(n,n+r,t,t-i,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},vy=-90,yy=1,AD=class extends cr{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i;let r=new Xr(vy,yy,e,t);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(1,0,0),this.add(r);let n=new Xr(vy,yy,e,t);n.layers=this.layers,n.up.set(0,1,0),n.lookAt(-1,0,0),this.add(n);let s=new Xr(vy,yy,e,t);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);let a=new Xr(vy,yy,e,t);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);let o=new Xr(vy,yy,e,t);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);let l=new Xr(vy,yy,e,t);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();let i=this.renderTarget,[r,n,s,a,o,l]=this.children,h=e.getRenderTarget(),u=e.toneMapping,c=e.xr.enabled;e.toneMapping=Lu,e.xr.enabled=!1;let p=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0),e.render(t,r),e.setRenderTarget(i,1),e.render(t,n),e.setRenderTarget(i,2),e.render(t,s),e.setRenderTarget(i,3),e.render(t,a),e.setRenderTarget(i,4),e.render(t,o),i.texture.generateMipmaps=p,e.setRenderTarget(i,5),e.render(t,l),e.setRenderTarget(h),e.toneMapping=u,e.xr.enabled=c,i.texture.needsPMREMUpdate=!0}},Eg=class extends Bi{constructor(e,t,i,r,n,s,a,o,l,h){super(e=void 0!==e?e:[],t=void 0!==t?t:af,i,r,n,s,a,o,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},OD=class extends Vr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];this.texture=new Eg(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:oi}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let i={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 \n\t\t\t\t\t#include \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 \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"},r=new eo(5,5,5),n=new Yt({name:"CubemapFromEquirect",uniforms:Py(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:zn,blending:Ui});n.uniforms.tEquirect.value=t;let s=new rt(r,n),a=t.minFilter;return t.minFilter===Ra&&(t.minFilter=oi),new AD(1,10,this).update(e,s),t.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(e,t,i,r){let n=e.getRenderTarget();for(let n=0;n<6;n++)e.setRenderTarget(this,n),e.clear(t,i,r);e.setRenderTarget(n)}},_H=new A,odt=new A,ldt=new Pi,bi=class{constructor(e=new A(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){let r=_H.subVectors(i,t).cross(odt.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){let i=e.delta(_H),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;let n=-(e.start.dot(this.normal)+this.constant)/r;return n<0||n>1?null:t.copy(i).multiplyScalar(n).add(e.start)}intersectsLine(e){let t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let i=t||ldt.getNormalMatrix(e),r=this.coplanarPoint(_H).applyMatrix4(e),n=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(n),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return(new this.constructor).copy(this)}},Ty=new Wi,KM=new A,Xs=class{constructor(e=new bi,t=new bi,i=new bi,r=new bi,n=new bi,s=new bi){this.planes=[e,t,i,r,n,s]}set(e,t,i,r,n,s){let a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(n),a[5].copy(s),this}copy(e){let t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e){let t=this.planes,i=e.elements,r=i[0],n=i[1],s=i[2],a=i[3],o=i[4],l=i[5],h=i[6],u=i[7],c=i[8],p=i[9],d=i[10],f=i[11],m=i[12],g=i[13],y=i[14],v=i[15];return t[0].setComponents(a-r,u-o,f-c,v-m).normalize(),t[1].setComponents(a+r,u+o,f+c,v+m).normalize(),t[2].setComponents(a+n,u+l,f+p,v+g).normalize(),t[3].setComponents(a-n,u-l,f-p,v-g).normalize(),t[4].setComponents(a-s,u-h,f-d,v-y).normalize(),t[5].setComponents(a+s,u+h,f+d,v+y).normalize(),this}intersectsObject(e){let t=e.geometry;return null===t.boundingSphere&&t.computeBoundingSphere(),Ty.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(Ty)}intersectsSprite(e){return Ty.center.set(0,0,0),Ty.radius=.7071067811865476,Ty.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ty)}intersectsSphere(e){let t=this.planes,i=e.center,r=-e.radius;for(let e=0;e<6;e++)if(t[e].distanceToPoint(i)0?e.max.x:e.min.x,KM.y=r.normal.y>0?e.max.y:e.min.y,KM.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(KM)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}};function Ehe(){let e=null,t=!1,i=null,r=null;function n(t,s){i(t,s),r=e.requestAnimationFrame(n)}return{start:function(){!0!==t&&null!==i&&(r=e.requestAnimationFrame(n),t=!0)},stop:function(){e.cancelAnimationFrame(r),t=!1},setAnimationLoop:function(e){i=e},setContext:function(t){e=t}}}function cdt(e,t){let i=t.isWebGL2,r=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),r.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);let i=r.get(t);i&&(e.deleteBuffer(i.buffer),r.delete(t))},update:function(t,n){if(t.isGLBufferAttribute){let e=r.get(t);return void((!e||e.version0?i:t).get(m));let g=e.xr,y=g.getSession&&g.getSession();y&&"additive"===y.environmentBlendMode&&(m=null),null===m?f(h,u):m&&m.isColor&&(f(m,1),a=!0),(e.autoClear||a)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),m&&(m.isCubeTexture||m.mapping===zy)?(void 0===l&&(l=new rt(new eo(1,1,1),new Yt({name:"BackgroundCubeMaterial",uniforms:Py(Rc.backgroundCube.uniforms),vertexShader:Rc.backgroundCube.vertexShader,fragmentShader:Rc.backgroundCube.fragmentShader,side:zn,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,i){this.matrixWorld.copyPosition(i.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(l)),l.material.uniforms.envMap.value=m,l.material.uniforms.flipEnvMap.value=m.isCubeTexture&&!1===m.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=s.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,l.material.toneMapped=m.encoding!==gr,(c!==m||p!==m.version||d!==e.toneMapping)&&(l.material.needsUpdate=!0,c=m,p=m.version,d=e.toneMapping),l.layers.enableAll(),r.unshift(l,l.geometry,l.material,0,0,null)):m&&m.isTexture&&(void 0===o&&(o=new rt(new ts(2,2),new Yt({name:"BackgroundMaterial",uniforms:Py(Rc.background.uniforms),vertexShader:Rc.background.vertexShader,fragmentShader:Rc.background.fragmentShader,side:tn,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(o)),o.material.uniforms.t2D.value=m,o.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,o.material.toneMapped=m.encoding!==gr,!0===m.matrixAutoUpdate&&m.updateMatrix(),o.material.uniforms.uvTransform.value.copy(m.matrix),(c!==m||p!==m.version||d!==e.toneMapping)&&(o.material.needsUpdate=!0,c=m,p=m.version,d=e.toneMapping),o.layers.enableAll(),r.unshift(o,o.geometry,o.material,0,0,null))}}}function zmt(e,t,i,r){let n=e.getParameter(34921),s=r.isWebGL2?null:t.get("OES_vertex_array_object"),a=r.isWebGL2||null!==s,o={},l=d(null),h=l,u=!1;function c(t){return r.isWebGL2?e.bindVertexArray(t):s.bindVertexArrayOES(t)}function p(t){return r.isWebGL2?e.deleteVertexArray(t):s.deleteVertexArrayOES(t)}function d(e){let t=[],i=[],r=[];for(let e=0;e=0){let i=n[t],r=s[t];if(void 0===r&&("instanceMatrix"===t&&e.instanceMatrix&&(r=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(r=e.instanceColor)),void 0===i||i.attribute!==r||r&&i.data!==r.data)return!0;a++}return h.attributesNum!==a||h.index!==r}(n,T,p,x),b&&function(e,t,i,r){let n={},s=t.attributes,a=0,o=i.getAttributes();for(let t in o)if(o[t].location>=0){let i=s[t];void 0===i&&("instanceMatrix"===t&&e.instanceMatrix&&(i=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(i=e.instanceColor));let r={};r.attribute=i,i&&i.data&&(r.data=i.data),n[t]=r,a++}h.attributes=n,h.attributesNum=a,h.index=r}(n,T,p,x)}else{let e=!0===l.wireframe;(h.geometry!==T.id||h.program!==p.id||h.wireframe!==e)&&(h.geometry=T.id,h.program=p.id,h.wireframe=e,b=!0)}null!==x&&i.update(x,34963),(b||u)&&(u=!1,function(n,s,a,o){if(!1===r.isWebGL2&&(n.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();let l=o.attributes,h=a.getAttributes(),u=s.defaultAttributeValues;for(let t in h){let r=h[t];if(r.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&n.instanceMatrix&&(s=n.instanceMatrix),"instanceColor"===t&&n.instanceColor&&(s=n.instanceColor)),void 0!==s){let t=s.normalized,a=s.itemSize,l=i.get(s);if(void 0===l)continue;let h=l.buffer,u=l.type,c=l.bytesPerElement;if(s.isInterleavedBufferAttribute){let i=s.data,l=i.stride,p=s.offset;if(i.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(35633,36337).precision>0&&e.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let s="undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext,a=void 0!==i.precision?i.precision:"highp",o=n(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);let l=s||t.has("WEBGL_draw_buffers"),h=!0===i.logarithmicDepthBuffer,u=e.getParameter(34930),c=e.getParameter(35660),p=e.getParameter(3379),d=e.getParameter(34076),f=e.getParameter(34921),m=e.getParameter(36347),g=e.getParameter(36348),y=e.getParameter(36349),v=c>0,T=s||t.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){let i=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:n,precision:a,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:c,maxTextureSize:p,maxCubemapSize:d,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:y,vertexTextures:v,floatFragmentTextures:T,floatVertexTextures:v&&T,maxSamples:s?e.getParameter(36183):0}}function qmt(e){let t=this,i=null,r=0,n=!1,s=!1,a=new bi,o=new Pi,l={value:null,needsUpdate:!1};function h(e,i,r,n){let s=null!==e?e.length:0,h=null;if(0!==s){if(h=l.value,!0!==n||null===h){let t=r+4*s,n=i.matrixWorldInverse;o.getNormalMatrix(n),(null===h||h.length0),t.numPlanes=r,t.numIntersection=0);else{let e=s?0:r,t=4*e,n=f.clippingState||null;l.value=n,n=h(c,o,t,u);for(let e=0;e!==t;++e)n[e]=i[e];f.clippingState=n,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=e}}}function Ymt(e){let t=new WeakMap;function i(e,t){return t===yg?e.mapping=af:t===tx&&(e.mapping=of),e}function r(e){let i=e.target;i.removeEventListener("dispose",r);let n=t.get(i);void 0!==n&&(t.delete(i),n.dispose())}return{get:function(n){if(n&&n.isTexture&&!1===n.isRenderTargetTexture){let s=n.mapping;if(s===yg||s===tx){if(t.has(n)){return i(t.get(n).texture,n.mapping)}{let s=n.image;if(s&&s.height>0){let a=new OD(s.height/2);return a.fromEquirectangularTexture(e,n),t.set(n,a),n.addEventListener("dispose",r),i(a.texture,n.mapping)}return null}}}return n},dispose:function(){t=new WeakMap}}}var Ji=class extends bp{constructor(e=-1,t=1,i=1,r=-1,n=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=n,this.far=s,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,n,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=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=n,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2,n=i-e,s=i+e,a=r+t,o=r-t;if(null!==this.view&&this.view.enabled){let e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;n+=e*this.view.offsetX,s=n+e*this.view.width,a-=t*this.view.offsetY,o=a-t*this.view.height}this.projectionMatrix.makeOrthographic(n,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}},Ry=4,Tce=[.125,.215,.35,.446,.526,.582],hg=20,SH=new Ji,Ece=new je,wH=null,ug=(1+Math.sqrt(5))/2,Ey=1/ug,bce=[new A(1,1,1),new A(-1,1,1),new A(1,1,-1),new A(-1,1,-1),new A(0,ug,Ey),new A(0,ug,-Ey),new A(Ey,0,ug),new A(-Ey,0,ug),new A(ug,Ey,0),new A(-ug,Ey,0)],xp=class{constructor(e){this._renderer=e,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(e,t=0,i=.1,r=100){wH=this._renderer.getRenderTarget(),this._setSize(256);let n=this._allocateTargets();return n.depthBuffer=!0,this._sceneToCubeUV(e,i,r,n),t>0&&this._blur(n,0,0,t),this._applyPMREM(n),this._cleanup(n),n}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=_ce(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=Ice(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;e2?l:0,l,l),o.setRenderTarget(r),p&&o.render(c,n),o.render(e,n)}c.geometry.dispose(),c.material.dispose(),o.toneMapping=h,o.autoClear=l,e.background=d}_textureToCubeUV(e,t){let i=this._renderer,r=e.mapping===af||e.mapping===of;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=_ce()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=Ice());let n=r?this._cubemapMaterial:this._equirectMaterial,s=new rt(this._lodPlanes[0],n);n.uniforms.envMap.value=e;let a=this._cubeSize;JM(t,0,0,3*a,2*a),i.setRenderTarget(t),i.render(s,SH)}_applyPMREM(e){let t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let t=1;thg&&console.warn(`sigmaRadians, ${n}, is too large and will clip, as it requested ${f} samples when the maximum is set to ${hg}`);let m=[],g=0;for(let e=0;ey-Ry?r-y+Ry:0),4*(this._cubeSize-v),3*v,2*v),o.setRenderTarget(t),o.render(h,SH)}};function Xmt(e){let t=[],i=[],r=[],n=e,s=e-Ry+1+Tce.length;for(let a=0;ae-Ry?o=Tce[a-e+Ry-1]:0===a&&(o=0),r.push(o);let l=1/(s-2),h=-l,u=1+l,c=[h,h,u,h,u,u,h,h,u,u,h,u],p=6,d=6,f=3,m=2,g=1,y=new Float32Array(f*d*p),v=new Float32Array(m*d*p),T=new Float32Array(g*d*p);for(let e=0;e2?0:-1,r=[t,i,0,t+2/3,i,0,t+2/3,i+1,0,t,i,0,t+2/3,i+1,0,t,i+1,0];y.set(r,f*d*e),v.set(c,m*d*e);let n=[e,e,e,e,e,e];T.set(n,g*d*e)}let x=new lt;x.setAttribute("position",new Wt(y,f)),x.setAttribute("uv",new Wt(v,m)),x.setAttribute("faceIndex",new Wt(T,g)),t.push(x),n>Ry&&n--}return{lodPlanes:t,sizeLods:i,sigmas:r}}function xce(e,t,i){let r=new Vr(e,t,i);return r.texture.mapping=zy,r.texture.name="PMREM.cubeUv",r.scissorTest=!0,r}function JM(e,t,i,r,n){e.viewport.set(t,i,r,n),e.scissor.set(t,i,r,n)}function $mt(e,t,i){let r=new Float32Array(hg),n=new A(0,1,0);return new Yt({name:"SphericalGaussianBlur",defines:{n:hg,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/i,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:r},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n}},vertexShader:kU(),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 \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:Ui,depthTest:!1,depthWrite:!1})}function Ice(){return new Yt({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:kU(),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 \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:Ui,depthTest:!1,depthWrite:!1})}function _ce(){return new Yt({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:kU(),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:Ui,depthTest:!1,depthWrite:!1})}function kU(){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 Kmt(e){let t=new WeakMap,i=null;function r(e){let i=e.target;i.removeEventListener("dispose",r);let n=t.get(i);void 0!==n&&(t.delete(i),n.dispose())}return{get:function(n){if(n&&n.isTexture){let s=n.mapping,a=s===yg||s===tx,o=s===af||s===of;if(a||o){if(n.isRenderTargetTexture&&!0===n.needsPMREMUpdate){n.needsPMREMUpdate=!1;let r=t.get(n);return null===i&&(i=new xp(e)),r=a?i.fromEquirectangular(n,r):i.fromCubemap(n,r),t.set(n,r),r.texture}if(t.has(n))return t.get(n).texture;{let s=n.image;if(a&&s&&s.height>0||o&&s&&function(e){let t=0,i=6;for(let r=0;rt.maxTextureSize&&(m=Math.ceil(f/t.maxTextureSize),f=t.maxTextureSize);let g=new Float32Array(f*m*4*n),y=new Ay(g,f,m,n);y.type=wa,y.needsUpdate=!0;let v=4*d;for(let e=0;e0)return e;let n=t*i,s=Sce[n];if(void 0===s&&(s=new Float32Array(n),Sce[n]=s),0!==t){r.toArray(s,0);for(let r=1,n=0;r!==t;++r)n+=i,e[r].toArray(s,n)}return s}function ys(e,t){if(e.length!==t.length)return!1;for(let i=0,r=e.length;i":" "} ${n}: ${i[e]}`)}return r.join("\n")}function Xgt(e){switch(e){case _l:return["Linear","( value )"];case gr:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",e),["Linear","( value )"]}}function Oce(e,t,i){let r=e.getShaderParameter(t,35713),n=e.getShaderInfoLog(t).trim();if(r&&""===n)return"";let s=/ERROR: 0:(\d+)/.exec(n);if(s){let r=parseInt(s[1]);return i.toUpperCase()+"\n\n"+n+"\n\n"+Ygt(e.getShaderSource(t),r)}return n}function $gt(e,t){let i=Xgt(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+i[0]+i[1]+"; }"}function Kgt(e,t){let i;switch(t){case que:i="Linear";break;case Yue:i="Reinhard";break;case Xue:i="OptimizedCineon";break;case $ue:i="ACESFilmic";break;case Kue:i="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),i="Linear"}return"vec3 "+e+"( vec3 color ) { return "+i+"ToneMapping( color ); }"}function Zgt(e){return[e.extensionDerivatives||e.envMapCubeUVHeight||e.bumpMap||e.tangentSpaceNormalMap||e.clearcoatNormalMap||e.flatShading||"physical"===e.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(e.extensionFragDepth||e.logarithmicDepthBuffer)&&e.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",e.extensionDrawBuffers&&e.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(e.extensionShaderTextureLOD||e.envMap||e.transmission)&&e.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Kb).join("\n")}function Jgt(e){let t=[];for(let i in e){let r=e[i];!1!==r&&t.push("#define "+i+" "+r)}return t.join("\n")}function Qgt(e,t){let i={},r=e.getProgramParameter(t,35721);for(let n=0;n/gm;function R4(e){return e.replace(e0t,t0t)}function t0t(e,t){let i=Yr[t];if(void 0===i)throw new Error("Can not resolve #include <"+t+">");return R4(i)}var r0t=/#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 Lce(e){return e.replace(r0t,i0t)}function i0t(e,t,i,r){let n="";for(let e=parseInt(t);e0&&(n+="\n"),s=[m,g].filter(Kb).join("\n"),s.length>0&&(s+="\n")):(n=[Fce(i),"#define SHADER_NAME "+i.shaderName,g,i.instancing?"#define USE_INSTANCING":"",i.instancingColor?"#define USE_INSTANCING_COLOR":"",i.supportsVertexTextures?"#define VERTEX_TEXTURES":"",i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+p:"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMap&&i.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",i.normalMap&&i.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.displacementMap&&i.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",i.specularColorMap?"#define USE_SPECULARCOLORMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.sheenColorMap?"#define USE_SHEENCOLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",i.vertexTangents?"#define USE_TANGENT":"",i.vertexColors?"#define USE_COLOR":"",i.vertexAlphas?"#define USE_COLOR_ALPHA":"",i.vertexUvs?"#define USE_UV":"",i.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",i.flatShading?"#define FLAT_SHADED":"",i.skinning?"#define USE_SKINNING":"",i.morphTargets?"#define USE_MORPHTARGETS":"",i.morphNormals&&!1===i.flatShading?"#define USE_MORPHNORMALS":"",i.morphColors&&i.isWebGL2?"#define USE_MORPHCOLORS":"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+i.morphTextureStride:"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_COUNT "+i.morphTargetsCount:"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+u:"",i.sizeAttenuation?"#define USE_SIZEATTENUATION":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","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","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Kb).join("\n"),s=[m,Fce(i),"#define SHADER_NAME "+i.shaderName,g,i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.matcap?"#define USE_MATCAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+c:"",i.envMap?"#define "+p:"",i.envMap?"#define "+d:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMap&&i.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",i.normalMap&&i.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",i.clearcoat?"#define USE_CLEARCOAT":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.iridescence?"#define USE_IRIDESCENCE":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",i.specularColorMap?"#define USE_SPECULARCOLORMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.alphaTest?"#define USE_ALPHATEST":"",i.sheen?"#define USE_SHEEN":"",i.sheenColorMap?"#define USE_SHEENCOLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",i.vertexTangents?"#define USE_TANGENT":"",i.vertexColors||i.instancingColor?"#define USE_COLOR":"",i.vertexAlphas?"#define USE_COLOR_ALPHA":"",i.vertexUvs?"#define USE_UV":"",i.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",i.gradientMap?"#define USE_GRADIENTMAP":"",i.flatShading?"#define FLAT_SHADED":"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+u:"",i.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",i.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",i.toneMapping!==Lu?"#define TONE_MAPPING":"",i.toneMapping!==Lu?Yr.tonemapping_pars_fragment:"",i.toneMapping!==Lu?Kgt("toneMapping",i.toneMapping):"",i.dithering?"#define DITHERING":"",i.opaque?"#define OPAQUE":"",Yr.encodings_pars_fragment,$gt("linearToOutputTexel",i.outputEncoding),i.useDepthPacking?"#define DEPTH_PACKING "+i.depthPacking:"","\n"].filter(Kb).join("\n")),l=R4(l),l=Pce(l,i),l=Nce(l,i),h=R4(h),h=Pce(h,i),h=Nce(h,i),l=Lce(l),h=Lce(h),i.isWebGL2&&!0!==i.isRawShaderMaterial&&(v="#version 300 es\n",n=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+n,s=["#define varying in",i.glslVersion===p4?"":"layout(location = 0) out highp vec4 pc_fragColor;",i.glslVersion===p4?"":"#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"+s);let T,x,b=v+s+h,_=Ace(a,35633,v+n+l),E=Ace(a,35632,b);if(a.attachShader(y,_),a.attachShader(y,E),void 0!==i.index0AttributeName?a.bindAttribLocation(y,0,i.index0AttributeName):!0===i.morphTargets&&a.bindAttribLocation(y,0,"position"),a.linkProgram(y),e.debug.checkShaderErrors){let e=a.getProgramInfoLog(y).trim(),t=a.getShaderInfoLog(_).trim(),i=a.getShaderInfoLog(E).trim(),r=!0,o=!0;if(!1===a.getProgramParameter(y,35714)){r=!1;let t=Oce(a,_,"vertex"),i=Oce(a,E,"fragment");console.error("THREE.WebGLProgram: Shader Error "+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(y,35715)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+i)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):(""===t||""===i)&&(o=!1);o&&(this.diagnostics={runnable:r,programLog:e,vertexShader:{log:t,prefix:n},fragmentShader:{log:i,prefix:s}})}return a.deleteShader(_),a.deleteShader(E),this.getUniforms=function(){return void 0===T&&(T=new Dy(a,y)),T},this.getAttributes=function(){return void 0===x&&(x=Qgt(a,y)),x},this.destroy=function(){r.releaseStatesOfProgram(this),a.deleteProgram(y),this.program=void 0},this.name=i.shaderName,this.id=qgt++,this.cacheKey=t,this.usedTimes=1,this.program=y,this.vertexShader=_,this.fragmentShader=E,this}var u0t=0,M4=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){let t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),n=this._getShaderStage(i),s=this._getShaderCacheForMaterial(e);return!1===s.has(r)&&(s.add(r),r.usedTimes++),!1===s.has(n)&&(s.add(n),n.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let e of t)e.usedTimes--,0===e.usedTimes&&this.shaderCache.delete(e.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,i=t.get(e);return void 0===i&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){let t=this.shaderCache,i=t.get(e);return void 0===i&&(i=new D4(e),t.set(e,i)),i}},D4=class{constructor(e){this.id=u0t++,this.code=e,this.usedTimes=0}};function h0t(e,t,i,r,n,s,a){let o=new Oy,l=new M4,h=[],u=n.isWebGL2,c=n.logarithmicDepthBuffer,p=n.vertexTextures,d=n.precision,f={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"};return{getParameters:function(s,o,h,m,g){let y=m.fog,v=g.geometry,T=s.isMeshStandardMaterial?m.environment:null,x=(s.isMeshStandardMaterial?i:t).get(s.envMap||T),b=x&&x.mapping===zy?x.image.height:null,_=f[s.type];null!==s.precision&&(d=n.getMaxPrecision(s.precision),d!==s.precision&&console.warn("THREE.WebGLProgram.getParameters:",s.precision,"not supported, using",d,"instead."));let E,w,S,I,M=v.morphAttributes.position||v.morphAttributes.normal||v.morphAttributes.color,A=void 0!==M?M.length:0,D=0;if(void 0!==v.morphAttributes.position&&(D=1),void 0!==v.morphAttributes.normal&&(D=2),void 0!==v.morphAttributes.color&&(D=3),_){let e=Rc[_];E=e.vertexShader,w=e.fragmentShader}else E=s.vertexShader,w=s.fragmentShader,l.update(s),S=l.getVertexShaderID(s),I=l.getFragmentShaderID(s);let O=e.getRenderTarget(),R=s.alphaTest>0,C=s.clearcoat>0,N=s.iridescence>0;return{isWebGL2:u,shaderID:_,shaderName:s.type,vertexShader:E,fragmentShader:w,defines:s.defines,customVertexShaderID:S,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:d,instancing:!0===g.isInstancedMesh,instancingColor:!0===g.isInstancedMesh&&null!==g.instanceColor,supportsVertexTextures:p,outputEncoding:null===O?e.outputEncoding:!0===O.isXRRenderTarget?O.texture.encoding:_l,map:!!s.map,matcap:!!s.matcap,envMap:!!x,envMapMode:x&&x.mapping,envMapCubeUVHeight:b,lightMap:!!s.lightMap,aoMap:!!s.aoMap,emissiveMap:!!s.emissiveMap,bumpMap:!!s.bumpMap,normalMap:!!s.normalMap,objectSpaceNormalMap:s.normalMapType===fhe,tangentSpaceNormalMap:s.normalMapType===gf,decodeVideoTexture:!!s.map&&!0===s.map.isVideoTexture&&s.map.encoding===gr,clearcoat:C,clearcoatMap:C&&!!s.clearcoatMap,clearcoatRoughnessMap:C&&!!s.clearcoatRoughnessMap,clearcoatNormalMap:C&&!!s.clearcoatNormalMap,iridescence:N,iridescenceMap:N&&!!s.iridescenceMap,iridescenceThicknessMap:N&&!!s.iridescenceThicknessMap,displacementMap:!!s.displacementMap,roughnessMap:!!s.roughnessMap,metalnessMap:!!s.metalnessMap,specularMap:!!s.specularMap,specularIntensityMap:!!s.specularIntensityMap,specularColorMap:!!s.specularColorMap,opaque:!1===s.transparent&&s.blending===mg,alphaMap:!!s.alphaMap,alphaTest:R,gradientMap:!!s.gradientMap,sheen:s.sheen>0,sheenColorMap:!!s.sheenColorMap,sheenRoughnessMap:!!s.sheenRoughnessMap,transmission:s.transmission>0,transmissionMap:!!s.transmissionMap,thicknessMap:!!s.thicknessMap,combine:s.combine,vertexTangents:!!s.normalMap&&!!v.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!v.attributes.color&&4===v.attributes.color.itemSize,vertexUvs:!!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatMap||s.clearcoatRoughnessMap||s.clearcoatNormalMap||s.iridescenceMap||s.iridescenceThicknessMap||s.displacementMap||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheenColorMap||s.sheenRoughnessMap),uvsVertexOnly:!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatNormalMap||s.iridescenceMap||s.iridescenceThicknessMap||s.transmission>0||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheen>0||s.sheenColorMap||s.sheenRoughnessMap||!s.displacementMap),fog:!!y,useFog:!0===s.fog,fogExp2:y&&y.isFogExp2,flatShading:!!s.flatShading,sizeAttenuation:s.sizeAttenuation,logarithmicDepthBuffer:c,skinning:!0===g.isSkinnedMesh,morphTargets:void 0!==v.morphAttributes.position,morphNormals:void 0!==v.morphAttributes.normal,morphColors:void 0!==v.morphAttributes.color,morphTargetsCount:A,morphTextureStride:D,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,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:e.shadowMap.enabled&&h.length>0,shadowMapType:e.shadowMap.type,toneMapping:s.toneMapped?e.toneMapping:Lu,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===gi,flipSided:s.side===zn,useDepthPacking:!!s.depthPacking,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:s.extensions&&s.extensions.derivatives,extensionFragDepth:s.extensions&&s.extensions.fragDepth,extensionDrawBuffers:s.extensions&&s.extensions.drawBuffers,extensionShaderTextureLOD:s.extensions&&s.extensions.shaderTextureLOD,rendererExtensionFragDepth:u||r.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||r.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||r.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(t){let i=[];if(t.shaderID?i.push(t.shaderID):(i.push(t.customVertexShaderID),i.push(t.customFragmentShaderID)),void 0!==t.defines)for(let e in t.defines)i.push(e),i.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(function(e,t){e.push(t.precision),e.push(t.outputEncoding),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.combine),e.push(t.vertexUvs),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numSpotLightMaps),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.numSpotLightShadowsWithMaps),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(i,t),function(e,t){o.disableAll(),t.isWebGL2&&o.enable(0),t.supportsVertexTextures&&o.enable(1),t.instancing&&o.enable(2),t.instancingColor&&o.enable(3),t.map&&o.enable(4),t.matcap&&o.enable(5),t.envMap&&o.enable(6),t.lightMap&&o.enable(7),t.aoMap&&o.enable(8),t.emissiveMap&&o.enable(9),t.bumpMap&&o.enable(10),t.normalMap&&o.enable(11),t.objectSpaceNormalMap&&o.enable(12),t.tangentSpaceNormalMap&&o.enable(13),t.clearcoat&&o.enable(14),t.clearcoatMap&&o.enable(15),t.clearcoatRoughnessMap&&o.enable(16),t.clearcoatNormalMap&&o.enable(17),t.iridescence&&o.enable(18),t.iridescenceMap&&o.enable(19),t.iridescenceThicknessMap&&o.enable(20),t.displacementMap&&o.enable(21),t.specularMap&&o.enable(22),t.roughnessMap&&o.enable(23),t.metalnessMap&&o.enable(24),t.gradientMap&&o.enable(25),t.alphaMap&&o.enable(26),t.alphaTest&&o.enable(27),t.vertexColors&&o.enable(28),t.vertexAlphas&&o.enable(29),t.vertexUvs&&o.enable(30),t.vertexTangents&&o.enable(31),t.uvsVertexOnly&&o.enable(32),e.push(o.mask),o.disableAll(),t.fog&&o.enable(0),t.useFog&&o.enable(1),t.flatShading&&o.enable(2),t.logarithmicDepthBuffer&&o.enable(3),t.skinning&&o.enable(4),t.morphTargets&&o.enable(5),t.morphNormals&&o.enable(6),t.morphColors&&o.enable(7),t.premultipliedAlpha&&o.enable(8),t.shadowMapEnabled&&o.enable(9),t.physicallyCorrectLights&&o.enable(10),t.doubleSided&&o.enable(11),t.flipSided&&o.enable(12),t.useDepthPacking&&o.enable(13),t.dithering&&o.enable(14),t.specularIntensityMap&&o.enable(15),t.specularColorMap&&o.enable(16),t.transmission&&o.enable(17),t.transmissionMap&&o.enable(18),t.thicknessMap&&o.enable(19),t.sheen&&o.enable(20),t.sheenColorMap&&o.enable(21),t.sheenRoughnessMap&&o.enable(22),t.decodeVideoTexture&&o.enable(23),t.opaque&&o.enable(24),e.push(o.mask)}(i,t),i.push(e.outputEncoding)),i.push(t.customProgramCacheKey),i.join()},getUniforms:function(e){let t,i=f[e.type];if(i){let e=Rc[i];t=pn.clone(e.uniforms)}else t=e.uniforms;return t},acquireProgram:function(t,i){let r;for(let e=0,t=h.length;e0?r.push(u):!0===a.transparent?n.push(u):i.push(u)},unshift:function(e,t,a,o,l,h){let u=s(e,t,a,o,l,h);a.transmission>0?r.unshift(u):!0===a.transparent?n.unshift(u):i.unshift(u)},finish:function(){for(let i=t,r=e.length;i1&&i.sort(e||d0t),r.length>1&&r.sort(t||Hce),n.length>1&&n.sort(t||Hce)}}}function f0t(){let e=new WeakMap;return{get:function(t,i){let r,n=e.get(t);return void 0===n?(r=new Uce,e.set(t,[r])):i>=n.length?(r=new Uce,n.push(r)):r=n[i],r},dispose:function(){e=new WeakMap}}}function m0t(){let e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let i;switch(t.type){case"DirectionalLight":i={direction:new A,color:new je};break;case"SpotLight":i={position:new A,direction:new A,color:new je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":i={position:new A,color:new je,distance:0,decay:0};break;case"HemisphereLight":i={direction:new A,skyColor:new je,groundColor:new je};break;case"RectAreaLight":i={color:new je,position:new A,halfWidth:new A,halfHeight:new A}}return e[t.id]=i,i}}}function g0t(){let e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let i;switch(t.type){case"DirectionalLight":case"SpotLight":i={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new le};break;case"PointLight":i={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new le,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=i,i}}}var v0t=0;function y0t(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function T0t(e,t){let i=new m0t,r=g0t(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-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};for(let e=0;e<9;e++)n.probe.push(new A);let s=new A,a=new Be,o=new Be;return{setup:function(s,a){let o=0,l=0,h=0;for(let e=0;e<9;e++)n.probe[e].set(0,0,0);let u=0,c=0,p=0,d=0,f=0,m=0,g=0,y=0,v=0,T=0;s.sort(y0t);let x=!0!==a?Math.PI:1;for(let e=0,t=s.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(n.rectAreaLTC1=At.LTC_FLOAT_1,n.rectAreaLTC2=At.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(n.rectAreaLTC1=At.LTC_HALF_1,n.rectAreaLTC2=At.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),n.ambient[0]=o,n.ambient[1]=l,n.ambient[2]=h;let b=n.hash;(b.directionalLength!==u||b.pointLength!==c||b.spotLength!==p||b.rectAreaLength!==d||b.hemiLength!==f||b.numDirectionalShadows!==m||b.numPointShadows!==g||b.numSpotShadows!==y||b.numSpotMaps!==v)&&(n.directional.length=u,n.spot.length=p,n.rectArea.length=d,n.point.length=c,n.hemi.length=f,n.directionalShadow.length=m,n.directionalShadowMap.length=m,n.pointShadow.length=g,n.pointShadowMap.length=g,n.spotShadow.length=y,n.spotShadowMap.length=y,n.directionalShadowMatrix.length=m,n.pointShadowMatrix.length=g,n.spotLightMatrix.length=y+v-T,n.spotLightMap.length=v,n.numSpotLightShadowsWithMaps=T,b.directionalLength=u,b.pointLength=c,b.spotLength=p,b.rectAreaLength=d,b.hemiLength=f,b.numDirectionalShadows=m,b.numPointShadows=g,b.numSpotShadows=y,b.numSpotMaps=v,n.version=v0t++)},setupView:function(e,t){let i=0,r=0,l=0,h=0,u=0,c=t.matrixWorldInverse;for(let t=0,p=e.length;t=a.length?(s=new Bce(e,t),a.push(s)):s=a[n],s},dispose:function(){i=new WeakMap}}}var Ip=class extends zr{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=dhe,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},cx=class extends zr{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new A,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},b0t="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",x0t="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \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 I0t(e,t,i){let r=new Xs,n=new le,s=new le,a=new Gr,o=new Ip({depthPacking:Wy}),l=new cx,h={},u=i.maxTextureSize,c={[tn]:zn,[zn]:tn,[gi]:gi},p=new Yt({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new le},radius:{value:4}},vertexShader:b0t,fragmentShader:x0t}),d=p.clone();d.defines.HORIZONTAL_PASS=1;let f=new lt;f.setAttribute("position",new Wt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new rt(f,p),g=this;function y(i,r){let s=t.update(m);p.defines.VSM_SAMPLES!==i.blurSamples&&(p.defines.VSM_SAMPLES=i.blurSamples,d.defines.VSM_SAMPLES=i.blurSamples,p.needsUpdate=!0,d.needsUpdate=!0),null===i.mapPass&&(i.mapPass=new Vr(n.x,n.y)),p.uniforms.shadow_pass.value=i.map.texture,p.uniforms.resolution.value=i.mapSize,p.uniforms.radius.value=i.radius,e.setRenderTarget(i.mapPass),e.clear(),e.renderBufferDirect(r,null,s,p,m,null),d.uniforms.shadow_pass.value=i.mapPass.texture,d.uniforms.resolution.value=i.mapSize,d.uniforms.radius.value=i.radius,e.setRenderTarget(i.map),e.clear(),e.renderBufferDirect(r,null,s,d,m,null)}function v(t,i,r,n,s,a){let u=null,p=!0===r.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==p)u=p;else if(u=!0===r.isPointLight?l:o,e.localClippingEnabled&&!0===i.clipShadows&&Array.isArray(i.clippingPlanes)&&0!==i.clippingPlanes.length||i.displacementMap&&0!==i.displacementScale||i.alphaMap&&i.alphaTest>0||i.map&&i.alphaTest>0){let e=u.uuid,t=i.uuid,r=h[e];void 0===r&&(r={},h[e]=r);let n=r[t];void 0===n&&(n=u.clone(),r[t]=n),u=n}return u.visible=i.visible,u.wireframe=i.wireframe,u.side=a===Sy?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:c[i.side],u.alphaMap=i.alphaMap,u.alphaTest=i.alphaTest,u.map=i.map,u.clipShadows=i.clipShadows,u.clippingPlanes=i.clippingPlanes,u.clipIntersection=i.clipIntersection,u.displacementMap=i.displacementMap,u.displacementScale=i.displacementScale,u.displacementBias=i.displacementBias,u.wireframeLinewidth=i.wireframeLinewidth,u.linewidth=i.linewidth,!0===r.isPointLight&&!0===u.isMeshDistanceMaterial&&(u.referencePosition.setFromMatrixPosition(r.matrixWorld),u.nearDistance=n,u.farDistance=s),u}function T(i,n,s,a,o){if(!1===i.visible)return;if(i.layers.test(n.layers)&&(i.isMesh||i.isLine||i.isPoints)&&(i.castShadow||i.receiveShadow&&o===Sy)&&(!i.frustumCulled||r.intersectsObject(i))){i.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,i.matrixWorld);let r=t.update(i),n=i.material;if(Array.isArray(n)){let t=r.groups;for(let l=0,h=t.length;lu||n.y>u)&&(n.x>u&&(s.x=Math.floor(u/d.x),n.x=s.x*d.x,c.mapSize.x=s.x),n.y>u&&(s.y=Math.floor(u/d.y),n.y=s.y*d.y,c.mapSize.y=s.y)),null===c.map){let e=this.type!==Sy?{minFilter:Di,magFilter:Di}:{};c.map=new Vr(n.x,n.y,e),c.map.texture.name=h.name+".shadowMap",c.camera.updateProjectionMatrix()}e.setRenderTarget(c.map),e.clear();let f=c.getViewportCount();for(let e=0;e=1):-1!==R.indexOf("OpenGL ES")&&(O=parseFloat(/^OpenGL ES (\d)/.exec(R)[1]),D=O>=2);let C=null,N={},P=e.getParameter(3088),L=e.getParameter(2978),F=(new Gr).fromArray(P),U=(new Gr).fromArray(L);function k(t,i,r){let n=new Uint8Array(4),s=e.createTexture();e.bindTexture(t,s),e.texParameteri(t,10241,9728),e.texParameteri(t,10240,9728);for(let t=0;tr||e.height>r)&&(n=r/Math.max(e.width,e.height)),n<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){let r=t?CD:Math.floor,s=r(n*e.width),a=r(n*e.height);void 0===o&&(o=v(s,a));let l=i?v(s,a):o;return l.width=s,l.height=a,l.getContext("2d").drawImage(e,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+s+"x"+a+")."),l}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function x(e){return d4(e.width)&&d4(e.height)}function b(e,t){return e.generateMipmaps&&t&&e.minFilter!==Di&&e.minFilter!==oi}function _(t){e.generateMipmap(t)}function E(i,r,n,s,a=!1){if(!1===l)return r;if(null!==i){if(void 0!==e[i])return e[i];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+i+"'")}let o=r;return 6403===r&&(5126===n&&(o=33326),5131===n&&(o=33325),5121===n&&(o=33321)),33319===r&&(5126===n&&(o=33328),5131===n&&(o=33327),5121===n&&(o=33323)),6408===r&&(5126===n&&(o=34836),5131===n&&(o=34842),5121===n&&(o=s===gr&&!1===a?35907:32856),32819===n&&(o=32854),32820===n&&(o=32855)),(33325===o||33326===o||33327===o||33328===o||34842===o||34836===o)&&t.get("EXT_color_buffer_float"),o}function w(e,t,i){return!0===b(e,i)||e.isFramebufferTexture&&e.minFilter!==Di&&e.minFilter!==oi?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function S(e){return e===Di||e===lf||e===mp?9728:9729}function I(e){let t=e.target;t.removeEventListener("dispose",I),function(e){let t=r.get(e);if(void 0===t.__webglInit)return;let i=e.source,n=g.get(i);if(n){let r=n[t.__cacheKey];r.usedTimes--,0===r.usedTimes&&A(e),0===Object.keys(n).length&&g.delete(i)}r.remove(e)}(t),t.isVideoTexture&&m.delete(t)}function M(t){let i=t.target;i.removeEventListener("dispose",M),function(t){let i=t.texture,n=r.get(t),s=r.get(i);if(void 0!==s.__webglTexture&&(e.deleteTexture(s.__webglTexture),a.memory.textures--),t.depthTexture&&t.depthTexture.dispose(),t.isWebGLCubeRenderTarget)for(let t=0;t<6;t++)e.deleteFramebuffer(n.__webglFramebuffer[t]),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer[t]);else{if(e.deleteFramebuffer(n.__webglFramebuffer),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&e.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer)for(let t=0;t0&&n.__version!==e.version){let i=e.image;if(null===i)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==i.complete)return void L(n,e,t);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}i.bindTexture(3553,n.__webglTexture,33984+t)}let R={[vn]:10497,[gn]:33071,[yp]:33648},C={[Di]:9728,[lf]:9984,[mp]:9986,[oi]:9729,[Bg]:9985,[Ra]:9987};function N(i,s,a){if(a?(e.texParameteri(i,10242,R[s.wrapS]),e.texParameteri(i,10243,R[s.wrapT]),(32879===i||35866===i)&&e.texParameteri(i,32882,R[s.wrapR]),e.texParameteri(i,10240,C[s.magFilter]),e.texParameteri(i,10241,C[s.minFilter])):(e.texParameteri(i,10242,33071),e.texParameteri(i,10243,33071),(32879===i||35866===i)&&e.texParameteri(i,32882,33071),(s.wrapS!==gn||s.wrapT!==gn)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(i,10240,S(s.magFilter)),e.texParameteri(i,10241,S(s.minFilter)),s.minFilter!==Di&&s.minFilter!==oi&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===t.has("EXT_texture_filter_anisotropic")){let a=t.get("EXT_texture_filter_anisotropic");if(s.magFilter===Di||s.minFilter!==mp&&s.minFilter!==Ra||s.type===wa&&!1===t.has("OES_texture_float_linear")||!1===l&&s.type===Uo&&!1===t.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||r.get(s).__currentAnisotropy)&&(e.texParameterf(i,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,n.getMaxAnisotropy())),r.get(s).__currentAnisotropy=s.anisotropy)}}function P(t,i){let r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,i.addEventListener("dispose",I));let n=i.source,s=g.get(n);void 0===s&&(s={},g.set(n,s));let o=function(e){let t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR||0),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.encoding),t.join()}(i);if(o!==t.__cacheKey){void 0===s[o]&&(s[o]={texture:e.createTexture(),usedTimes:0},a.memory.textures++,r=!0),s[o].usedTimes++;let n=s[t.__cacheKey];void 0!==n&&(s[t.__cacheKey].usedTimes--,0===n.usedTimes&&A(i)),t.__cacheKey=o,t.__webglTexture=s[o].texture}return r}function L(t,n,a){let o=3553;(n.isDataArrayTexture||n.isCompressedArrayTexture)&&(o=35866),n.isData3DTexture&&(o=32879);let h=P(t,n),u=n.source;i.bindTexture(o,t.__webglTexture,33984+a);let p=r.get(u);if(u.version!==p.__version||!0===h){i.activeTexture(33984+a),e.pixelStorei(37440,n.flipY),e.pixelStorei(37441,n.premultiplyAlpha),e.pixelStorei(3317,n.unpackAlignment),e.pixelStorei(37443,0);let t=function(e){return!l&&(e.wrapS!==gn||e.wrapT!==gn||e.minFilter!==Di&&e.minFilter!==oi)}(n)&&!1===x(n.image),r=T(n.image,t,!1,c);r=G(n,r);let d=x(r)||l,f=s.convert(n.format,n.encoding),m=s.convert(n.type),g=E(n.internalFormat,f,m,n.encoding,n.isVideoTexture);N(o,n,d);let y,v=n.mipmaps,S=l&&!0!==n.isVideoTexture,I=void 0===p.__version||!0===h,M=w(n,r,d);if(n.isDepthTexture)g=6402,l?g=n.type===wa?36012:n.type===nf?33190:n.type===gp?35056:33189:n.type===wa&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),n.format===sf&&6402===g&&n.type!==Cx&&n.type!==nf&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),n.type=nf,m=s.convert(n.type)),n.format===Tp&&6402===g&&(g=34041,n.type!==gp&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),n.type=gp,m=s.convert(n.type))),I&&(S?i.texStorage2D(3553,1,g,r.width,r.height):i.texImage2D(3553,0,g,r.width,r.height,0,f,m,null));else if(n.isDataTexture)if(v.length>0&&d){S&&I&&i.texStorage2D(3553,M,g,v[0].width,v[0].height);for(let e=0,t=v.length;e>=1,t>>=1}}else if(v.length>0&&d){S&&I&&i.texStorage2D(3553,M,g,v[0].width,v[0].height);for(let e=0,t=v.length;e=34069&&l<=34074)&&e.framebufferTexture2D(36160,o,l,r.get(a).__webglTexture,0),i.bindFramebuffer(36160,null)}function U(t,i,r){if(e.bindRenderbuffer(36161,t),i.depthBuffer&&!i.stencilBuffer){let n=33189;if(r||H(i)){let t=i.depthTexture;t&&t.isDepthTexture&&(t.type===wa?n=36012:t.type===nf&&(n=33190));let r=B(i);H(i)?d.renderbufferStorageMultisampleEXT(36161,r,n,i.width,i.height):e.renderbufferStorageMultisample(36161,r,n,i.width,i.height)}else e.renderbufferStorage(36161,n,i.width,i.height);e.framebufferRenderbuffer(36160,36096,36161,t)}else if(i.depthBuffer&&i.stencilBuffer){let n=B(i);r&&!1===H(i)?e.renderbufferStorageMultisample(36161,n,35056,i.width,i.height):H(i)?d.renderbufferStorageMultisampleEXT(36161,n,35056,i.width,i.height):e.renderbufferStorage(36161,34041,i.width,i.height),e.framebufferRenderbuffer(36160,33306,36161,t)}else{let t=!0===i.isWebGLMultipleRenderTargets?i.texture:[i.texture];for(let n=0;n0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==i.__useRenderToTexture}function G(e,i){let r=e.encoding,n=e.format,s=e.type;return!0===e.isCompressedTexture||!0===e.isVideoTexture||e.format===DD||r!==_l&&(r===gr?!1===l?!0===t.has("EXT_sRGB")&&n===Us?(e.format=DD,e.minFilter=oi,e.generateMipmaps=!1):i=ax.sRGBToLinear(i):(n!==Us||s!==Fu)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",r)),i}this.allocateTextureUnit=function(){let e=D;return e>=h&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+h),D+=1,e},this.resetTextureUnits=function(){D=0},this.setTexture2D=O,this.setTexture2DArray=function(e,t){let n=r.get(e);e.version>0&&n.__version!==e.version?L(n,e,t):i.bindTexture(35866,n.__webglTexture,33984+t)},this.setTexture3D=function(e,t){let n=r.get(e);e.version>0&&n.__version!==e.version?L(n,e,t):i.bindTexture(32879,n.__webglTexture,33984+t)},this.setTextureCube=function(t,n){let a=r.get(t);t.version>0&&a.__version!==t.version?function(t,n,a){if(6!==n.image.length)return;let o=P(t,n),h=n.source;i.bindTexture(34067,t.__webglTexture,33984+a);let c=r.get(h);if(h.version!==c.__version||!0===o){i.activeTexture(33984+a),e.pixelStorei(37440,n.flipY),e.pixelStorei(37441,n.premultiplyAlpha),e.pixelStorei(3317,n.unpackAlignment),e.pixelStorei(37443,0);let t=n.isCompressedTexture||n.image[0].isCompressedTexture,r=n.image[0]&&n.image[0].isDataTexture,p=[];for(let e=0;e<6;e++)p[e]=t||r?r?n.image[e].image:n.image[e]:T(n.image[e],!1,!0,u),p[e]=G(n,p[e]);let d,f=p[0],m=x(f)||l,g=s.convert(n.format,n.encoding),y=s.convert(n.type),v=E(n.internalFormat,g,y,n.encoding),S=l&&!0!==n.isVideoTexture,I=void 0===c.__version||!0===o,M=w(n,f,m);if(N(34067,n,m),t){S&&I&&i.texStorage2D(34067,M,v,f.width,f.height);for(let e=0;e<6;e++){d=p[e].mipmaps;for(let t=0;t0&&M++,i.texStorage2D(34067,M,v,p[0].width,p[0].height));for(let e=0;e<6;e++)if(r){S?i.texSubImage2D(34069+e,0,0,0,p[e].width,p[e].height,g,y,p[e].data):i.texImage2D(34069+e,0,v,p[e].width,p[e].height,0,g,y,p[e].data);for(let t=0;t0&&!1===H(t)){let r=p?o:[o];h.__webglMultisampledFramebuffer=e.createFramebuffer(),h.__webglColorRenderbuffer=[],i.bindFramebuffer(36160,h.__webglMultisampledFramebuffer);for(let i=0;i0&&!1===H(t)){let n=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],s=t.width,a=t.height,o=16384,l=[],h=t.stencilBuffer?33306:36096,u=r.get(t),c=!0===t.isWebGLMultipleRenderTargets;if(c)for(let t=0;to+h?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&a<=o-h&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(n=t.getPose(e.gripSpace,i),null!==n&&(o.matrix.fromArray(n.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),n.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(n.linearVelocity)):o.hasLinearVelocity=!1,n.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(n.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(r=t.getPose(e.targetRaySpace,i),null===r&&null!==n&&(r=n),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(w0t)))}return null!==a&&(a.visible=null!==r),null!==o&&(o.visible=null!==n),null!==l&&(l.visible=null!==s),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){let i=new ur;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}},cf=class extends Bi{constructor(e,t,i,r,n,s,a,o,l,h){if((h=void 0!==h?h:sf)!==sf&&h!==Tp)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===i&&h===sf&&(i=nf),void 0===i&&h===Tp&&(i=gp),super(null,r,n,s,a,o,h,i,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==a?a:Di,this.minFilter=void 0!==o?o:Di,this.flipY=!1,this.generateMipmaps=!1}},C4=class extends Bo{constructor(e,t){super();let i=this,r=null,n=1,s=null,a="local-floor",o=1,l=null,h=null,u=null,c=null,p=null,d=null,f=t.getContextAttributes(),m=null,g=null,y=[],v=[],T=new Set,x=new Map,b=new Xr;b.layers.enable(1),b.viewport=new Gr;let _=new Xr;_.layers.enable(2),_.viewport=new Gr;let E=[b,_],w=new PD;w.layers.enable(1),w.layers.enable(2);let S=null,I=null;function M(e){let t=v.indexOf(e.inputSource);if(-1===t)return;let i=y[t];void 0!==i&&i.dispatchEvent({type:e.type,data:e.inputSource})}function D(){r.removeEventListener("select",M),r.removeEventListener("selectstart",M),r.removeEventListener("selectend",M),r.removeEventListener("squeeze",M),r.removeEventListener("squeezestart",M),r.removeEventListener("squeezeend",M),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",O);for(let e=0;e=0&&(v[r]=null,y[r].disconnect(i))}for(let t=0;t=v.length){v.push(i),r=e;break}if(null===v[e]){v[e]=i,r=e;break}}if(-1===r)break}let n=y[r];n&&n.connect(i)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=y[e];return void 0===t&&(t=new Jb,y[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=y[e];return void 0===t&&(t=new Jb,y[e]=t),t.getGripSpace()},this.getHand=function(e){let t=y[e];return void 0===t&&(t=new Jb,y[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){n=e,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){a=e,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==c?c:p},this.getBinding=function(){return u},this.getFrame=function(){return d},this.getSession=function(){return r},this.setSession=function(h){return ht(this,null,(function*(){if(r=h,null!==r){if(m=e.getRenderTarget(),r.addEventListener("select",M),r.addEventListener("selectstart",M),r.addEventListener("selectend",M),r.addEventListener("squeeze",M),r.addEventListener("squeezestart",M),r.addEventListener("squeezeend",M),r.addEventListener("end",D),r.addEventListener("inputsourceschange",O),!0!==f.xrCompatible&&(yield t.makeXRCompatible()),void 0===r.renderState.layers||!1===e.capabilities.isWebGL2){let i={antialias:void 0!==r.renderState.layers||f.antialias,alpha:f.alpha,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:n};p=new XRWebGLLayer(r,t,i),r.updateRenderState({baseLayer:p}),g=new Vr(p.framebufferWidth,p.framebufferHeight,{format:Us,type:Fu,encoding:e.outputEncoding,stencilBuffer:f.stencil})}else{let i=null,s=null,a=null;f.depth&&(a=f.stencil?35056:33190,i=f.stencil?Tp:sf,s=f.stencil?gp:nf);let o={colorFormat:32856,depthFormat:a,scaleFactor:n};u=new XRWebGLBinding(r,t),c=u.createProjectionLayer(o),r.updateRenderState({layers:[c]}),g=new Vr(c.textureWidth,c.textureHeight,{format:Us,type:Fu,depthTexture:new cf(c.textureWidth,c.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,i),stencilBuffer:f.stencil,encoding:e.outputEncoding,samples:f.antialias?4:0}),e.properties.get(g).__ignoreDepthValues=c.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=yield r.requestReferenceSpace(a),L.setContext(r),L.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}}))};let R=new A,C=new A;function N(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===r)return;w.near=_.near=b.near=e.near,w.far=_.far=b.far=e.far,(S!==w.near||I!==w.far)&&(r.updateRenderState({depthNear:w.near,depthFar:w.far}),S=w.near,I=w.far);let t=e.parent,i=w.cameras;N(w,t);for(let e=0;et&&(x.set(e,e.lastChangedTime),i.dispatchEvent({type:"planechanged",data:e}))}else T.add(e),x.set(e,r.lastChangedTime),i.dispatchEvent({type:"planeadded",data:e})}d=null})),this.setAnimationLoop=function(e){P=e},this.dispose=function(){}}};function R0t(e,t){function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map),r.alphaMap&&(i.alphaMap.value=r.alphaMap),r.bumpMap&&(i.bumpMap.value=r.bumpMap,i.bumpScale.value=r.bumpScale,r.side===zn&&(i.bumpScale.value*=-1)),r.displacementMap&&(i.displacementMap.value=r.displacementMap,i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap),r.normalMap&&(i.normalMap.value=r.normalMap,i.normalScale.value.copy(r.normalScale),r.side===zn&&i.normalScale.value.negate()),r.specularMap&&(i.specularMap.value=r.specularMap),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);let n,s,a=t.get(r).envMap;if(a&&(i.envMap.value=a,i.flipEnvMap.value=a.isCubeTexture&&!1===a.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;let t=!0!==e.physicallyCorrectLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*t}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity),r.map?n=r.map:r.specularMap?n=r.specularMap:r.displacementMap?n=r.displacementMap:r.normalMap?n=r.normalMap:r.bumpMap?n=r.bumpMap:r.roughnessMap?n=r.roughnessMap:r.metalnessMap?n=r.metalnessMap:r.alphaMap?n=r.alphaMap:r.emissiveMap?n=r.emissiveMap:r.clearcoatMap?n=r.clearcoatMap:r.clearcoatNormalMap?n=r.clearcoatNormalMap:r.clearcoatRoughnessMap?n=r.clearcoatRoughnessMap:r.iridescenceMap?n=r.iridescenceMap:r.iridescenceThicknessMap?n=r.iridescenceThicknessMap:r.specularIntensityMap?n=r.specularIntensityMap:r.specularColorMap?n=r.specularColorMap:r.transmissionMap?n=r.transmissionMap:r.thicknessMap?n=r.thicknessMap:r.sheenColorMap?n=r.sheenColorMap:r.sheenRoughnessMap&&(n=r.sheenRoughnessMap),void 0!==n&&(n.isWebGLRenderTarget&&(n=n.texture),!0===n.matrixAutoUpdate&&n.updateMatrix(),i.uvTransform.value.copy(n.matrix)),r.aoMap?s=r.aoMap:r.lightMap&&(s=r.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),i.uv2Transform.value.copy(s.matrix))}return{refreshFogUniforms:function(t,i){i.color.getRGB(t.fogColor.value,The(e)),i.isFog?(t.fogNear.value=i.near,t.fogFar.value=i.far):i.isFogExp2&&(t.fogDensity.value=i.density)},refreshMaterialUniforms:function(e,r,n,s,a){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(e,r):r.isMeshToonMaterial?(i(e,r),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,r)):r.isMeshPhongMaterial?(i(e,r),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,r)):r.isMeshStandardMaterial?(i(e,r),function(e,i){e.roughness.value=i.roughness,e.metalness.value=i.metalness,i.roughnessMap&&(e.roughnessMap.value=i.roughnessMap),i.metalnessMap&&(e.metalnessMap.value=i.metalnessMap),t.get(i).envMap&&(e.envMapIntensity.value=i.envMapIntensity)}(e,r),r.isMeshPhysicalMaterial&&function(e,t,i){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap)),t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap),t.clearcoatNormalMap&&(e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),e.clearcoatNormalMap.value=t.clearcoatNormalMap,t.side===zn&&e.clearcoatNormalScale.value.negate())),t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap)),t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=i.texture,e.transmissionSamplerSize.value.set(i.width,i.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor)),e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap),t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap)}(e,r,a)):r.isMeshMatcapMaterial?(i(e,r),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,r)):r.isMeshDepthMaterial?i(e,r):r.isMeshDistanceMaterial?(i(e,r),function(e,t){e.referencePosition.value.copy(t.referencePosition),e.nearDistance.value=t.nearDistance,e.farDistance.value=t.farDistance}(e,r)):r.isMeshNormalMaterial?i(e,r):r.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity}(e,r),r.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,r)):r.isPointsMaterial?function(e,t,i,r){let n;e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*i,e.scale.value=.5*r,t.map&&(e.map.value=t.map),t.alphaMap&&(e.alphaMap.value=t.alphaMap),t.alphaTest>0&&(e.alphaTest.value=t.alphaTest),t.map?n=t.map:t.alphaMap&&(n=t.alphaMap),void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),e.uvTransform.value.copy(n.matrix))}(e,r,n,s):r.isSpriteMaterial?function(e,t){let i;e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map),t.alphaMap&&(e.alphaMap.value=t.alphaMap),t.alphaTest>0&&(e.alphaTest.value=t.alphaTest),t.map?i=t.map:t.alphaMap&&(i=t.alphaMap),void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),e.uvTransform.value.copy(i.matrix))}(e,r):r.isShadowMaterial?(e.color.value.copy(r.color),e.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function M0t(e,t,i,r){let n={},s={},a=[],o=i.isWebGL2?e.getParameter(35375):0;function l(e,t,i){let r=e.value;if(void 0===i[t]){if("number"==typeof r)i[t]=r;else{let e=Array.isArray(r)?r:[r],n=[];for(let t=0;t0){n=i%r,0!==n&&r-n-a.boundary<0&&(i+=r-n,s.__offset=i)}i+=a.storage}n=i%r,n>0&&(i+=r-n),e.__size=i,e.__cache={}}(i),p=function(t){let i=function(){for(let e=0;e0&&function(e,t,i){let r=j.isWebGL2;null===U&&(U=new Vr(1,1,{generateMipmaps:!0,type:V.has("EXT_color_buffer_half_float")?Uo:Fu,minFilter:Ra,samples:r&&!0===a?4:0})),m.getDrawingBufferSize(B),r?U.setSize(B.x,B.y):U.setSize(CD(B.x),CD(B.y));let n=m.getRenderTarget();m.setRenderTarget(U),m.clear();let s=m.toneMapping;m.toneMapping=Lu,Ae(e,t,i),m.toneMapping=s,q.updateMultisampleRenderTarget(U),q.updateRenderTargetMipmap(U),m.setRenderTarget(n)}(n,t,i),r&&W.viewport(_.copy(r)),n.length>0&&Ae(n,t,i),s.length>0&&Ae(s,t,i),o.length>0&&Ae(o,t,i),W.buffers.depth.setTest(!0),W.buffers.depth.setMask(!0),W.buffers.color.setMask(!0),W.setPolygonOffset(!1)}function Ae(e,t,i){let r=!0===t.isScene?t.overrideMaterial:null;for(let n=0,s=e.length;n0?f[f.length-1]:null,d.pop(),c=d.length>0?d[d.length-1]:null},this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return v},this.getRenderTarget=function(){return T},this.setRenderTargetTextures=function(e,t,i){X.get(e.texture).__webglTexture=t,X.get(e.depthTexture).__webglTexture=i;let r=X.get(e);r.__hasExternalTextures=!0,r.__hasExternalTextures&&(r.__autoAllocateDepthBuffer=void 0===i,r.__autoAllocateDepthBuffer||!0===V.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){let i=X.get(e);i.__webglFramebuffer=t,i.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,i=0){T=e,y=t,v=i;let r=!0,n=null,s=!1,a=!1;if(e){let i=X.get(e);void 0!==i.__useDefaultFramebuffer?(W.bindFramebuffer(36160,null),r=!1):void 0===i.__webglFramebuffer?q.setupRenderTarget(e):i.__hasExternalTextures&&q.rebindTextures(e,X.get(e.texture).__webglTexture,X.get(e.depthTexture).__webglTexture);let o=e.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);let l=X.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(n=l[t],s=!0):n=j.isWebGL2&&e.samples>0&&!1===q.useMultisampledRTT(e)?X.get(e).__webglMultisampledFramebuffer:l,_.copy(e.viewport),E.copy(e.scissor),w=e.scissorTest}else _.copy(R).multiplyScalar(M).floor(),E.copy(C).multiplyScalar(M).floor(),w=N;if(W.bindFramebuffer(36160,n)&&j.drawBuffers&&r&&W.drawBuffers(e,n),W.viewport(_),W.scissor(E),W.setScissorTest(w),s){let r=X.get(e.texture);fe.framebufferTexture2D(36160,36064,34069+t,r.__webglTexture,i)}else if(a){let r=X.get(e.texture),n=t||0;fe.framebufferTextureLayer(36160,36064,r.__webglTexture,i||0,n)}x=-1},this.readRenderTargetPixels=function(e,t,i,r,n,s,a){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=X.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){W.bindFramebuffer(36160,o);try{let a=e.texture,o=a.format,l=a.type;if(o!==Us&&ce.convert(o)!==fe.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");let h=l===Uo&&(V.has("EXT_color_buffer_half_float")||j.isWebGL2&&V.has("EXT_color_buffer_float"));if(!(l===Fu||ce.convert(l)===fe.getParameter(35738)||l===wa&&(j.isWebGL2||V.has("OES_texture_float")||V.has("WEBGL_color_buffer_float"))||h))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-r&&i>=0&&i<=e.height-n&&fe.readPixels(t,i,r,n,ce.convert(o),ce.convert(l),s)}finally{let e=null!==T?X.get(T).__webglFramebuffer:null;W.bindFramebuffer(36160,e)}}},this.copyFramebufferToTexture=function(e,t,i=0){let r=Math.pow(2,-i),n=Math.floor(t.image.width*r),s=Math.floor(t.image.height*r);q.setTexture2D(t,0),fe.copyTexSubImage2D(3553,i,0,0,e.x,e.y,n,s),W.unbindTexture()},this.copyTextureToTexture=function(e,t,i,r=0){let n=t.image.width,s=t.image.height,a=ce.convert(i.format),o=ce.convert(i.type);q.setTexture2D(i,0),fe.pixelStorei(37440,i.flipY),fe.pixelStorei(37441,i.premultiplyAlpha),fe.pixelStorei(3317,i.unpackAlignment),t.isDataTexture?fe.texSubImage2D(3553,r,e.x,e.y,n,s,a,o,t.image.data):t.isCompressedTexture?fe.compressedTexSubImage2D(3553,r,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):fe.texSubImage2D(3553,r,e.x,e.y,a,o,t.image),0===r&&i.generateMipmaps&&fe.generateMipmap(3553),W.unbindTexture()},this.copyTextureToTexture3D=function(e,t,i,r,n=0){if(m.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");let s,a=e.max.x-e.min.x+1,o=e.max.y-e.min.y+1,l=e.max.z-e.min.z+1,h=ce.convert(r.format),u=ce.convert(r.type);if(r.isData3DTexture)q.setTexture3D(r,0),s=32879;else{if(!r.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");q.setTexture2DArray(r,0),s=35866}fe.pixelStorei(37440,r.flipY),fe.pixelStorei(37441,r.premultiplyAlpha),fe.pixelStorei(3317,r.unpackAlignment);let c=fe.getParameter(3314),p=fe.getParameter(32878),d=fe.getParameter(3316),f=fe.getParameter(3315),g=fe.getParameter(32877),y=i.isCompressedTexture?i.mipmaps[0]:i.image;fe.pixelStorei(3314,y.width),fe.pixelStorei(32878,y.height),fe.pixelStorei(3316,e.min.x),fe.pixelStorei(3315,e.min.y),fe.pixelStorei(32877,e.min.z),i.isDataTexture||i.isData3DTexture?fe.texSubImage3D(s,n,t.x,t.y,t.z,a,o,l,h,u,y.data):i.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),fe.compressedTexSubImage3D(s,n,t.x,t.y,t.z,a,o,l,h,y.data)):fe.texSubImage3D(s,n,t.x,t.y,t.z,a,o,l,h,u,y),fe.pixelStorei(3314,c),fe.pixelStorei(32878,p),fe.pixelStorei(3316,d),fe.pixelStorei(3315,f),fe.pixelStorei(32877,g),0===n&&r.generateMipmaps&&fe.generateMipmap(s),W.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?q.setTextureCube(e,0):e.isData3DTexture?q.setTexture3D(e,0):e.isDataArrayTexture||e.isCompressedArrayTexture?q.setTexture2DArray(e,0):q.setTexture2D(e,0),W.unbindTexture()},this.resetState=function(){y=0,v=0,T=null,W.reset(),pe.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var ND=class extends Ol{};ND.prototype.isWebGL1Renderer=!0;var by,Ny=class{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new je(e),this.density=t}clone(){return new Ny(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}},Uu=class{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new je(e),this.near=t,this.far=i}clone(){return new Uu(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},Pn=class extends cr{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(e){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=e}},_p=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=ix,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ho()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,n=this.stride;re.far||t.push({distance:o,point:Wb.clone(),uv:hn.getUV(Wb,QM,Yb,eD,kce,MH,Gce,new le),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}};function tD(e,t,i,r,n,s){_y.subVectors(e,i).addScalar(.5).multiply(r),void 0!==n?(qb.x=s*_y.x-n*_y.y,qb.y=n*_y.x+s*_y.y):qb.copy(_y),e.copy(t),e.x+=qb.x,e.y+=qb.y,e.applyMatrix4(whe)}var rD=new A,Vce=new A,FD=class extends cr{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let e=0,i=t.length;e0){let i,r;for(i=1,r=t.length;i0){rD.setFromMatrixPosition(this.matrixWorld);let i=e.ray.origin.distanceTo(rD);this.getObjectForDistance(i).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){rD.setFromMatrixPosition(e.matrixWorld),Vce.setFromMatrixPosition(this.matrixWorld);let i,r,n=rD.distanceTo(Vce)/e.zoom;for(t[0].object.visible=!0,i=1,r=t.length;i=e))break;t[i-1].object.visible=!1,t[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;c.applyMatrix4(this.matrixWorld);let s=e.ray.origin.distanceTo(c);se.far||t.push({distance:s,point:u.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}else{for(let i=Math.max(0,s.start),r=Math.min(f.count,s.start+s.count)-1;io)continue;c.applyMatrix4(this.matrixWorld);let r=e.ray.origin.distanceTo(c);re.far||t.push({distance:r,point:u.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){let e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){let i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;e0){let i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;en.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:i,index:t,face:null,object:a})}}var O4=class extends Bi{constructor(e,t,i,r,n,s,a,o,l){super(e,t,i,r,n,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:oi,this.magFilter=void 0!==n?n:oi,this.generateMipmaps=!1;let h=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback((function t(){h.needsUpdate=!0,e.requestVideoFrameCallback(t)}))}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;"requestVideoFrameCallback"in e==!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},P4=class extends Bi{constructor(e,t,i){super({width:e,height:t}),this.isFramebufferTexture=!0,this.format=i,this.magFilter=Di,this.minFilter=Di,this.generateMipmaps=!1,this.needsUpdate=!0}},ux=class extends Bi{constructor(e,t,i,r,n,s,a,o,l,h,u,c){super(null,s,a,o,l,h,r,n,u,c),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},N4=class extends ux{constructor(e,t,i,r,n,s){super(e,t,i,n,s),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=gn}},L4=class extends Bi{constructor(e,t,i,r,n,s,a,o,l){super(e,t,i,r,n,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},Ma=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t,i=[],r=this.getPoint(0),n=0;i.push(0);for(let s=1;s<=e;s++)t=this.getPoint(s/e),n+=t.distanceTo(r),i.push(n),r=t;return this.cacheArcLengths=i,i}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let i,r=this.getLengths(),n=0,s=r.length;i=t||e*r[s-1];let a,o=0,l=s-1;for(;o<=l;)if(n=Math.floor(o+(l-o)/2),a=r[n]-i,a<0)o=n+1;else{if(!(a>0)){l=n;break}l=n-1}if(n=l,r[n]===i)return n/(s-1);let h=r[n];return(n+(i-h)/(r[n+1]-h))/(s-1)}getTangent(e,t){let i=e-1e-4,r=e+1e-4;i<0&&(i=0),r>1&&(r=1);let n=this.getPoint(i),s=this.getPoint(r),a=t||(n.isVector2?new le:new A);return a.copy(s).sub(n).normalize(),a}getTangentAt(e,t){let i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){let i=new A,r=[],n=[],s=[],a=new A,o=new Be;for(let t=0;t<=e;t++){let i=t/e;r[t]=this.getTangentAt(i,new A)}n[0]=new A,s[0]=new A;let l=Number.MAX_VALUE,h=Math.abs(r[0].x),u=Math.abs(r[0].y),c=Math.abs(r[0].z);h<=l&&(l=h,i.set(1,0,0)),u<=l&&(l=u,i.set(0,1,0)),c<=l&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),n[0].crossVectors(r[0],a),s[0].crossVectors(r[0],n[0]);for(let t=1;t<=e;t++){if(n[t]=n[t-1].clone(),s[t]=s[t-1].clone(),a.crossVectors(r[t-1],r[t]),a.length()>Number.EPSILON){a.normalize();let e=Math.acos(Qn(r[t-1].dot(r[t]),-1,1));n[t].applyMatrix4(o.makeRotationAxis(a,e))}s[t].crossVectors(r[t],n[t])}if(!0===t){let t=Math.acos(Qn(n[0].dot(n[e]),-1,1));t/=e,r[0].dot(a.crossVectors(n[0],n[e]))>0&&(t=-t);for(let i=1;i<=e;i++)n[i].applyMatrix4(o.makeRotationAxis(r[i],t*i)),s[i].crossVectors(r[i],n[i])}return{tangents:r,normals:n,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},wp=class extends Ma{constructor(e=0,t=0,i=1,r=1,n=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=n,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(e,t){let i=t||new le,r=2*Math.PI,n=this.aEndAngle-this.aStartAngle,s=Math.abs(n)r;)n-=r;n0?0:(Math.floor(Math.abs(l)/a)+1)*a:0===h&&l===a-1&&(l=a-2,h=1),this.closed||l>0?i=s[(l-1)%a]:(oD.subVectors(s[0],s[1]).add(s[0]),i=oD);let u=s[l%a],c=s[(l+1)%a];if(this.closed||l+2r.length-2?r.length-1:s+1],u=r[s>r.length-3?r.length-1:s+2];return i.set(iue(a,o.x,l.x,h.x,u.x),iue(a,o.y,l.y,h.y,u.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){let e=r[n]-i,s=this.curves[n],a=s.getLength(),o=0===a?0:1-e/a;return s.getPointAt(o,t)}n++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let i=0,r=this.curves.length;i1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){let e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);let h=l.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},uf=class extends lt{constructor(e=[new le(0,-.5),new le(.5,0),new le(0,.5)],t=12,i=0,r=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Qn(r,0,2*Math.PI);let n=[],s=[],a=[],o=[],l=[],h=1/t,u=new A,c=new le,p=new A,d=new A,f=new A,m=0,g=0;for(let t=0;t<=e.length-1;t++)switch(t){case 0:m=e[t+1].x-e[t].x,g=e[t+1].y-e[t].y,p.x=1*g,p.y=-m,p.z=0*g,f.copy(p),p.normalize(),o.push(p.x,p.y,p.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[t+1].x-e[t].x,g=e[t+1].y-e[t].y,p.x=1*g,p.y=-m,p.z=0*g,d.copy(p),p.x+=f.x,p.y+=f.y,p.z+=f.z,p.normalize(),o.push(p.x,p.y,p.z),f.copy(d)}for(let n=0;n<=t;n++){let p=i+n*h*r,d=Math.sin(p),f=Math.cos(p);for(let i=0;i<=e.length-1;i++){u.x=e[i].x*d,u.y=e[i].y,u.z=e[i].x*f,s.push(u.x,u.y,u.z),c.x=n/t,c.y=i/(e.length-1),a.push(c.x,c.y);let r=o[3*i+0]*d,h=o[3*i+1],p=o[3*i+0]*f;l.push(r,h,p)}}for(let i=0;i0&&y(!0),t>0&&y(!1)),this.setIndex(h),this.setAttribute("position",new dt(u,3)),this.setAttribute("normal",new dt(c,3)),this.setAttribute("uv",new dt(p,2))}static fromJSON(e){return new Rl(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},wg=class extends Rl{constructor(e=1,t=1,i=32,r=1,n=!1,s=0,a=2*Math.PI){super(0,e,t,i,r,n,s,a),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:i,heightSegments:r,openEnded:n,thetaStart:s,thetaLength:a}}static fromJSON(e){return new wg(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Dc=class extends lt{constructor(e=[],t=[],i=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:i,detail:r};let n=[],s=[];function a(e,t,i,r){let n=r+1,s=[];for(let r=0;r<=n;r++){s[r]=[];let a=e.clone().lerp(i,r/n),o=t.clone().lerp(i,r/n),l=n-r;for(let e=0;e<=l;e++)s[r][e]=0===e&&r===n?a:a.clone().lerp(o,e/l)}for(let e=0;e.9&&a<.1&&(t<.2&&(s[e+0]+=1),i<.2&&(s[e+2]+=1),r<.2&&(s[e+4]+=1))}}()}(),this.setAttribute("position",new dt(n,3)),this.setAttribute("normal",new dt(n.slice(),3)),this.setAttribute("uv",new dt(s,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(e){return new Dc(e.vertices,e.indices,e.radius,e.details)}},Rg=class extends Dc{constructor(e=1,t=0){let i=(1+Math.sqrt(5))/2,r=1/i;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-i,0,-r,i,0,r,-i,0,r,i,-r,-i,0,-r,i,0,r,-i,0,r,i,0,-i,0,-r,i,0,-r,-i,0,r,i,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new Rg(e.radius,e.detail)}},lD=new A,cD=new A,PH=new A,uD=new hn,Rp=class extends lt{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){let i=Math.pow(10,4),r=Math.cos(gg*t),n=e.getIndex(),s=e.getAttribute("position"),a=n?n.count:s.count,o=[0,0,0],l=["a","b","c"],h=new Array(3),u={},c=[];for(let e=0;e80*i){r=s=e[0],n=a=e[1];for(let t=i;ts&&(s=o),l>a&&(a=l);h=Math.max(s-r,a-n),h=0!==h?32767/h:0}return fx(p,d,i,r,n,h,0),d}};function Rhe(e,t,i,r,n){let s,a;if(n===rvt(e,t,i,r)>0)for(s=t;s=t;s-=r)a=nue(s,e[s],e[s+1],a);return a&&lC(a,a.next)&&(gx(a),a=a.next),a}function Mg(e,t){if(!e)return e;t||(t=e);let i,r=e;do{if(i=!1,r.steiner||!lC(r,r.next)&&0!==On(r.prev,r,r.next))r=r.next;else{if(gx(r),r=t=r.prev,r===r.next)break;i=!0}}while(i||r!==t);return t}function fx(e,t,i,r,n,s,a){if(!e)return;!a&&s&&K0t(e,r,n,s);let o,l,h=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,s?V0t(e,r,n,s):G0t(e))t.push(o.i/i|0),t.push(e.i/i|0),t.push(l.i/i|0),gx(e),e=l.next,h=l.next;else if((e=l)===h){a?1===a?fx(e=z0t(Mg(e),t,i),t,i,r,n,s,2):2===a&&j0t(e,t,i,r,n,s):fx(Mg(e),t,i,r,n,s,1);break}}function G0t(e){let t=e.prev,i=e,r=e.next;if(On(t,i,r)>=0)return!1;let n=t.x,s=i.x,a=r.x,o=t.y,l=i.y,h=r.y,u=ns?n>a?n:a:s>a?s:a,d=o>l?o>h?o:h:l>h?l:h,f=r.next;for(;f!==t;){if(f.x>=u&&f.x<=p&&f.y>=c&&f.y<=d&&My(n,o,s,l,a,h,f.x,f.y)&&On(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function V0t(e,t,i,r){let n=e.prev,s=e,a=e.next;if(On(n,s,a)>=0)return!1;let o=n.x,l=s.x,h=a.x,u=n.y,c=s.y,p=a.y,d=ol?o>h?o:h:l>h?l:h,g=u>c?u>p?u:p:c>p?c:p,y=F4(d,f,t,i,r),v=F4(m,g,t,i,r),T=e.prevZ,x=e.nextZ;for(;T&&T.z>=y&&x&&x.z<=v;){if(T.x>=d&&T.x<=m&&T.y>=f&&T.y<=g&&T!==n&&T!==a&&My(o,u,l,c,h,p,T.x,T.y)&&On(T.prev,T,T.next)>=0||(T=T.prevZ,x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&My(o,u,l,c,h,p,x.x,x.y)&&On(x.prev,x,x.next)>=0))return!1;x=x.nextZ}for(;T&&T.z>=y;){if(T.x>=d&&T.x<=m&&T.y>=f&&T.y<=g&&T!==n&&T!==a&&My(o,u,l,c,h,p,T.x,T.y)&&On(T.prev,T,T.next)>=0)return!1;T=T.prevZ}for(;x&&x.z<=v;){if(x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&My(o,u,l,c,h,p,x.x,x.y)&&On(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function z0t(e,t,i){let r=e;do{let n=r.prev,s=r.next.next;!lC(n,s)&&Mhe(n,r,r.next,s)&&mx(n,s)&&mx(s,n)&&(t.push(n.i/i|0),t.push(r.i/i|0),t.push(s.i/i|0),gx(r),gx(r.next),r=e=s),r=r.next}while(r!==e);return Mg(r)}function j0t(e,t,i,r,n,s){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&Q0t(a,e)){let o=Dhe(a,e);return a=Mg(a,a.next),o=Mg(o,o.next),fx(a,t,i,r,n,s,0),void fx(o,t,i,r,n,s,0)}e=e.next}a=a.next}while(a!==e)}function W0t(e,t,i,r){let n,s,a,o,l,h=[];for(n=0,s=t.length;n=r.next.y&&r.next.y!==r.y){let e=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(e<=s&&e>n&&(n=e,i=r.x=r.x&&r.x>=h&&s!==r.x&&My(ai.x||r.x===i.x&&$0t(i,r)))&&(i=r,c=o)),r=r.next}while(r!==l);return i}function $0t(e,t){return On(e.prev,e,t.prev)<0&&On(t.next,e,e.next)<0}function K0t(e,t,i,r){let n=e;do{0===n.z&&(n.z=F4(n.x,n.y,t,i,r)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,Z0t(n)}function Z0t(e){let t,i,r,n,s,a,o,l,h=1;do{for(i=e,e=null,s=null,a=0;i;){for(a++,r=i,o=0,t=0;t0||l>0&&r;)0!==o&&(0===l||!r||i.z<=r.z)?(n=i,i=i.nextZ,o--):(n=r,r=r.nextZ,l--),s?s.nextZ=n:e=n,n.prevZ=s,s=n;i=r}s.nextZ=null,h*=2}while(a>1);return e}function F4(e,t,i,r,n){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function J0t(e){let t=e,i=e;do{(t.x=(e-a)*(s-o)&&(e-a)*(r-o)>=(i-a)*(t-o)&&(i-a)*(s-o)>=(n-a)*(r-o)}function Q0t(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!evt(e,t)&&(mx(e,t)&&mx(t,e)&&tvt(e,t)&&(On(e.prev,e,t.prev)||On(e,t.prev,t))||lC(e,t)&&On(e.prev,e,e.next)>0&&On(t.prev,t,t.next)>0)}function On(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function lC(e,t){return e.x===t.x&&e.y===t.y}function Mhe(e,t,i,r){let n=pD(On(e,t,i)),s=pD(On(e,t,r)),a=pD(On(i,r,e)),o=pD(On(i,r,t));return!!(n!==s&&a!==o||0===n&&hD(e,i,t)||0===s&&hD(e,r,t)||0===a&&hD(i,e,r)||0===o&&hD(i,t,r))}function hD(e,t,i){return t.x<=Math.max(e.x,i.x)&&t.x>=Math.min(e.x,i.x)&&t.y<=Math.max(e.y,i.y)&&t.y>=Math.min(e.y,i.y)}function pD(e){return e>0?1:e<0?-1:0}function evt(e,t){let i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&Mhe(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}function mx(e,t){return On(e.prev,e,e.next)<0?On(e,t,e.next)>=0&&On(e,e.prev,t)>=0:On(e,t,e.prev)<0||On(e,e.next,t)<0}function tvt(e,t){let i=e,r=!1,n=(e.x+t.x)/2,s=(e.y+t.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&n<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(r=!r),i=i.next}while(i!==e);return r}function Dhe(e,t){let i=new H4(e.i,e.x,e.y),r=new H4(t.i,t.x,t.y),n=e.next,s=t.prev;return e.next=t,t.prev=e,i.next=n,n.prev=i,r.next=i,i.prev=r,s.next=r,r.prev=s,r}function nue(e,t,i,r){let n=new H4(e,t,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function gx(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function H4(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function rvt(e,t,i,r){let n=0;for(let s=t,a=i-r;s2&&e[t-1].equals(e[0])&&e.pop()}function aue(e,t){for(let i=0;iNumber.EPSILON){let c=Math.sqrt(u),p=Math.sqrt(l*l+h*h),d=t.x-o/c,f=t.y+a/c,m=((i.x-h/p-d)*h-(i.y+l/p-f)*l)/(a*h-o*l);r=d+a*m-e.x,n=f+o*m-e.y;let g=r*r+n*n;if(g<=2)return new le(r,n);s=Math.sqrt(g/2)}else{let e=!1;a>Number.EPSILON?l>Number.EPSILON&&(e=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(h)&&(e=!0),e?(r=-o,n=a,s=Math.sqrt(u)):(r=a,n=o,s=Math.sqrt(u/2))}return new le(r/s,n/s)}let C=[];for(let e=0,t=I.length,i=t-1,r=e+1;e=0;e--){let t=e/v,i=m*Math.cos(t*Math.PI/2),r=g*Math.sin(t*Math.PI/2)+y;for(let e=0,t=I.length;e=0;){let r=i,n=i-1;n<0&&(n=e.length-1);for(let e=0,i=p+2*v;e0)&&p.push(t,n,l),(e!==i-1||o0!=e>0&&this.version++,this._sheen=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}},Es=class extends zr{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new je(16777215),this.specular=new je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=gf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Dx,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},jD=class extends zr{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=gf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},pf=class extends zr{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=gf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}},io=class extends zr{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=gf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Dx,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},WD=class extends zr{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=gf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}},Ap=class extends vr{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}};function xl(e,t,i){return zU(e)?new e.constructor(e.subarray(t,void 0!==i?i:e.length)):e.slice(t,i)}function fg(e,t,i){return!e||!i&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function zU(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Che(e){let t=e.length,i=new Array(t);for(let e=0;e!==t;++e)i[e]=e;return i.sort((function(t,i){return e[t]-e[i]})),i}function U4(e,t,i){let r=e.length,n=new e.constructor(r);for(let s=0,a=0;a!==r;++s){let r=i[s]*t;for(let i=0;i!==t;++i)n[a++]=e[r+i]}return n}function jU(e,t,i,r){let n=1,s=e[0];for(;void 0!==s&&void 0===s[r];)s=e[n++];if(void 0===s)return;let a=s[r];if(void 0!==a)if(Array.isArray(a))do{a=s[r],void 0!==a&&(t.push(s.time),i.push.apply(i,a)),s=e[n++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[r],void 0!==a&&(t.push(s.time),a.toArray(i,i.length)),s=e[n++]}while(void 0!==s);else do{a=s[r],void 0!==a&&(t.push(s.time),i.push(a)),s=e[n++]}while(void 0!==s)}function avt(e,t,i,r,n=30){let s=e.clone();s.name=t;let a=[];for(let e=0;e=r)){l.push(t.times[e]);for(let i=0;is.tracks[e].times[0]&&(o=s.tracks[e].times[0]);for(let e=0;e=r.times[p]){let e=p*l+o,t=e+l-o;c=xl(r.values,e,t)}else{let e=r.createInterpolant(),t=o,i=l-o;e.evaluate(s),c=xl(e.resultBuffer,t,i)}"quaternion"===n&&(new Hr).fromArray(c).normalize().conjugate().toArray(c);let d=a.times.length;for(let e=0;e=n)break e;{let a=t[1];e=n)break t}s=i,i=0}}for(;i>>1;et;)--s;if(++s,0!==n||s!==r){n>=s&&(s=Math.max(s,1),n=s-1);let e=this.getValueSize();this.times=xl(i,n,s),this.values=xl(this.values,n*e,s*e)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let i=this.times,r=this.values,n=i.length;0===n&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let t=0;t!==n;t++){let r=i[t];if("number"==typeof r&&isNaN(r)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,t,r),e=!1;break}if(null!==s&&s>r){console.error("THREE.KeyframeTrack: Out of order keys.",this,t,r,s),e=!1;break}s=r}if(void 0!==r&&zU(r))for(let t=0,i=r.length;t!==i;++t){let i=r[t];if(isNaN(i)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,t,i),e=!1;break}}return e}optimize(){let e=xl(this.times),t=xl(this.values),i=this.getValueSize(),r=this.getInterpolation()===SD,n=e.length-1,s=1;for(let a=1;a0){e[s]=e[n];for(let e=n*i,r=s*i,a=0;a!==i;++a)t[r+a]=t[e+a];++s}return s!==e.length?(this.times=xl(e,0,s),this.values=xl(t,0,s*i)):(this.times=e,this.values=t),this}clone(){let e=xl(this.times,0),t=xl(this.values,0),i=new(0,this.constructor)(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}};Go.prototype.TimeBufferType=Float32Array,Go.prototype.ValueBufferType=Float32Array,Go.prototype.DefaultInterpolation=Hu;var Pp=class extends Go{};Pp.prototype.ValueTypeName="bool",Pp.prototype.ValueBufferType=Array,Pp.prototype.DefaultInterpolation=Ep,Pp.prototype.InterpolantFactoryMethodLinear=void 0,Pp.prototype.InterpolantFactoryMethodSmooth=void 0;var yx=class extends Go{};yx.prototype.ValueTypeName="color";var Cc=class extends Go{};Cc.prototype.ValueTypeName="number";var XD=class extends Op{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){let n=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(i-t)/(r-t),l=e*a;for(let e=l+a;l!==e;l+=4)Hr.slerpFlat(n,0,s,l-a,s,l,o);return n}},Da=class extends Go{InterpolantFactoryMethodLinear(e){return new XD(this.times,this.values,this.getValueSize(),e)}};Da.prototype.ValueTypeName="quaternion",Da.prototype.DefaultInterpolation=Hu,Da.prototype.InterpolantFactoryMethodSmooth=void 0;var Np=class extends Go{};Np.prototype.ValueTypeName="string",Np.prototype.ValueBufferType=Array,Np.prototype.DefaultInterpolation=Ep,Np.prototype.InterpolantFactoryMethodLinear=void 0,Np.prototype.InterpolantFactoryMethodSmooth=void 0;var no=class extends Go{};no.prototype.ValueTypeName="vector";var so=class{constructor(e,t=-1,i,r=aC){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=Ho(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],i=e.tracks,r=1/(e.fps||1);for(let e=0,n=i.length;e!==n;++e)t.push(uvt(i[e]).scale(r));let n=new this(e.name,e.duration,t,e.blendMode);return n.uuid=e.uuid,n}static toJSON(e){let t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let e=0,r=i.length;e!==r;++e)t.push(Go.toJSON(i[e]));return r}static CreateFromMorphTargetSequence(e,t,i,r){let n=t.length,s=[];for(let e=0;e1){let e=s[1],t=r[e];t||(r[e]=t=[]),t.push(i)}}let s=[];for(let e in r)s.push(this.CreateFromMorphTargetSequence(e,r[e],t,i));return s}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let i=function(e,t,i,r,n){if(0!==i.length){let s=[],a=[];jU(i,s,a,r),0!==s.length&&n.push(new e(t,s,a))}},r=[],n=e.name||"default",s=e.fps||30,a=e.blendMode,o=e.length||-1,l=e.hierarchy||[];for(let e=0;e{t&&t(n),this.manager.itemEnd(e)}),0),n;if(void 0!==pp[e])return void pp[e].push({onLoad:t,onProgress:i,onError:r});pp[e]=[],pp[e].push({onLoad:t,onProgress:i,onError:r});let s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;let i=pp[e],r=t.body.getReader(),n=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),s=n?parseInt(n):0,a=0!==s,o=0,l=new ReadableStream({start(e){!function t(){r.read().then((({done:r,value:n})=>{if(r)e.close();else{o+=n.byteLength;let r=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let e=0,t=i.length;e{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,a)));case"json":return e.json();default:if(void 0===a)return e.text();{let t=/charset="?([^;"\s]*)"?/i.exec(a),i=t&&t[1]?t[1].toLowerCase():void 0,r=new TextDecoder(i);return e.arrayBuffer().then((e=>r.decode(e)))}}})).then((t=>{Ng.add(e,t);let i=pp[e];delete pp[e];for(let e=0,r=i.length;e{let i=pp[e];if(void 0===i)throw this.manager.itemError(e),t;delete pp[e];for(let e=0,r=i.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}},k4=class extends ci{constructor(e){super(e)}load(e,t,i,r){let n=this,s=new ui(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(function(i){try{t(n.parse(JSON.parse(i)))}catch(t){r?r(t):console.error(t),n.manager.itemError(e)}}),i,r)}parse(e){let t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),void 0!==e.uniforms)for(let t in e.uniforms){let n=e.uniforms[t];switch(r.uniforms[t]={},n.type){case"t":r.uniforms[t].value=i(n.value);break;case"c":r.uniforms[t].value=(new je).setHex(n.value);break;case"v2":r.uniforms[t].value=(new le).fromArray(n.value);break;case"v3":r.uniforms[t].value=(new A).fromArray(n.value);break;case"v4":r.uniforms[t].value=(new Gr).fromArray(n.value);break;case"m3":r.uniforms[t].value=(new Pi).fromArray(n.value);break;case"m4":r.uniforms[t].value=(new Be).fromArray(n.value);break;default:r.uniforms[t].value=n.value}}if(void 0!==e.defines&&(r.defines=e.defines),void 0!==e.vertexShader&&(r.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(r.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(r.glslVersion=e.glslVersion),void 0!==e.extensions)for(let t in e.extensions)r.extensions[t]=e.extensions[t];if(void 0!==e.size&&(r.size=e.size),void 0!==e.sizeAttenuation&&(r.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(r.map=i(e.map)),void 0!==e.matcap&&(r.matcap=i(e.matcap)),void 0!==e.alphaMap&&(r.alphaMap=i(e.alphaMap)),void 0!==e.bumpMap&&(r.bumpMap=i(e.bumpMap)),void 0!==e.bumpScale&&(r.bumpScale=e.bumpScale),void 0!==e.normalMap&&(r.normalMap=i(e.normalMap)),void 0!==e.normalMapType&&(r.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),r.normalScale=(new le).fromArray(t)}return void 0!==e.displacementMap&&(r.displacementMap=i(e.displacementMap)),void 0!==e.displacementScale&&(r.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(r.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(r.roughnessMap=i(e.roughnessMap)),void 0!==e.metalnessMap&&(r.metalnessMap=i(e.metalnessMap)),void 0!==e.emissiveMap&&(r.emissiveMap=i(e.emissiveMap)),void 0!==e.emissiveIntensity&&(r.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(r.specularMap=i(e.specularMap)),void 0!==e.specularIntensityMap&&(r.specularIntensityMap=i(e.specularIntensityMap)),void 0!==e.specularColorMap&&(r.specularColorMap=i(e.specularColorMap)),void 0!==e.envMap&&(r.envMap=i(e.envMap)),void 0!==e.envMapIntensity&&(r.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(r.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(r.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(r.lightMap=i(e.lightMap)),void 0!==e.lightMapIntensity&&(r.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(r.aoMap=i(e.aoMap)),void 0!==e.aoMapIntensity&&(r.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(r.gradientMap=i(e.gradientMap)),void 0!==e.clearcoatMap&&(r.clearcoatMap=i(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(r.clearcoatNormalScale=(new le).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(r.iridescenceMap=i(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(r.transmissionMap=i(e.transmissionMap)),void 0!==e.thicknessMap&&(r.thicknessMap=i(e.thicknessMap)),void 0!==e.sheenColorMap&&(r.sheenColorMap=i(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:VD,SpriteMaterial:bg,RawShaderMaterial:zD,ShaderMaterial:Yt,PointsMaterial:jn,MeshPhysicalMaterial:Ml,MeshStandardMaterial:Gu,MeshPhongMaterial:Es,MeshToonMaterial:jD,MeshNormalMaterial:pf,MeshLambertMaterial:io,MeshDepthMaterial:Ip,MeshDistanceMaterial:cx,MeshBasicMaterial:or,MeshMatcapMaterial:WD,LineDashedMaterial:Ap,LineBasicMaterial:vr,Material:zr}[e]}},Bs=class{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let i=0,r=e.length;i0){let r=new Lp(t);i=new Lg(r),i.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){t=new Lg(this.manager),t.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let e=t,n=t+t;e!==n;++e)if(i[e]!==i[e+t]){a.setValue(i,r);break}}saveOriginalState(){let e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let e=i,n=r;e!==n;++e)t[e]=t[r+e%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let r=0;r!==n;++r)e[t+r]=e[i+r]}_slerp(e,t,i,r){Hr.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,n){let s=this._workIndex*n;Hr.multiplyQuaternionsFlat(e,s,e,t,e,i),Hr.slerpFlat(e,t,e,t,e,s,r)}_lerp(e,t,i,r,n){let s=1-r;for(let a=0;a!==n;++a){let n=t+a;e[n]=e[n]*s+e[i+a]*r}}_lerpAdditive(e,t,i,r,n){for(let s=0;s!==n;++s){let n=t+s;e[n]=e[n]+e[i+s]*r}}},WU="\\[\\]\\.:\\/",fvt=new RegExp("["+WU+"]","g"),qU="[^"+WU+"]",mvt="[^"+WU.replace("\\.","")+"]",gvt=/((?:WC+[\/:])*)/.source.replace("WC",qU),vvt=/(WCOD+)?/.source.replace("WCOD",mvt),yvt=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",qU),Tvt=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",qU),Evt=new RegExp("^"+gvt+vvt+yvt+Tvt+"$"),bvt=["material","materials","bones","map"],Q4=class{constructor(e,t,i){let r=i||Rr.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();let i=this._targetGroup.nCachedObjects_,r=this._bindings[i];void 0!==r&&r.getValue(e,t)}setValue(e,t){let i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,n=i.length;r!==n;++r)i[r].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}},Rr=class{constructor(e,t,i){this.path=t,this.parsedPath=i||Rr.parseTrackName(t),this.node=Rr.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Rr.Composite(e,t,i):new Rr(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(fvt,"")}static parseTrackName(e){let t=Evt.exec(e);if(null===t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(void 0!==r&&-1!==r){let e=i.nodeName.substring(r+1);-1!==bvt.indexOf(e)&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=e)}if(null===i.propertyName||0===i.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){let i=e.skeleton.getBoneByName(t);if(void 0!==i)return i}if(e.children){let i=function(e){for(let r=0;r=n){let s=n++,h=e[s];t[h.uuid]=l,e[l]=h,t[o]=s,e[s]=a;for(let e=0,t=r;e!==t;++e){let t=i[e],r=t[s],n=t[l];t[l]=r,t[s]=n}}}this.nCachedObjects_=n}uncache(){let e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length,n=this.nCachedObjects_,s=e.length;for(let a=0,o=arguments.length;a!==o;++a){let o=arguments[a].uuid,l=t[o];if(void 0!==l)if(delete t[o],l0&&(t[a.uuid]=l),e[l]=a,e.pop();for(let e=0,t=r;e!==t;++e){let t=i[e];t[l]=t[n],t.pop()}}}this.nCachedObjects_=n}subscribe_(e,t){let i=this._bindingsIndicesByPath,r=i[e],n=this._bindings;if(void 0!==r)return n[r];let s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,h=this.nCachedObjects_,u=new Array(l);r=n.length,i[e]=r,s.push(e),a.push(t),n.push(u);for(let i=h,r=o.length;i!==r;++i){let r=o[i];u[i]=new Rr(r,e,t)}return u}unsubscribe_(e){let t=this._bindingsIndicesByPath,i=t[e];if(void 0!==i){let r=this._paths,n=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];t[e[a]]=i,s[i]=o,s.pop(),n[i]=n[a],n.pop(),r[i]=r[a],r.pop()}}},tU=class{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;let n=t.tracks,s=n.length,a=new Array(s),o={endingStart:pg,endingEnd:pg};for(let e=0;e!==s;++e){let t=n[e].createInterpolant(null);a[e]=t,t.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=hhe,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){let i=this._clip.duration,r=e._clip.duration,n=r/i,s=i/r;e.warp(1,n,t),this.warp(s,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){let e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){let r=this._mixer,n=r.time,s=this.timeScale,a=this._timeScaleInterpolant;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);let o=a.parameterPositions,l=a.sampleValues;return o[0]=n,o[1]=n+i,l[0]=e/s,l[1]=t/s,this}stopWarping(){let e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled)return void this._updateWeight(e);let n=this._startTime;if(null!==n){let r=(e-n)*i;r<0||0===i?t=0:(this._startTime=null,t=i*r)}t*=this._updateTimeScale(e);let s=this._updateTime(t),a=this._updateWeight(e);if(a>0){let e=this._interpolants,t=this._propertyBindings;if(this.blendMode===HU)for(let i=0,r=e.length;i!==r;++i)e[i].evaluate(s),t[i].accumulateAdditive(a);else for(let i=0,n=e.length;i!==n;++i)e[i].evaluate(s),t[i].accumulate(r,a)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let i=this._weightInterpolant;if(null!==i){let r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let i=this._timeScaleInterpolant;if(null!==i){t*=i.evaluate(e)[0],e>i.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,i=this.loop,r=this.time+e,n=this._loopCount,s=i===phe;if(0===e)return-1===n?r:s&&1==(1&n)?t-r:r;if(i===uhe){-1===n&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else{if(!(r<0)){this.time=r;break e}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===n&&(e>=0?(n=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),r>=t||r<0){let i=Math.floor(r/t);r-=t*i,n+=Math.abs(i);let a=this.repetitions-n;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===a){let t=e<0;this._setEndings(t,!t,s)}else this._setEndings(!1,!1,s);this._loopCount=n,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:i})}}else this.time=r;if(s&&1==(1&n))return t-r}return r}_setEndings(e,t,i){let r=this._interpolantSettings;i?(r.endingStart=dg,r.endingEnd=dg):(r.endingStart=e?this.zeroSlopeAtStart?dg:pg:rx,r.endingEnd=t?this.zeroSlopeAtEnd?dg:pg:rx)}_scheduleFading(e,t,i){let r=this._mixer,n=r.time,s=this._weightInterpolant;null===s&&(s=r._lendControlInterpolant(),this._weightInterpolant=s);let a=s.parameterPositions,o=s.sampleValues;return a[0]=n,o[0]=t,a[1]=n+e,o[1]=i,this}},xvt=new Float32Array(1),rU=class extends Bo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){let i=e._localRoot||this._root,r=e._clip.tracks,n=r.length,s=e._propertyBindings,a=e._interpolants,o=i.uuid,l=this._bindingsByRootAndName,h=l[o];void 0===h&&(h={},l[o]=h);for(let e=0;e!==n;++e){let n=r[e],l=n.name,u=h[l];if(void 0!==u)++u.referenceCount,s[e]=u;else{if(u=s[e],void 0!==u){null===u._cacheIndex&&(++u.referenceCount,this._addInactiveBinding(u,o,l));continue}let r=t&&t._propertyBindings[e].binding.parsedPath;u=new eC(Rr.create(i,l,r),n.ValueTypeName,n.getValueSize()),++u.referenceCount,this._addInactiveBinding(u,o,l),s[e]=u}a[e].resultBuffer=u.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){let t=(e._localRoot||this._root).uuid,i=e._clip.uuid,r=this._actionsByClip[i];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,i,t)}let t=e._propertyBindings;for(let e=0,i=t.length;e!==i;++e){let i=t[e];0==i.useCount++&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let e=0,i=t.length;e!==i;++e){let i=t[e];0==--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return null!==t&&t=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;let t=this._actions,i=this._nActiveActions,r=this.time+=e,n=Math.sign(e),s=this._accuIndex^=1;for(let a=0;a!==i;++a)t[a]._update(r,e,n,s);let a=this._bindings,o=this._nActiveBindings;for(let e=0;e!==o;++e)a[e].apply(s);return this}setTime(e){this.time=0;for(let e=0;ethis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return Eue.copy(e).clamp(this.min,this.max).sub(e).length()}intersect(e){return this.min.max(e.min),this.max.min(e.max),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},bue=new A,fD=new A,Ca=class{constructor(e=new A,t=new A){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){bue.subVectors(e,this.start),fD.subVectors(this.end,this.start);let i=fD.dot(fD),r=fD.dot(bue)/i;return t&&(r=Qn(r,0,1)),r}closestPointToPoint(e,t,i){let r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}},xue=new A,lU=class extends cr{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";let i=new lt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let e=0,t=1,i=32;e1)for(let i=0;i.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{Rue.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(Rue,t)}}setLength(e,t=.2*e,i=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},mU=class extends li{constructor(e=1){let t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=new lt;i.setAttribute("position",new dt(t,3)),i.setAttribute("color",new dt([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(i,new vr({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,i){let r=new je,n=this.geometry.attributes.color.array;return r.set(e),r.toArray(n,0),r.toArray(n,3),r.set(t),r.toArray(n,6),r.toArray(n,9),r.set(i),r.toArray(n,12),r.toArray(n,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}},Rx=class{constructor(){this.type="ShapePath",this.color=new je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new ku,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,n,s){return this.currentPath.bezierCurveTo(e,t,i,r,n,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(e,t){let i=t.length,r=!1;for(let n=i-1,s=0;sNumber.EPSILON){if(l<0&&(i=t[s],o=-o,a=t[n],l=-l),e.ya.y)continue;if(e.y===i.y){if(e.x===i.x)return!0}else{let t=l*(e.x-i.x)-o*(e.y-i.y);if(0===t)return!0;if(t<0)continue;r=!r}}else{if(e.y!==i.y)continue;if(a.x<=e.x&&e.x<=i.x||i.x<=e.x&&e.x<=a.x)return!0}}return r}let i=es.isClockWise,r=this.subPaths;if(0===r.length)return[];let n,s,a,o=[];if(1===r.length)return s=r[0],a=new Qa,a.curves=s.curves,o.push(a),o;let l=!i(r[0].getPoints());l=e?!l:l;let h,u,c=[],p=[],d=[],f=0;p[f]=void 0,d[f]=[];for(let t=0,a=r.length;t1){let e=!1,i=0;for(let e=0,t=p.length;e0&&!1===e&&(d=c)}for(let e=0,t=p.length;e>-t-14,r[256|e]=1024>>-t-14|32768,n[e]=-t-1,n[256|e]=-t-1):t<=15?(r[e]=t+15<<10,r[256|e]=t+15<<10|32768,n[e]=13,n[256|e]=13):t<128?(r[e]=31744,r[256|e]=64512,n[e]=24,n[256|e]=24):(r[e]=31744,r[256|e]=64512,n[e]=13,n[256|e]=13)}let s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let e=1;e<1024;++e){let t=e<<13,i=0;for(;!(8388608&t);)t<<=1,i-=8388608;t&=-8388609,i+=947912704,s[e]=t|i}for(let e=1024;e<2048;++e)s[e]=939524096+(e-1024<<13);for(let e=1;e<31;++e)a[e]=e<<23;a[31]=1199570944,a[32]=2147483648;for(let e=33;e<63;++e)a[e]=2147483648+(e-32<<23);a[63]=3347054592;for(let e=1;e<64;++e)32!==e&&(o[e]=1024);return{floatView:t,uint32View:i,baseTable:r,shiftTable:n,mantissaTable:s,exponentTable:a,offsetTable:o}}function wvt(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=Qn(e,-65504,65504),dp.floatView[0]=e;let t=dp.uint32View[0],i=t>>23&511;return dp.baseTable[i]+((8388607&t)>>dp.shiftTable[i])}function Rvt(e){let t=e>>10;return dp.uint32View[0]=dp.mantissaTable[dp.offsetTable[t]+(1023&e)]+dp.exponentTable[t],dp.floatView[0]}var Yy=Object.freeze({__proto__:null,fromHalfFloat:Rvt,toHalfFloat:wvt}),gU=class extends eo{constructor(e,t,i,r,n,s){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(e,t,i,r,n,s)}},vU=class extends _g{constructor(e,t,i,r){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(e,t,i,r)}},yU=class extends Sg{constructor(e,t,i,r){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(e,t,i,r)}},TU=class extends wg{constructor(e,t,i,r,n,s,a){console.warn("THREE.ConeBufferGeometry has been renamed to THREE.ConeGeometry."),super(e,t,i,r,n,s,a)}},EU=class extends Rl{constructor(e,t,i,r,n,s,a,o){console.warn("THREE.CylinderBufferGeometry has been renamed to THREE.CylinderGeometry."),super(e,t,i,r,n,s,a,o)}},bU=class extends Rg{constructor(e,t){console.warn("THREE.DodecahedronBufferGeometry has been renamed to THREE.DodecahedronGeometry."),super(e,t)}},xU=class extends Mp{constructor(e,t){console.warn("THREE.ExtrudeBufferGeometry has been renamed to THREE.ExtrudeGeometry."),super(e,t)}},IU=class extends Dg{constructor(e,t){console.warn("THREE.IcosahedronBufferGeometry has been renamed to THREE.IcosahedronGeometry."),super(e,t)}},_U=class extends uf{constructor(e,t,i,r){console.warn("THREE.LatheBufferGeometry has been renamed to THREE.LatheGeometry."),super(e,t,i,r)}},SU=class extends hf{constructor(e,t){console.warn("THREE.OctahedronBufferGeometry has been renamed to THREE.OctahedronGeometry."),super(e,t)}},wU=class extends ts{constructor(e,t,i,r){console.warn("THREE.PlaneBufferGeometry has been renamed to THREE.PlaneGeometry."),super(e,t,i,r)}},RU=class extends Dc{constructor(e,t,i,r){console.warn("THREE.PolyhedronBufferGeometry has been renamed to THREE.PolyhedronGeometry."),super(e,t,i,r)}},MU=class extends Cg{constructor(e,t,i,r,n,s){console.warn("THREE.RingBufferGeometry has been renamed to THREE.RingGeometry."),super(e,t,i,r,n,s)}},DU=class extends Dp{constructor(e,t){console.warn("THREE.ShapeBufferGeometry has been renamed to THREE.ShapeGeometry."),super(e,t)}},CU=class extends ro{constructor(e,t,i,r,n,s,a){console.warn("THREE.SphereBufferGeometry has been renamed to THREE.SphereGeometry."),super(e,t,i,r,n,s,a)}},AU=class extends Ag{constructor(e,t){console.warn("THREE.TetrahedronBufferGeometry has been renamed to THREE.TetrahedronGeometry."),super(e,t)}},OU=class extends Cp{constructor(e,t,i,r,n){console.warn("THREE.TorusBufferGeometry has been renamed to THREE.TorusGeometry."),super(e,t,i,r,n)}},PU=class extends Og{constructor(e,t,i,r,n,s){console.warn("THREE.TorusKnotBufferGeometry has been renamed to THREE.TorusKnotGeometry."),super(e,t,i,r,n,s)}},NU=class extends Pg{constructor(e,t,i,r,n){console.warn("THREE.TubeBufferGeometry has been renamed to THREE.TubeGeometry."),super(e,t,i,r,n)}};"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:tC}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=tC);var zu=new Wi,Ohe=new A,Phe=new A,Nhe=new A,Lhe=new A;function cC(e,t,i,r,n,s,a){if(Ohe.fromBufferAttribute(t,r).applyMatrix4(e.matrixWorld),Phe.fromBufferAttribute(t,n).applyMatrix4(e.matrixWorld),i.ray.distanceSqToSegment(Ohe,Phe,Lhe,Nhe)>s)return!1;let o=i.ray.origin.distanceTo(Lhe);return!(oi.far)&&(a.push({distance:o,point:Nhe.clone(),index:r,object:e}),!0)}Ir.prototype.raycast=function(e,t){let i=this.geometry,r=this.matrixWorld,n=e.params.Line.threshold,s=i.drawRange;if(null===i.boundingSphere&&i.computeBoundingSphere(),zu.copy(i.boundingSphere),zu.applyMatrix4(r),zu.radius+=n,!1===e.ray.intersectsSphere(zu))return;let a=n*n,o=this.isLineSegments?2:1,l=i.index,h=i.attributes.position,u=t.length;if(null!==l){let i=this.userData.batches;if(i&&i.length>0&&i[0].boundingSphere)for(let n=0;n=1))return}}else{for(let i=Math.max(0,s.start),r=Math.min(l.count,s.start+s.count)-1;i=1))return}}}else{let i=this.userData.batches;if(i&&i.length>0&&i[0].boundingSphere)for(let n=0;n=1)return}else{for(let i=Math.max(0,s.start),r=Math.min(h.count,s.start+s.count)-1;i=1)return}}};var Fhe=Math.pow(2,-24),kg=class{constructor(){}};function Nl(e,t,i){return i.min.x=t[e],i.min.y=t[e+1],i.min.z=t[e+2],i.max.x=t[e+3],i.max.y=t[e+4],i.max.z=t[e+5],i}function YU(e){let t=-1,i=-1/0;for(let r=0;r<3;r++){let n=e[r+3]-e[r];n>i&&(i=n,t=r)}return t}function XU(e,t){t.set(e)}function $U(e,t,i){let r,n;for(let s=0;s<3;s++){let a=s+3;r=e[s],n=t[s],i[s]=rn?r:n}}function Ox(e,t,i){for(let r=0;r<3;r++){let n=t[e+2*r],s=t[e+2*r+1],a=n-s,o=n+s;ai[r+3]&&(i[r+3]=o)}}function Xy(e){let t=e[3]-e[0],i=e[4]-e[1],r=e[5]-e[2];return 2*(t*i+i*r+r*t)}function Cvt(e,t){if(!e.index){let i,r=e.attributes.position.count,n=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;i=r>65535?new Uint32Array(new n(4*r)):new Uint16Array(new n(2*r)),e.setIndex(new Wt(i,1));for(let e=0;ee-t));for(let e=0;el&&(l=v),y&&tf&&(f=t);let T=e[r+2],x=e[r+3],b=T-x,_=T+x;bh&&(h=_),y&&Tm&&(m=T);let E=e[r+4],w=e[r+5],S=E-w,I=E+w;Su&&(u=I),y&&Eg&&(g=E)}r[0]=s,r[1]=a,r[2]=o,r[3]=l,r[4]=h,r[5]=u,y&&(n[0]=c,n[1]=p,n[2]=d,n[3]=f,n[4]=m,n[5]=g)}function Ovt(e,t,i,r){let n=1/0,s=1/0,a=1/0,o=-1/0,l=-1/0,h=-1/0;for(let r=6*t,u=6*(t+i);ro&&(o=t);let i=e[r+2];il&&(l=i);let u=e[r+4];uh&&(h=u)}r[0]=n,r[1]=s,r[2]=a,r[3]=o,r[4]=l,r[5]=h}function Pvt(e,t,i,r,n){let s=i,a=i+r-1,o=n.pos,l=2*n.axis;for(;;){for(;s<=a&&t[6*s+l]=o;)a--;if(!(se.candidate-t.candidate,vf=new Array(Hp).fill().map((()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}))),uC=new Float32Array(6);function Lvt(e,t,i,r,n,s){let a=-1,o=0;if(0===s)a=YU(t),-1!==a&&(o=(t[a]+t[a+3])/2);else if(1===s)a=YU(e),-1!==a&&(o=Fvt(i,r,n,a));else if(2===s){let s=Xy(e),l=1.25*n,h=6*r,u=6*(r+n);for(let e=0;e<3;e++){let r=t[e],c=(t[e+3]-r)/Hp;if(n=s.candidate?Ox(r,i,s.rightCacheBounds):(Ox(r,i,s.leftCacheBounds),s.count++)}}for(let i=0;i=Hp&&(n=Hp-1);let s=vf[n];s.count++,Ox(t,i,s.bounds)}let t=vf[Hp-1];XU(t.bounds,t.rightCacheBounds);for(let e=Hp-2;e>=0;e--){let t=vf[e],i=vf[e+1];$U(t.bounds,i.rightCacheBounds,t.rightCacheBounds)}let p=0;for(let t=0;tm&&(m=l),h>m&&(m=h);let g=(m-d)/2,y=2*e;s[f+y+0]=d+g,s[f+y+1]=g+(Math.abs(d)+g)*Fhe,dt[e+3]&&(t[e+3]=m)}}return s}function Uvt(e,t){function i(e){p&&p(e/d)}function r(t,n,p,d=null,m=0){if(!f&&m>=l&&(f=!0,h&&(console.warn(`MeshBVH: Max depth of ${l} reached when generating BVH. Consider increasing maxDepth.`),console.warn(e))),p<=u||m>=l)return i(n+p),t.offset=n,t.count=p,t;let g=Lvt(t.boundingData,d,a,n,p,c);if(-1===g.axis)return i(n+p),t.offset=n,t.count=p,t;let y=Pvt(o,a,n,p,g);if(y===n||y===n+p)i(n+p),t.offset=n,t.count=p;else{t.splitAxis=g.axis;let e=new kg,i=n,o=y-n;t.left=e,e.boundingData=new Float32Array(6),ZU(a,i,o,e.boundingData,s),r(e,i,o,s,m+1);let l=new kg,h=y,u=p-o;t.right=l,l.boundingData=new Float32Array(6),ZU(a,h,u,l.boundingData,s),r(l,h,u,s,m+1)}return t}Cvt(e,t);let n=new Float32Array(6),s=new Float32Array(6),a=Hvt(e,n),o=e.index.array,l=t.maxDepth,h=t.verbose,u=t.maxLeafTris,c=t.strategy,p=t.onProgress,d=e.index.count/3,f=!1,m=[],g=Avt(e);if(1===g.length){let e=g[0],t=new kg;t.boundingData=n,Ovt(a,e.offset,e.count,s),r(t,e.offset,e.count,s),m.push(t)}else for(let e of g){let t=new kg;t.boundingData=new Float32Array(6),ZU(a,e.offset,e.count,t.boundingData,s),r(t,e.offset,e.count,s),m.push(t)}return m}function Bhe(e,t){let i,r,n,s=Uvt(e,t),a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let e=0;eMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return r[s+6]=i/4,i=h(i,a),r[s+7]=o,i}}}var oo=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let i=1/0,r=-1/0;for(let n=0,s=e.length;nr?s:r}this.min=i,this.max=r}setFromPoints(e,t){let i=1/0,r=-1/0;for(let n=0,s=t.length;nr?a:r}this.min=i,this.max=r}isSeparated(e){return this.min>e.max||e.min>this.max}};oo.prototype.setFromBox=function(){let e=new A;return function(t,i){let r=i.min,n=i.max,s=1/0,a=-1/0;for(let i=0;i<=1;i++)for(let o=0;o<=1;o++)for(let l=0;l<=1;l++){e.x=r.x*i+n.x*(1-i),e.y=r.y*o+n.y*(1-o),e.z=r.z*l+n.z*(1-l);let h=t.dot(e);s=Math.min(h,s),a=Math.max(h,a)}this.min=s,this.max=a}}();var sjt=function(){let e=new oo;return function(t,i){let r=t.points,n=t.satAxes,s=t.satBounds,a=i.points,o=i.satAxes,l=i.satBounds;for(let t=0;t<3;t++){let i=s[t],r=n[t];if(e.setFromPoints(r,a),i.isSeparated(e))return!1}for(let t=0;t<3;t++){let i=l[t],n=o[t];if(e.setFromPoints(n,r),i.isSeparated(e))return!1}}}(),Bvt=function(){let e=new A,t=new A,i=new A;return function(r,n,s){let a=r.start,o=e,l=n.start,h=t;i.subVectors(a,l),e.subVectors(r.end,r.start),t.subVectors(n.end,n.start);let u,c,p=i.dot(h),d=h.dot(o),f=h.dot(h),m=i.dot(o),g=o.dot(o)*f-d*d;u=0!==g?(p*d-m*f)/g:0,c=(p+u*d)/f,s.x=u,s.y=c}}(),Px=function(){let e=new le,t=new A,i=new A;return function(r,n,s,a){Bvt(r,n,e);let o=e.x,l=e.y;if(o>=0&&o<=1&&l>=0&&l<=1)return r.at(o,s),void n.at(l,a);if(o>=0&&o<=1)return l<0?n.at(0,a):n.at(1,a),void r.closestPointToPoint(a,!0,s);if(l>=0&&l<=1)return o<0?r.at(0,s):r.at(1,s),void n.closestPointToPoint(s,!0,a);{let e,h;e=o<0?r.start:r.end,h=l<0?n.start:n.end;let u=t,c=i;return r.closestPointToPoint(h,!0,t),n.closestPointToPoint(e,!0,i),u.distanceToSquared(h)<=c.distanceToSquared(e)?(s.copy(u),void a.copy(h)):(s.copy(e),void a.copy(c))}}}(),khe=function(){let e=new A,t=new A,i=new bi,r=new Ca;return function(n,s){let{radius:a,center:o}=n,{a:l,b:h,c:u}=s;if(r.start=l,r.end=h,r.closestPointToPoint(o,!0,e).distanceTo(o)<=a||(r.start=l,r.end=u,r.closestPointToPoint(o,!0,e).distanceTo(o)<=a)||(r.start=h,r.end=u,r.closestPointToPoint(o,!0,e).distanceTo(o)<=a))return!0;let c=s.getPlane(i);if(Math.abs(c.distanceToPoint(o))<=a){let e=c.projectPoint(o,t);if(s.containsPoint(e))return!0}return!1}}(),kvt=1e-15;function $y(e){return Math.abs(e)new A)),this.satBounds=new Array(4).fill().map((()=>new oo)),this.points=[this.a,this.b,this.c],this.sphere=new Wi,this.plane=new bi,this.needsUpdate=!0}intersectsSphere(e){return khe(e,this)}update(){let e=this.a,t=this.b,i=this.c,r=this.points,n=this.satAxes,s=this.satBounds,a=n[0],o=s[0];this.getNormal(a),o.setFromPoints(a,r);let l=n[1],h=s[1];l.subVectors(e,t),h.setFromPoints(l,r);let u=n[2],c=s[2];u.subVectors(t,i),c.setFromPoints(u,r);let p=n[3],d=s[3];p.subVectors(i,e),d.setFromPoints(p,r),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(a,e),this.needsUpdate=!1}};lo.prototype.closestPointToSegment=function(){let e=new A,t=new A,i=new Ca;return function(r,n=null,s=null){let a,{start:o,end:l}=r,h=this.points,u=1/0;for(let o=0;o<3;o++){let l=(o+1)%3;i.start.copy(h[o]),i.end.copy(h[l]),Px(i,r,e,t),a=e.distanceToSquared(t),a1-1e-10){let e=this.satBounds,a=this.satAxes;i[0]=p.a,i[1]=p.b,i[2]=p.c;for(let t=0;t<4;t++){let n=e[t],s=a[t];if(r.setFromPoints(s,i),n.isSeparated(r))return!1}let o=p.satBounds,l=p.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let e=0;e<4;e++){let i=o[e],n=l[e];if(r.setFromPoints(n,t),i.isSeparated(r))return!1}for(let e=0;e<4;e++){let o=a[e];for(let e=0;e<4;e++){let a=l[e];if(s.crossVectors(o,a),r.setFromPoints(s,t),n.setFromPoints(s,i),r.isSeparated(n))return!1}}return d&&(f||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),d.start.set(0,0,0),d.end.set(0,0,0)),!0}{let e=this.points,t=!1,i=0;for(let r=0;r<3;r++){let n=e[r],s=e[(r+1)%3];h.start.copy(n),h.end.copy(s),h.delta(a);let o=t?u.start:u.end,l=$y(g.distanceToPoint(n));if($y(g.normal.dot(a))&&l){u.copy(h),i=2;break}if((g.intersectLine(h,o)||l)&&!$y(o.distanceTo(s))){if(i++,t)break;t=!0}}if(1===i&&p.containsPoint(u.end))return d&&(d.start.copy(u.end),d.end.copy(u.end)),!0;if(2!==i)return!1;let r=p.points,n=!1,s=0;for(let e=0;e<3;e++){let t=r[e],i=r[(e+1)%3];h.start.copy(t),h.end.copy(i),h.delta(o);let a=n?c.start:c.end,l=$y(m.distanceToPoint(t));if($y(m.normal.dot(o))&&l){c.copy(h),s=2;break}if((m.intersectLine(h,a)||l)&&!$y(a.distanceTo(i))){if(s++,n)break;n=!0}}if(1===s&&this.containsPoint(c.end))return d&&(d.start.copy(c.end),d.end.copy(c.end)),!0;if(2!==s)return!1;if(u.delta(a),c.delta(o),a.dot(o)<0){let e=c.start;c.start=c.end,c.end=e}let f=u.start.dot(a),y=u.end.dot(a),v=c.start.dot(a),T=c.end.dot(a);return(f===T||v===y||y0?d.start.copy(u.start):d.start.copy(c.start),l.subVectors(u.end,c.end),l.dot(a)<0?d.end.copy(u.end):d.end.copy(c.end)),!0)}}}(),lo.prototype.distanceToPoint=function(){let e=new A;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),lo.prototype.distanceToTriangle=function(){let e=new A,t=new A,i=["a","b","c"],r=new Ca,n=new Ca;return function(s,a=null,o=null){let l=a||o?r:null;if(this.intersectsTriangle(s,l))return(a||o)&&(a&&l.getCenter(a),o&&l.getCenter(o)),0;let h=1/0;for(let t=0;t<3;t++){let r,n=i[t],l=s[n];this.closestPointToPoint(l,e),r=l.distanceToSquared(e),rnew A)),this.satAxes=new Array(3).fill().map((()=>new A)),this.satBounds=new Array(3).fill().map((()=>new oo)),this.alignedSatBounds=new Array(3).fill().map((()=>new oo)),this.needsUpdate=!1,e&&this.min.copy(e),t&&this.max.copy(t),i&&this.matrix.copy(i)}set(e,t,i){this.min.copy(e),this.max.copy(t),this.matrix.copy(i),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}};co.prototype.update=function(){let e=this.matrix,t=this.min,i=this.max,r=this.points;for(let n=0;n<=1;n++)for(let s=0;s<=1;s++)for(let a=0;a<=1;a++){let o=r[1*n|2*s|4*a];o.x=n?i.x:t.x,o.y=s?i.y:t.y,o.z=a?i.z:t.z,o.applyMatrix4(e)}let n=this.satBounds,s=this.satAxes,a=r[0];for(let e=0;e<3;e++){let t=s[e],i=n[e],o=r[1<new Ca)),i=new Array(12).fill().map((()=>new Ca)),r=new A,n=new A;return function(s,a=0,o=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(s))return(o||l)&&(s.getCenter(n),this.closestPointToPoint(n,r),s.closestPointToPoint(r,n),o&&o.copy(r),l&&l.copy(n)),0;let h=a*a,u=s.min,c=s.max,p=this.points,d=1/0;for(let e=0;e<8;e++){let t=p[e];n.copy(t).clamp(u,c);let i=t.distanceToSquared(n);if(ii.far)?null:e}function Ll(e,t,i,r){let n=e.a,s=e.b,a=e.c,o=t,l=t+1,h=t+2;i&&(o=i.getX(t),l=i.getX(t+1),h=i.getX(t+2)),n.x=r.getX(o),n.y=r.getY(o),n.z=r.getZ(o),s.x=r.getX(l),s.y=r.getY(l),s.z=r.getZ(l),a.x=r.getX(h),a.y=r.getY(h),a.z=r.getZ(h)}function tB(e,t,i,r,n,s,a){let o=i.index,l=i.attributes.position;for(let i=e,h=t+e;i=0;u?(n=Jy(e),a=Qy(e,o)):(n=Qy(e,o),a=Jy(e));let c=TC(n,s,r,gC)?yC(n,t,i,r):null;if(c){let e=c.point[h];if(u?e<=s[a+l]:e>=s[a+l+3])return c}let p=TC(a,s,r,gC)?yC(a,t,i,r):null;return c&&p?c.distance<=p.distance?c:p:c||p||null}}var Xhe=function(){let e,t,i=[],r=new Ky((()=>new Dt));return function(...s){e=r.getPrimitive(),t=r.getPrimitive(),i.push(e,t);let a=n(...s);r.releasePrimitive(e),r.releasePrimitive(t),i.pop(),i.pop();let o=i.length;return o>0&&(t=i[o-1],e=i[o-2]),a};function n(i,r,s,a,o=null,l=0,h=0){function u(e){let t=2*e,i=yf,r=Tf;for(;!Up(t,i);)t=2*(e=Jy(e));return Gg(e,r)}function c(e){let t=2*e,i=yf,r=Tf;for(;!Up(t,i);)t=2*(e=Qy(e,r));return Gg(e,r)+Zy(t,i)}let p=2*i,d=tT,f=yf,m=Tf;if(Up(p,f)){let t=Gg(i,m),r=Zy(p,f);return Nl(i,d,e),a(t,r,!1,h,l+i,e)}{let p,g,y,v,T=Jy(i),x=Qy(i,m),b=T,_=x;if(o&&(y=e,v=t,Nl(b,d,y),Nl(_,d,v),p=o(y),g=o(v),gn.intersectsBox(e),intersectsTriangle:e=>{e.a.applyMatrix4(h),e.b.applyMatrix4(h),e.c.applyMatrix4(h),e.needsUpdate=!0;for(let i=3*y,r=3*(v+y);inew lo)),Pc=class{static serialize(e,t={}){if(t.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),Pc.serialize(arguments[0],{cloneBuffers:void 0===arguments[2]||arguments[2]});t=Br({cloneBuffers:!0},t);let i,r=e.geometry,n=e._roots,s=r.getIndex();return i=t.cloneBuffers?{roots:n.map((e=>e.slice())),index:s.array.slice()}:{roots:n,index:s.array},i}static deserialize(e,t,i={}){if("boolean"==typeof i)return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),Pc.deserialize(arguments[0],arguments[1],{setIndex:void 0===arguments[2]||arguments[2]});i=Br({setIndex:!0},i);let{index:r,roots:n}=e,s=new Pc(t,Dn(Br({},i),{[iB]:!0}));if(s._roots=n,i.setIndex){let i=t.getIndex();if(null===i){let i=new Wt(e.index,1,!1);t.setIndex(i)}else i.array!==r&&(i.array.set(r),i.needsUpdate=!0)}return s}constructor(e,t={}){if(!e.isBufferGeometry)throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.");if((t=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[iB]:!1},t)).useSharedArrayBuffer&&"undefined"==typeof SharedArrayBuffer)throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[iB]||(this._roots=Bhe(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new Dt))),this.geometry=e}refit(e=null){e&&Array.isArray(e)&&(e=new Set(e));let t,i,r,n,s=this.geometry,a=s.index.array,o=s.attributes.position,l=0,h=this._roots;for(let e=0,s=h.length;ec&&(c=i),rp&&(p=r),nd&&(d=n)}return(n[t+0]!==s||n[t+1]!==l||n[t+2]!==u||n[t+3]!==c||n[t+4]!==p||n[t+5]!==d)&&(n[t+0]=s,n[t+1]=l,n[t+2]=u,n[t+3]=c,n[t+4]=p,n[t+5]=d,!0)}{let r=t+8,a=i[t+6],o=r+s,h=a+s,c=l,p=!1,d=!1;e?c||(p=e.has(o),d=e.has(h),c=!p&&!d):(p=!0,d=!0);let f=c||d,m=!1;(c||p)&&(m=u(r,s,c));let g=!1;f&&(g=u(a,s,c));let y=m||g;if(y)for(let e=0;e<3;e++){let i=r+e,s=a+e,o=n[i],l=n[i+3],h=n[s],u=n[s+3];n[t+e]=ou?l:u}return y}}}traverse(e,t=0){let i=this._roots[t],r=new Uint32Array(i),n=new Uint16Array(i);!function t(s,a=0){let o=2*s,l=65535===n[o+15];if(l){let t=r[s+6],h=n[o+14];e(a,l,new Float32Array(i,4*s,6),t,h)}else{let n=s+8,o=r[s+6],h=r[s+7];e(a,l,new Float32Array(i,4*s,6),h)||(t(n,a+1),t(o,a+1))}}(0)}raycast(e,t=tn){let i=this._roots,r=this.geometry,n=[],s=t.isMaterial,a=Array.isArray(t),o=r.groups,l=s?t.side:t;for(let s=0,h=i.length;s{let s=3*i;return e(t,s,s+1,s+2,r,n)}}e={boundsTraverseOrder:i,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let n=ju.getPrimitive(),{boundsTraverseOrder:s,intersectsBounds:a,intersectsRange:o,intersectsTriangle:l}=e;if(o&&l){let e=o;o=(t,i,s,a,o)=>!!e(t,i,s,a,o)||tB(t,i,r,l,s,a,n)}else o||(o=l?(e,t,i,s)=>tB(e,t,r,l,i,s,n):(e,t,i)=>i);let h=!1,u=0;for(let e of this._roots){if(rT(e),h=Xhe(0,r,a,o,s,u),Nx(),h)break;u+=e.byteLength}return ju.releasePrimitive(n),h}bvhcast(e,t,i){let{intersectsRanges:r,intersectsTriangles:n}=i,s=this.geometry.index,a=this.geometry.attributes.position,o=e.geometry.index,l=e.geometry.attributes.position;iT.copy(t).invert();let h=ju.getPrimitive(),u=ju.getPrimitive();if(n){let e=function(e,i,r,c,p,d,f,m){for(let g=r,y=r+c;gsB.intersectsBox(e),intersectsRange:(t,i,n,s,a,o)=>(nB.copy(o),nB.applyMatrix4(iT),e.shapecast({intersectsBounds:e=>nB.intersectsBox(e),intersectsRange:(e,n,o,l,h)=>r(t,i,e,n,s,a,l,h)}))});return ju.releasePrimitive(h),ju.releasePrimitive(u),c}intersectsBox(e,t){return Vg.set(e.min,e.max,t),Vg.needsUpdate=!0,this.shapecast({intersectsBounds:e=>Vg.intersectsBox(e),intersectsTriangle:e=>Vg.intersectsTriangle(e)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,i={},r={},n=0,s=1/0){e.boundingBox||e.computeBoundingBox(),Vg.set(e.boundingBox.min,e.boundingBox.max,t),Vg.needsUpdate=!0;let a=this.geometry,o=a.attributes.position,l=a.index,h=e.attributes.position,u=e.index,c=ju.getPrimitive(),p=ju.getPrimitive(),d=EC,f=Wvt,m=null,g=null;r&&(m=qvt,g=Yvt);let y=1/0,v=null,T=null;return iT.copy(t).invert(),Lx.matrix.copy(iT),this.shapecast({boundsTraverseOrder:e=>Vg.distanceToBox(e),intersectsBounds:(e,t,i)=>i{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:e=>Lx.distanceToBox(e),intersectsBounds:(e,t,i)=>i{for(let a=3*e,x=3*(e+s);a(Fx.copy(e).clamp(t.min,t.max),Fx.distanceToSquared(e)),intersectsBounds:(e,t,i)=>i{t.closestPointToPoint(e,Fx);let r=e.distanceToSquared(Fx);return r{Nl(0,new Float32Array(t),Khe),e.union(Khe)})),e}},aB=new ko,Zhe=new Be,Xvt=rt.prototype.raycast;function oB(e,t){if(this.geometry.boundsTree){if(void 0===this.material)return;Zhe.copy(this.matrixWorld).invert(),aB.copy(e.ray).applyMatrix4(Zhe);let i=this.geometry.boundsTree;if(!0===e.firstHitOnly){let r=eB(i.raycastFirst(aB,this.material),this,e);r&&t.push(r)}else{let r=i.raycast(aB,this.material);for(let i=0,n=r.length;ii.far?null:{distance:h,point:RC.clone(),object:e}}function MC(e,t,i,r,n,s,a,o,l,h,u,c){Ef.fromBufferAttribute(n,h),bf.fromBufferAttribute(n,u),xf.fromBufferAttribute(n,c);let p=e.morphTargetInfluences;if(s&&p){bC.set(0,0,0),xC.set(0,0,0),IC.set(0,0,0);for(let e=0,t=s.length;e=1)return}}else{for(let i=Math.max(0,d.start),n=Math.min(a.count,d.start+d.count);i=1)return}}else if(void 0!==o)if(Array.isArray(r))for(let i=0,n=p.length;i=1)return}}else{for(let i=Math.max(0,d.start),n=Math.min(o.count,d.start+d.count);i=1)return}}},rt.prototype.raycast=oB;var DC=new Wi,CC=new A;function Qhe(e,t,i,r,n,s){let a=r.ray.distanceSqToPoint(e);if(ar.far)return;n.push({distance:o,distanceToRay:Math.sqrt(a),point:i,index:t,face:null,object:s})}}nn.prototype.raycast=function(e,t){let i=this.geometry,r=this.matrixWorld,n=e.params.Points.threshold,s=i.drawRange;if(null===i.boundingSphere&&i.computeBoundingSphere(),DC.copy(i.boundingSphere),DC.applyMatrix4(r),DC.radius+=n,!1===e.ray.intersectsSphere(DC))return;let a=n*n,o=i.index,l=i.attributes.position,h=t.length;if(null!==o){for(let i=Math.max(0,s.start),n=Math.min(o.count,s.start+s.count);i=1)return}}else{for(let i=Math.max(0,s.start),n=Math.min(l.count,s.start+s.count);i=1)return}};var dB=class{constructor(){this.id=0,this.object=null,this.z=0,this.renderOrder=0}},Hx=class{constructor(){this.id=0,this.v1=new If,this.v2=new If,this.v3=new If,this.normalModel=new A,this.vertexNormalsModel=[new A,new A,new A],this.vertexNormalsLength=0,this.color=new je,this.material=null,this.uvs=[new le,new le,new le],this.z=0,this.renderOrder=0}},If=class{constructor(){this.position=new A,this.positionWorld=new A,this.positionScreen=new Gr,this.visible=!0}copy(e){this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)}},Ux=class{constructor(){this.id=0,this.v1=new If,this.v2=new If,this.vertexColors=[new je,new je],this.material=null,this.z=0,this.renderOrder=0}},Bx=class{constructor(){this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new le,this.material=null,this.renderOrder=0}},AC=class{constructor(){let e,t,i,r,n,s,a,o,l,h,u,c=0,p=0,d=0,f=0,m=0,g={objects:[],lights:[],elements:[]},y=new A,v=new Gr,T=new Dt(new A(-1,-1,-1),new A(1,1,1)),x=new Dt,b=new Array(3),_=new Be,E=new Be,w=new Be,S=new Xs,I=[],M=[],D=[],O=[],R=[];let C=new function(){let e=[],t=[],s=[],l=null,h=new Pi;function c(e){let t=e.position,i=e.positionWorld,r=e.positionScreen;i.copy(t).applyMatrix4(u),r.copy(i).applyMatrix4(E);let n=1/r.w;r.x*=n,r.y*=n,r.z*=n,e.visible=r.x>=-1&&r.x<=1&&r.y>=-1&&r.y<=1&&r.z>=-1&&r.z<=1}function d(e,t,i){return!0===e.visible||!0===t.visible||!0===i.visible||(b[0]=e.positionScreen,b[1]=t.positionScreen,b[2]=i.positionScreen,T.intersectsBox(x.setFromPoints(b)))}function m(e,t,i){return(i.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(i.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0}return{setObject:function(i){l=i,h.getNormalMatrix(l.matrixWorld),e.length=0,t.length=0,s.length=0},projectVertex:c,checkTriangleVisibility:d,checkBackfaceCulling:m,pushVertex:function(e,t,n){i=function(){if(r===p){let e=new If;return M.push(e),p++,r++,e}return M[r++]}(),i.position.set(e,t,n),c(i)},pushNormal:function(t,i,r){e.push(t,i,r)},pushColor:function(e,i,r){t.push(e,i,r)},pushUv:function(e,t){s.push(e,t)},pushLine:function(e,i){let r=M[e],n=M[i];r.positionScreen.copy(r.position).applyMatrix4(w),n.positionScreen.copy(n.position).applyMatrix4(w),!0===function(e,t){let i=0,r=1,n=e.z+e.w,s=t.z+t.w,a=-e.z+e.w,o=-t.z+t.w;return n>=0&&s>=0&&a>=0&&o>=0||!(n<0&&s<0||a<0&&o<0)&&(n<0?i=Math.max(i,n/(n-s)):s<0&&(r=Math.min(r,n/(n-s))),a<0?i=Math.max(i,a/(a-o)):o<0&&(r=Math.min(r,a/(a-o))),!(r=-1&&e.z<=1&&(l=function(){if(h===m){let e=new Bx;return R.push(e),m++,h++,e}return R[h++]}(),l.id=t.id,l.x=e.x*r,l.y=e.y*r,l.z=e.z,l.renderOrder=t.renderOrder,l.object=t,l.rotation=t.rotation,l.scale.x=t.scale.x*Math.abs(l.x-(e.x+i.projectionMatrix.elements[0])/(e.w+i.projectionMatrix.elements[12])),l.scale.y=t.scale.y*Math.abs(l.y-(e.y+i.projectionMatrix.elements[5])/(e.w+i.projectionMatrix.elements[13])),l.material=t.material,g.elements.push(l))}function F(){if(s===d){let e=new Hx;return D.push(e),d++,s++,e}return D[s++]}function U(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(e,i,n,a){s=0,o=0,h=0,g.elements.length=0,!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===i.parent&&!0===i.matrixWorldAutoUpdate&&i.updateMatrixWorld(),_.copy(i.matrixWorldInverse),E.multiplyMatrices(i.projectionMatrix,_),S.setFromProjectionMatrix(E),t=0,g.objects.length=0,g.lights.length=0,N(e),!0===n&&g.objects.sort(U);let l=g.objects;for(let e=0,t=l.length;e0)for(let n=0;n0)for(let r=0;r0;)L.removeChild(L.childNodes[0])}function U(e){return null!==g?e.toFixed(g):e}function k(e,t,i){let r=t.scale.x*s,n=t.scale.y*a;i.isPointsMaterial&&(r*=i.size,n*=i.size);let o="M"+U(e.x-.5*r)+","+U(e.y-.5*n)+"h"+U(r)+"v"+U(n)+"h"+U(-r)+"z",l="";(i.isSpriteMaterial||i.isPointsMaterial)&&(l="fill:"+i.color.getStyle()+";fill-opacity:"+i.opacity),z(l,o)}function B(e,t,i){let r="M"+U(e.positionScreen.x)+","+U(e.positionScreen.y)+"L"+U(t.positionScreen.x)+","+U(t.positionScreen.y);if(i.isLineBasicMaterial){let e="fill:none;stroke:"+i.color.getStyle()+";stroke-opacity:"+i.opacity+";stroke-width:"+i.linewidth+";stroke-linecap:"+i.linecap;i.isLineDashedMaterial&&(e=e+";stroke-dasharray:"+i.dashSize+","+i.gapSize),z(e,r)}}function H(e,t,r,n,s){v.info.render.vertices+=3,v.info.render.faces++;let a="M"+U(e.positionScreen.x)+","+U(e.positionScreen.y)+"L"+U(t.positionScreen.x)+","+U(t.positionScreen.y)+"L"+U(r.positionScreen.x)+","+U(r.positionScreen.y)+"z",o="";s.isMeshBasicMaterial?(b.copy(s.color),s.vertexColors&&b.multiply(n.color)):s.isMeshLambertMaterial||s.isMeshPhongMaterial||s.isMeshStandardMaterial?(_.copy(s.color),s.vertexColors&&_.multiply(n.color),b.copy(E),M.copy(e.positionWorld).add(t.positionWorld).add(r.positionWorld).divideScalar(3),function(e,t,i,r){for(let n=0,s=e.length;n1||l.positionScreen.z<-1||l.positionScreen.z>1||h.positionScreen.z<-1||h.positionScreen.z>1)continue;o.positionScreen.x*=s,o.positionScreen.y*=-a,l.positionScreen.x*=s,l.positionScreen.y*=-a,h.positionScreen.x*=s,h.positionScreen.y*=-a,this.overdraw>0&&(G(o.positionScreen,l.positionScreen,this.overdraw),G(l.positionScreen,h.positionScreen,this.overdraw),G(h.positionScreen,o.positionScreen,this.overdraw)),x.setFromPoints([o.positionScreen,l.positionScreen,h.positionScreen]),!0===T.intersectsBox(x)&&H(o,l,h,i,r)}}V(),r.traverseVisible((function(e){if(e.isSVGObject){if(I.setFromMatrixPosition(e.matrixWorld),I.applyMatrix4(C),I.z<-1||I.z>1)return;let t=I.x*s,i=-I.y*a,r=e.node;r.setAttribute("transform",`translate(${t}, ${i}) rotate(${e.rotation.z})`),L.appendChild(r)}}))}}};function Kvt(e){let t={};return t.r=(e>>16&255)/255,t.g=(e>>8&255)/255,t.b=(255&e)/255,t}var aT=class extends cr{constructor(e=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this}},sT=new A,rpe=new Be,ipe=new Be,npe=new A,spe=new A,_f=class{constructor(e={}){let t,i,r,n,s=this,a={objects:new WeakMap},o=void 0!==e.element?e.element:document.createElement("div");function l(e,t,i){if(e.isCSS2DObject){sT.setFromMatrixPosition(e.matrixWorld),sT.applyMatrix4(ipe);let l=!0===e.visible&&sT.z>=-1&&sT.z<=1&&!0===e.layers.test(i.layers);if(e.element.style.display=!0===l?"":"none",!0===l){e.onBeforeRender(s,t,i);let a=e.element;a.style.transform="translate(-50%,-50%) translate("+(sT.x*r+r)+"px,"+(-sT.y*n+n)+"px)",a.parentNode!==o&&o.appendChild(a),e.onAfterRender(s,t,i)}let u={distanceToCameraSquared:h(i,e)};a.objects.set(e,u)}for(let r=0,n=e.children.length;r{this.cancelReject=t}));this.promise=Promise.race([t,e])}cancel(){this.cancelReject&&this.cancelReject({type:"cancel"})}},Zvt=kn(ope(),1),ne=Zvt;ne.setLevel("warn");var lpe=e=>{let t=null==e?void 0:e.toLowerCase();!t||"info"!==t&&"warn"!==t&&"error"!==t?ne.error(`[LogUtils] Invalid log level: ${e}, use "info", "warn" or "error" please!`):ne.setLevel(t)},fB=class{static isTouchScreenDevice(){return"ontouchstart"in window}static printDeviceInfo(){let e=navigator.userAgent,t=/(?:Android)/.test(e),i=/(?:Firefox)/.test(e),r=/(?:Chrome|CriOS)/.test(e),n=/(?:iPad|PlayBook)/.test(e)||t&&!/(?:Mobile)/.test(e)||i&&/(?:Tablet)/.test(e),s=/(?:iPhone)/.test(e)&&!n,a=!s&&!t,o=fB.isTouchScreenDevice();t&&ne.debug("[DI] is android"),i&&ne.debug("[DI] is fireFox"),r&&ne.debug("[DI] is chrome"),n&&ne.debug("[DI] is tablet"),s&&ne.debug("[DI] is iPhone"),a&&ne.debug("[DI] is PC"),o&&ne.debug("[DI] is touch device")}static creatReactNativeCanvas(e){let t=e.drawingBufferWidth||e.width||0,i=e.drawingBufferHeight||e.height||0;return{style:{},width:t,height:i,clientWidth:Math.ceil(t/(window.devicePixelRatio||1)),clientHeight:Math.ceil(i/(window.devicePixelRatio||1)),addEventListener:()=>{},removeEventListener:()=>{}}}},wi=fB;wi.isBrowser="undefined"!=typeof document,wi.isNode="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process);var NC=class extends cr{constructor(e){super(),this.isSVGObject=!0,this.node=e}},cpe="#7fffbf",upe=10,hpe=14,Jvt=2.5,ppe=(e=>(e.Dot="Dot",e.Square="Square",e.Triangle="Triangle",e.Cross="Cross",e.Perpendicular="Perpendicular",e))(ppe||{}),lT=class{static createSVGObject(e){return new NC(e)}static createPointMarker(e=upe){return lT.createSnapIcon("Dot",cpe,e,"#ffffff","2")}static createSnapIcon(e,t="none",i=upe,r=cpe,n="2"){let s=document.createElementNS("http://www.w3.org/2000/svg","path"),a=i,o="";switch(e){case"Dot":a=i/3,o=`\n M ${-a}, 0\n a ${a}, ${a} 0 1, 0 ${2*a}, 0\n a ${a}, ${a} 0 1, 0 -${2*a}, 0\n `;break;case"Square":a=i/1.2,o=`\n M ${-a/2}, ${-a/2}\n h ${a}\n v ${a}\n h ${-a}\n z\n `;break;case"Triangle":a=i/2,o=`\n M 0, ${-a}\n L ${-.87*a}, ${a/2}\n L ${.87*a}, ${a/2}\n z\n `;break;case"Cross":a=i/1.2,o=`\n M ${-a/2}, ${-a/2}\n L ${a/2}, ${a/2}\n M ${a/2}, ${-a/2}\n L ${-a/2}, ${a/2}\n `;break;case"Perpendicular":a=i,o=`\n M 0, 0\n L ${-a/2}, 0\n M 0, 0\n L 0, ${a/2}\n M ${a/2}, ${a/2}\n L ${-a/2}, ${a/2}\n M ${-a/2}, ${a/2}\n L ${-a/2}, ${-a/2}\n `}s.setAttribute("d",o);let l=`fill: ${t}; stroke: ${r}; stroke-width: ${n};`;return s.setAttribute("style",l),this.createSVGObject(s)}static createLine(e=6,t="#fff000",i=Jvt){let r=document.createElementNS("http://www.w3.org/2000/svg","line");r.setAttribute("x1",""+-e),r.setAttribute("y1","0"),r.setAttribute("x2",`${e}`),r.setAttribute("y2","0");let n=`stroke: ${t}; stroke-width: ${i};`;return r.setAttribute("style",n),this.createSVGObject(r)}static createLabel(e,t="#ffffff",i=hpe,r=hpe/2){let n=document.createElementNS("http://www.w3.org/2000/svg","text");n.innerHTML=e,n.setAttribute("x","0"),n.setAttribute("y",`${r}`);let s=`font-size: ${i}; text-anchor: middle; fill: ${t};`;return n.setAttribute("style",s),this.createSVGObject(n)}},_t=class{static isFullScreen(){return!(!document.fullscreenElement&&!document.mozFullScreenElement)}static fullScreen(e=document.documentElement){(e.requestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen||e.msRequestFullscreen).call(e)}static exitFullscreen(){(document.exitFullscreen||document.mozCancelFullscreen||document.webkitExitFullscreen||document.msExitFullscreen).call(document)}static displayPointMarker(e,t,i=1e3,r=10){let n=lT.createPointMarker(r);return n.position.set(t.x,t.y,t.z),e.add(n),i&&setTimeout((()=>{e.remove(n)}),i),n}static joinStrings(...e){return e.join("")}static numberToString(e){let t=2;return Math.abs(e)<1e-6?t=2:Math.abs(e)<1e-5?t=7:Math.abs(e)<1e-4?t=6:Math.abs(e)<.001?t=5:Math.abs(e)<.01?t=4:Math.abs(e)<.1&&(t=3),e.toFixed(t)}static hexToBase64(e){return btoa((e.match(/\w{2}/g)||[]).map((function(e){return String.fromCharCode(parseInt(e,16))})).join(""))}static vectorToString(e){return e instanceof A?`(${this.numberToString(e.x)}, ${this.numberToString(e.y)}, ${this.numberToString(e.z)})`:`(${this.numberToString(e.x)}, ${this.numberToString(e.y)})`}static arrayToVector2(e){return e?e instanceof le?e:Array.isArray(e)&&e.length>=2?new le(e[0],e[1]):void 0:e}static arrayToVector3(e){return e?e instanceof A?e:Array.isArray(e)&&e.length>=2?new A(e[0],e[1],e.length>2?e[2]:0):void 0:e}static arrayToEuler(e){return e?e instanceof xr?e:Array.isArray(e)&&e.length>=3?new xr(e[0],e[1],e[2]):void 0:e}static arrayOrObjectToVector3(e){if(!e)return e;if(e instanceof A)return e;if(e instanceof le)return new A(e.x,e.y,0);if(Array.isArray(e)&&e.length>=2)return new A(e[0],e[1],e[2]||0);let t=e;return null!=t.x&&null!=t.y?new A(t.x,t.y,t.z||0):void 0}static isVectorValid(e){let t=e&&!isNaN(e.x)&&!isNaN(e.y)&&isFinite(e.x)&&isFinite(e.y);return t&&e instanceof A&&(t=!isNaN(e.z)&&isFinite(e.z)),t}static isBoxValid(e){return e&&!e.isEmpty()&&this.isVectorValid(e.min)&&this.isVectorValid(e.max)}static isMatrixValid(e){let t=e&&e.elements;if(!t||t.length<16)return!1;for(let e=0;e<16;++e){let i=t[e];if(Number.isNaN(i))return!1}return!0}static guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}static expandBoxByScale(e,t){let i=new A;e.getCenter(i);let r=(e.max.x-e.min.x)*t,n=(e.max.y-e.min.y)*t,s=(e.max.z-e.min.z)*t,a=new A(i.x-r/2,i.y-n/2,i.z-s/2),o=new A(i.x+r/2,i.y+n/2,i.z+s/2);e.set(a,o)}static expandBoxByMinSize(e,t){let i=new A;e.getCenter(i);let r=e.max.x-e.min.x,n=e.max.y-e.min.y,s=e.max.z-e.min.z;r{i.onload=function(){e(i)}}))}static renderingContextToImage(e,t,i="image/png",r=.8){if(t){let n=Math.max(t.min.x,0),s=Math.max(t.min.y,0),a=Math.max(t.max.x-n,0),o=Math.max(t.max.y-s,0),l=e.getImageData(n,s,a,o),h=document.createElement("canvas");return h.width=a,h.height=o,h.getContext("2d").putImageData(l,0,0),h.toDataURL(i,r)}return e.canvas.toDataURL(i,r)}static printMemory(e){if(wi.isBrowser){let t=performance.memory;if(!t)return void ne.warn("[CommonUtils] performance.memory is not available in this browser");let i=(t.jsHeapSizeLimit/1048576).toFixed(2),r=(t.totalJSHeapSize/1048576).toFixed(2),n=(t.usedJSHeapSize/1048576).toFixed(2);ne.info(`[CommonUtils] ${e}. jsHeapSizeLimit: ${i}M , totalJSHeapSize: ${r}M , usedJSHeapSize: ${n}M `)}}static printGpuInfo(e){if(wi.isBrowser){let t=e.getExtension("webgl_debug_renderer_info"),i=e.getParameter(t.UNMASKED_RENDERER_WEBGL);ne.info("[CommonUtils] gpu:",i)}}},LC=(e,t,i)=>{let{default:r,active:n}=t;i?(e.remove(r),e.add(n||r)):(n&&e.remove(n),e.add(r))},Ci=class{static getScreenPointByEvent(e,t){let i=new le,{left:r,top:n}=t.getBoundingClientRect();return i.x=e.clientX-r,i.y=e.clientY-n,i}static getScreenPointByTouchEvent(e,t){let i=new le,{left:r,top:n}=t.getBoundingClientRect();return i.x=e.touches[0].clientX-r,i.y=e.touches[0].clientY-n,i}static worldPosition2ScreenPoint(e,t,i){let{clientWidth:r,clientHeight:n}=i,s=e.clone(),a=new le;return s.project(t),a.x=Math.round((.5+s.x/2)*r),a.y=Math.round((.5-s.y/2)*n),a}static screenPoint2worldPosition(e,t,i){let r=Ci.screenPoint2NdcPoint(e,t,i);return new A(r.x,r.y,1).unproject(t)}static screenPoint2NdcPoint(e,t,i){let{clientWidth:r,clientHeight:n}=i,s=new le;return s.x=e.x/r*2-1,s.y=-e.y/n*2+1,s}},wf=class{static createCSS2DObject(e){let t=new aT(e);return e.dataset.objectId=t.id.toString(),t}static createDefaultHotpoint(e=12){let t=document.createElement("div"),i=t.style;return i.width=`${e}px`,i.height=`${e}px`,i.opacity="0.8",i.cursor="pointer",i.top=-e/2+"px",i.left=-e/2+"px",i.backgroundColor="#ffffff",i.border="2px solid #00DAB7",i.borderRadius="50%",this.createCSS2DObject(t)}static createHotpoint(e){if(e){let t=document.createElement("div"),i=t.style;return i.top="0px",i.left="0px",t.innerHTML=e,this.createCSS2DObject(t)}return this.createDefaultHotpoint()}static createLabel(e,t=""){let i=document.createElement("div");if(i.innerHTML=e,t)i.classList.add(t);else{let e=i.style;e.padding="5px 9px",e.color="#ffffffdd",e.fontSize="12px",e.position="absolute",e.backgroundColor="rgba(0, 0, 0, 0.3)",e.borderRadius="12px",e.cursor="pointer",e.top="0px",e.left="0px"}return this.createCSS2DObject(i)}static tryFindObjectId(e){if(null!=e.dataset.objectId)return parseInt(e.dataset.objectId);let t=e.parentElement;return!t||t instanceof HTMLBodyElement?void 0:this.tryFindObjectId(t)}},cT={unit:"file",decimalPrecision:99,camera:{near:.1,far:3e4},mouse:{sensitivity:3},keyboard:{sensitivity:3}},dpe={"Precision from file":99,"0(1)":0,"0.1(1/2)":1,"0.01(1/4)":2,"0.001(1/8)":3,"0.0001(1/16)":4,"0.00001(1/32)":5,"0.000001(1/64)":6},Wu=(e,t)=>e.toFixed(t===dpe["Precision from file"]?2:t),Ks=class{constructor(){this.map=new Map}addEventListener(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}dispatchEvent(e,t={}){let i=this.map.get(e);i&&[...i].forEach((e=>e(t)))}removeEventListener(e,t){if(!e)return void this.map.clear();if(!t)return void this.map.delete(e);let i=this.map.get(e);i&&i.delete(t)}clearEventListeners(e){this.map.delete(e)}clearAllEventListener(){this.map.clear()}},Zs=class{parse(e,t={}){if(t=Object.assign({decodeSpeed:5,encodeSpeed:5,encoderMethod:Zs.MESH_EDGEBREAKER_ENCODING,quantization:[16,8,8,8,8],exportUvs:!0,exportNormals:!0,exportColor:!1},t),void 0===DracoEncoderModule)throw new Error("THREE.DRACOExporter: required the draco_encoder to work.");let i,r,n=e.geometry,s=DracoEncoderModule(),a=new s.Encoder;if(!0===e.isMesh){i=new s.MeshBuilder,r=new s.Mesh;let e=n.getAttribute("position");i.AddFloatAttributeToMesh(r,s.POSITION,e.count,e.itemSize,e.array);let a=n.getIndex();if(null!==a)i.AddFacesToMesh(r,a.count/3,a.array);else{let t=new(e.count>65535?Uint32Array:Uint16Array)(e.count);for(let e=0;e4?i=e.array[n*e.itemSize+t]:(0===t?i=e.getX(n):1===t?i=e.getY(n):2===t?i=e.getZ(n):3===t&&(i=e.getW(n)),!0===e.normalized&&(i=_r.normalize(i,e.array))),r.min[t]=Math.min(r.min[t],i),r.max[t]=Math.max(r.max[t],i)}return r}function Tpe(e){return 4*Math.ceil(e/4)}function mB(e,t=0){let i=Tpe(e.byteLength);if(i!==e.byteLength){let r=new Uint8Array(i);if(r.set(new Uint8Array(e)),0!==t)for(let n=e.byteLength;ne.toBlob(i,t)));let i;return"image/jpeg"===t?i=.92:"image/webp"===t&&(i=.8),e.convertToBlob({type:t,quality:i})}var gB=class{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}write(e,t){return ht(this,arguments,(function*(e,t,i={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},i),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),yield Promise.all(this.pending);let r=this,n=r.buffers,s=r.json;i=r.options;let a=r.extensionsUsed,o=new Blob(n,{type:"application/octet-stream"}),l=Object.keys(a);if(l.length>0&&(s.extensionsUsed=l),s.buffers&&s.buffers.length>0&&(s.buffers[0].byteLength=o.size),!0===i.binary){let e=new FileReader;e.readAsArrayBuffer(o),e.onloadend=function(){let i=mB(e.result),r=new DataView(new ArrayBuffer(gpe));r.setUint32(0,i.byteLength,!0),r.setUint32(4,iyt,!0);let n=mB(nyt(JSON.stringify(s)),32),a=new DataView(new ArrayBuffer(gpe));a.setUint32(0,n.byteLength,!0),a.setUint32(4,ryt,!0);let o=new ArrayBuffer(mpe),l=new DataView(o);l.setUint32(0,eyt,!0),l.setUint32(4,tyt,!0);let h=mpe+a.byteLength+n.byteLength+r.byteLength+i.byteLength;l.setUint32(8,h,!0);let u=new Blob([o,a,n,r,i],{type:"application/octet-stream"}),c=new FileReader;c.readAsArrayBuffer(u),c.onloadend=function(){t(c.result)}}}else if(s.buffers&&s.buffers.length>0){let e=new FileReader;e.readAsDataURL(o),e.onloadend=function(){let i=e.result;s.buffers[0].uri=i,t(s)}}else t(s)}))}serializeUserData(e,t){if(0===Object.keys(e.userData).length)return;let i=this.options,r=this.extensionsUsed;try{let n=JSON.parse(JSON.stringify(e.userData));if(i.includeCustomExtensions&&n.gltfExtensions){void 0===t.extensions&&(t.extensions={});for(let e in n.gltfExtensions)t.extensions[e]=n.gltfExtensions[e],r[e]=!0;delete n.gltfExtensions}Object.keys(n).length>0&&(t.extras=n)}catch(t){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+t.message)}}getUID(e,t=!1){if(!1===this.uids.has(e)){let t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;let t=new A;for(let i=0,r=e.count;i5e-4)return!1;return!0}createNormalizedNormalAttribute(e){let t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);let i=e.clone(),r=new A;for(let e=0,t=i.count;e4?r=e.array[n*e.itemSize+i]:(0===i?r=e.getX(n):1===i?r=e.getY(n):2===i?r=e.getZ(n):3===i&&(r=e.getW(n)),!0===e.normalized&&(r=_r.normalize(r,e.array))),t===sn.FLOAT?l.setFloat32(h,r,!0):t===sn.UNSIGNED_INT?l.setUint32(h,r,!0):t===sn.UNSIGNED_SHORT?l.setUint16(h,r,!0):t===sn.UNSIGNED_BYTE&&l.setUint8(h,r),h+=s}let u={buffer:this.processBuffer(l.buffer),byteOffset:this.byteOffset,byteLength:o};return void 0!==n&&(u.target=n),n===sn.ARRAY_BUFFER&&(u.byteStride=e.itemSize*s),this.byteOffset+=o,a.bufferViews.push(u),{id:a.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){let t=this,i=t.json;return i.bufferViews||(i.bufferViews=[]),new Promise((function(r){let n=new FileReader;n.readAsArrayBuffer(e),n.onloadend=function(){let e=mB(n.result),s={buffer:t.processBuffer(e),byteOffset:t.byteOffset,byteLength:e.byteLength};t.byteOffset+=e.byteLength,r(i.bufferViews.push(s)-1)}}))}processAccessor(e,t,i,r){let n,s=this.json;if(e.array.constructor===Float32Array)n=sn.FLOAT;else if(e.array.constructor===Uint32Array)n=sn.UNSIGNED_INT;else if(e.array.constructor===Uint16Array)n=sn.UNSIGNED_SHORT;else{if(e.array.constructor!==Uint8Array)throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type.");n=sn.UNSIGNED_BYTE}if(void 0===i&&(i=0),void 0===r&&(r=e.count),0===r)return null;let a,o=ayt(e,i,r);void 0!==t&&(a=e===t.index?sn.ELEMENT_ARRAY_BUFFER:sn.ARRAY_BUFFER);let l=this.processBufferView(e,n,i,r,a),h={bufferView:l.id,byteOffset:l.byteOffset,componentType:n,count:r,max:o.max,min:o.min,type:{1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",16:"MAT4"}[e.itemSize]};return!0===e.normalized&&(h.normalized=!0),s.accessors||(s.accessors=[]),s.accessors.push(h)-1}processImage(e,t,i,r="image/png"){if(null!==e){let n=this,s=n.cache,a=n.json,o=n.options,l=n.pending;s.images.has(e)||s.images.set(e,{});let h=s.images.get(e),u=r+":flipY/"+i.toString();if(void 0!==h[u])return h[u];a.images||(a.images=[]);let c={mimeType:r},p=vpe();p.width=Math.min(e.width,o.maxTextureSize),p.height=Math.min(e.height,o.maxTextureSize);let d=p.getContext("2d");if(!0===i&&(d.translate(0,p.height),d.scale(1,-1)),void 0!==e.data){t!==Us&&console.error("GLTFExporter: Only RGBAFormat is supported."),(e.width>o.maxTextureSize||e.height>o.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);let i=new Uint8ClampedArray(e.height*e.width*4);for(let t=0;tn.processBufferViewImage(e))).then((e=>{c.bufferView=e}))):void 0!==p.toDataURL?c.uri=p.toDataURL(r):l.push(ype(p,r).then((e=>(new FileReader).readAsDataURL(e))).then((e=>{c.uri=e})));let f=a.images.push(c)-1;return h[u]=f,f}throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){let t=this.json;t.samplers||(t.samplers=[]);let i={magFilter:Vo[e.magFilter],minFilter:Vo[e.minFilter],wrapS:Vo[e.wrapS],wrapT:Vo[e.wrapT]};return t.samplers.push(i)-1}processTexture(e){let t=this.cache,i=this.json;if(t.textures.has(e))return t.textures.get(e);i.textures||(i.textures=[]);let r=e.userData.mimeType;"image/webp"===r&&(r="image/png");let n={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,r)};e.name&&(n.name=e.name),this._invokeAll((function(t){t.writeTexture&&t.writeTexture(e,n)}));let s=i.textures.push(n)-1;return t.textures.set(e,s),s}processMaterial(e){let t=this.cache,i=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;i.materials||(i.materials=[]);let r={pbrMetallicRoughness:{}};!0!==e.isMeshStandardMaterial&&!0!==e.isMeshBasicMaterial&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");let n=e.color.toArray().concat([e.opacity]);if(kx(n,[1,1,1,1])||(r.pbrMetallicRoughness.baseColorFactor=n),e.isMeshStandardMaterial?(r.pbrMetallicRoughness.metallicFactor=e.metalness,r.pbrMetallicRoughness.roughnessFactor=e.roughness):(r.pbrMetallicRoughness.metallicFactor=.5,r.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){let t=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),i={index:this.processTexture(t)};this.applyTextureTransform(i,t),r.pbrMetallicRoughness.metallicRoughnessTexture=i}if(e.map){let t={index:this.processTexture(e.map)};this.applyTextureTransform(t,e.map),r.pbrMetallicRoughness.baseColorTexture=t}if(e.emissive){let t=e.emissive.clone().multiplyScalar(e.emissiveIntensity),i=Math.max(t.r,t.g,t.b);if(i>1&&(t.multiplyScalar(1/i),console.warn("THREE.GLTFExporter: Some emissive components exceed 1; emissive has been limited")),i>0&&(r.emissiveFactor=t.toArray()),e.emissiveMap){let t={index:this.processTexture(e.emissiveMap)};this.applyTextureTransform(t,e.emissiveMap),r.emissiveTexture=t}}if(e.normalMap){let t={index:this.processTexture(e.normalMap)};e.normalScale&&1!==e.normalScale.x&&(t.scale=e.normalScale.x),this.applyTextureTransform(t,e.normalMap),r.normalTexture=t}if(e.aoMap){let t={index:this.processTexture(e.aoMap),texCoord:1};1!==e.aoMapIntensity&&(t.strength=e.aoMapIntensity),this.applyTextureTransform(t,e.aoMap),r.occlusionTexture=t}e.transparent?r.alphaMode="BLEND":e.alphaTest>0&&(r.alphaMode="MASK",r.alphaCutoff=e.alphaTest),e.side===gi&&(r.doubleSided=!0),""!==e.name&&(r.name=e.name),this.serializeUserData(e,r),this._invokeAll((function(t){t.writeMaterial&&t.writeMaterial(e,r)}));let s=i.materials.push(r)-1;return t.materials.set(e,s),s}processMesh(e){let t=this.cache,i=this.json,r=[e.geometry.uuid];if(Array.isArray(e.material))for(let t=0,i=e.material.length;t0){let i=[],r=[],n={};if(void 0!==e.morphTargetDictionary)for(let t in e.morphTargetDictionary)n[e.morphTargetDictionary[t]]=t;for(let s=0;s0&&(o.extras={},o.extras.targetNames=r)}let f=Array.isArray(e.material);if(f&&0===a.groups.length)return null;let m=f?e.material:[e.material],g=f?a.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let e=0,i=g.length;e0&&(i.targets=u),null!==a.index){let r=this.getUID(a.index);(void 0!==g[e].start||void 0!==g[e].count)&&(r+=":"+g[e].start+":"+g[e].count),t.attributes.has(r)?i.indices=t.attributes.get(r):(i.indices=this.processAccessor(a.index,a,g[e].start,g[e].count),t.attributes.set(r,i.indices)),null===i.indices&&delete i.indices}let r=this.processMaterial(m[g[e].materialIndex]);null!==r&&(i.material=r),h.push(i)}o.primitives=h,i.meshes||(i.meshes=[]),this._invokeAll((function(t){t.writeMesh&&t.writeMesh(e,o)}));let y=i.meshes.push(o)-1;return t.meshes.set(n,y),y}processCamera(e){let t=this.json;t.cameras||(t.cameras=[]);let i=e.isOrthographicCamera,r={type:i?"orthographic":"perspective"};return i?r.orthographic={xmag:2*e.right,ymag:2*e.top,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:r.perspective={aspectRatio:e.aspect,yfov:_r.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},""!==e.name&&(r.name=e.type),t.cameras.push(r)-1}processAnimation(e,t){let i=this.json,r=this.nodeMap;i.animations||(i.animations=[]);let n=(e=uT.Utils.mergeMorphTargetTracks(e.clone(),t)).tracks,s=[],a=[];for(let e=0;e0){let t=[];for(let r=0,n=e.children.length;r0&&(n.children=t)}this._invokeAll((function(t){t.writeNode&&t.writeNode(e,n)}));let s=t.nodes.push(n)-1;return r.set(e,s),s}processScene(e){let t=this.json,i=this.options;t.scenes||(t.scenes=[],t.scene=0);let r={};""!==e.name&&(r.name=e.name),t.scenes.push(r);let n=[];for(let t=0,r=e.children.length;t0&&(r.nodes=n),this.serializeUserData(e,r)}processObjects(e){let t=new Pn;t.name="AuxScene";for(let i=0;i0&&this.processObjects(i);for(let e=0;e0&&(s.range=e.distance)):e.isSpotLight&&(s.type="spot",e.distance>0&&(s.range=e.distance),s.spot={},s.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,s.spot.outerConeAngle=e.angle),void 0!==e.decay&&2!==e.decay&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||0!==e.target.position.x||0!==e.target.position.y||-1!==e.target.position.z)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),n[this.name]||(r.extensions=r.extensions||{},r.extensions[this.name]={lights:[]},n[this.name]=!0);let a=r.extensions[this.name].lights;a.push(s),t.extensions=t.extensions||{},t.extensions[this.name]={light:a.length-1}}},yB=class{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;let i=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},i[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}},TB=class{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.clearcoat)return;let i=this.writer,r=i.extensionsUsed,n={};if(n.clearcoatFactor=e.clearcoat,e.clearcoatMap){let t={index:i.processTexture(e.clearcoatMap)};i.applyTextureTransform(t,e.clearcoatMap),n.clearcoatTexture=t}if(n.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){let t={index:i.processTexture(e.clearcoatRoughnessMap)};i.applyTextureTransform(t,e.clearcoatRoughnessMap),n.clearcoatRoughnessTexture=t}if(e.clearcoatNormalMap){let t={index:i.processTexture(e.clearcoatNormalMap)};i.applyTextureTransform(t,e.clearcoatNormalMap),n.clearcoatNormalTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=n,r[this.name]=!0}},EB=class{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.iridescence)return;let i=this.writer,r=i.extensionsUsed,n={};if(n.iridescenceFactor=e.iridescence,e.iridescenceMap){let t={index:i.processTexture(e.iridescenceMap)};i.applyTextureTransform(t,e.iridescenceMap),n.iridescenceTexture=t}if(n.iridescenceIor=e.iridescenceIOR,n.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],n.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){let t={index:i.processTexture(e.iridescenceThicknessMap)};i.applyTextureTransform(t,e.iridescenceThicknessMap),n.iridescenceThicknessTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=n,r[this.name]=!0}},bB=class{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;let i=this.writer,r=i.extensionsUsed,n={};if(n.transmissionFactor=e.transmission,e.transmissionMap){let t={index:i.processTexture(e.transmissionMap)};i.applyTextureTransform(t,e.transmissionMap),n.transmissionTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=n,r[this.name]=!0}},xB=class{constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;let i=this.writer,r=i.extensionsUsed,n={};if(n.thicknessFactor=e.thickness,e.thicknessMap){let t={index:i.processTexture(e.thicknessMap)};i.applyTextureTransform(t,e.thicknessMap),n.thicknessTexture=t}n.attenuationDistance=e.attenuationDistance,n.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=n,r[this.name]=!0}},IB=class{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1.5===e.ior)return;let i=this.writer.extensionsUsed,r={};r.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},_B=class{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1===e.specularIntensity&&e.specularColor.equals(Qvt)&&!e.specularIntensityMap&&!e.specularColorTexture)return;let i=this.writer,r=i.extensionsUsed,n={};if(e.specularIntensityMap){let t={index:i.processTexture(e.specularIntensityMap)};i.applyTextureTransform(t,e.specularIntensityMap),n.specularTexture=t}if(e.specularColorMap){let t={index:i.processTexture(e.specularColorMap)};i.applyTextureTransform(t,e.specularColorMap),n.specularColorTexture=t}n.specularFactor=e.specularIntensity,n.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=n,r[this.name]=!0}};uT.Utils={insertKeyframe:function(e,t){let i,r=e.getValueSize(),n=new e.TimeBufferType(e.times.length+1),s=new e.ValueBufferType(e.values.length+r),a=e.createInterpolant(new e.ValueBufferType(r));if(0===e.times.length){n[0]=t;for(let e=0;ee.times[e.times.length-1]){if(Math.abs(e.times[e.times.length-1]-t)<.001)return e.times.length-1;n[n.length-1]=t,n.set(e.times,0),s.set(e.values,0),s.set(a.evaluate(t),e.values.length),i=n.length-1}else for(let o=0;ot){n.set(e.times.slice(0,o+1),0),n[o+1]=t,n.set(e.times.slice(o+1),o+2),s.set(e.values.slice(0,(o+1)*r),0),s.set(a.evaluate(t),(o+1)*r),s.set(e.values.slice((o+1)*r),(o+2)*r),i=o+1;break}}return e.times=n,e.values=s,i},mergeMorphTargetTracks:function(e,t){let i=[],r={},n=e.tracks;for(let e=0;e{if(i.binary){t=_n.addExtention(t,_n.EXTENSION_GLB);let i=e;_n.saveArrayBuffer(i,t)}else t=_n.addExtention(t,_n.EXTENSION_GLTF),_n.saveJson(e,t)}),(e=>console.log(e)),i)}static exportToObj(e,t){if(!e||!t)throw new Error("Invalid input or filename!");t=_n.addExtention(t,_n.EXTENSION_OBJ);let i=(new FC).parse(e);_n.saveString(i,t)}static exportToDraco(e,t,i={}){if(!e||!t)throw new Error("Invalid input or filename!");t=_n.addExtention(t,_n.EXTENSION_DRACO);let r=new Zs;i=Object.assign({},{encodeSpeed:5},i);let n=r.parse(e,i);_n.saveArrayBuffer(n,t)}static exportToThreeJsJson(e,t){let i=e.toJSON();t.toLowerCase().endsWith(_n.EXTENSION_JSON)||(t+=_n.EXTENSION_JSON),_n.saveJson(i,t)}static save(e,t){let i=_n.downloadLink;i||(i=document.createElement("a"),i.style.display="none",document.body.appendChild(i),_n.downloadLink=i),i.href=URL.createObjectURL(e),i.download=t,i.click()}static saveArrayBuffer(e,t){_n.save(new Blob([e],{type:"application/octet-stream"}),t)}static saveJson(e,t){_n.saveJsonString(JSON.stringify(e),t)}static saveJsonString(e,t){_n.save(new Blob([e],{type:"application/json"}),t)}static saveString(e,t){_n.save(new Blob([e],{type:"text/csv"}),t)}static addExtention(e,t){return e.toLowerCase().endsWith(t.toLowerCase())||(e+=t),e}},zg=_n;zg.EXTENSION_GLTF=".gltf",zg.EXTENSION_GLB=".glb",zg.EXTENSION_OBJ=".obj",zg.EXTENSION_DRACO=".drc",zg.EXTENSION_JSON=".json";var HC=class{constructor(){this.prevTime=(performance||Date).now(),this.beginTime=(performance||Date).now(),this.frames=0,this.fps=Number.NaN}begin(){this.beginTime=(performance||Date).now()}end(){this.frames++;let e=(performance||Date).now();return e>=this.prevTime+1e3&&(this.fps=Math.round(1e3*this.frames/(e-this.prevTime)),this.frames=0,this.prevTime=e),e}update(){this.beginTime=this.end()}},SB=1e-15,sr=class{static roundNumber(e,t){return Math.round(e*Math.pow(10,t))/Math.pow(10,t)}static floorNumber(e,t){return Math.floor(e*Math.pow(10,t))/Math.pow(10,t)}static areNumbersEqual(e,t,i=1e-7){return Math.abs(e-t)e[0]===t[0]&&e[1]===t[1],MB=e=>Array.isArray(e)&&e.length,xpe=(e,t=0,i=!1)=>{let r,n;if(MB(e)&&"number"==typeof e[0][0]){let t=0,s=e;for(r=0,n=s.length;r0||i&&t<0)&&s.reverse()}else for(r=0,n=e.length;r0);if(0===t&&MB(e)&&MB(e[0])&&"number"==typeof e[0][0][0]){let t=e[0].slice(0,1)[0];e[0].pop(),e[0].push([t[0],t[1]])}return e},UC=class{constructor(e,t=5){if(this.distance=0,this.arcSegments=t,!Gx(e))throw new Error("Offset requires at least one coodinate to work with");this.edges=[],Gx(e)&&"number"==typeof e[0]?this.vertices=e:(this.vertices=xpe(e),this.processContour(this.vertices,this.edges))}processContour(e,t){let i,r;if(Gx(e[0])&&"number"==typeof e[0][0])for(r=e.length,bpe(e[0],e[r-1])&&(r-=1),i=0;ih?l-h:l+o-h,c=(a?-u:o-u)/s;e.push(r);for(let r=1;r0?this.margin(this.distance):this.padding(-this.distance)}offsetSegment(e,t,i,r){let n=[i.offset(i.inNormal[0]*r,i.inNormal[1]*r),i.inverseOffset(i.outNormal[0]*r,i.outNormal[1]*r)],s=[];for(let i=0,a=2;i0&&e.push(i)}e.length>0&&(t=1===e.length?e[0]:(0,jg.union)(e[0],...e.slice(1)))}else t=1===this.vertices.length?this.offsetPoint(e):this.offsetContour(this.vertices,this.edges);return t}offsetContour(e,t){let i=[],r=0,n=0;if(Gx(e[0])&&"number"==typeof e[0][0]){for(r=0,n=e.length-1;r0&&(i=1===i.length?[i[0]]:(0,jg.union)(i[0],i.slice(1)))}else{let s=[];for(r=0,n=t.length;r0&&s.push(i)}s.length>0&&(i=1===s.length?s[0]:(0,jg.union)(s[0],...s.slice(1)))}return i}offsetPoint(e){this.setDistance(e);let t=2*this.arcSegments,i=[],r=this.vertices,n=this.distance,s=0;t%2==0&&t++;for(let e=0;e{let i=e.attributes[t];if(i instanceof to){let r=i.clone();e.attributes[t]=r}}))}static isPointInPolygon(e,t,i=!1){let r=e.x,n=e.y,s=!1,a=t.length;for(let e=0,o=a-1;en!=u>n;i&&(c=l>=n!=u>=n),c&&r<(h-a)*(n-l)/(u-l)+a&&(s=!s)}return s}static caculateGeometryCenter(e){if(!e.hasAttribute("position"))return null;let t=e.getAttribute("position");if(0===t.count)return null;let i=new A,r=t.itemSize,n=t.array,s=[0,0,0];for(let e=0;e0&&i<0||r<0&&i>0)return!1;i=r}}return!0}static areLineSegmentsIntersecting(e,t){let{start:i,end:r}=e,{start:n,end:s}=t,a=n.clone().sub(i),o=r.clone().sub(i),l=s.clone().sub(i),h=a.cross(o).dot(l.cross(o)),u=i.clone().sub(n),c=s.clone().sub(n),p=r.clone().sub(n),d=u.cross(c).dot(p.cross(c));return h<0&&d<0}static getLineSegmentsIntersectingPoint(e,t){let{start:i,end:r}=e,{start:n,end:s}=t,a=Spe.subVectors(r,i).normalize(),o=wpe.subVectors(s,n).normalize();if(1===a.dot(o))return null;let l=Rpe.subVectors(n,i),h=a.clone().cross(o),u=l.clone().cross(o),c=l.clone().dot(h);if(c>=1e-5||c<=-1e-5)return null;let p=h.lengthSq();if(sr.areNumbersEqual(0,p))return;let d=u.clone().dot(h)/p,f=i.clone().add(a.multiplyScalar(d));return f.equals(i)||f.equals(r)?null:f}static isPointOnLineSegment(e,t,i=.001){let{start:r,end:n}=t,s=Spe.subVectors(r,n).length(),a=wpe.subVectors(e,r).length(),o=Rpe.subVectors(e,n).length();return Math.abs(s-(a+o))<=i}static isPointOnLineSegments(e,t,i=.001){let r=!1;for(let n=0;n{i?t.add(e):(t.x+=e.x,t.y+=e.y)})),t.divideScalar(e.length);let r=!1;if(kt.shouldRebasePositionOnRTC(t)){r=!0;for(let r=0;rDB||Math.abs(e.y)>DB||e instanceof A&&Math.abs(e.z)>DB}static calculateSurfaceArea(e){let t=0,i=e.getAttribute("position"),r=e.index;if(r)for(let e=0;e2&&(s=t?2*n:2*n-2);let a=new r(s),o=0;for(let e=0;e0&&e{let i=e.geometry.attributes.position.array;return e.localToWorld(new A(i[3*t],i[3*t+1],i[3*t+2]))};e.updateWorldMatrix(!0,!1);let a=(null==(i=e.geometry.getIndex())?void 0:i.array)||[],o=null!=(r=a[t])?r:t,l=null!=(n=a[t+1])?n:t+1;return[s(o),s(l)]}static arePolygonsIntersect(e,t){if(0===e.length||0===t.length||(Ipe.setFromPoints(e),_pe.setFromPoints(t),!Ipe.intersectsBox(_pe)))return!1;for(let i=0;i1-n)return;let o=t.y-e.y,l=e.x-t.x,h=o*e.x+l*e.y,u=r.y-i.y,c=i.x-r.x,p=u*i.x+c*i.y,d=o*c-u*l;return Math.abs(d){r.push([e.x,e.y])}));try{i=new UC(r).setArcSegments(2).offsetLine(t/2)}catch(e){return}if(!i||0===i.length)return;i=i[0];let n=[],s=[];for(let e=0;e{n.push(new le(e[0],e[1]))})),es.isClockWise(n)||n.reverse();else{let t=[];i[e].forEach((e=>{t.push(new le(e[0],e[1]))})),es.isClockWise(t)&&t.reverse(),s.push(t)}let a=es.triangulateShape(n,s),o=[];for(let e=0;en.push(...e)));let l=(new lt).setFromPoints(n);return l.setIndex(o),l}static releaseGeometryManually(e){e.index=null,e.attributes={}}static getAdjacentNonRepeatPoints(e,t=1e-7){let i=[],r=e.length;for(let n=0;n(e.ObjectsBoxSection="ObjectsBoxSection",e.PickPlaneSection="PickPlaneSection",e.AxisPlaneSection="AxisPlaneSection",e))(hT||{}),Js=class{static createGroundGrid(e,t,i){e=e||this.DEFAULT_WIDTH,t=t||this.DEFAULT_WIDTH_SEGS;let r=new _x(e,t);i?r.position.set(i.x,i.y,i.z):r.position.y=0;let n=r.material;return Array.isArray(n)||(n.opacity=this.DEFAULT_MAT_PARAMS.opacity,n.transparent=this.DEFAULT_MAT_PARAMS.transparent),r.name=this.GROUND_GRID_NAME,r.layers.set(11),r.matrixAutoUpdate=!1,r.updateMatrix(),r}static createGrassGround(e,t,i,r,n){return ht(this,null,(function*(){return t=t||this.DEFAULT_WIDTH,i=i||this.DEFAULT_HEIGHT,new Promise((s=>{(new bs).load(e||"images/terrain/grass.jpg",(e=>{e.wrapS=e.wrapT=vn,e.repeat.set(r||this.DEFAULT_WIDTH_SEGS/5,n||this.DEFAULT_HEIGHT_SETS/5),e.anisotropy=16,e.encoding=gr;let a=new io({map:e});a.side=tn;let o=new rt(new ts(t,i),a);return o.rotation.x=-Math.PI/2,o.position.y=0,o.receiveShadow=!0,o.name=this.GRASS_GROUND_NAME,o.layers.set(11),o.matrixAutoUpdate=!1,o.updateMatrix(),s(o)}))}))}))}};Js.GROUND_GRID_NAME="GROUND_GRID",Js.GRASS_GROUND_NAME="GRASS_GROUND",Js.DEFAULT_WIDTH=1e3,Js.DEFAULT_HEIGHT=1e3,Js.DEFAULT_WIDTH_SEGS=100,Js.DEFAULT_HEIGHT_SETS=100,Js.DEFAULT_MAT_PARAMS={color:12829635,transparent:!0,opacity:.5,wireframeLinewidth:.5};var Dpe={NavCube:{front:"Front",back:"Back",top:"Top",bottom:"Bottom",left:"Left",right:"Right"},ContextMenu:{viewFitAll:"View Fit All",hideAll:"Hide All",showAll:"Show All",xRayAll:"X-Ray",xRayNone:"X-Ray None",selectNone:"Select None",resetView:"Reset View",viewFitEntity:"View Fit",hideEntity:"Hide",hideOthers:"Hide Others",xRayEntity:"X-Ray",xRayOthers:"X-Ray Others",select:"Select",deselect:"Undo Select",showSectionPlane:"Show Section Plane",showSectionBox:"Show Section Box",showAxisSection:"Show Axis Section",hideSectionPlane:"Hide Section Plane",hideSectionBox:"Hide Section Box",hideAxisSection:"Hide Axis Section",undoSection:"Undo Section"},ProgressBar:{Loading:"Loading",Comparing:"Comparing"},Toolbar:{homeView:"Home",orthoView:"Ortho View",measurement:"Measure",distanceMeasurement:"Distance",areaMeasurement:"Area",angleMeasurement:"Angle",coordinateMeasurement:"Coordinate",clearMeasurement:"Clear",markup:"Markup",markupArrow:"Arrow",markupRect:"Rect",markupCloudRect:"CloudRect",markupPolyLine:"PolyLine",markupCloudLine:"CloudLine",markupEllipse:"Ellipse",markupCircle:"Circle",markupDot:"Dot",markupText:"Text",markupX:"X",markupStroke:"Stroke Style",markupLineWidth:"Line Width",markupLineWidth2:"Line Width 2",markupLineWidth5:"Line Width 5",markupLineWidth10:"Line Width 10",markupFontSize:"Font Size",markupFontSize14:"14",markupFontSize18:"18",markupFontSize24:"24",clearMarkup:"Clear Markup",quitMarkup:"Quit markup",section:"Section",axisSection:"Axis Section",pickSectionPlane:"Pick Section Plane",sectionBox:"Section Box",bimTree:"BIM Tree",viewpoint:"Viewpoint",annotation:"Annotation",property:"Property",settings:"Settings",compared:"Compared",quitCompare:"Quit compare",fullscreen:"Full Screen",layers:"Layers",zoomToRectangle:"Zoom",screenshot:"Screenshot"},Tooltip:{measure:"Pick a point to continue, pressing ESC to exit",areaMeasurement:"Pick a point to continue, pressing ESC to exit, right click to finish",section:"Click to pick a section plane",boxSelect:"Box select an area"},PopPanel:{reset:"Reset"}},Cpe={NavCube:{front:"前",back:"后",top:"上",bottom:"下",left:"左",right:"右"},ContextMenu:{viewFitAll:"缩放视口到所有模型",hideAll:"全部隐藏",showAll:"全部显示",xRayAll:"全部应用 X 光模式",xRayNone:"清除 X 光模式",selectNone:"清空选择",resetView:"重置视图",viewFitEntity:"缩放视口到实体",hideEntity:"隐藏",hideOthers:"隐藏其他 (隔离)",xRayEntity:"应用 X 光模式",xRayOthers:"对其他实体应用 X 光模式",select:"选择",deselect:"取消选择",showSectionPlane:"显示剖切面",showSectionBox:"显示剖切盒",showAxisSection:"显示轴向剖切",hideSectionPlane:"隐藏剖切面",hideSectionBox:"隐藏剖切盒",hideAxisSection:"隐藏轴向剖切",undoSection:"取消剖切"},ProgressBar:{Loading:"正在加载",Comparing:"正在对比"},Toolbar:{homeView:"主视图",orthoView:"正交视图",measurement:"测量",distanceMeasurement:"距离测量",areaMeasurement:"面积测量",angleMeasurement:"角度测量",coordinateMeasurement:"坐标测量",clearMeasurement:"清除测量",markup:"批注",markupArrow:"箭头",markupRect:"矩形框",markupCloudRect:"云线框",markupPolyLine:"多段线",markupCloudLine:"云线",markupEllipse:"椭圆",markupCircle:"圆",markupDot:"点",markupText:"文字",markupX:"叉号",markupStroke:"画笔颜色",markupLineWidth:"线宽",markupLineWidth2:"线宽 2",markupLineWidth5:"线宽 5",markupLineWidth10:"线宽 10",markupFontSize:"字号",markupFontSize14:"14",markupFontSize18:"18",markupFontSize24:"24",clearMarkup:"清除批注",quitMarkup:"退出批注",section:"剖切",axisSection:"轴向剖切",pickSectionPlane:"面剖切",sectionBox:"剖切盒",bimTree:"BIM树",viewpoint:"视点",annotation:"批注",property:"属性",settings:"设置",compared:"图纸对比",quitCompare:"退出图纸对比",fullscreen:"全屏",layers:"图层",zoomToRectangle:"框选放大",screenshot:"截屏"},Tooltip:{measure:"点击继续测量, ESC 取消测量",areaMeasurement:"点击继续测量, ESC 取消测量,右键完成测量",section:"点击确定剖切面",boxSelect:"框选一个区域"},PopPanel:{reset:"重置"}},Cs=class{static materialEquals(e,t){if(e===t)return!0;if(e.type!==t.type)return!1;if(e instanceof zr&&t instanceof zr){let i=e,r=t;return e.alphaTest===t.alphaTest&&e.opacity===t.opacity&&e.side===t.side&&e.visible===t.visible&&e.name===t.name&&e.transparent===t.transparent&&this.colorEquals(i.color,r.color)&&this.colorEquals(i.emissive,r.emissive)&&i.roughness===r.roughness&&i.metalness===r.metalness&&i.alphaMap===r.alphaMap&&i.uniforms===r.uniforms&&i.defines===r.defines&&i.vertexShader===r.vertexShader&&i.fragmentShader===r.fragmentShader&&i.clippingPlanes===r.clippingPlanes&&i.map===r.map&&i.clipIntersection===r.clipIntersection}return!1}static materialsEquals(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)&&e.length===t.length){for(let i=0;i0){let e=[];return i.forEach((i=>{e.push(this.clonedHighlightMaterial(i,t))})),e}if(i instanceof zr)return this.clonedHighlightMaterial(i,t);console.warn(`[MaterialUtils] Invalid material: ${i}`)}static clonedHighlightMaterial(e,t={}){var i;let{depthTest:r,highlightColor:n=new je(583902),opacity:s=.7}=t,a=e.clone();return a instanceof Gu||a instanceof Es?(a.emissive.set(n),a.color.set(n)):a instanceof or||a instanceof io||a instanceof vr||a instanceof Ap?a.color.set(n):a instanceof Yt?null==(i=a.uniforms.u_color)||i.value.set(n):a instanceof bg?a.color.set(n):console.warn("[MaterialUtils] Unsupported Material:",a.type),a.opacity=s,a.transparent=!0,void 0!==r&&(a.depthTest=!1,a.side=gi),a}static cloneMaterial(e){if(!e)return e;if(Array.isArray(e)){let t=[];return e.forEach((e=>{t.push(e.clone())})),t}return e.clone()}static getMaterialColor(e){let t=new je(16777215);return e instanceof jn||e instanceof vr||e instanceof or?t=e.color:e instanceof Yt&&e.uniforms.u_color&&(t=e.uniforms.u_color.value),t}static setMaterialColor(e,t){e instanceof jn||e instanceof vr||e instanceof or?e.color=t:e instanceof Yt&&e.uniforms.u_color&&(e.uniforms.u_color.value=t)}static cloneMaterials(e){let t=new Map;e.traverse((e=>{e.material&&(e.material=(e=>{let i;return Array.isArray(e)?(i=[],e.forEach((e=>{if(t.has(e))i.push(t.get(e));else{let r=e.clone();t.set(e,r),i.push(r)}}))):e&&(t.has(e)?i=t.get(e):(i=e.clone(),t.set(e,i))),i})(e.material))}))}};function zo(e,t=!1){let i=null!==e[0].index,r=new Set(Object.keys(e[0].attributes)),n=new Set(Object.keys(e[0].morphAttributes)),s={},a={},o=e[0].morphTargetsRelative,l=new lt,h=0;for(let u=0;ut in r?Sc(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Zi=(r,t)=>{for(var e in t||(t={}))Ec.call(t,e)&&Eo(r,e,t[e]);if(Ao)for(var e of Ao(t))Cc.call(t,e)&&Eo(r,e,t[e]);return r},Co=(r,t)=>Tc(r,Ac(t));var ro="149";var Pc=0,Po=1,Rc=2;var Wa=1,Lc=2,Ni=3,Ue=0,he=1,We=2;var pn=0,ri=1,Ro=2,Lo=3,Io=4,Ic=5,ni=100,Dc=101,Nc=102,Do=103,No=104,Fc=200,zc=201,Oc=202,Bc=203,qa=204,Xa=205,Uc=206,kc=207,Vc=208,Gc=209,Hc=210,Wc=0,qc=1,Xc=2,Er=3,Yc=4,Zc=5,Jc=6,$c=7,Ya=0,Kc=1,jc=2,nn=0,Qc=1,tl=2,el=3,nl=4,il=5,Za=300,ci=301,li=302,Cr=303,Pr=304,Ls=306,Rr=1e3,Oe=1001,Lr=1002,ce=1003,Fo=1004;var Zs=1005;var Re=1006,sl=1007;var Oi=1008;var Dn=1009,rl=1010,ol=1011,Ja=1012,al=1013,Pn=1014,Rn=1015,Bi=1016,cl=1017,ll=1018,oi=1020,hl=1021,Be=1023,ul=1024,fl=1025,Ln=1026,hi=1027,dl=1028,pl=1029,ml=1030,gl=1031,xl=1033,Js=33776,$s=33777,Ks=33778,js=33779,zo=35840,Oo=35841,Bo=35842,Uo=35843,_l=36196,ko=37492,Vo=37496,Go=37808,Ho=37809,Wo=37810,qo=37811,Xo=37812,Yo=37813,Zo=37814,Jo=37815,$o=37816,Ko=37817,jo=37818,Qo=37819,ta=37820,ea=37821,Qs=36492,yl=36283,na=36284,ia=36285,sa=36286;var xs=2300,_s=2301,tr=2302,ra=2400,oa=2401,aa=2402;var Nn=3e3,Ot=3001,vl=3200,Ml=3201,bl=0,wl=1;var Ge="srgb",Ui="srgb-linear";var er=7680;var Sl=519,ca=35044;var la="300 es",Ir=1035,mn=class{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;let n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;let i=this._listeners[t];if(i!==void 0){let s=i.indexOf(e);s!==-1&&i.splice(s,1)}}dispatchEvent(t){if(this._listeners===void 0)return;let n=this._listeners[t.type];if(n!==void 0){t.target=this;let i=n.slice(0);for(let s=0,a=i.length;s>8&255]+ne[r>>16&255]+ne[r>>24&255]+"-"+ne[t&255]+ne[t>>8&255]+"-"+ne[t>>16&15|64]+ne[t>>24&255]+"-"+ne[e&63|128]+ne[e>>8&255]+"-"+ne[e>>16&255]+ne[e>>24&255]+ne[n&255]+ne[n>>8&255]+ne[n>>16&255]+ne[n>>24&255]).toLowerCase()}function de(r,t,e){return Math.max(t,Math.min(e,r))}function Tl(r,t){return(r%t+t)%t}function ir(r,t,e){return(1-e)*r+e*t}function ua(r){return(r&r-1)===0&&r!==0}function Dr(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function Ji(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function Me(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var At=class{constructor(t=0,e=0){At.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){let 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=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(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(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let 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){let n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,a=this.y-t.y;return this.x=s*n-a*i+t.x,this.y=s*i+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},le=class{constructor(){le.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,s,a,o,c,l){let h=this.elements;return h[0]=t,h[1]=i,h[2]=o,h[3]=e,h[4]=s,h[5]=c,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let 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){let 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){let n=t.elements,i=e.elements,s=this.elements,a=n[0],o=n[3],c=n[6],l=n[1],h=n[4],f=n[7],u=n[2],m=n[5],x=n[8],p=i[0],d=i[3],g=i[6],M=i[1],_=i[4],v=i[7],b=i[2],A=i[5],C=i[8];return s[0]=a*p+o*M+c*b,s[3]=a*d+o*_+c*A,s[6]=a*g+o*v+c*C,s[1]=l*p+h*M+f*b,s[4]=l*d+h*_+f*A,s[7]=l*g+h*v+f*C,s[2]=u*p+m*M+x*b,s[5]=u*d+m*_+x*A,s[8]=u*g+m*v+x*C,this}multiplyScalar(t){let 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(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8];return e*a*h-e*o*l-n*s*h+n*o*c+i*s*l-i*a*c}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],f=h*a-o*l,u=o*c-h*s,m=l*s-a*c,x=e*f+n*u+i*m;if(x===0)return this.set(0,0,0,0,0,0,0,0,0);let p=1/x;return t[0]=f*p,t[1]=(i*l-h*n)*p,t[2]=(o*n-i*a)*p,t[3]=u*p,t[4]=(h*e-i*c)*p,t[5]=(i*s-o*e)*p,t[6]=m*p,t[7]=(n*c-l*e)*p,t[8]=(a*e-n*s)*p,this}transpose(){let t,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){let 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,s,a,o){let c=Math.cos(s),l=Math.sin(s);return this.set(n*c,n*l,-n*(c*a+l*o)+a+t,-i*l,i*c,-i*(-l*a+c*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(sr.makeScale(t,e)),this}rotate(t){return this.premultiply(sr.makeRotation(-t)),this}translate(t,e){return this.premultiply(sr.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){let 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){let 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){let 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)}},sr=new le;function $a(r){for(let t=r.length-1;t>=0;--t)if(r[t]>=65535)return!0;return!1}function ys(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function In(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function gs(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var rr={[Ge]:{[Ui]:In},[Ui]:{[Ge]:gs}},oe={legacyMode:!0,get workingColorSpace(){return Ui},set workingColorSpace(r){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(r,t,e){if(this.legacyMode||t===e||!t||!e)return r;if(rr[t]&&rr[t][e]!==void 0){let n=rr[t][e];return r.r=n(r.r),r.g=n(r.g),r.b=n(r.b),r}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(r,t){return this.convert(r,this.workingColorSpace,t)},toWorkingColorSpace:function(r,t){return this.convert(r,t,this.workingColorSpace)}},Ka={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},qt={r:0,g:0,b:0},Ne={h:0,s:0,l:0},$i={h:0,s:0,l:0};function or(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}function Ki(r,t){return t.r=r.r,t.g=r.g,t.b=r.b,t}var Bt=class{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,e===void 0&&n===void 0?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Ge){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,oe.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=oe.workingColorSpace){return this.r=t,this.g=e,this.b=n,oe.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=oe.workingColorSpace){if(t=Tl(t,1),e=de(e,0,1),n=de(n,0,1),e===0)this.r=this.g=this.b=n;else{let s=n<=.5?n*(1+e):n+e-n*e,a=2*n-s;this.r=or(a,s,t+1/3),this.g=or(a,s,t),this.b=or(a,s,t-1/3)}return oe.toWorkingColorSpace(this,i),this}setStyle(t,e=Ge){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let s,a=i[1],o=i[2];switch(a){case"rgb":case"rgba":if(s=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(s[1],10))/255,this.g=Math.min(255,parseInt(s[2],10))/255,this.b=Math.min(255,parseInt(s[3],10))/255,oe.toWorkingColorSpace(this,e),n(s[4]),this;if(s=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(s[1],10))/100,this.g=Math.min(100,parseInt(s[2],10))/100,this.b=Math.min(100,parseInt(s[3],10))/100,oe.toWorkingColorSpace(this,e),n(s[4]),this;break;case"hsl":case"hsla":if(s=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o)){let c=parseFloat(s[1])/360,l=parseFloat(s[2])/100,h=parseFloat(s[3])/100;return n(s[4]),this.setHSL(c,l,h,e)}break}}else if(i=/^\\#([A-Fa-f\\d]+)$/.exec(t)){let s=i[1],a=s.length;if(a===3)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,oe.toWorkingColorSpace(this,e),this;if(a===6)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,oe.toWorkingColorSpace(this,e),this}return t&&t.length>0?this.setColorName(t,e):this}setColorName(t,e=Ge){let n=Ka[t.toLowerCase()];return n!==void 0?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=In(t.r),this.g=In(t.g),this.b=In(t.b),this}copyLinearToSRGB(t){return this.r=gs(t.r),this.g=gs(t.g),this.b=gs(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Ge){return oe.fromWorkingColorSpace(Ki(this,qt),t),de(qt.r*255,0,255)<<16^de(qt.g*255,0,255)<<8^de(qt.b*255,0,255)<<0}getHexString(t=Ge){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=oe.workingColorSpace){oe.fromWorkingColorSpace(Ki(this,qt),e);let n=qt.r,i=qt.g,s=qt.b,a=Math.max(n,i,s),o=Math.min(n,i,s),c,l,h=(o+a)/2;if(o===a)c=0,l=0;else{let f=a-o;switch(l=h<=.5?f/(a+o):f/(2-a-o),a){case n:c=(i-s)/f+(i2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){let e=ys("canvas");e.width=t.width,e.height=t.height;let n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);let i=n.getImageData(0,0,t.width,t.height),s=i.data;for(let a=0;a0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==Za)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Rr:t.x=t.x-Math.floor(t.x);break;case Oe:t.x=t.x<0?0:1;break;case Lr:Math.abs(Math.floor(t.x)%2)===1?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 Rr:t.y=t.y-Math.floor(t.y);break;case Oe:t.y=t.y<0?0:1;break;case Lr:Math.abs(Math.floor(t.y)%2)===1?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){t===!0&&(this.version++,this.source.needsUpdate=!0)}};ue.DEFAULT_IMAGE=null;ue.DEFAULT_MAPPING=Za;ue.DEFAULT_ANISOTROPY=1;var Xt=class{constructor(t=0,e=0,n=0,i=1){Xt.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=t.w!==void 0?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){let e=this.x,n=this.y,i=this.z,s=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*i+a[12]*s,this.y=a[1]*e+a[5]*n+a[9]*i+a[13]*s,this.z=a[2]*e+a[6]*n+a[10]*i+a[14]*s,this.w=a[3]*e+a[7]*n+a[11]*i+a[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let 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,s,c=t.elements,l=c[0],h=c[4],f=c[8],u=c[1],m=c[5],x=c[9],p=c[2],d=c[6],g=c[10];if(Math.abs(h-u)<.01&&Math.abs(f-p)<.01&&Math.abs(x-d)<.01){if(Math.abs(h+u)<.1&&Math.abs(f+p)<.1&&Math.abs(x+d)<.1&&Math.abs(l+m+g-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let _=(l+1)/2,v=(m+1)/2,b=(g+1)/2,A=(h+u)/4,C=(f+p)/4,y=(x+d)/4;return _>v&&_>b?_<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(_),i=A/n,s=C/n):v>b?v<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(v),n=A/i,s=y/i):b<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(b),n=C/s,i=y/s),this.set(n,i,s,e),this}let M=Math.sqrt((d-x)*(d-x)+(f-p)*(f-p)+(u-h)*(u-h));return Math.abs(M)<.001&&(M=1),this.x=(d-x)/M,this.y=(f-p)/M,this.z=(u-h)/M,this.w=Math.acos((l+m+g-1)/2),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=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(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}},rn=class extends mn{constructor(t=1,e=1,n={}){super(),this.isWebGLRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Xt(0,0,t,e),this.scissorTest=!1,this.viewport=new Xt(0,0,t,e);let i={width:t,height:e,depth:1};this.texture=new ue(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Re,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.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.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},t.texture.image);return this.texture.source=new Ms(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},bs=class extends ue{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=ce,this.minFilter=ce,this.wrapR=Oe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Nr=class extends ue{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=ce,this.minFilter=ce,this.wrapR=Oe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var gn=class{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,s,a,o){let c=n[i+0],l=n[i+1],h=n[i+2],f=n[i+3],u=s[a+0],m=s[a+1],x=s[a+2],p=s[a+3];if(o===0){t[e+0]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f;return}if(o===1){t[e+0]=u,t[e+1]=m,t[e+2]=x,t[e+3]=p;return}if(f!==p||c!==u||l!==m||h!==x){let d=1-o,g=c*u+l*m+h*x+f*p,M=g>=0?1:-1,_=1-g*g;if(_>Number.EPSILON){let b=Math.sqrt(_),A=Math.atan2(b,g*M);d=Math.sin(d*A)/b,o=Math.sin(o*A)/b}let v=o*M;if(c=c*d+u*v,l=l*d+m*v,h=h*d+x*v,f=f*d+p*v,d===1-o){let b=1/Math.sqrt(c*c+l*l+h*h+f*f);c*=b,l*=b,h*=b,f*=b}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f}static multiplyQuaternionsFlat(t,e,n,i,s,a){let o=n[i],c=n[i+1],l=n[i+2],h=n[i+3],f=s[a],u=s[a+1],m=s[a+2],x=s[a+3];return t[e]=o*x+h*f+c*m-l*u,t[e+1]=c*x+h*u+l*f-o*m,t[e+2]=l*x+h*m+o*u-c*f,t[e+3]=h*x-o*f-c*u-l*m,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){let n=t._x,i=t._y,s=t._z,a=t._order,o=Math.cos,c=Math.sin,l=o(n/2),h=o(i/2),f=o(s/2),u=c(n/2),m=c(i/2),x=c(s/2);switch(a){case"XYZ":this._x=u*h*f+l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f-u*m*x;break;case"YXZ":this._x=u*h*f+l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f+u*m*x;break;case"ZXY":this._x=u*h*f-l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f-u*m*x;break;case"ZYX":this._x=u*h*f-l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f+u*m*x;break;case"YZX":this._x=u*h*f+l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f-u*m*x;break;case"XZY":this._x=u*h*f-l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f+u*m*x;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(t,e){let 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){let e=t.elements,n=e[0],i=e[4],s=e[8],a=e[1],o=e[5],c=e[9],l=e[2],h=e[6],f=e[10],u=n+o+f;if(u>0){let m=.5/Math.sqrt(u+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-l)*m,this._z=(a-i)*m}else if(n>o&&n>f){let m=2*Math.sqrt(1+n-o-f);this._w=(h-c)/m,this._x=.25*m,this._y=(i+a)/m,this._z=(s+l)/m}else if(o>f){let m=2*Math.sqrt(1+o-n-f);this._w=(s-l)/m,this._x=(i+a)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+f-n-o);this._w=(a-i)/m,this._x=(s+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.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(de(this.dot(t),-1,1)))}rotateTowards(t,e){let n=this.angleTo(t);if(n===0)return this;let 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 t===0?(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){let n=t._x,i=t._y,s=t._z,a=t._w,o=e._x,c=e._y,l=e._z,h=e._w;return this._x=n*h+a*o+i*l-s*c,this._y=i*h+a*c+s*o-n*l,this._z=s*h+a*l+n*c-i*o,this._w=a*h-n*o-i*c-s*l,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let n=this._x,i=this._y,s=this._z,a=this._w,o=a*t._w+n*t._x+i*t._y+s*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=i,this._z=s,this;let c=1-o*o;if(c<=Number.EPSILON){let m=1-e;return this._w=m*a+e*this._w,this._x=m*n+e*this._x,this._y=m*i+e*this._y,this._z=m*s+e*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,o),f=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=a*f+this._w*u,this._x=n*f+this._x*u,this._y=i*f+this._y*u,this._z=s*f+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){let t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}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}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},R=class{constructor(t=0,e=0,n=0){R.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(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(fa.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(fa.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=t.elements,a=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*a,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*a,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*a,this}applyQuaternion(t){let e=this.x,n=this.y,i=this.z,s=t.x,a=t.y,o=t.z,c=t.w,l=c*e+a*i-o*n,h=c*n+o*e-s*i,f=c*i+s*n-a*e,u=-s*e-a*n-o*i;return this.x=l*c+u*-s+h*-o-f*-a,this.y=h*c+u*-a+f*-s-l*-o,this.z=f*c+u*-o+l*-a-h*-s,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[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=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(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){let n=t.x,i=t.y,s=t.z,a=e.x,o=e.y,c=e.z;return this.x=i*c-s*o,this.y=s*a-n*c,this.z=n*o-i*a,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return cr.copy(this).projectOnVector(t),this.sub(cr)}reflect(t){return this.sub(cr.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(de(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let 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){let 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){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let 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,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,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(){let t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},cr=new R,fa=new gn,fe=class{constructor(t=new R(1/0,1/0,1/0),e=new R(-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){let e=1/0,n=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let c=0,l=t.length;cs&&(s=h),f>a&&(a=f),u>o&&(o=u)}return this.min.set(e,n,i),this.max.set(s,a,o),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let c=0,l=t.count;cs&&(s=h),f>a&&(a=f),u>o&&(o=u)}return this.min.set(e,n,i),this.max.set(s,a,o),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.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.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Sn),Sn.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(Ei),ji.subVectors(this.max,Ei),Hn.subVectors(t.a,Ei),Wn.subVectors(t.b,Ei),qn.subVectors(t.c,Ei),ln.subVectors(Wn,Hn),hn.subVectors(qn,Wn),Tn.subVectors(Hn,qn);let e=[0,-ln.z,ln.y,0,-hn.z,hn.y,0,-Tn.z,Tn.y,ln.z,0,-ln.x,hn.z,0,-hn.x,Tn.z,0,-Tn.x,-ln.y,ln.x,0,-hn.y,hn.x,0,-Tn.y,Tn.x,0];return!hr(e,Hn,Wn,qn,ji)||(e=[1,0,0,0,1,0,0,0,1],!hr(e,Hn,Wn,qn,ji))?!1:(Qi.crossVectors(ln,hn),e=[Qi.x,Qi.y,Qi.z],hr(e,Hn,Wn,qn,ji))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Sn.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=this.getSize(Sn).length()*.5,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()?this:(Ke[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Ke[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Ke[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Ke[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Ke[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Ke[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Ke[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Ke[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Ke),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)}},Ke=[new R,new R,new R,new R,new R,new R,new R,new R],Sn=new R,lr=new fe,Hn=new R,Wn=new R,qn=new R,ln=new R,hn=new R,Tn=new R,Ei=new R,ji=new R,Qi=new R,An=new R;function hr(r,t,e,n,i){for(let s=0,a=r.length-3;s<=a;s+=3){An.fromArray(r,s);let o=i.x*Math.abs(An.x)+i.y*Math.abs(An.y)+i.z*Math.abs(An.z),c=t.dot(An),l=e.dot(An),h=n.dot(An);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>o)return!1}return!0}var El=new fe,Ci=new R,ur=new R,Fn=class{constructor(t=new R,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let n=this.center;e!==void 0?n.copy(e):El.setFromPoints(t).getCenter(n);let i=0;for(let s=0,a=t.length;sthis.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;Ci.subVectors(t,this.center);let e=Ci.lengthSq();if(e>this.radius*this.radius){let n=Math.sqrt(e),i=(n-this.radius)*.5;this.center.addScaledVector(Ci,i/n),this.radius+=i}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(ur.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Ci.copy(t.center).add(ur)),this.expandByPoint(Ci.copy(t.center).sub(ur))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}},je=new R,fr=new R,ts=new R,un=new R,dr=new R,es=new R,pr=new R,Fr=class{constructor(t=new R,e=new R(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.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,je)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=je.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(je.copy(this.direction).multiplyScalar(e).add(this.origin),je.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){fr.copy(t).add(e).multiplyScalar(.5),ts.copy(e).sub(t).normalize(),un.copy(this.origin).sub(fr);let s=t.distanceTo(e)*.5,a=-this.direction.dot(ts),o=un.dot(this.direction),c=-un.dot(ts),l=un.lengthSq(),h=Math.abs(1-a*a),f,u,m,x;if(h>0)if(f=a*c-o,u=a*o-c,x=s*h,f>=0)if(u>=-x)if(u<=x){let p=1/h;f*=p,u*=p,m=f*(f+a*u+2*o)+u*(a*f+u+2*c)+l}else u=s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;else u=-s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;else u<=-x?(f=Math.max(0,-(-a*s+o)),u=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l):u<=x?(f=0,u=Math.min(Math.max(-s,-c),s),m=u*(u+2*c)+l):(f=Math.max(0,-(a*s+o)),u=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l);else u=a>0?-s:s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(f).add(this.origin),i&&i.copy(ts).multiplyScalar(u).add(fr),m}intersectSphere(t,e){je.subVectors(t.center,this.origin);let n=je.dot(this.direction),i=je.dot(je)-n*n,s=t.radius*t.radius;if(i>s)return null;let a=Math.sqrt(s-i),o=n-a,c=n+a;return o<0&&c<0?null:o<0?this.at(c,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){let n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,a,o,c,l=1/this.direction.x,h=1/this.direction.y,f=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?(s=(t.min.y-u.y)*h,a=(t.max.y-u.y)*h):(s=(t.max.y-u.y)*h,a=(t.min.y-u.y)*h),n>a||s>i||((s>n||isNaN(n))&&(n=s),(a=0?(o=(t.min.z-u.z)*f,c=(t.max.z-u.z)*f):(o=(t.max.z-u.z)*f,c=(t.min.z-u.z)*f),n>c||o>i)||((o>n||n!==n)&&(n=o),(c=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,je)!==null}intersectTriangle(t,e,n,i,s){dr.subVectors(e,t),es.subVectors(n,t),pr.crossVectors(dr,es);let a=this.direction.dot(pr),o;if(a>0){if(i)return null;o=1}else if(a<0)o=-1,a=-a;else return null;un.subVectors(this.origin,t);let c=o*this.direction.dot(es.crossVectors(un,es));if(c<0)return null;let l=o*this.direction.dot(dr.cross(un));if(l<0||c+l>a)return null;let h=-o*un.dot(pr);return h<0?null:this.at(h/a,s)}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)}},zt=class{constructor(){zt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,s,a,o,c,l,h,f,u,m,x,p,d){let g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=s,g[5]=a,g[9]=o,g[13]=c,g[2]=l,g[6]=h,g[10]=f,g[14]=u,g[3]=m,g[7]=x,g[11]=p,g[15]=d,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 zt().fromArray(this.elements)}copy(t){let 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){let e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){let 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){let e=this.elements,n=t.elements,i=1/Xn.setFromMatrixColumn(t,0).length(),s=1/Xn.setFromMatrixColumn(t,1).length(),a=1/Xn.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]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,n=t.x,i=t.y,s=t.z,a=Math.cos(n),o=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(s),f=Math.sin(s);if(t.order==="XYZ"){let u=a*h,m=a*f,x=o*h,p=o*f;e[0]=c*h,e[4]=-c*f,e[8]=l,e[1]=m+x*l,e[5]=u-p*l,e[9]=-o*c,e[2]=p-u*l,e[6]=x+m*l,e[10]=a*c}else if(t.order==="YXZ"){let u=c*h,m=c*f,x=l*h,p=l*f;e[0]=u+p*o,e[4]=x*o-m,e[8]=a*l,e[1]=a*f,e[5]=a*h,e[9]=-o,e[2]=m*o-x,e[6]=p+u*o,e[10]=a*c}else if(t.order==="ZXY"){let u=c*h,m=c*f,x=l*h,p=l*f;e[0]=u-p*o,e[4]=-a*f,e[8]=x+m*o,e[1]=m+x*o,e[5]=a*h,e[9]=p-u*o,e[2]=-a*l,e[6]=o,e[10]=a*c}else if(t.order==="ZYX"){let u=a*h,m=a*f,x=o*h,p=o*f;e[0]=c*h,e[4]=x*l-m,e[8]=u*l+p,e[1]=c*f,e[5]=p*l+u,e[9]=m*l-x,e[2]=-l,e[6]=o*c,e[10]=a*c}else if(t.order==="YZX"){let u=a*c,m=a*l,x=o*c,p=o*l;e[0]=c*h,e[4]=p-u*f,e[8]=x*f+m,e[1]=f,e[5]=a*h,e[9]=-o*h,e[2]=-l*h,e[6]=m*f+x,e[10]=u-p*f}else if(t.order==="XZY"){let u=a*c,m=a*l,x=o*c,p=o*l;e[0]=c*h,e[4]=-f,e[8]=l*h,e[1]=u*f+p,e[5]=a*h,e[9]=m*f-x,e[2]=x*f-m,e[6]=o*h,e[10]=p*f+u}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(Cl,t,Pl)}lookAt(t,e,n){let i=this.elements;return be.subVectors(t,e),be.lengthSq()===0&&(be.z=1),be.normalize(),fn.crossVectors(n,be),fn.lengthSq()===0&&(Math.abs(n.z)===1?be.x+=1e-4:be.z+=1e-4,be.normalize(),fn.crossVectors(n,be)),fn.normalize(),ns.crossVectors(be,fn),i[0]=fn.x,i[4]=ns.x,i[8]=be.x,i[1]=fn.y,i[5]=ns.y,i[9]=be.y,i[2]=fn.z,i[6]=ns.z,i[10]=be.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,a=n[0],o=n[4],c=n[8],l=n[12],h=n[1],f=n[5],u=n[9],m=n[13],x=n[2],p=n[6],d=n[10],g=n[14],M=n[3],_=n[7],v=n[11],b=n[15],A=i[0],C=i[4],y=i[8],S=i[12],P=i[1],O=i[5],B=i[9],D=i[13],I=i[2],k=i[6],Y=i[10],Z=i[14],H=i[3],$=i[7],J=i[11],dt=i[15];return s[0]=a*A+o*P+c*I+l*H,s[4]=a*C+o*O+c*k+l*$,s[8]=a*y+o*B+c*Y+l*J,s[12]=a*S+o*D+c*Z+l*dt,s[1]=h*A+f*P+u*I+m*H,s[5]=h*C+f*O+u*k+m*$,s[9]=h*y+f*B+u*Y+m*J,s[13]=h*S+f*D+u*Z+m*dt,s[2]=x*A+p*P+d*I+g*H,s[6]=x*C+p*O+d*k+g*$,s[10]=x*y+p*B+d*Y+g*J,s[14]=x*S+p*D+d*Z+g*dt,s[3]=M*A+_*P+v*I+b*H,s[7]=M*C+_*O+v*k+b*$,s[11]=M*y+_*B+v*Y+b*J,s[15]=M*S+_*D+v*Z+b*dt,this}multiplyScalar(t){let 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(){let t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],a=t[1],o=t[5],c=t[9],l=t[13],h=t[2],f=t[6],u=t[10],m=t[14],x=t[3],p=t[7],d=t[11],g=t[15];return x*(+s*c*f-i*l*f-s*o*u+n*l*u+i*o*m-n*c*m)+p*(+e*c*m-e*l*u+s*a*u-i*a*m+i*l*h-s*c*h)+d*(+e*l*f-e*o*m-s*a*f+n*a*m+s*o*h-n*l*h)+g*(-i*o*h-e*c*f+e*o*u+i*a*f-n*a*u+n*c*h)}transpose(){let t=this.elements,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){let 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(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],f=t[9],u=t[10],m=t[11],x=t[12],p=t[13],d=t[14],g=t[15],M=f*d*l-p*u*l+p*c*m-o*d*m-f*c*g+o*u*g,_=x*u*l-h*d*l-x*c*m+a*d*m+h*c*g-a*u*g,v=h*p*l-x*f*l+x*o*m-a*p*m-h*o*g+a*f*g,b=x*f*c-h*p*c-x*o*u+a*p*u+h*o*d-a*f*d,A=e*M+n*_+i*v+s*b;if(A===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let C=1/A;return t[0]=M*C,t[1]=(p*u*s-f*d*s-p*i*m+n*d*m+f*i*g-n*u*g)*C,t[2]=(o*d*s-p*c*s+p*i*l-n*d*l-o*i*g+n*c*g)*C,t[3]=(f*c*s-o*u*s-f*i*l+n*u*l+o*i*m-n*c*m)*C,t[4]=_*C,t[5]=(h*d*s-x*u*s+x*i*m-e*d*m-h*i*g+e*u*g)*C,t[6]=(x*c*s-a*d*s-x*i*l+e*d*l+a*i*g-e*c*g)*C,t[7]=(a*u*s-h*c*s+h*i*l-e*u*l-a*i*m+e*c*m)*C,t[8]=v*C,t[9]=(x*f*s-h*p*s-x*n*m+e*p*m+h*n*g-e*f*g)*C,t[10]=(a*p*s-x*o*s+x*n*l-e*p*l-a*n*g+e*o*g)*C,t[11]=(h*o*s-a*f*s-h*n*l+e*f*l+a*n*m-e*o*m)*C,t[12]=b*C,t[13]=(h*p*i-x*f*i+x*n*u-e*p*u-h*n*d+e*f*d)*C,t[14]=(x*o*i-a*p*i-x*n*c+e*p*c+a*n*d-e*o*d)*C,t[15]=(a*f*i-h*o*i+h*n*c-e*f*c-a*n*u+e*o*u)*C,this}scale(t){let e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){let 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 this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){let 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){let 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){let 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){let n=Math.cos(e),i=Math.sin(e),s=1-n,a=t.x,o=t.y,c=t.z,l=s*a,h=s*o;return this.set(l*a+n,l*o-i*c,l*c+i*o,0,l*o+i*c,h*o+n,h*c-i*a,0,l*c-i*o,h*c+i*a,s*c*c+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,s,a){return this.set(1,n,s,0,t,1,a,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){let i=this.elements,s=e._x,a=e._y,o=e._z,c=e._w,l=s+s,h=a+a,f=o+o,u=s*l,m=s*h,x=s*f,p=a*h,d=a*f,g=o*f,M=c*l,_=c*h,v=c*f,b=n.x,A=n.y,C=n.z;return i[0]=(1-(p+g))*b,i[1]=(m+v)*b,i[2]=(x-_)*b,i[3]=0,i[4]=(m-v)*A,i[5]=(1-(u+g))*A,i[6]=(d+M)*A,i[7]=0,i[8]=(x+_)*C,i[9]=(d-M)*C,i[10]=(1-(u+p))*C,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){let i=this.elements,s=Xn.set(i[0],i[1],i[2]).length(),a=Xn.set(i[4],i[5],i[6]).length(),o=Xn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],Fe.copy(this);let l=1/s,h=1/a,f=1/o;return Fe.elements[0]*=l,Fe.elements[1]*=l,Fe.elements[2]*=l,Fe.elements[4]*=h,Fe.elements[5]*=h,Fe.elements[6]*=h,Fe.elements[8]*=f,Fe.elements[9]*=f,Fe.elements[10]*=f,e.setFromRotationMatrix(Fe),n.x=s,n.y=a,n.z=o,this}makePerspective(t,e,n,i,s,a){let o=this.elements,c=2*s/(e-t),l=2*s/(n-i),h=(e+t)/(e-t),f=(n+i)/(n-i),u=-(a+s)/(a-s),m=-2*a*s/(a-s);return o[0]=c,o[4]=0,o[8]=h,o[12]=0,o[1]=0,o[5]=l,o[9]=f,o[13]=0,o[2]=0,o[6]=0,o[10]=u,o[14]=m,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,s,a){let o=this.elements,c=1/(e-t),l=1/(n-i),h=1/(a-s),f=(e+t)*c,u=(n+i)*l,m=(a+s)*h;return o[0]=2*c,o[4]=0,o[8]=0,o[12]=-f,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-u,o[2]=0,o[6]=0,o[10]=-2*h,o[14]=-m,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){let 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){let 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}},Xn=new R,Fe=new zt,Cl=new R(0,0,0),Pl=new R(1,1,1),fn=new R,ns=new R,be=new R,da=new zt,pa=new gn,ui=class{constructor(t=0,e=0,n=0,i=ui.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){let i=t.elements,s=i[0],a=i[4],o=i[8],c=i[1],l=i[5],h=i[9],f=i[2],u=i[6],m=i[10];switch(e){case"XYZ":this._y=Math.asin(de(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-de(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(de(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-de(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(u,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(de(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-de(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(o,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return da.makeRotationFromQuaternion(t),this.setFromRotationMatrix(da,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return pa.setFromEuler(this),this.setFromQuaternion(pa,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],t[3]!==void 0&&(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}};ui.DEFAULT_ORDER="XYZ";var ws=class{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(n=n.concat(a))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Pi,t,Ll),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Pi,Il,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);let e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON()));function s(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(t)),c.uuid}if(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&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(t.geometries,this.geometry);let o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){let c=o.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l0){i.children=[];for(let o=0;o0){i.animations=[];for(let o=0;o0&&(n.geometries=o),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),f.length>0&&(n.shapes=f),u.length>0&&(n.skeletons=u),m.length>0&&(n.animations=m),x.length>0&&(n.nodes=x)}return n.object=i,n;function a(o){let c=[];for(let l in o){let h=o[l];delete h.metadata,c.push(h)}return c}}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.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,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.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(t,e,n,i,s){ze.subVectors(i,e),tn.subVectors(n,e),mr.subVectors(t,e);let a=ze.dot(ze),o=ze.dot(tn),c=ze.dot(mr),l=tn.dot(tn),h=tn.dot(mr),f=a*l-o*o;if(f===0)return s.set(-2,-1,-1);let u=1/f,m=(l*c-o*h)*u,x=(a*h-o*c)*u;return s.set(1-m-x,x,m)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,en),en.x>=0&&en.y>=0&&en.x+en.y<=1}static getUV(t,e,n,i,s,a,o,c){return this.getBarycoord(t,e,n,i,en),c.set(0,0),c.addScaledVector(s,en.x),c.addScaledVector(a,en.y),c.addScaledVector(o,en.z),c}static isFrontFacing(t,e,n,i){return ze.subVectors(n,e),tn.subVectors(t,e),ze.cross(tn).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 ze.subVectors(this.c,this.b),tn.subVectors(this.a,this.b),ze.cross(tn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return ie.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return ie.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,s){return ie.getUV(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return ie.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return ie.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let n=this.a,i=this.b,s=this.c,a,o;Zn.subVectors(i,n),Jn.subVectors(s,n),gr.subVectors(t,n);let c=Zn.dot(gr),l=Jn.dot(gr);if(c<=0&&l<=0)return e.copy(n);xr.subVectors(t,i);let h=Zn.dot(xr),f=Jn.dot(xr);if(h>=0&&f<=h)return e.copy(i);let u=c*f-h*l;if(u<=0&&c>=0&&h<=0)return a=c/(c-h),e.copy(n).addScaledVector(Zn,a);_r.subVectors(t,s);let m=Zn.dot(_r),x=Jn.dot(_r);if(x>=0&&m<=x)return e.copy(s);let p=m*l-c*x;if(p<=0&&l>=0&&x<=0)return o=l/(l-x),e.copy(n).addScaledVector(Jn,o);let d=h*x-m*f;if(d<=0&&f-h>=0&&m-x>=0)return va.subVectors(s,i),o=(f-h)/(f-h+(m-x)),e.copy(i).addScaledVector(va,o);let g=1/(d+p+u);return a=p*g,o=u*g,e.copy(n).addScaledVector(Zn,a).addScaledVector(Jn,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},Nl=0,fi=class extends mn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Nl++}),this.uuid=Gi(),this.name="",this.type="Material",this.blending=ri,this.side=Ue,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=qa,this.blendDst=Xa,this.blendEquation=ni,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Er,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Sl,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=er,this.stencilZFail=er,this.stencilZPass=er,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}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let n=t[e];if(n===void 0){console.warn("THREE.Material: \'"+e+"\' parameter is undefined.");continue}let i=this[e];if(i===void 0){console.warn("THREE."+this.type+": \'"+e+"\' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n}}toJSON(t){let e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});let n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(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()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(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),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,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==ri&&(n.blending=this.blending),this.side!==Ue&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(n.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function i(s){let a=[];for(let o in s){let c=s[o];delete c.metadata,a.push(c)}return a}if(e){let s=i(t.textures),a=i(t.images);s.length>0&&(n.textures=s),a.length>0&&(n.images=a)}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.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;let e=t.clippingPlanes,n=null;if(e!==null){let i=e.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=e[s].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.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){t===!0&&this.version++}},Ss=class extends fi{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Bt(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.combine=Ya,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.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}},Ht=new R,ss=new At,Yt=class{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=ca,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}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}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i0&&(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(t[l]=c[l]);return t}t.data={attributes:{}};let e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let n=this.attributes;for(let c in n){let l=n[c];t.data.attributes[c]=l.toJSON(t.data)}let i={},s=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let f=0,u=l.length;f0&&(i[c]=h,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));let o=this.boundingSphere;return o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.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;let e={};this.name=t.name;let n=t.index;n!==null&&this.setIndex(n.clone(e));let i=t.attributes;for(let l in i){let h=i[l];this.setAttribute(l,h.clone(e))}let s=t.morphAttributes;for(let l in s){let h=[],f=s[l];for(let u=0,m=f.length;u0){let i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=i.length;se.far?null:{distance:l,point:ls.clone(),object:r}}function hs(r,t,e,n,i,s,a,o,c){r.getVertexPosition(a,Li),r.getVertexPosition(o,Ii),r.getVertexPosition(c,Di);let l=zl(r,t,e,n,Li,Ii,Di,br);if(l){i&&(os.fromBufferAttribute(i,a),as.fromBufferAttribute(i,o),cs.fromBufferAttribute(i,c),l.uv=ie.getUV(br,Li,Ii,Di,os,as,cs,new At)),s&&(os.fromBufferAttribute(s,a),as.fromBufferAttribute(s,o),cs.fromBufferAttribute(s,c),l.uv2=ie.getUV(br,Li,Ii,Di,os,as,cs,new At));let h={a,b:o,c,normal:new R,materialIndex:0};ie.getNormal(Li,Ii,Di,h.normal),l.face=h}return l}var zn=class extends ke{constructor(t=1,e=1,n=1,i=1,s=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:s,depthSegments:a};let o=this;i=Math.floor(i),s=Math.floor(s),a=Math.floor(a);let c=[],l=[],h=[],f=[],u=0,m=0;x("z","y","x",-1,-1,n,e,t,a,s,0),x("z","y","x",1,-1,n,e,-t,a,s,1),x("x","z","y",1,1,t,n,e,i,a,2),x("x","z","y",1,-1,t,n,-e,i,a,3),x("x","y","z",1,-1,t,e,n,i,s,4),x("x","y","z",-1,-1,t,e,-n,i,s,5),this.setIndex(c),this.setAttribute("position",new sn(l,3)),this.setAttribute("normal",new sn(h,3)),this.setAttribute("uv",new sn(f,2));function x(p,d,g,M,_,v,b,A,C,y,S){let P=v/C,O=b/y,B=v/2,D=b/2,I=A/2,k=C+1,Y=y+1,Z=0,H=0,$=new R;for(let J=0;J0?1:-1,h.push($.x,$.y,$.z),f.push(z/C),f.push(1-J/y),Z+=1}}for(let J=0;J0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}},Es=class extends pe{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new zt,this.projectionMatrix=new zt,this.projectionMatrixInverse=new zt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}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)}},Se=class extends Es{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=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=ha*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(nr*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return ha*2*Math.atan(Math.tan(nr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,s,a){this.aspect=t/e,this.view===null&&(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=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(nr*.5*this.fov)/this.zoom,n=2*e,i=this.aspect*n,s=-.5*i,a=this.view;if(this.view!==null&&this.view.enabled){let c=a.fullWidth,l=a.fullHeight;s+=a.offsetX*i/c,e-=a.offsetY*n/l,i*=a.width/c,n*=a.height/l}let o=this.filmOffset;o!==0&&(s+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let 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,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},jn=-90,Qn=1,zr=class extends pe{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;let i=new Se(jn,Qn,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);let s=new Se(jn,Qn,t,e);s.layers=this.layers,s.up.set(0,1,0),s.lookAt(-1,0,0),this.add(s);let a=new Se(jn,Qn,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(0,1,0),this.add(a);let o=new Se(jn,Qn,t,e);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(0,-1,0),this.add(o);let c=new Se(jn,Qn,t,e);c.layers=this.layers,c.up.set(0,1,0),c.lookAt(0,0,1),this.add(c);let l=new Se(jn,Qn,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget,[i,s,a,o,c,l]=this.children,h=t.getRenderTarget(),f=t.toneMapping,u=t.xr.enabled;t.toneMapping=nn,t.xr.enabled=!1;let m=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,a),t.setRenderTarget(n,3),t.render(e,o),t.setRenderTarget(n,4),t.render(e,c),n.texture.generateMipmaps=m,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.toneMapping=f,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}},Cs=class extends ue{constructor(t,e,n,i,s,a,o,c,l,h){t=t!==void 0?t:[],e=e!==void 0?e:ci,super(t,e,n,i,s,a,o,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},Or=class extends rn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Cs(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:Re}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let 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 \n\t\t\t\t\t#include \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 \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 zn(5,5,5),s=new on({name:"CubemapFromEquirect",uniforms:di(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:he,blending:pn});s.uniforms.tEquirect.value=e;let a=new qe(i,s),o=e.minFilter;return e.minFilter===Oi&&(e.minFilter=Re),new zr(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,i){let s=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,i);t.setRenderTarget(s)}},wr=new R,Vl=new R,Gl=new le,Te=class{constructor(t=new R(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){let i=wr.subVectors(n,e).cross(Vl.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let 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(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){let n=t.delta(wr),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(n).multiplyScalar(s).add(t.start)}intersectsLine(t){let 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){let n=e||Gl.getNormalMatrix(t),i=this.coplanarPoint(wr).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),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)}},ti=new Fn,us=new R,Ps=class{constructor(t=new Te,e=new Te,n=new Te,i=new Te,s=new Te,a=new Te){this.planes=[t,e,n,i,s,a]}set(t,e,n,i,s,a){let o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(i),o[4].copy(s),o[5].copy(a),this}copy(t){let e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){let e=this.planes,n=t.elements,i=n[0],s=n[1],a=n[2],o=n[3],c=n[4],l=n[5],h=n[6],f=n[7],u=n[8],m=n[9],x=n[10],p=n[11],d=n[12],g=n[13],M=n[14],_=n[15];return e[0].setComponents(o-i,f-c,p-u,_-d).normalize(),e[1].setComponents(o+i,f+c,p+u,_+d).normalize(),e[2].setComponents(o+s,f+l,p+m,_+g).normalize(),e[3].setComponents(o-s,f-l,p-m,_-g).normalize(),e[4].setComponents(o-a,f-h,p-x,_-M).normalize(),e[5].setComponents(o+a,f+h,p+x,_+M).normalize(),this}intersectsObject(t){let e=t.geometry;return e.boundingSphere===null&&e.computeBoundingSphere(),ti.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ti)}intersectsSprite(t){return ti.center.set(0,0,0),ti.radius=.7071067811865476,ti.applyMatrix4(t.matrixWorld),this.intersectsSphere(ti)}intersectsSphere(t){let e=this.planes,n=t.center,i=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(n)0?t.max.x:t.min.x,us.y=i.normal.y>0?t.max.y:t.min.y,us.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(us)<0)return!1}return!0}containsPoint(t){let 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)}};function Qa(){let r=null,t=!1,e=null,n=null;function i(s,a){e(s,a),n=r.requestAnimationFrame(i)}return{start:function(){t!==!0&&e!==null&&(n=r.requestAnimationFrame(i),t=!0)},stop:function(){r.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){r=s}}}function Hl(r,t){let e=t.isWebGL2,n=new WeakMap;function i(l,h){let f=l.array,u=l.usage,m=r.createBuffer();r.bindBuffer(h,m),r.bufferData(h,f,u),l.onUploadCallback();let x;if(f instanceof Float32Array)x=5126;else if(f instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(e)x=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=5123;else if(f instanceof Int16Array)x=5122;else if(f instanceof Uint32Array)x=5125;else if(f instanceof Int32Array)x=5124;else if(f instanceof Int8Array)x=5120;else if(f instanceof Uint8Array)x=5121;else if(f instanceof Uint8ClampedArray)x=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:m,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version}}function s(l,h,f){let u=h.array,m=h.updateRange;r.bindBuffer(f,l),m.count===-1?r.bufferSubData(f,0,u):(e?r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u,m.offset,m.count):r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u.subarray(m.offset,m.offset+m.count)),m.count=-1),h.onUploadCallback()}function a(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function o(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(r.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let u=n.get(l);(!u||u.version 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}\nfloat 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}\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`,Ql=`#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\t return 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 R21 = R12;\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`,th=`#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + 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 = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = 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`,eh=`#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif`,nh=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif`,ih=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif`,sh=`#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif`,rh=`#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif`,oh=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif`,ah=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif`,ch=`#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_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`,lh=`#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};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\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}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\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}`,hh=`#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_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\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`,uh=`vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 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`,dh=`#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif`,ph=`#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif`,mh=`#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif`,gh="gl_FragColor = linearToOutputTexel( gl_FragColor );",xh=`vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( 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}`,_h=`#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, 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`,yh=`#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\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`,vh=`#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`,Mh=`#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`,bh=`#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`,wh=`#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif`,Sh=`#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif`,Th=`#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`,Ah=`#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`,Eh=`#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}`,Ch=`#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif`,Ph=`#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif`,Rh=`LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;`,Lh=`varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, 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 GeometricContext geometry, 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`,Ih=`uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\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\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\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, const in GeometricContext geometry, 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 GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\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 GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\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`,Dh=`#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, 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#if defined( 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, 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#endif`,Nh=`ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;`,Fh=`varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, 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`,zh=`BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;`,Oh=`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 GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, 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`,Bh=`PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\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 SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\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, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).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_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).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_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif`,Uh=`struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\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};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness );\n\t#else\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, 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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, 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( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, 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}`,kh=`\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\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, geometry, 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.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, 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, geometry, 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.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, 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, geometry, 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.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, 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, geometry, 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\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\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 ], geometry.normal );\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`,Vh=`#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\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( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif`,Gh=`#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif`,Hh=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif`,Wh=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,qh=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif`,Xh=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif`,Yh=`#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif`,Zh=`#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif`,Jh=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\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`,$h=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Kh=`float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif`,jh=`#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif`,Qh=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\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`,tu=`#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif`,eu=`#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif`,nu=`#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif`,iu=`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 = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;`,su=`#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).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( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif`,ru=`#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`,ou=`#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`,au=`#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`,cu=`#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.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 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif`,lu=`#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif`,hu=`#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif`,uu=`#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif`,fu=`#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif`,du=`#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );`,pu=`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.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( 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( 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 linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( 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 invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}`,mu=`#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif`,gu=`vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;`,xu=`#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif`,_u=`#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`,yu=`float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif`,vu=`#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif`,Mu=`#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform 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 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 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 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 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 shadow;\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 shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif`,bu=`#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying 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 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 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 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`,wu=`#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`,Su=`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.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.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.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`,Au=`#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif`,Eu=`#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`,Cu=`#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`,Pu=`float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif`,Ru=`#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif`,Lu=`#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif`,Iu=`#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( 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}\nvec3 CustomToneMapping( vec3 color ) { return color; }`,Du=`#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, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif`,Nu=`#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\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 framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\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 ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif`,Fu=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif`,zu=`#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif`,Ou=`#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif`,Bu=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif`,Uu=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif`,ku=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif`,Vu=`#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_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif`,Gu=`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}`,Hu=`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 \n\t#include \n}`,Wu=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,qu=`#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;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, 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 \n\t#include \n}`,Xu=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \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 \n\t#include \n}`,Zu=`#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}`,Ju=`#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \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#endif\n}`,$u=`#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}`,Ku=`#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}`,ju=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}`,Qu=`uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}`,tf=`uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,ef=`uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,nf=`#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,sf=`uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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, vUv2 );\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 \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,rf=`#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,of=`#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,af=`#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}`,cf=`#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,lf=`#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}`,hf=`#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}`,uf=`#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,ff=`#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,df=`#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}`,pf=`#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define 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 SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\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_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \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 + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,mf=`#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}`,gf=`#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,xf=`uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n\t#include \n\t#include \n\t#include \n}`,_f=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,yf=`#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,vf=`uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}`,Mf=`uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\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 \n\t#include \n\t#include \n}`,bf=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,wt={alphamap_fragment:Wl,alphamap_pars_fragment:ql,alphatest_fragment:Xl,alphatest_pars_fragment:Yl,aomap_fragment:Zl,aomap_pars_fragment:Jl,begin_vertex:$l,beginnormal_vertex:Kl,bsdfs:jl,iridescence_fragment:Ql,bumpmap_pars_fragment:th,clipping_planes_fragment:eh,clipping_planes_pars_fragment:nh,clipping_planes_pars_vertex:ih,clipping_planes_vertex:sh,color_fragment:rh,color_pars_fragment:oh,color_pars_vertex:ah,color_vertex:ch,common:lh,cube_uv_reflection_fragment:hh,defaultnormal_vertex:uh,displacementmap_pars_vertex:fh,displacementmap_vertex:dh,emissivemap_fragment:ph,emissivemap_pars_fragment:mh,encodings_fragment:gh,encodings_pars_fragment:xh,envmap_fragment:_h,envmap_common_pars_fragment:yh,envmap_pars_fragment:vh,envmap_pars_vertex:Mh,envmap_physical_pars_fragment:Dh,envmap_vertex:bh,fog_vertex:wh,fog_pars_vertex:Sh,fog_fragment:Th,fog_pars_fragment:Ah,gradientmap_pars_fragment:Eh,lightmap_fragment:Ch,lightmap_pars_fragment:Ph,lights_lambert_fragment:Rh,lights_lambert_pars_fragment:Lh,lights_pars_begin:Ih,lights_toon_fragment:Nh,lights_toon_pars_fragment:Fh,lights_phong_fragment:zh,lights_phong_pars_fragment:Oh,lights_physical_fragment:Bh,lights_physical_pars_fragment:Uh,lights_fragment_begin:kh,lights_fragment_maps:Vh,lights_fragment_end:Gh,logdepthbuf_fragment:Hh,logdepthbuf_pars_fragment:Wh,logdepthbuf_pars_vertex:qh,logdepthbuf_vertex:Xh,map_fragment:Yh,map_pars_fragment:Zh,map_particle_fragment:Jh,map_particle_pars_fragment:$h,metalnessmap_fragment:Kh,metalnessmap_pars_fragment:jh,morphcolor_vertex:Qh,morphnormal_vertex:tu,morphtarget_pars_vertex:eu,morphtarget_vertex:nu,normal_fragment_begin:iu,normal_fragment_maps:su,normal_pars_fragment:ru,normal_pars_vertex:ou,normal_vertex:au,normalmap_pars_fragment:cu,clearcoat_normal_fragment_begin:lu,clearcoat_normal_fragment_maps:hu,clearcoat_pars_fragment:uu,iridescence_pars_fragment:fu,output_fragment:du,packing:pu,premultiplied_alpha_fragment:mu,project_vertex:gu,dithering_fragment:xu,dithering_pars_fragment:_u,roughnessmap_fragment:yu,roughnessmap_pars_fragment:vu,shadowmap_pars_fragment:Mu,shadowmap_pars_vertex:bu,shadowmap_vertex:wu,shadowmask_pars_fragment:Su,skinbase_vertex:Tu,skinning_pars_vertex:Au,skinning_vertex:Eu,skinnormal_vertex:Cu,specularmap_fragment:Pu,specularmap_pars_fragment:Ru,tonemapping_fragment:Lu,tonemapping_pars_fragment:Iu,transmission_fragment:Du,transmission_pars_fragment:Nu,uv_pars_fragment:Fu,uv_pars_vertex:zu,uv_vertex:Ou,uv2_pars_fragment:Bu,uv2_pars_vertex:Uu,uv2_vertex:ku,worldpos_vertex:Vu,background_vert:Gu,background_frag:Hu,backgroundCube_vert:Wu,backgroundCube_frag:qu,cube_vert:Xu,cube_frag:Yu,depth_vert:Zu,depth_frag:Ju,distanceRGBA_vert:$u,distanceRGBA_frag:Ku,equirect_vert:ju,equirect_frag:Qu,linedashed_vert:tf,linedashed_frag:ef,meshbasic_vert:nf,meshbasic_frag:sf,meshlambert_vert:rf,meshlambert_frag:of,meshmatcap_vert:af,meshmatcap_frag:cf,meshnormal_vert:lf,meshnormal_frag:hf,meshphong_vert:uf,meshphong_frag:ff,meshphysical_vert:df,meshphysical_frag:pf,meshtoon_vert:mf,meshtoon_frag:gf,points_vert:xf,points_frag:_f,shadow_vert:yf,shadow_frag:vf,sprite_vert:Mf,sprite_frag:bf},et={common:{diffuse:{value:new Bt(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new le},uv2Transform:{value:new le},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new At(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Bt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{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 Bt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new le}},sprite:{diffuse:{value:new Bt(16777215)},opacity:{value:1},center:{value:new At(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new le}}},He={basic:{uniforms:ae([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.fog]),vertexShader:wt.meshbasic_vert,fragmentShader:wt.meshbasic_frag},lambert:{uniforms:ae([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Bt(0)}}]),vertexShader:wt.meshlambert_vert,fragmentShader:wt.meshlambert_frag},phong:{uniforms:ae([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Bt(0)},specular:{value:new Bt(1118481)},shininess:{value:30}}]),vertexShader:wt.meshphong_vert,fragmentShader:wt.meshphong_frag},standard:{uniforms:ae([et.common,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.roughnessmap,et.metalnessmap,et.fog,et.lights,{emissive:{value:new Bt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag},toon:{uniforms:ae([et.common,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.gradientmap,et.fog,et.lights,{emissive:{value:new Bt(0)}}]),vertexShader:wt.meshtoon_vert,fragmentShader:wt.meshtoon_frag},matcap:{uniforms:ae([et.common,et.bumpmap,et.normalmap,et.displacementmap,et.fog,{matcap:{value:null}}]),vertexShader:wt.meshmatcap_vert,fragmentShader:wt.meshmatcap_frag},points:{uniforms:ae([et.points,et.fog]),vertexShader:wt.points_vert,fragmentShader:wt.points_frag},dashed:{uniforms:ae([et.common,et.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:wt.linedashed_vert,fragmentShader:wt.linedashed_frag},depth:{uniforms:ae([et.common,et.displacementmap]),vertexShader:wt.depth_vert,fragmentShader:wt.depth_frag},normal:{uniforms:ae([et.common,et.bumpmap,et.normalmap,et.displacementmap,{opacity:{value:1}}]),vertexShader:wt.meshnormal_vert,fragmentShader:wt.meshnormal_frag},sprite:{uniforms:ae([et.sprite,et.fog]),vertexShader:wt.sprite_vert,fragmentShader:wt.sprite_frag},background:{uniforms:{uvTransform:{value:new le},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:wt.background_vert,fragmentShader:wt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:wt.backgroundCube_vert,fragmentShader:wt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:wt.cube_vert,fragmentShader:wt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:wt.equirect_vert,fragmentShader:wt.equirect_frag},distanceRGBA:{uniforms:ae([et.common,et.displacementmap,{referencePosition:{value:new R},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:wt.distanceRGBA_vert,fragmentShader:wt.distanceRGBA_frag},shadow:{uniforms:ae([et.lights,et.fog,{color:{value:new Bt(0)},opacity:{value:1}}]),vertexShader:wt.shadow_vert,fragmentShader:wt.shadow_frag}};He.physical={uniforms:ae([He.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new At(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Bt(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new At},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Bt(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Bt(1,1,1)},specularColorMap:{value:null}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag};var fs={r:0,b:0,g:0};function wf(r,t,e,n,i,s,a){let o=new Bt(0),c=s===!0?0:1,l,h,f=null,u=0,m=null;function x(d,g){let M=!1,_=g.isScene===!0?g.background:null;_&&_.isTexture&&(_=(g.backgroundBlurriness>0?e:t).get(_));let v=r.xr,b=v.getSession&&v.getSession();b&&b.environmentBlendMode==="additive"&&(_=null),_===null?p(o,c):_&&_.isColor&&(p(_,1),M=!0),(r.autoClear||M)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),_&&(_.isCubeTexture||_.mapping===Ls)?(h===void 0&&(h=new qe(new zn(1,1,1),new on({name:"BackgroundCubeMaterial",uniforms:di(He.backgroundCube.uniforms),vertexShader:He.backgroundCube.vertexShader,fragmentShader:He.backgroundCube.fragmentShader,side:he,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(A,C,y){this.matrixWorld.copyPosition(y.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&_.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=g.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,h.material.toneMapped=_.encoding!==Ot,(f!==_||u!==_.version||m!==r.toneMapping)&&(h.material.needsUpdate=!0,f=_,u=_.version,m=r.toneMapping),h.layers.enableAll(),d.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(l===void 0&&(l=new qe(new ki(2,2),new on({name:"BackgroundMaterial",uniforms:di(He.background.uniforms),vertexShader:He.background.vertexShader,fragmentShader:He.background.fragmentShader,side:Ue,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=_,l.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,l.material.toneMapped=_.encoding!==Ot,_.matrixAutoUpdate===!0&&_.updateMatrix(),l.material.uniforms.uvTransform.value.copy(_.matrix),(f!==_||u!==_.version||m!==r.toneMapping)&&(l.material.needsUpdate=!0,f=_,u=_.version,m=r.toneMapping),l.layers.enableAll(),d.unshift(l,l.geometry,l.material,0,0,null))}function p(d,g){d.getRGB(fs,ja(r)),n.buffers.color.setClear(fs.r,fs.g,fs.b,g,a)}return{getClearColor:function(){return o},setClearColor:function(d,g=1){o.set(d),c=g,p(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(d){c=d,p(o,c)},render:x}}function Sf(r,t,e,n){let i=r.getParameter(34921),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),a=n.isWebGL2||s!==null,o={},c=d(null),l=c,h=!1;function f(I,k,Y,Z,H){let $=!1;if(a){let J=p(Z,Y,k);l!==J&&(l=J,m(l.object)),$=g(I,Z,Y,H),$&&M(I,Z,Y,H)}else{let J=k.wireframe===!0;(l.geometry!==Z.id||l.program!==Y.id||l.wireframe!==J)&&(l.geometry=Z.id,l.program=Y.id,l.wireframe=J,$=!0)}H!==null&&e.update(H,34963),($||h)&&(h=!1,y(I,k,Y,Z),H!==null&&r.bindBuffer(34963,e.get(H).buffer))}function u(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function m(I){return n.isWebGL2?r.bindVertexArray(I):s.bindVertexArrayOES(I)}function x(I){return n.isWebGL2?r.deleteVertexArray(I):s.deleteVertexArrayOES(I)}function p(I,k,Y){let Z=Y.wireframe===!0,H=o[I.id];H===void 0&&(H={},o[I.id]=H);let $=H[k.id];$===void 0&&($={},H[k.id]=$);let J=$[Z];return J===void 0&&(J=d(u()),$[Z]=J),J}function d(I){let k=[],Y=[],Z=[];for(let H=0;H=0){let nt=H[z],it=$[z];if(it===void 0&&(z==="instanceMatrix"&&I.instanceMatrix&&(it=I.instanceMatrix),z==="instanceColor"&&I.instanceColor&&(it=I.instanceColor)),nt===void 0||nt.attribute!==it||it&&nt.data!==it.data)return!0;J++}return l.attributesNum!==J||l.index!==Z}function M(I,k,Y,Z){let H={},$=k.attributes,J=0,dt=Y.getAttributes();for(let z in dt)if(dt[z].location>=0){let nt=$[z];nt===void 0&&(z==="instanceMatrix"&&I.instanceMatrix&&(nt=I.instanceMatrix),z==="instanceColor"&&I.instanceColor&&(nt=I.instanceColor));let it={};it.attribute=nt,nt&&nt.data&&(it.data=nt.data),H[z]=it,J++}l.attributes=H,l.attributesNum=J,l.index=Z}function _(){let I=l.newAttributes;for(let k=0,Y=I.length;k=0){let K=H[dt];if(K===void 0&&(dt==="instanceMatrix"&&I.instanceMatrix&&(K=I.instanceMatrix),dt==="instanceColor"&&I.instanceColor&&(K=I.instanceColor)),K!==void 0){let nt=K.normalized,it=K.itemSize,U=e.get(K);if(U===void 0)continue;let Mt=U.buffer,ht=U.type,ut=U.bytesPerElement;if(K.isInterleavedBufferAttribute){let at=K.data,Ft=at.stride,bt=K.offset;if(at.isInstancedInterleavedBuffer){for(let _t=0;_t0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";C="mediump"}return C==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let a=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext,o=e.precision!==void 0?e.precision:"highp",c=s(o);c!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",c,"instead."),o=c);let l=a||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,f=r.getParameter(34930),u=r.getParameter(35660),m=r.getParameter(3379),x=r.getParameter(34076),p=r.getParameter(34921),d=r.getParameter(36347),g=r.getParameter(36348),M=r.getParameter(36349),_=u>0,v=a||t.has("OES_texture_float"),b=_&&v,A=a?r.getParameter(36183):0;return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:s,precision:o,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:u,maxTextureSize:m,maxCubemapSize:x,maxAttributes:p,maxVertexUniforms:d,maxVaryings:g,maxFragmentUniforms:M,vertexTextures:_,floatFragmentTextures:v,floatVertexTextures:b,maxSamples:A}}function Ef(r){let t=this,e=null,n=0,i=!1,s=!1,a=new Te,o=new le,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,u){let m=f.length!==0||u||n!==0||i;return i=u,n=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,u){e=h(f,u,0)},this.setState=function(f,u,m){let x=f.clippingPlanes,p=f.clipIntersection,d=f.clipShadows,g=r.get(f);if(!i||x===null||x.length===0||s&&!d)s?h(null):l();else{let M=s?0:n,_=M*4,v=g.clippingState||null;c.value=v,v=h(x,u,_,m);for(let b=0;b!==_;++b)v[b]=e[b];g.clippingState=v,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=M}};function l(){c.value!==e&&(c.value=e,c.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(f,u,m,x){let p=f!==null?f.length:0,d=null;if(p!==0){if(d=c.value,x!==!0||d===null){let g=m+p*4,M=u.matrixWorldInverse;o.getNormalMatrix(M),(d===null||d.length0){let l=new Or(c.height/2);return l.fromEquirectangularTexture(r,a),t.set(a,l),a.addEventListener("dispose",i),e(l.texture,a.mapping)}else return null}}return a}function i(a){let o=a.target;o.removeEventListener("dispose",i);let c=t.get(o);c!==void 0&&(t.delete(o),c.dispose())}function s(){t=new WeakMap}return{get:n,dispose:s}}var Br=class extends Es{constructor(t=-1,e=1,n=1,i=-1,s=.1,a=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=s,this.far=a,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=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,a){this.view===null&&(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=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let 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,s=n-t,a=n+t,o=i+e,c=i-e;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=l*this.view.offsetX,a=s+l*this.view.width,o-=h*this.view.offsetY,c=o-h*this.view.height}this.projectionMatrix.makeOrthographic(s,a,o,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let 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,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},ii=4,ba=[.125,.215,.35,.446,.526,.582],Cn=20,Sr=new Br,wa=new Bt,Tr=null,En=(1+Math.sqrt(5))/2,ei=1/En,Sa=[new R(1,1,1),new R(-1,1,1),new R(1,1,-1),new R(-1,1,-1),new R(0,En,ei),new R(0,En,-ei),new R(ei,0,En),new R(-ei,0,En),new R(En,ei,0),new R(-En,ei,0)],Rs=class{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){Tr=this._renderer.getRenderTarget(),this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Ea(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Aa(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?_:0,_,_),h.setRenderTarget(i),p&&h.render(x,o),h.render(t,o)}x.geometry.dispose(),x.material.dispose(),h.toneMapping=u,h.autoClear=f,t.background=d}_textureToCubeUV(t,e){let n=this._renderer,i=t.mapping===ci||t.mapping===li;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Ea()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Aa());let s=i?this._cubemapMaterial:this._equirectMaterial,a=new qe(this._lodPlanes[0],s),o=s.uniforms;o.envMap.value=t;let c=this._cubeSize;ds(e,0,0,3*c,2*c),n.setRenderTarget(e),n.render(a,Sr)}_applyPMREM(t){let e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let i=1;iCn&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${d} samples when the maximum is set to ${Cn}`);let g=[],M=0;for(let C=0;C_-ii?i-_+ii:0),A=4*(this._cubeSize-v);ds(e,b,A,3*v,2*v),c.setRenderTarget(e),c.render(f,Sr)}};function Pf(r){let t=[],e=[],n=[],i=r,s=r-ii+1+ba.length;for(let a=0;ar-ii?c=ba[a-r+ii-1]:a===0&&(c=0),n.push(c);let l=1/(o-2),h=-l,f=1+l,u=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,x=6,p=3,d=2,g=1,M=new Float32Array(p*x*m),_=new Float32Array(d*x*m),v=new Float32Array(g*x*m);for(let A=0;A2?0:-1,S=[C,y,0,C+2/3,y,0,C+2/3,y+1,0,C,y,0,C+2/3,y+1,0,C,y+1,0];M.set(S,p*x*A),_.set(u,d*x*A);let P=[A,A,A,A,A,A];v.set(P,g*x*A)}let b=new ke;b.setAttribute("position",new Yt(M,p)),b.setAttribute("uv",new Yt(_,d)),b.setAttribute("faceIndex",new Yt(v,g)),t.push(b),i>ii&&i--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Ta(r,t,e){let n=new rn(r,t,e);return n.texture.mapping=Ls,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function ds(r,t,e,n,i){r.viewport.set(t,e,n,i),r.scissor.set(t,e,n,i)}function Rf(r,t,e){let n=new Float32Array(Cn),i=new R(0,1,0);return new on({name:"SphericalGaussianBlur",defines:{n:Cn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:oo(),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 \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:pn,depthTest:!1,depthWrite:!1})}function Aa(){return new on({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:oo(),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 \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:pn,depthTest:!1,depthWrite:!1})}function Ea(){return new on({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:oo(),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:pn,depthTest:!1,depthWrite:!1})}function oo(){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 Lf(r){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){let c=o.mapping,l=c===Cr||c===Pr,h=c===ci||c===li;if(l||h)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let f=t.get(o);return e===null&&(e=new Rs(r)),f=l?e.fromEquirectangular(o,f):e.fromCubemap(o,f),t.set(o,f),f.texture}else{if(t.has(o))return t.get(o).texture;{let f=o.image;if(l&&f&&f.height>0||h&&f&&i(f)){e===null&&(e=new Rs(r));let u=l?e.fromEquirectangular(o):e.fromCubemap(o);return t.set(o,u),o.addEventListener("dispose",s),u.texture}else return null}}}return o}function i(o){let c=0,l=6;for(let h=0;ht.maxTextureSize&&(O=Math.ceil(P/t.maxTextureSize),P=t.maxTextureSize);let B=new Float32Array(P*O*4*p),D=new bs(B,P,O,p);D.type=Rn,D.needsUpdate=!0;let I=S*4;for(let Y=0;Y0)return r;let i=t*e,s=Ca[i];if(s===void 0&&(s=new Float32Array(i),Ca[i]=s),t!==0){n.toArray(s,0);for(let a=1,o=0;a!==t;++a)o+=e,r[a].toArray(s,o)}return s}function Zt(r,t){if(r.length!==t.length)return!1;for(let e=0,n=r.length;e":" "} ${o}: ${e[a]}`)}return n.join(`\n`)}function Pd(r){switch(r){case Nn:return["Linear","( value )"];case Ot:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",r),["Linear","( value )"]}}function Fa(r,t,e){let n=r.getShaderParameter(t,35713),i=r.getShaderInfoLog(t).trim();if(n&&i==="")return"";let s=/ERROR: 0:(\\d+)/.exec(i);if(s){let a=parseInt(s[1]);return e.toUpperCase()+`\n\n`+i+`\n\n`+Cd(r.getShaderSource(t),a)}else return i}function Rd(r,t){let e=Pd(t);return"vec4 "+r+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function Ld(r,t){let e;switch(t){case Qc:e="Linear";break;case tl:e="Reinhard";break;case el:e="OptimizedCineon";break;case nl:e="ACESFilmic";break;case il:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+r+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function Id(r){return[r.extensionDerivatives||r.envMapCubeUVHeight||r.bumpMap||r.tangentSpaceNormalMap||r.clearcoatNormalMap||r.flatShading||r.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(r.extensionFragDepth||r.logarithmicDepthBuffer)&&r.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",r.extensionDrawBuffers&&r.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(r.extensionShaderTextureLOD||r.envMap||r.transmission)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Fi).join(`\n`)}function Dd(r){let t=[];for(let e in r){let n=r[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(`\n`)}function Nd(r,t){let e={},n=r.getProgramParameter(t,35721);for(let i=0;i/gm;function Gr(r){return r.replace(Fd,zd)}function zd(r,t){let e=wt[t];if(e===void 0)throw new Error("Can not resolve #include <"+t+">");return Gr(e)}var Od=/#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 Ba(r){return r.replace(Od,Bd)}function Bd(r,t,e,n){let i="";for(let s=parseInt(t);s0&&(d+=`\n`),g=[m,x].filter(Fi).join(`\n`),g.length>0&&(g+=`\n`)):(d=[Ua(e),"#define SHADER_NAME "+e.shaderName,x,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.supportsVertexTextures?"#define VERTEX_TEXTURES":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.displacementMap&&e.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","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","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif",`\n`].filter(Fi).join(`\n`),g=[m,Ua(e),"#define SHADER_NAME "+e.shaderName,x,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+l:"",e.envMap?"#define "+h:"",e.envMap?"#define "+f:"",u?"#define CUBEUV_TEXEL_WIDTH "+u.texelWidth:"",u?"#define CUBEUV_TEXEL_HEIGHT "+u.texelHeight:"",u?"#define CUBEUV_MAX_MIP "+u.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==nn?"#define TONE_MAPPING":"",e.toneMapping!==nn?wt.tonemapping_pars_fragment:"",e.toneMapping!==nn?Ld("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",wt.encodings_pars_fragment,Rd("linearToOutputTexel",e.outputEncoding),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",`\n`].filter(Fi).join(`\n`)),a=Gr(a),a=za(a,e),a=Oa(a,e),o=Gr(o),o=za(o,e),o=Oa(o,e),a=Ba(a),o=Ba(o),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(M=`#version 300 es\n`,d=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(`\n`)+`\n`+d,g=["#define varying in",e.glslVersion===la?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===la?"":"#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`+g);let _=M+d+a,v=M+g+o,b=Na(i,35633,_),A=Na(i,35632,v);if(i.attachShader(p,b),i.attachShader(p,A),e.index0AttributeName!==void 0?i.bindAttribLocation(p,0,e.index0AttributeName):e.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p),r.debug.checkShaderErrors){let S=i.getProgramInfoLog(p).trim(),P=i.getShaderInfoLog(b).trim(),O=i.getShaderInfoLog(A).trim(),B=!0,D=!0;if(i.getProgramParameter(p,35714)===!1){B=!1;let I=Fa(i,b,"vertex"),k=Fa(i,A,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,35715)+`\n\nProgram Info Log: `+S+`\n`+I+`\n`+k)}else S!==""?console.warn("THREE.WebGLProgram: Program Info Log:",S):(P===""||O==="")&&(D=!1);D&&(this.diagnostics={runnable:B,programLog:S,vertexShader:{log:P,prefix:d},fragmentShader:{log:O,prefix:g}})}i.deleteShader(b),i.deleteShader(A);let C;this.getUniforms=function(){return C===void 0&&(C=new ai(i,p)),C};let y;return this.getAttributes=function(){return y===void 0&&(y=Nd(i,p)),y},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.name=e.shaderName,this.id=Ed++,this.cacheKey=t,this.usedTimes=1,this.program=p,this.vertexShader=b,this.fragmentShader=A,this}var qd=0,Hr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),s=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return a.has(i)===!1&&(a.add(i),i.usedTimes++),a.has(s)===!1&&(a.add(s),s.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let n of e)n.usedTimes--,n.usedTimes===0&&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){let e=this.materialCache,n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){let e=this.shaderCache,n=e.get(t);return n===void 0&&(n=new Wr(t),e.set(t,n)),n}},Wr=class{constructor(t){this.id=qd++,this.code=t,this.usedTimes=0}};function Xd(r,t,e,n,i,s,a){let o=new ws,c=new Hr,l=[],h=i.isWebGL2,f=i.logarithmicDepthBuffer,u=i.vertexTextures,m=i.precision,x={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 p(y,S,P,O,B){let D=O.fog,I=B.geometry,k=y.isMeshStandardMaterial?O.environment:null,Y=(y.isMeshStandardMaterial?e:t).get(y.envMap||k),Z=Y&&Y.mapping===Ls?Y.image.height:null,H=x[y.type];y.precision!==null&&(m=i.getMaxPrecision(y.precision),m!==y.precision&&console.warn("THREE.WebGLProgram.getParameters:",y.precision,"not supported, using",m,"instead."));let $=I.morphAttributes.position||I.morphAttributes.normal||I.morphAttributes.color,J=$!==void 0?$.length:0,dt=0;I.morphAttributes.position!==void 0&&(dt=1),I.morphAttributes.normal!==void 0&&(dt=2),I.morphAttributes.color!==void 0&&(dt=3);let z,K,nt,it;if(H){let Ft=He[H];z=Ft.vertexShader,K=Ft.fragmentShader}else z=y.vertexShader,K=y.fragmentShader,c.update(y),nt=c.getVertexShaderID(y),it=c.getFragmentShaderID(y);let U=r.getRenderTarget(),Mt=y.alphaTest>0,ht=y.clearcoat>0,ut=y.iridescence>0;return{isWebGL2:h,shaderID:H,shaderName:y.type,vertexShader:z,fragmentShader:K,defines:y.defines,customVertexShaderID:nt,customFragmentShaderID:it,isRawShaderMaterial:y.isRawShaderMaterial===!0,glslVersion:y.glslVersion,precision:m,instancing:B.isInstancedMesh===!0,instancingColor:B.isInstancedMesh===!0&&B.instanceColor!==null,supportsVertexTextures:u,outputEncoding:U===null?r.outputEncoding:U.isXRRenderTarget===!0?U.texture.encoding:Nn,map:!!y.map,matcap:!!y.matcap,envMap:!!Y,envMapMode:Y&&Y.mapping,envMapCubeUVHeight:Z,lightMap:!!y.lightMap,aoMap:!!y.aoMap,emissiveMap:!!y.emissiveMap,bumpMap:!!y.bumpMap,normalMap:!!y.normalMap,objectSpaceNormalMap:y.normalMapType===wl,tangentSpaceNormalMap:y.normalMapType===bl,decodeVideoTexture:!!y.map&&y.map.isVideoTexture===!0&&y.map.encoding===Ot,clearcoat:ht,clearcoatMap:ht&&!!y.clearcoatMap,clearcoatRoughnessMap:ht&&!!y.clearcoatRoughnessMap,clearcoatNormalMap:ht&&!!y.clearcoatNormalMap,iridescence:ut,iridescenceMap:ut&&!!y.iridescenceMap,iridescenceThicknessMap:ut&&!!y.iridescenceThicknessMap,displacementMap:!!y.displacementMap,roughnessMap:!!y.roughnessMap,metalnessMap:!!y.metalnessMap,specularMap:!!y.specularMap,specularIntensityMap:!!y.specularIntensityMap,specularColorMap:!!y.specularColorMap,opaque:y.transparent===!1&&y.blending===ri,alphaMap:!!y.alphaMap,alphaTest:Mt,gradientMap:!!y.gradientMap,sheen:y.sheen>0,sheenColorMap:!!y.sheenColorMap,sheenRoughnessMap:!!y.sheenRoughnessMap,transmission:y.transmission>0,transmissionMap:!!y.transmissionMap,thicknessMap:!!y.thicknessMap,combine:y.combine,vertexTangents:!!y.normalMap&&!!I.attributes.tangent,vertexColors:y.vertexColors,vertexAlphas:y.vertexColors===!0&&!!I.attributes.color&&I.attributes.color.itemSize===4,vertexUvs:!!y.map||!!y.bumpMap||!!y.normalMap||!!y.specularMap||!!y.alphaMap||!!y.emissiveMap||!!y.roughnessMap||!!y.metalnessMap||!!y.clearcoatMap||!!y.clearcoatRoughnessMap||!!y.clearcoatNormalMap||!!y.iridescenceMap||!!y.iridescenceThicknessMap||!!y.displacementMap||!!y.transmissionMap||!!y.thicknessMap||!!y.specularIntensityMap||!!y.specularColorMap||!!y.sheenColorMap||!!y.sheenRoughnessMap,uvsVertexOnly:!(y.map||y.bumpMap||y.normalMap||y.specularMap||y.alphaMap||y.emissiveMap||y.roughnessMap||y.metalnessMap||y.clearcoatNormalMap||y.iridescenceMap||y.iridescenceThicknessMap||y.transmission>0||y.transmissionMap||y.thicknessMap||y.specularIntensityMap||y.specularColorMap||y.sheen>0||y.sheenColorMap||y.sheenRoughnessMap)&&!!y.displacementMap,fog:!!D,useFog:y.fog===!0,fogExp2:D&&D.isFogExp2,flatShading:!!y.flatShading,sizeAttenuation:y.sizeAttenuation,logarithmicDepthBuffer:f,skinning:B.isSkinnedMesh===!0,morphTargets:I.morphAttributes.position!==void 0,morphNormals:I.morphAttributes.normal!==void 0,morphColors:I.morphAttributes.color!==void 0,morphTargetsCount:J,morphTextureStride:dt,numDirLights:S.directional.length,numPointLights:S.point.length,numSpotLights:S.spot.length,numSpotLightMaps:S.spotLightMap.length,numRectAreaLights:S.rectArea.length,numHemiLights:S.hemi.length,numDirLightShadows:S.directionalShadowMap.length,numPointLightShadows:S.pointShadowMap.length,numSpotLightShadows:S.spotShadowMap.length,numSpotLightShadowsWithMaps:S.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:y.dithering,shadowMapEnabled:r.shadowMap.enabled&&P.length>0,shadowMapType:r.shadowMap.type,toneMapping:y.toneMapped?r.toneMapping:nn,physicallyCorrectLights:r.physicallyCorrectLights,premultipliedAlpha:y.premultipliedAlpha,doubleSided:y.side===We,flipSided:y.side===he,useDepthPacking:!!y.depthPacking,depthPacking:y.depthPacking||0,index0AttributeName:y.index0AttributeName,extensionDerivatives:y.extensions&&y.extensions.derivatives,extensionFragDepth:y.extensions&&y.extensions.fragDepth,extensionDrawBuffers:y.extensions&&y.extensions.drawBuffers,extensionShaderTextureLOD:y.extensions&&y.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:y.customProgramCacheKey()}}function d(y){let S=[];if(y.shaderID?S.push(y.shaderID):(S.push(y.customVertexShaderID),S.push(y.customFragmentShaderID)),y.defines!==void 0)for(let P in y.defines)S.push(P),S.push(y.defines[P]);return y.isRawShaderMaterial===!1&&(g(S,y),M(S,y),S.push(r.outputEncoding)),S.push(y.customProgramCacheKey),S.join()}function g(y,S){y.push(S.precision),y.push(S.outputEncoding),y.push(S.envMapMode),y.push(S.envMapCubeUVHeight),y.push(S.combine),y.push(S.vertexUvs),y.push(S.fogExp2),y.push(S.sizeAttenuation),y.push(S.morphTargetsCount),y.push(S.morphAttributeCount),y.push(S.numDirLights),y.push(S.numPointLights),y.push(S.numSpotLights),y.push(S.numSpotLightMaps),y.push(S.numHemiLights),y.push(S.numRectAreaLights),y.push(S.numDirLightShadows),y.push(S.numPointLightShadows),y.push(S.numSpotLightShadows),y.push(S.numSpotLightShadowsWithMaps),y.push(S.shadowMapType),y.push(S.toneMapping),y.push(S.numClippingPlanes),y.push(S.numClipIntersection),y.push(S.depthPacking)}function M(y,S){o.disableAll(),S.isWebGL2&&o.enable(0),S.supportsVertexTextures&&o.enable(1),S.instancing&&o.enable(2),S.instancingColor&&o.enable(3),S.map&&o.enable(4),S.matcap&&o.enable(5),S.envMap&&o.enable(6),S.lightMap&&o.enable(7),S.aoMap&&o.enable(8),S.emissiveMap&&o.enable(9),S.bumpMap&&o.enable(10),S.normalMap&&o.enable(11),S.objectSpaceNormalMap&&o.enable(12),S.tangentSpaceNormalMap&&o.enable(13),S.clearcoat&&o.enable(14),S.clearcoatMap&&o.enable(15),S.clearcoatRoughnessMap&&o.enable(16),S.clearcoatNormalMap&&o.enable(17),S.iridescence&&o.enable(18),S.iridescenceMap&&o.enable(19),S.iridescenceThicknessMap&&o.enable(20),S.displacementMap&&o.enable(21),S.specularMap&&o.enable(22),S.roughnessMap&&o.enable(23),S.metalnessMap&&o.enable(24),S.gradientMap&&o.enable(25),S.alphaMap&&o.enable(26),S.alphaTest&&o.enable(27),S.vertexColors&&o.enable(28),S.vertexAlphas&&o.enable(29),S.vertexUvs&&o.enable(30),S.vertexTangents&&o.enable(31),S.uvsVertexOnly&&o.enable(32),y.push(o.mask),o.disableAll(),S.fog&&o.enable(0),S.useFog&&o.enable(1),S.flatShading&&o.enable(2),S.logarithmicDepthBuffer&&o.enable(3),S.skinning&&o.enable(4),S.morphTargets&&o.enable(5),S.morphNormals&&o.enable(6),S.morphColors&&o.enable(7),S.premultipliedAlpha&&o.enable(8),S.shadowMapEnabled&&o.enable(9),S.physicallyCorrectLights&&o.enable(10),S.doubleSided&&o.enable(11),S.flipSided&&o.enable(12),S.useDepthPacking&&o.enable(13),S.dithering&&o.enable(14),S.specularIntensityMap&&o.enable(15),S.specularColorMap&&o.enable(16),S.transmission&&o.enable(17),S.transmissionMap&&o.enable(18),S.thicknessMap&&o.enable(19),S.sheen&&o.enable(20),S.sheenColorMap&&o.enable(21),S.sheenRoughnessMap&&o.enable(22),S.decodeVideoTexture&&o.enable(23),S.opaque&&o.enable(24),y.push(o.mask)}function _(y){let S=x[y.type],P;if(S){let O=He[S];P=Bl.clone(O.uniforms)}else P=y.uniforms;return P}function v(y,S){let P;for(let O=0,B=l.length;O0?n.push(g):m.transparent===!0?i.push(g):e.push(g)}function c(f,u,m,x,p,d){let g=a(f,u,m,x,p,d);m.transmission>0?n.unshift(g):m.transparent===!0?i.unshift(g):e.unshift(g)}function l(f,u){e.length>1&&e.sort(f||Zd),n.length>1&&n.sort(u||ka),i.length>1&&i.sort(u||ka)}function h(){for(let f=t,u=r.length;f=s.length?(a=new Va,s.push(a)):a=s[i],a}function e(){r=new WeakMap}return{get:t,dispose:e}}function $d(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new R,color:new Bt};break;case"SpotLight":e={position:new R,direction:new R,color:new Bt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new R,color:new Bt,distance:0,decay:0};break;case"HemisphereLight":e={direction:new R,skyColor:new Bt,groundColor:new Bt};break;case"RectAreaLight":e={color:new Bt,position:new R,halfWidth:new R,halfHeight:new R};break}return r[t.id]=e,e}}}function Kd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[t.id]=e,e}}}var jd=0;function Qd(r,t){return(t.castShadow?2:0)-(r.castShadow?2:0)+(t.map?1:0)-(r.map?1:0)}function tp(r,t){let e=new $d,n=Kd(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-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};for(let h=0;h<9;h++)i.probe.push(new R);let s=new R,a=new zt,o=new zt;function c(h,f){let u=0,m=0,x=0;for(let O=0;O<9;O++)i.probe[O].set(0,0,0);let p=0,d=0,g=0,M=0,_=0,v=0,b=0,A=0,C=0,y=0;h.sort(Qd);let S=f!==!0?Math.PI:1;for(let O=0,B=h.length;O0&&(t.isWebGL2||r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=et.LTC_FLOAT_1,i.rectAreaLTC2=et.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=et.LTC_HALF_1,i.rectAreaLTC2=et.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=u,i.ambient[1]=m,i.ambient[2]=x;let P=i.hash;(P.directionalLength!==p||P.pointLength!==d||P.spotLength!==g||P.rectAreaLength!==M||P.hemiLength!==_||P.numDirectionalShadows!==v||P.numPointShadows!==b||P.numSpotShadows!==A||P.numSpotMaps!==C)&&(i.directional.length=p,i.spot.length=g,i.rectArea.length=M,i.point.length=d,i.hemi.length=_,i.directionalShadow.length=v,i.directionalShadowMap.length=v,i.pointShadow.length=b,i.pointShadowMap.length=b,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=v,i.pointShadowMatrix.length=b,i.spotLightMatrix.length=A+C-y,i.spotLightMap.length=C,i.numSpotLightShadowsWithMaps=y,P.directionalLength=p,P.pointLength=d,P.spotLength=g,P.rectAreaLength=M,P.hemiLength=_,P.numDirectionalShadows=v,P.numPointShadows=b,P.numSpotShadows=A,P.numSpotMaps=C,i.version=jd++)}function l(h,f){let u=0,m=0,x=0,p=0,d=0,g=f.matrixWorldInverse;for(let M=0,_=h.length;M<_;M++){let v=h[M];if(v.isDirectionalLight){let b=i.directional[u];b.direction.setFromMatrixPosition(v.matrixWorld),s.setFromMatrixPosition(v.target.matrixWorld),b.direction.sub(s),b.direction.transformDirection(g),u++}else if(v.isSpotLight){let b=i.spot[x];b.position.setFromMatrixPosition(v.matrixWorld),b.position.applyMatrix4(g),b.direction.setFromMatrixPosition(v.matrixWorld),s.setFromMatrixPosition(v.target.matrixWorld),b.direction.sub(s),b.direction.transformDirection(g),x++}else if(v.isRectAreaLight){let b=i.rectArea[p];b.position.setFromMatrixPosition(v.matrixWorld),b.position.applyMatrix4(g),o.identity(),a.copy(v.matrixWorld),a.premultiply(g),o.extractRotation(a),b.halfWidth.set(v.width*.5,0,0),b.halfHeight.set(0,v.height*.5,0),b.halfWidth.applyMatrix4(o),b.halfHeight.applyMatrix4(o),p++}else if(v.isPointLight){let b=i.point[m];b.position.setFromMatrixPosition(v.matrixWorld),b.position.applyMatrix4(g),m++}else if(v.isHemisphereLight){let b=i.hemi[d];b.direction.setFromMatrixPosition(v.matrixWorld),b.direction.transformDirection(g),d++}}}return{setup:c,setupView:l,state:i}}function Ga(r,t){let e=new tp(r,t),n=[],i=[];function s(){n.length=0,i.length=0}function a(f){n.push(f)}function o(f){i.push(f)}function c(f){e.setup(n,f)}function l(f){e.setupView(n,f)}return{init:s,state:{lightsArray:n,shadowsArray:i,lights:e},setupLights:c,setupLightsView:l,pushLight:a,pushShadow:o}}function ep(r,t){let e=new WeakMap;function n(s,a=0){let o=e.get(s),c;return o===void 0?(c=new Ga(r,t),e.set(s,[c])):a>=o.length?(c=new Ga(r,t),o.push(c)):c=o[a],c}function i(){e=new WeakMap}return{get:n,dispose:i}}var qr=class extends fi{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=vl,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}},Xr=class extends fi{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new R,this.nearDistance=1,this.farDistance=1e3,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.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},np=`void main() {\n\tgl_Position = vec4( position, 1.0 );\n}`,ip=`uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \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 sp(r,t,e){let n=new Ps,i=new At,s=new At,a=new Xt,o=new qr({depthPacking:Ml}),c=new Xr,l={},h=e.maxTextureSize,f={[Ue]:he,[he]:Ue,[We]:We},u=new on({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new At},radius:{value:4}},vertexShader:np,fragmentShader:ip}),m=u.clone();m.defines.HORIZONTAL_PASS=1;let x=new ke;x.setAttribute("position",new Yt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let p=new qe(x,u),d=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Wa,this.render=function(v,b,A){if(d.enabled===!1||d.autoUpdate===!1&&d.needsUpdate===!1||v.length===0)return;let C=r.getRenderTarget(),y=r.getActiveCubeFace(),S=r.getActiveMipmapLevel(),P=r.state;P.setBlending(pn),P.buffers.color.setClear(1,1,1,1),P.buffers.depth.setTest(!0),P.setScissorTest(!1);for(let O=0,B=v.length;Oh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/k.x),i.x=s.x*k.x,I.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/k.y),i.y=s.y*k.y,I.mapSize.y=s.y)),I.map===null){let Z=this.type!==Ni?{minFilter:ce,magFilter:ce}:{};I.map=new rn(i.x,i.y,Z),I.map.texture.name=D.name+".shadowMap",I.camera.updateProjectionMatrix()}r.setRenderTarget(I.map),r.clear();let Y=I.getViewportCount();for(let Z=0;Z0||b.map&&b.alphaTest>0){let B=P.uuid,D=b.uuid,I=l[B];I===void 0&&(I={},l[B]=I);let k=I[D];k===void 0&&(k=P.clone(),I[D]=k),P=k}return P.visible=b.visible,P.wireframe=b.wireframe,S===Ni?P.side=b.shadowSide!==null?b.shadowSide:b.side:P.side=b.shadowSide!==null?b.shadowSide:f[b.side],P.alphaMap=b.alphaMap,P.alphaTest=b.alphaTest,P.map=b.map,P.clipShadows=b.clipShadows,P.clippingPlanes=b.clippingPlanes,P.clipIntersection=b.clipIntersection,P.displacementMap=b.displacementMap,P.displacementScale=b.displacementScale,P.displacementBias=b.displacementBias,P.wireframeLinewidth=b.wireframeLinewidth,P.linewidth=b.linewidth,A.isPointLight===!0&&P.isMeshDistanceMaterial===!0&&(P.referencePosition.setFromMatrixPosition(A.matrixWorld),P.nearDistance=C,P.farDistance=y),P}function _(v,b,A,C,y){if(v.visible===!1)return;if(v.layers.test(b.layers)&&(v.isMesh||v.isLine||v.isPoints)&&(v.castShadow||v.receiveShadow&&y===Ni)&&(!v.frustumCulled||n.intersectsObject(v))){v.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,v.matrixWorld);let O=t.update(v),B=v.material;if(Array.isArray(B)){let D=O.groups;for(let I=0,k=D.length;I=1):H.indexOf("OpenGL ES")!==-1&&(Z=parseFloat(/^OpenGL ES (\\d)/.exec(H)[1]),Y=Z>=2);let $=null,J={},dt=r.getParameter(3088),z=r.getParameter(2978),K=new Xt().fromArray(dt),nt=new Xt().fromArray(z);function it(L,V,j){let ot=new Uint8Array(4),lt=r.createTexture();r.bindTexture(L,lt),r.texParameteri(L,10241,9728),r.texParameteri(L,10240,9728);for(let It=0;ItQ||E.height>Q)&&(tt=Q/Math.max(E.width,E.height)),tt<1||w===!0)if(typeof HTMLImageElement!="undefined"&&E instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&E instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&E instanceof ImageBitmap){let st=w?Dr:Math.floor,yt=st(tt*E.width),rt=st(tt*E.height);p===void 0&&(p=M(yt,rt));let X=W?M(yt,rt):p;return X.width=yt,X.height=rt,X.getContext("2d").drawImage(E,0,0,yt,rt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+E.width+"x"+E.height+") to ("+yt+"x"+rt+")."),X}else return"data"in E&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+E.width+"x"+E.height+")."),E;return E}function v(E){return ua(E.width)&&ua(E.height)}function b(E){return o?!1:E.wrapS!==Oe||E.wrapT!==Oe||E.minFilter!==ce&&E.minFilter!==Re}function A(E,w){return E.generateMipmaps&&w&&E.minFilter!==ce&&E.minFilter!==Re}function C(E){r.generateMipmap(E)}function y(E,w,W,Q,tt=!1){if(o===!1)return w;if(E!==null){if(r[E]!==void 0)return r[E];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'"+E+"\'")}let st=w;return w===6403&&(W===5126&&(st=33326),W===5131&&(st=33325),W===5121&&(st=33321)),w===33319&&(W===5126&&(st=33328),W===5131&&(st=33327),W===5121&&(st=33323)),w===6408&&(W===5126&&(st=34836),W===5131&&(st=34842),W===5121&&(st=Q===Ot&&tt===!1?35907:32856),W===32819&&(st=32854),W===32820&&(st=32855)),(st===33325||st===33326||st===33327||st===33328||st===34842||st===34836)&&t.get("EXT_color_buffer_float"),st}function S(E,w,W){return A(E,W)===!0||E.isFramebufferTexture&&E.minFilter!==ce&&E.minFilter!==Re?Math.log2(Math.max(w.width,w.height))+1:E.mipmaps!==void 0&&E.mipmaps.length>0?E.mipmaps.length:E.isCompressedTexture&&Array.isArray(E.image)?w.mipmaps.length:1}function P(E){return E===ce||E===Fo||E===Zs?9728:9729}function O(E){let w=E.target;w.removeEventListener("dispose",O),D(w),w.isVideoTexture&&x.delete(w)}function B(E){let w=E.target;w.removeEventListener("dispose",B),k(w)}function D(E){let w=n.get(E);if(w.__webglInit===void 0)return;let W=E.source,Q=d.get(W);if(Q){let tt=Q[w.__cacheKey];tt.usedTimes--,tt.usedTimes===0&&I(E),Object.keys(Q).length===0&&d.delete(W)}n.remove(E)}function I(E){let w=n.get(E);r.deleteTexture(w.__webglTexture);let W=E.source,Q=d.get(W);delete Q[w.__cacheKey],a.memory.textures--}function k(E){let w=E.texture,W=n.get(E),Q=n.get(w);if(Q.__webglTexture!==void 0&&(r.deleteTexture(Q.__webglTexture),a.memory.textures--),E.depthTexture&&E.depthTexture.dispose(),E.isWebGLCubeRenderTarget)for(let tt=0;tt<6;tt++)r.deleteFramebuffer(W.__webglFramebuffer[tt]),W.__webglDepthbuffer&&r.deleteRenderbuffer(W.__webglDepthbuffer[tt]);else{if(r.deleteFramebuffer(W.__webglFramebuffer),W.__webglDepthbuffer&&r.deleteRenderbuffer(W.__webglDepthbuffer),W.__webglMultisampledFramebuffer&&r.deleteFramebuffer(W.__webglMultisampledFramebuffer),W.__webglColorRenderbuffer)for(let tt=0;tt=c&&console.warn("THREE.WebGLTextures: Trying to use "+E+" texture units while this GPU supports only "+c),Y+=1,E}function $(E){let w=[];return w.push(E.wrapS),w.push(E.wrapT),w.push(E.wrapR||0),w.push(E.magFilter),w.push(E.minFilter),w.push(E.anisotropy),w.push(E.internalFormat),w.push(E.format),w.push(E.type),w.push(E.generateMipmaps),w.push(E.premultiplyAlpha),w.push(E.flipY),w.push(E.unpackAlignment),w.push(E.encoding),w.join()}function J(E,w){let W=n.get(E);if(E.isVideoTexture&&Ze(E),E.isRenderTargetTexture===!1&&E.version>0&&W.__version!==E.version){let Q=E.image;if(Q===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Q.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{ht(W,E,w);return}}e.bindTexture(3553,W.__webglTexture,33984+w)}function dt(E,w){let W=n.get(E);if(E.version>0&&W.__version!==E.version){ht(W,E,w);return}e.bindTexture(35866,W.__webglTexture,33984+w)}function z(E,w){let W=n.get(E);if(E.version>0&&W.__version!==E.version){ht(W,E,w);return}e.bindTexture(32879,W.__webglTexture,33984+w)}function K(E,w){let W=n.get(E);if(E.version>0&&W.__version!==E.version){ut(W,E,w);return}e.bindTexture(34067,W.__webglTexture,33984+w)}let nt={[Rr]:10497,[Oe]:33071,[Lr]:33648},it={[ce]:9728,[Fo]:9984,[Zs]:9986,[Re]:9729,[sl]:9985,[Oi]:9987};function U(E,w,W){if(W?(r.texParameteri(E,10242,nt[w.wrapS]),r.texParameteri(E,10243,nt[w.wrapT]),(E===32879||E===35866)&&r.texParameteri(E,32882,nt[w.wrapR]),r.texParameteri(E,10240,it[w.magFilter]),r.texParameteri(E,10241,it[w.minFilter])):(r.texParameteri(E,10242,33071),r.texParameteri(E,10243,33071),(E===32879||E===35866)&&r.texParameteri(E,32882,33071),(w.wrapS!==Oe||w.wrapT!==Oe)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(E,10240,P(w.magFilter)),r.texParameteri(E,10241,P(w.minFilter)),w.minFilter!==ce&&w.minFilter!==Re&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),t.has("EXT_texture_filter_anisotropic")===!0){let Q=t.get("EXT_texture_filter_anisotropic");if(w.magFilter===ce||w.minFilter!==Zs&&w.minFilter!==Oi||w.type===Rn&&t.has("OES_texture_float_linear")===!1||o===!1&&w.type===Bi&&t.has("OES_texture_half_float_linear")===!1)return;(w.anisotropy>1||n.get(w).__currentAnisotropy)&&(r.texParameterf(E,Q.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(w.anisotropy,i.getMaxAnisotropy())),n.get(w).__currentAnisotropy=w.anisotropy)}}function Mt(E,w){let W=!1;E.__webglInit===void 0&&(E.__webglInit=!0,w.addEventListener("dispose",O));let Q=w.source,tt=d.get(Q);tt===void 0&&(tt={},d.set(Q,tt));let st=$(w);if(st!==E.__cacheKey){tt[st]===void 0&&(tt[st]={texture:r.createTexture(),usedTimes:0},a.memory.textures++,W=!0),tt[st].usedTimes++;let yt=tt[E.__cacheKey];yt!==void 0&&(tt[E.__cacheKey].usedTimes--,yt.usedTimes===0&&I(w)),E.__cacheKey=st,E.__webglTexture=tt[st].texture}return W}function ht(E,w,W){let Q=3553;(w.isDataArrayTexture||w.isCompressedArrayTexture)&&(Q=35866),w.isData3DTexture&&(Q=32879);let tt=Mt(E,w),st=w.source;e.bindTexture(Q,E.__webglTexture,33984+W);let yt=n.get(st);if(st.version!==yt.__version||tt===!0){e.activeTexture(33984+W),r.pixelStorei(37440,w.flipY),r.pixelStorei(37441,w.premultiplyAlpha),r.pixelStorei(3317,w.unpackAlignment),r.pixelStorei(37443,0);let rt=b(w)&&v(w.image)===!1,X=_(w.image,rt,!1,h);X=De(w,X);let mt=v(X)||o,xt=s.convert(w.format,w.encoding),ct=s.convert(w.type),gt=y(w.internalFormat,xt,ct,w.encoding,w.isVideoTexture);U(Q,w,mt);let ft,Rt=w.mipmaps,Ut=o&&w.isVideoTexture!==!0,$t=yt.__version===void 0||tt===!0,L=S(w,X,mt);if(w.isDepthTexture)gt=6402,o?w.type===Rn?gt=36012:w.type===Pn?gt=33190:w.type===oi?gt=35056:gt=33189:w.type===Rn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),w.format===Ln&>===6402&&w.type!==Ja&&w.type!==Pn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),w.type=Pn,ct=s.convert(w.type)),w.format===hi&>===6402&&(gt=34041,w.type!==oi&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),w.type=oi,ct=s.convert(w.type))),$t&&(Ut?e.texStorage2D(3553,1,gt,X.width,X.height):e.texImage2D(3553,0,gt,X.width,X.height,0,xt,ct,null));else if(w.isDataTexture)if(Rt.length>0&&mt){Ut&&$t&&e.texStorage2D(3553,L,gt,Rt[0].width,Rt[0].height);for(let V=0,j=Rt.length;V>=1,j>>=1}}else if(Rt.length>0&&mt){Ut&&$t&&e.texStorage2D(3553,L,gt,Rt[0].width,Rt[0].height);for(let V=0,j=Rt.length;V0&&$t++,e.texStorage2D(34067,$t,ft,X[0].width,X[0].height));for(let V=0;V<6;V++)if(rt){Rt?e.texSubImage2D(34069+V,0,0,0,X[V].width,X[V].height,ct,gt,X[V].data):e.texImage2D(34069+V,0,ft,X[V].width,X[V].height,0,ct,gt,X[V].data);for(let j=0;j=34069&&tt<=34074)&&r.framebufferTexture2D(36160,Q,tt,n.get(W).__webglTexture,0),e.bindFramebuffer(36160,null)}function Ft(E,w,W){if(r.bindRenderbuffer(36161,E),w.depthBuffer&&!w.stencilBuffer){let Q=33189;if(W||Nt(w)){let tt=w.depthTexture;tt&&tt.isDepthTexture&&(tt.type===Rn?Q=36012:tt.type===Pn&&(Q=33190));let st=Wt(w);Nt(w)?u.renderbufferStorageMultisampleEXT(36161,st,Q,w.width,w.height):r.renderbufferStorageMultisample(36161,st,Q,w.width,w.height)}else r.renderbufferStorage(36161,Q,w.width,w.height);r.framebufferRenderbuffer(36160,36096,36161,E)}else if(w.depthBuffer&&w.stencilBuffer){let Q=Wt(w);W&&Nt(w)===!1?r.renderbufferStorageMultisample(36161,Q,35056,w.width,w.height):Nt(w)?u.renderbufferStorageMultisampleEXT(36161,Q,35056,w.width,w.height):r.renderbufferStorage(36161,34041,w.width,w.height),r.framebufferRenderbuffer(36160,33306,36161,E)}else{let Q=w.isWebGLMultipleRenderTargets===!0?w.texture:[w.texture];for(let tt=0;tt0&&Nt(E)===!1){let rt=st?w:[w];W.__webglMultisampledFramebuffer=r.createFramebuffer(),W.__webglColorRenderbuffer=[],e.bindFramebuffer(36160,W.__webglMultisampledFramebuffer);for(let X=0;X0&&Nt(E)===!1){let w=E.isWebGLMultipleRenderTargets?E.texture:[E.texture],W=E.width,Q=E.height,tt=16384,st=[],yt=E.stencilBuffer?33306:36096,rt=n.get(E),X=E.isWebGLMultipleRenderTargets===!0;if(X)for(let mt=0;mt0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&w.__useRenderToTexture!==!1}function Ze(E){let w=a.render.frame;x.get(E)!==w&&(x.set(E,w),E.update())}function De(E,w){let W=E.encoding,Q=E.format,tt=E.type;return E.isCompressedTexture===!0||E.isVideoTexture===!0||E.format===Ir||W!==Nn&&(W===Ot?o===!1?t.has("EXT_sRGB")===!0&&Q===Be?(E.format=Ir,E.minFilter=Re,E.generateMipmaps=!1):w=vs.sRGBToLinear(w):(Q!==Be||tt!==Dn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",W)),w}this.allocateTextureUnit=H,this.resetTextureUnits=Z,this.setTexture2D=J,this.setTexture2DArray=dt,this.setTexture3D=z,this.setTextureCube=K,this.rebindTextures=se,this.setupRenderTarget=Ae,this.updateRenderTargetMipmap=te,this.updateMultisampleRenderTarget=Ee,this.setupDepthRenderbuffer=_t,this.setupFrameBufferTexture=at,this.useMultisampledRTT=Nt}function ap(r,t,e){let n=e.isWebGL2;function i(s,a=null){let o;if(s===Dn)return 5121;if(s===cl)return 32819;if(s===ll)return 32820;if(s===rl)return 5120;if(s===ol)return 5122;if(s===Ja)return 5123;if(s===al)return 5124;if(s===Pn)return 5125;if(s===Rn)return 5126;if(s===Bi)return n?5131:(o=t.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(s===hl)return 6406;if(s===Be)return 6408;if(s===ul)return 6409;if(s===fl)return 6410;if(s===Ln)return 6402;if(s===hi)return 34041;if(s===Ir)return o=t.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(s===dl)return 6403;if(s===pl)return 36244;if(s===ml)return 33319;if(s===gl)return 33320;if(s===xl)return 36249;if(s===Js||s===$s||s===Ks||s===js)if(a===Ot)if(o=t.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(s===Js)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===$s)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===Ks)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===js)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=t.get("WEBGL_compressed_texture_s3tc"),o!==null){if(s===Js)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===$s)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===Ks)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===js)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===zo||s===Oo||s===Bo||s===Uo)if(o=t.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(s===zo)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Oo)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Bo)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Uo)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===_l)return o=t.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===ko||s===Vo)if(o=t.get("WEBGL_compressed_texture_etc"),o!==null){if(s===ko)return a===Ot?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(s===Vo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Go||s===Ho||s===Wo||s===qo||s===Xo||s===Yo||s===Zo||s===Jo||s===$o||s===Ko||s===jo||s===Qo||s===ta||s===ea)if(o=t.get("WEBGL_compressed_texture_astc"),o!==null){if(s===Go)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Ho)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Wo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===qo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===Xo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Yo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===Zo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===Jo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===$o)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Ko)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===jo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===Qo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===ta)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===ea)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Qs)if(o=t.get("EXT_texture_compression_bptc"),o!==null){if(s===Qs)return a===Ot?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(s===yl||s===na||s===ia||s===sa)if(o=t.get("EXT_texture_compression_rgtc"),o!==null){if(s===Qs)return o.COMPRESSED_RED_RGTC1_EXT;if(s===na)return o.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===ia)return o.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===sa)return o.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===oi?n?34042:(o=t.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):r[s]!==void 0?r[s]:null}return{convert:i}}var Yr=class extends Se{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}},si=class extends pe{constructor(){super(),this.isGroup=!0,this.type="Group"}},cp={type:"move"},zi=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new si,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new si,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new R,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new R),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new si,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new R,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new R),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){let e=this._hand;if(e)for(let 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}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,a=null,o=this._targetRay,c=this._grip,l=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(l&&t.hand){a=!0;for(let p of t.hand.values()){let d=e.getJointPose(p,n),g=this._getHandJoint(l,p);d!==null&&(g.matrix.fromArray(d.transform.matrix),g.matrix.decompose(g.position,g.rotation,g.scale),g.jointRadius=d.radius),g.visible=d!==null}let h=l.joints["index-finger-tip"],f=l.joints["thumb-tip"],u=h.position.distanceTo(f.position),m=.02,x=.005;l.inputState.pinching&&u>m+x?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=m-x&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));o!==null&&(i=e.getPose(t.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(cp)))}return o!==null&&(o.visible=i!==null),c!==null&&(c.visible=s!==null),l!==null&&(l.visible=a!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){let n=new si;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}},Zr=class extends ue{constructor(t,e,n,i,s,a,o,c,l,h){if(h=h!==void 0?h:Ln,h!==Ln&&h!==hi)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Ln&&(n=Pn),n===void 0&&h===hi&&(n=oi),super(null,i,s,a,o,c,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=o!==void 0?o:ce,this.minFilter=c!==void 0?c:ce,this.flipY=!1,this.generateMipmaps=!1}},Jr=class extends mn{constructor(t,e){super();let n=this,i=null,s=1,a=null,o="local-floor",c=1,l=null,h=null,f=null,u=null,m=null,x=null,p=e.getContextAttributes(),d=null,g=null,M=[],_=[],v=new Set,b=new Map,A=new Se;A.layers.enable(1),A.viewport=new Xt;let C=new Se;C.layers.enable(2),C.viewport=new Xt;let y=[A,C],S=new Yr;S.layers.enable(1),S.layers.enable(2);let P=null,O=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(z){let K=M[z];return K===void 0&&(K=new zi,M[z]=K),K.getTargetRaySpace()},this.getControllerGrip=function(z){let K=M[z];return K===void 0&&(K=new zi,M[z]=K),K.getGripSpace()},this.getHand=function(z){let K=M[z];return K===void 0&&(K=new zi,M[z]=K),K.getHandSpace()};function B(z){let K=_.indexOf(z.inputSource);if(K===-1)return;let nt=M[K];nt!==void 0&&nt.dispatchEvent({type:z.type,data:z.inputSource})}function D(){i.removeEventListener("select",B),i.removeEventListener("selectstart",B),i.removeEventListener("selectend",B),i.removeEventListener("squeeze",B),i.removeEventListener("squeezestart",B),i.removeEventListener("squeezeend",B),i.removeEventListener("end",D),i.removeEventListener("inputsourceschange",I);for(let z=0;z=0&&(_[it]=null,M[it].disconnect(nt))}for(let K=0;K=_.length){_.push(nt),it=Mt;break}else if(_[Mt]===null){_[Mt]=nt,it=Mt;break}if(it===-1)break}let U=M[it];U&&U.connect(nt)}}let k=new R,Y=new R;function Z(z,K,nt){k.setFromMatrixPosition(K.matrixWorld),Y.setFromMatrixPosition(nt.matrixWorld);let it=k.distanceTo(Y),U=K.projectionMatrix.elements,Mt=nt.projectionMatrix.elements,ht=U[14]/(U[10]-1),ut=U[14]/(U[10]+1),at=(U[9]+1)/U[5],Ft=(U[9]-1)/U[5],bt=(U[8]-1)/U[0],_t=(Mt[8]+1)/Mt[0],se=ht*bt,Ae=ht*_t,te=it/(-bt+_t),Ee=te*-bt;K.matrixWorld.decompose(z.position,z.quaternion,z.scale),z.translateX(Ee),z.translateZ(te),z.matrixWorld.compose(z.position,z.quaternion,z.scale),z.matrixWorldInverse.copy(z.matrixWorld).invert();let Wt=ht+te,Nt=ut+te,Ze=se-Ee,De=Ae+(it-Ee),E=at*ut/Nt*Wt,w=Ft*ut/Nt*Wt;z.projectionMatrix.makePerspective(Ze,De,E,w,Wt,Nt)}function H(z,K){K===null?z.matrixWorld.copy(z.matrix):z.matrixWorld.multiplyMatrices(K.matrixWorld,z.matrix),z.matrixWorldInverse.copy(z.matrixWorld).invert()}this.updateCamera=function(z){if(i===null)return;S.near=C.near=A.near=z.near,S.far=C.far=A.far=z.far,(P!==S.near||O!==S.far)&&(i.updateRenderState({depthNear:S.near,depthFar:S.far}),P=S.near,O=S.far);let K=z.parent,nt=S.cameras;H(S,K);for(let U=0;UU&&(b.set(it,it.lastChangedTime),n.dispatchEvent({type:"planechanged",data:it}))}}x=null}let dt=new Qa;dt.setAnimationLoop(J),this.setAnimationLoop=function(z){$=z},this.dispose=function(){}}};function lp(r,t){function e(p,d){d.color.getRGB(p.fogColor.value,ja(r)),d.isFog?(p.fogNear.value=d.near,p.fogFar.value=d.far):d.isFogExp2&&(p.fogDensity.value=d.density)}function n(p,d,g,M,_){d.isMeshBasicMaterial||d.isMeshLambertMaterial?i(p,d):d.isMeshToonMaterial?(i(p,d),h(p,d)):d.isMeshPhongMaterial?(i(p,d),l(p,d)):d.isMeshStandardMaterial?(i(p,d),f(p,d),d.isMeshPhysicalMaterial&&u(p,d,_)):d.isMeshMatcapMaterial?(i(p,d),m(p,d)):d.isMeshDepthMaterial?i(p,d):d.isMeshDistanceMaterial?(i(p,d),x(p,d)):d.isMeshNormalMaterial?i(p,d):d.isLineBasicMaterial?(s(p,d),d.isLineDashedMaterial&&a(p,d)):d.isPointsMaterial?o(p,d,g,M):d.isSpriteMaterial?c(p,d):d.isShadowMaterial?(p.color.value.copy(d.color),p.opacity.value=d.opacity):d.isShaderMaterial&&(d.uniformsNeedUpdate=!1)}function i(p,d){p.opacity.value=d.opacity,d.color&&p.diffuse.value.copy(d.color),d.emissive&&p.emissive.value.copy(d.emissive).multiplyScalar(d.emissiveIntensity),d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.bumpMap&&(p.bumpMap.value=d.bumpMap,p.bumpScale.value=d.bumpScale,d.side===he&&(p.bumpScale.value*=-1)),d.displacementMap&&(p.displacementMap.value=d.displacementMap,p.displacementScale.value=d.displacementScale,p.displacementBias.value=d.displacementBias),d.emissiveMap&&(p.emissiveMap.value=d.emissiveMap),d.normalMap&&(p.normalMap.value=d.normalMap,p.normalScale.value.copy(d.normalScale),d.side===he&&p.normalScale.value.negate()),d.specularMap&&(p.specularMap.value=d.specularMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let g=t.get(d).envMap;if(g&&(p.envMap.value=g,p.flipEnvMap.value=g.isCubeTexture&&g.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=d.reflectivity,p.ior.value=d.ior,p.refractionRatio.value=d.refractionRatio),d.lightMap){p.lightMap.value=d.lightMap;let v=r.physicallyCorrectLights!==!0?Math.PI:1;p.lightMapIntensity.value=d.lightMapIntensity*v}d.aoMap&&(p.aoMap.value=d.aoMap,p.aoMapIntensity.value=d.aoMapIntensity);let M;d.map?M=d.map:d.specularMap?M=d.specularMap:d.displacementMap?M=d.displacementMap:d.normalMap?M=d.normalMap:d.bumpMap?M=d.bumpMap:d.roughnessMap?M=d.roughnessMap:d.metalnessMap?M=d.metalnessMap:d.alphaMap?M=d.alphaMap:d.emissiveMap?M=d.emissiveMap:d.clearcoatMap?M=d.clearcoatMap:d.clearcoatNormalMap?M=d.clearcoatNormalMap:d.clearcoatRoughnessMap?M=d.clearcoatRoughnessMap:d.iridescenceMap?M=d.iridescenceMap:d.iridescenceThicknessMap?M=d.iridescenceThicknessMap:d.specularIntensityMap?M=d.specularIntensityMap:d.specularColorMap?M=d.specularColorMap:d.transmissionMap?M=d.transmissionMap:d.thicknessMap?M=d.thicknessMap:d.sheenColorMap?M=d.sheenColorMap:d.sheenRoughnessMap&&(M=d.sheenRoughnessMap),M!==void 0&&(M.isWebGLRenderTarget&&(M=M.texture),M.matrixAutoUpdate===!0&&M.updateMatrix(),p.uvTransform.value.copy(M.matrix));let _;d.aoMap?_=d.aoMap:d.lightMap&&(_=d.lightMap),_!==void 0&&(_.isWebGLRenderTarget&&(_=_.texture),_.matrixAutoUpdate===!0&&_.updateMatrix(),p.uv2Transform.value.copy(_.matrix))}function s(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity}function a(p,d){p.dashSize.value=d.dashSize,p.totalSize.value=d.dashSize+d.gapSize,p.scale.value=d.scale}function o(p,d,g,M){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.size.value=d.size*g,p.scale.value=M*.5,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let _;d.map?_=d.map:d.alphaMap&&(_=d.alphaMap),_!==void 0&&(_.matrixAutoUpdate===!0&&_.updateMatrix(),p.uvTransform.value.copy(_.matrix))}function c(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.rotation.value=d.rotation,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let g;d.map?g=d.map:d.alphaMap&&(g=d.alphaMap),g!==void 0&&(g.matrixAutoUpdate===!0&&g.updateMatrix(),p.uvTransform.value.copy(g.matrix))}function l(p,d){p.specular.value.copy(d.specular),p.shininess.value=Math.max(d.shininess,1e-4)}function h(p,d){d.gradientMap&&(p.gradientMap.value=d.gradientMap)}function f(p,d){p.roughness.value=d.roughness,p.metalness.value=d.metalness,d.roughnessMap&&(p.roughnessMap.value=d.roughnessMap),d.metalnessMap&&(p.metalnessMap.value=d.metalnessMap),t.get(d).envMap&&(p.envMapIntensity.value=d.envMapIntensity)}function u(p,d,g){p.ior.value=d.ior,d.sheen>0&&(p.sheenColor.value.copy(d.sheenColor).multiplyScalar(d.sheen),p.sheenRoughness.value=d.sheenRoughness,d.sheenColorMap&&(p.sheenColorMap.value=d.sheenColorMap),d.sheenRoughnessMap&&(p.sheenRoughnessMap.value=d.sheenRoughnessMap)),d.clearcoat>0&&(p.clearcoat.value=d.clearcoat,p.clearcoatRoughness.value=d.clearcoatRoughness,d.clearcoatMap&&(p.clearcoatMap.value=d.clearcoatMap),d.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=d.clearcoatRoughnessMap),d.clearcoatNormalMap&&(p.clearcoatNormalScale.value.copy(d.clearcoatNormalScale),p.clearcoatNormalMap.value=d.clearcoatNormalMap,d.side===he&&p.clearcoatNormalScale.value.negate())),d.iridescence>0&&(p.iridescence.value=d.iridescence,p.iridescenceIOR.value=d.iridescenceIOR,p.iridescenceThicknessMinimum.value=d.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=d.iridescenceThicknessRange[1],d.iridescenceMap&&(p.iridescenceMap.value=d.iridescenceMap),d.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=d.iridescenceThicknessMap)),d.transmission>0&&(p.transmission.value=d.transmission,p.transmissionSamplerMap.value=g.texture,p.transmissionSamplerSize.value.set(g.width,g.height),d.transmissionMap&&(p.transmissionMap.value=d.transmissionMap),p.thickness.value=d.thickness,d.thicknessMap&&(p.thicknessMap.value=d.thicknessMap),p.attenuationDistance.value=d.attenuationDistance,p.attenuationColor.value.copy(d.attenuationColor)),p.specularIntensity.value=d.specularIntensity,p.specularColor.value.copy(d.specularColor),d.specularIntensityMap&&(p.specularIntensityMap.value=d.specularIntensityMap),d.specularColorMap&&(p.specularColorMap.value=d.specularColorMap)}function m(p,d){d.matcap&&(p.matcap.value=d.matcap)}function x(p,d){p.referencePosition.value.copy(d.referencePosition),p.nearDistance.value=d.nearDistance,p.farDistance.value=d.farDistance}return{refreshFogUniforms:e,refreshMaterialUniforms:n}}function hp(r,t,e,n){let i={},s={},a=[],o=e.isWebGL2?r.getParameter(35375):0;function c(M,_){let v=_.program;n.uniformBlockBinding(M,v)}function l(M,_){let v=i[M.id];v===void 0&&(x(M),v=h(M),i[M.id]=v,M.addEventListener("dispose",d));let b=_.program;n.updateUBOMapping(M,b);let A=t.render.frame;s[M.id]!==A&&(u(M),s[M.id]=A)}function h(M){let _=f();M.__bindingPointIndex=_;let v=r.createBuffer(),b=M.__size,A=M.usage;return r.bindBuffer(35345,v),r.bufferData(35345,b,A),r.bindBuffer(35345,null),r.bindBufferBase(35345,_,v),v}function f(){for(let M=0;M0){A=v%b;let B=b-A;A!==0&&B-P.boundary<0&&(v+=b-A,S.__offset=v)}v+=P.storage}return A=v%b,A>0&&(v+=b-A),M.__size=v,M.__cache={},this}function p(M){let _={boundary:0,storage:0};return typeof M=="number"?(_.boundary=4,_.storage=4):M.isVector2?(_.boundary=8,_.storage=8):M.isVector3||M.isColor?(_.boundary=16,_.storage=12):M.isVector4?(_.boundary=16,_.storage=16):M.isMatrix3?(_.boundary=48,_.storage=48):M.isMatrix4?(_.boundary=64,_.storage=64):M.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",M),_}function d(M){let _=M.target;_.removeEventListener("dispose",d);let v=a.indexOf(_.__bindingPointIndex);a.splice(v,1),r.deleteBuffer(i[_.id]),delete i[_.id],delete s[_.id]}function g(){for(let M in i)r.deleteBuffer(i[M]);a=[],i={},s={}}return{bind:c,update:l,dispose:g}}function up(){let r=ys("canvas");return r.style.display="block",r}function fp(r={}){this.isWebGLRenderer=!0;let t=r.canvas!==void 0?r.canvas:up(),e=r.context!==void 0?r.context:null,n=r.depth!==void 0?r.depth:!0,i=r.stencil!==void 0?r.stencil:!0,s=r.antialias!==void 0?r.antialias:!1,a=r.premultipliedAlpha!==void 0?r.premultipliedAlpha:!0,o=r.preserveDrawingBuffer!==void 0?r.preserveDrawingBuffer:!1,c=r.powerPreference!==void 0?r.powerPreference:"default",l=r.failIfMajorPerformanceCaveat!==void 0?r.failIfMajorPerformanceCaveat:!1,h;e!==null?h=e.getContextAttributes().alpha:h=r.alpha!==void 0?r.alpha:!1;let f=null,u=null,m=[],x=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=Nn,this.physicallyCorrectLights=!1,this.toneMapping=nn,this.toneMappingExposure=1;let p=this,d=!1,g=0,M=0,_=null,v=-1,b=null,A=new Xt,C=new Xt,y=null,S=t.width,P=t.height,O=1,B=null,D=null,I=new Xt(0,0,S,P),k=new Xt(0,0,S,P),Y=!1,Z=new Ps,H=!1,$=!1,J=null,dt=new zt,z=new At,K=new R,nt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function it(){return _===null?O:1}let U=e;function Mt(T,F){for(let G=0;G0?u=x[x.length-1]:u=null,m.pop(),m.length>0?f=m[m.length-1]:f=null};function Kt(T,F,G,N){if(T.visible===!1)return;if(T.layers.test(F.layers)){if(T.isGroup)G=T.renderOrder;else if(T.isLOD)T.autoUpdate===!0&&T.update(F);else if(T.isLight)u.pushLight(T),T.castShadow&&u.pushShadow(T);else if(T.isSprite){if(!T.frustumCulled||Z.intersectsSprite(T)){N&&K.setFromMatrixPosition(T.matrixWorld).applyMatrix4(dt);let vt=Wt.update(T),St=T.material;St.visible&&f.push(T,vt,St,G,K.z,null)}}else if((T.isMesh||T.isLine||T.isPoints)&&(T.isSkinnedMesh&&T.skeleton.frame!==Ft.render.frame&&(T.skeleton.update(),T.skeleton.frame=Ft.render.frame),!T.frustumCulled||Z.intersectsObject(T))){N&&K.setFromMatrixPosition(T.matrixWorld).applyMatrix4(dt);let vt=Wt.update(T),St=T.material;if(Array.isArray(St)){let Tt=vt.groups;for(let Lt=0,Et=Tt.length;Lt0&&vn(q,F,G),N&&at.viewport(A.copy(N)),q.length>0&&kt(q,F,G),pt.length>0&&kt(pt,F,G),vt.length>0&&kt(vt,F,G),at.buffers.depth.setTest(!0),at.buffers.depth.setMask(!0),at.buffers.color.setMask(!0),at.setPolygonOffset(!1)}function vn(T,F,G){let N=ut.isWebGL2;J===null&&(J=new rn(1,1,{generateMipmaps:!0,type:ht.has("EXT_color_buffer_half_float")?Bi:Dn,minFilter:Oi,samples:N&&s===!0?4:0})),p.getDrawingBufferSize(z),N?J.setSize(z.x,z.y):J.setSize(Dr(z.x),Dr(z.y));let q=p.getRenderTarget();p.setRenderTarget(J),p.clear();let pt=p.toneMapping;p.toneMapping=nn,kt(T,F,G),p.toneMapping=pt,_t.updateMultisampleRenderTarget(J),_t.updateRenderTargetMipmap(J),p.setRenderTarget(q)}function kt(T,F,G){let N=F.isScene===!0?F.overrideMaterial:null;for(let q=0,pt=T.length;q0&&_t.useMultisampledRTT(T)===!1?q=bt.get(T).__webglMultisampledFramebuffer:q=Et,A.copy(T.viewport),C.copy(T.scissor),y=T.scissorTest}else A.copy(I).multiplyScalar(O).floor(),C.copy(k).multiplyScalar(O).floor(),y=Y;if(at.bindFramebuffer(36160,q)&&ut.drawBuffers&&N&&at.drawBuffers(T,q),at.viewport(A),at.scissor(C),at.setScissorTest(y),pt){let Tt=bt.get(T.texture);U.framebufferTexture2D(36160,36064,34069+F,Tt.__webglTexture,G)}else if(vt){let Tt=bt.get(T.texture),Lt=F||0;U.framebufferTextureLayer(36160,36064,Tt.__webglTexture,G||0,Lt)}v=-1},this.readRenderTargetPixels=function(T,F,G,N,q,pt,vt){if(!(T&&T.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let St=bt.get(T).__webglFramebuffer;if(T.isWebGLCubeRenderTarget&&vt!==void 0&&(St=St[vt]),St){at.bindFramebuffer(36160,St);try{let Tt=T.texture,Lt=Tt.format,Et=Tt.type;if(Lt!==Be&&rt.convert(Lt)!==U.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let Ct=Et===Bi&&(ht.has("EXT_color_buffer_half_float")||ut.isWebGL2&&ht.has("EXT_color_buffer_float"));if(Et!==Dn&&rt.convert(Et)!==U.getParameter(35738)&&!(Et===Rn&&(ut.isWebGL2||ht.has("OES_texture_float")||ht.has("WEBGL_color_buffer_float")))&&!Ct){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}F>=0&&F<=T.width-N&&G>=0&&G<=T.height-q&&U.readPixels(F,G,N,q,rt.convert(Lt),rt.convert(Et),pt)}finally{let Tt=_!==null?bt.get(_).__webglFramebuffer:null;at.bindFramebuffer(36160,Tt)}}},this.copyFramebufferToTexture=function(T,F,G=0){let N=Math.pow(2,-G),q=Math.floor(F.image.width*N),pt=Math.floor(F.image.height*N);_t.setTexture2D(F,0),U.copyTexSubImage2D(3553,G,0,0,T.x,T.y,q,pt),at.unbindTexture()},this.copyTextureToTexture=function(T,F,G,N=0){let q=F.image.width,pt=F.image.height,vt=rt.convert(G.format),St=rt.convert(G.type);_t.setTexture2D(G,0),U.pixelStorei(37440,G.flipY),U.pixelStorei(37441,G.premultiplyAlpha),U.pixelStorei(3317,G.unpackAlignment),F.isDataTexture?U.texSubImage2D(3553,N,T.x,T.y,q,pt,vt,St,F.image.data):F.isCompressedTexture?U.compressedTexSubImage2D(3553,N,T.x,T.y,F.mipmaps[0].width,F.mipmaps[0].height,vt,F.mipmaps[0].data):U.texSubImage2D(3553,N,T.x,T.y,vt,St,F.image),N===0&&G.generateMipmaps&&U.generateMipmap(3553),at.unbindTexture()},this.copyTextureToTexture3D=function(T,F,G,N,q=0){if(p.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let pt=T.max.x-T.min.x+1,vt=T.max.y-T.min.y+1,St=T.max.z-T.min.z+1,Tt=rt.convert(N.format),Lt=rt.convert(N.type),Et;if(N.isData3DTexture)_t.setTexture3D(N,0),Et=32879;else if(N.isDataArrayTexture)_t.setTexture2DArray(N,0),Et=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}U.pixelStorei(37440,N.flipY),U.pixelStorei(37441,N.premultiplyAlpha),U.pixelStorei(3317,N.unpackAlignment);let Ct=U.getParameter(3314),Vt=U.getParameter(32878),ye=U.getParameter(3316),$e=U.getParameter(3315),Mn=U.getParameter(32877),Gt=G.isCompressedTexture?G.mipmaps[0]:G.image;U.pixelStorei(3314,Gt.width),U.pixelStorei(32878,Gt.height),U.pixelStorei(3316,T.min.x),U.pixelStorei(3315,T.min.y),U.pixelStorei(32877,T.min.z),G.isDataTexture||G.isData3DTexture?U.texSubImage3D(Et,q,F.x,F.y,F.z,pt,vt,St,Tt,Lt,Gt.data):G.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),U.compressedTexSubImage3D(Et,q,F.x,F.y,F.z,pt,vt,St,Tt,Gt.data)):U.texSubImage3D(Et,q,F.x,F.y,F.z,pt,vt,St,Tt,Lt,Gt),U.pixelStorei(3314,Ct),U.pixelStorei(32878,Vt),U.pixelStorei(3316,ye),U.pixelStorei(3315,$e),U.pixelStorei(32877,Mn),q===0&&N.generateMipmaps&&U.generateMipmap(Et),at.unbindTexture()},this.initTexture=function(T){T.isCubeTexture?_t.setTextureCube(T,0):T.isData3DTexture?_t.setTexture3D(T,0):T.isDataArrayTexture||T.isCompressedArrayTexture?_t.setTexture2DArray(T,0):_t.setTexture2D(T,0),at.unbindTexture()},this.resetState=function(){g=0,M=0,_=null,at.reset(),X.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var $r=class extends fp{};$r.prototype.isWebGL1Renderer=!0;function dn(r,t,e){return sc(r)?new r.constructor(r.subarray(t,e!==void 0?e:r.length)):r.slice(t,e)}function ps(r,t,e){return!r||!e&&r.constructor===t?r:typeof t.BYTES_PER_ELEMENT=="number"?new t(r):Array.prototype.slice.call(r)}function sc(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}var pi=class{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,n=this._cachedIndex,i=e[n],s=e[n-1];n:{t:{let a;e:{i:if(!(t=s)){let o=e[1];t=s)break t}a=n,n=0;break e}break n}for(;n>>1;te;)--a;if(++a,s!==0||a!==i){s>=a&&(a=Math.max(a,1),s=a-1);let o=this.getValueSize();this.times=dn(n,s,a),this.values=dn(this.values,s*o,a*o)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let a=null;for(let o=0;o!==s;o++){let c=n[o];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,c),t=!1;break}if(a!==null&&a>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,c,a),t=!1;break}a=c}if(i!==void 0&&sc(i))for(let o=0,c=i.length;o!==c;++o){let l=i[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),t=!1;break}}return t}optimize(){let t=dn(this.times),e=dn(this.values),n=this.getValueSize(),i=this.getInterpolation()===tr,s=t.length-1,a=1;for(let o=1;o0){t[a]=t[s];for(let o=s*n,c=a*n,l=0;l!==n;++l)e[c+l]=e[o+l];++a}return a!==t.length?(this.times=dn(t,0,a),this.values=dn(e,0,a*n)):(this.times=t,this.values=e),this}clone(){let t=dn(this.times,0),e=dn(this.values,0),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}};Ve.prototype.TimeBufferType=Float32Array;Ve.prototype.ValueBufferType=Float32Array;Ve.prototype.DefaultInterpolation=_s;var On=class extends Ve{};On.prototype.ValueTypeName="bool";On.prototype.ValueBufferType=Array;On.prototype.DefaultInterpolation=xs;On.prototype.InterpolantFactoryMethodLinear=void 0;On.prototype.InterpolantFactoryMethodSmooth=void 0;var to=class extends Ve{};to.prototype.ValueTypeName="color";var eo=class extends Ve{};eo.prototype.ValueTypeName="number";var no=class extends pi{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){let s=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=(n-e)/(i-e),l=t*o;for(let h=l+o;l!==h;l+=4)gn.slerpFlat(s,0,a,l-o,a,l,c);return s}},Vi=class extends Ve{InterpolantFactoryMethodLinear(t){return new no(this.times,this.values,this.getValueSize(),t)}};Vi.prototype.ValueTypeName="quaternion";Vi.prototype.DefaultInterpolation=_s;Vi.prototype.InterpolantFactoryMethodSmooth=void 0;var Bn=class extends Ve{};Bn.prototype.ValueTypeName="string";Bn.prototype.ValueBufferType=Array;Bn.prototype.DefaultInterpolation=xs;Bn.prototype.InterpolantFactoryMethodLinear=void 0;Bn.prototype.InterpolantFactoryMethodSmooth=void 0;var io=class extends Ve{};io.prototype.ValueTypeName="vector";var ao="\\\\[\\\\]\\\\.:\\\\/",dp=new RegExp("["+ao+"]","g"),co="[^"+ao+"]",pp="[^"+ao.replace("\\\\.","")+"]",mp=/((?:WC+[\\/:])*)/.source.replace("WC",co),gp=/(WCOD+)?/.source.replace("WCOD",pp),xp=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace("WC",co),_p=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace("WC",co),yp=new RegExp("^"+mp+gp+xp+_p+"$"),vp=["material","materials","bones","map"],so=class{constructor(t,e,n){let i=n||Dt.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},Dt=class{constructor(t,e,n){this.path=e,this.parsedPath=n||Dt.parseTrackName(e),this.node=Dt.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Dt.Composite(t,e,n):new Dt(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,"_").replace(dp,"")}static parseTrackName(t){let e=yp.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);let n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){let s=n.nodeName.substring(i+1);vp.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){let n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){let n=function(s){for(let a=0;ae&&(e=i,t=n)}return t}function ho(r,t){t.set(r)}function uo(r,t,e){let n,i;for(let s=0;s<3;s++){let a=s+3;n=r[s],i=t[s],e[s]=ni?n:i}}function Hi(r,t,e){for(let n=0;n<3;n++){let i=t[r+2*n],s=t[r+2*n+1],a=i-s,o=i+s;ae[n+3]&&(e[n+3]=o)}}function gi(r){let t=r[3]-r[0],e=r[4]-r[1],n=r[5]-r[2];return 2*(t*e+e*n+n*t)}function wp(r,t){if(!r.index){let e=r.attributes.position.count,n=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,i;e>65535?i=new Uint32Array(new n(4*e)):i=new Uint16Array(new n(2*e)),r.setIndex(new Yt(i,1));for(let s=0;si-s);for(let i=0;ic&&(c=C),g&&vx&&(x=v);let y=r[M+2],S=r[M+3],P=y-S,O=y+S;Pl&&(l=O),g&&yp&&(p=y);let B=r[M+4],D=r[M+5],I=B-D,k=B+D;Ih&&(h=k),g&&Bd&&(d=B)}n[0]=s,n[1]=a,n[2]=o,n[3]=c,n[4]=l,n[5]=h,g&&(i[0]=f,i[1]=u,i[2]=m,i[3]=x,i[4]=p,i[5]=d)}function Tp(r,t,e,n){let i=1/0,s=1/0,a=1/0,o=-1/0,c=-1/0,l=-1/0;for(let h=t*6,f=(t+e)*6;ho&&(o=u);let m=r[h+2];mc&&(c=m);let x=r[h+4];xl&&(l=x)}n[0]=i,n[1]=s,n[2]=a,n[3]=o,n[4]=c,n[5]=l}function Ap(r,t,e,n,i){let s=e,a=e+n-1,o=i.pos,c=i.axis*2;for(;;){for(;s<=a&&t[s*6+c]=o;)a--;if(sr.candidate-t.candidate,xn=new Array(an).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),Ds=new Float32Array(6);function Cp(r,t,e,n,i,s){let a=-1,o=0;if(s===0)a=lo(t),a!==-1&&(o=(t[a]+t[a+3])/2);else if(s===1)a=lo(r),a!==-1&&(o=Pp(e,n,i,a));else if(s===2){let c=gi(r),l=1.25*i,h=n*6,f=(n+i)*6;for(let u=0;u<3;u++){let m=t[u],d=(t[u+3]-m)/an;if(i=C.candidate?Hi(v,e,C.rightCacheBounds):(Hi(v,e,C.leftCacheBounds),C.count++)}}for(let v=0;v<_;v++){let b=g[v],A=b.count,C=i-b.count,y=b.leftCacheBounds,S=b.rightCacheBounds,P=0;A!==0&&(P=gi(y)/c);let O=0;C!==0&&(O=gi(S)/c);let B=1+1.25*(P*A+O*C);B=an&&(A=an-1);let C=xn[A];C.count++,Hi(_,e,C.bounds)}let g=xn[an-1];ho(g.bounds,g.rightCacheBounds);for(let _=an-2;_>=0;_--){let v=xn[_],b=xn[_+1];uo(v.bounds,b.rightCacheBounds,v.rightCacheBounds)}let M=0;for(let _=0;_A&&(A=_),v>A&&(A=v);let C=(A-b)/2,y=g*2;s[m+y+0]=b+C,s[m+y+1]=C+(Math.abs(b)+C)*rc,bt[g+3]&&(t[g+3]=A)}}return s}function Lp(r,t){function e(g){u&&u(g/m)}function n(g,M,_,v=null,b=0){if(!x&&b>=c&&(x=!0,l&&(console.warn(`MeshBVH: Max depth of ${c} reached when generating BVH. Consider increasing maxDepth.`),console.warn(r))),_<=h||b>=c)return e(M+_),g.offset=M,g.count=_,g;let A=Cp(g.boundingData,v,a,M,_,f);if(A.axis===-1)return e(M+_),g.offset=M,g.count=_,g;let C=Ap(o,a,M,_,A);if(C===M||C===M+_)e(M+_),g.offset=M,g.count=_;else{g.splitAxis=A.axis;let y=new Un,S=M,P=C-M;g.left=y,y.boundingData=new Float32Array(6),po(a,S,P,y.boundingData,s),n(y,S,P,s,b+1);let O=new Un,B=C,D=_-P;g.right=O,O.boundingData=new Float32Array(6),po(a,B,D,O.boundingData,s),n(O,B,D,s,b+1)}return g}wp(r,t);let i=new Float32Array(6),s=new Float32Array(6),a=Rp(r,i),o=r.index.array,c=t.maxDepth,l=t.verbose,h=t.maxLeafTris,f=t.strategy,u=t.onProgress,m=r.index.count/3,x=!1,p=[],d=Sp(r);if(d.length===1){let g=d[0],M=new Un;M.boundingData=i,Tp(a,g.offset,g.count,s),n(M,g.offset,g.count,s),p.push(M)}else for(let g of d){let M=new Un;M.boundingData=new Float32Array(6),po(a,g.offset,g.count,M.boundingData,s),n(M,g.offset,g.count,s),p.push(M)}return p}function cc(r,t){let e=Lp(r,t),n,i,s,a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let h=0;hMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return i[u+6]=_/4,_=l(_,g),i[u+7]=M,_}}}var ge=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(t,e){let n=1/0,i=-1/0;for(let s=0,a=t.length;si?c:i}this.min=n,this.max=i}setFromPoints(t,e){let n=1/0,i=-1/0;for(let s=0,a=e.length;si?c:i}this.min=n,this.max=i}isSeparated(t){return this.min>t.max||t.min>this.max}};ge.prototype.setFromBox=function(){let r=new R;return function(e,n){let i=n.min,s=n.max,a=1/0,o=-1/0;for(let c=0;c<=1;c++)for(let l=0;l<=1;l++)for(let h=0;h<=1;h++){r.x=i.x*c+s.x*(1-c),r.y=i.y*l+s.y*(1-l),r.z=i.z*h+s.z*(1-h);let f=e.dot(r);a=Math.min(f,a),o=Math.max(f,o)}this.min=a,this.max=o}}();var Qp=function(){let r=new ge;return function(e,n){let i=e.points,s=e.satAxes,a=e.satBounds,o=n.points,c=n.satAxes,l=n.satBounds;for(let h=0;h<3;h++){let f=a[h],u=s[h];if(r.setFromPoints(u,o),f.isSeparated(r))return!1}for(let h=0;h<3;h++){let f=l[h],u=c[h];if(r.setFromPoints(u,i),f.isSeparated(r))return!1}}}();var Ip=function(){let r=new R,t=new R,e=new R;return function(i,s,a){let o=i.start,c=r,l=s.start,h=t;e.subVectors(o,l),r.subVectors(i.end,i.start),t.subVectors(s.end,s.start);let f=e.dot(h),u=h.dot(c),m=h.dot(h),x=e.dot(c),d=c.dot(c)*m-u*u,g,M;d!==0?g=(f*u-x*m)/d:g=0,M=(f+g*u)/m,a.x=g,a.y=M}}(),Wi=function(){let r=new At,t=new R,e=new R;return function(i,s,a,o){Ip(i,s,r);let c=r.x,l=r.y;if(c>=0&&c<=1&&l>=0&&l<=1){i.at(c,a),s.at(l,o);return}else if(c>=0&&c<=1){l<0?s.at(0,o):s.at(1,o),i.closestPointToPoint(o,!0,a);return}else if(l>=0&&l<=1){c<0?i.at(0,a):i.at(1,a),s.closestPointToPoint(a,!0,o);return}else{let h;c<0?h=i.start:h=i.end;let f;l<0?f=s.start:f=s.end;let u=t,m=e;if(i.closestPointToPoint(f,!0,t),s.closestPointToPoint(h,!0,e),u.distanceToSquared(f)<=m.distanceToSquared(h)){a.copy(u),o.copy(f);return}else{a.copy(h),o.copy(m);return}}}}(),lc=function(){let r=new R,t=new R,e=new Te,n=new me;return function(s,a){let{radius:o,center:c}=s,{a:l,b:h,c:f}=a;if(n.start=l,n.end=h,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o||(n.start=l,n.end=f,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o)||(n.start=h,n.end=f,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o))return!0;let p=a.getPlane(e);if(Math.abs(p.distanceToPoint(c))<=o){let g=p.projectPoint(c,t);if(a.containsPoint(g))return!0}return!1}}();var Dp=1e-15;function xi(r){return Math.abs(r)new R),this.satBounds=new Array(4).fill().map(()=>new ge),this.points=[this.a,this.b,this.c],this.sphere=new Fn,this.plane=new Te,this.needsUpdate=!0}intersectsSphere(t){return lc(t,this)}update(){let t=this.a,e=this.b,n=this.c,i=this.points,s=this.satAxes,a=this.satBounds,o=s[0],c=a[0];this.getNormal(o),c.setFromPoints(o,i);let l=s[1],h=a[1];l.subVectors(t,e),h.setFromPoints(l,i);let f=s[2],u=a[2];f.subVectors(e,n),u.setFromPoints(f,i);let m=s[3],x=a[3];m.subVectors(n,t),x.setFromPoints(m,i),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,t),this.needsUpdate=!1}};xe.prototype.closestPointToSegment=function(){let r=new R,t=new R,e=new me;return function(i,s=null,a=null){let{start:o,end:c}=i,l=this.points,h,f=1/0;for(let u=0;u<3;u++){let m=(u+1)%3;e.start.copy(l[u]),e.end.copy(l[m]),Wi(e,i,r,t),h=r.distanceToSquared(t),h1-1e-10){let M=this.satBounds,_=this.satAxes;e[0]=m.a,e[1]=m.b,e[2]=m.c;for(let A=0;A<4;A++){let C=M[A],y=_[A];if(n.setFromPoints(y,e),C.isSeparated(n))return!1}let v=m.satBounds,b=m.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let A=0;A<4;A++){let C=v[A],y=b[A];if(n.setFromPoints(y,t),C.isSeparated(n))return!1}for(let A=0;A<4;A++){let C=_[A];for(let y=0;y<4;y++){let S=b[y];if(s.crossVectors(C,S),n.setFromPoints(s,t),i.setFromPoints(s,e),n.isSeparated(i))return!1}}return x&&(p||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),x.start.set(0,0,0),x.end.set(0,0,0)),!0}else{let M=this.points,_=!1,v=0;for(let I=0;I<3;I++){let k=M[I],Y=M[(I+1)%3];l.start.copy(k),l.end.copy(Y),l.delta(a);let Z=_?h.start:h.end,H=xi(g.distanceToPoint(k));if(xi(g.normal.dot(a))&&H){h.copy(l),v=2;break}if((g.intersectLine(l,Z)||H)&&!xi(Z.distanceTo(Y))){if(v++,_)break;_=!0}}if(v===1&&m.containsPoint(h.end))return x&&(x.start.copy(h.end),x.end.copy(h.end)),!0;if(v!==2)return!1;let b=m.points,A=!1,C=0;for(let I=0;I<3;I++){let k=b[I],Y=b[(I+1)%3];l.start.copy(k),l.end.copy(Y),l.delta(o);let Z=A?f.start:f.end,H=xi(d.distanceToPoint(k));if(xi(d.normal.dot(o))&&H){f.copy(l),C=2;break}if((d.intersectLine(l,Z)||H)&&!xi(Z.distanceTo(Y))){if(C++,A)break;A=!0}}if(C===1&&this.containsPoint(f.end))return x&&(x.start.copy(f.end),x.end.copy(f.end)),!0;if(C!==2)return!1;if(h.delta(a),f.delta(o),a.dot(o)<0){let I=f.start;f.start=f.end,f.end=I}let y=h.start.dot(a),S=h.end.dot(a),P=f.start.dot(a),O=f.end.dot(a),B=S0?x.start.copy(h.start):x.start.copy(f.start),c.subVectors(h.end,f.end),c.dot(a)<0?x.end.copy(h.end):x.end.copy(f.end)),!0)}}}();xe.prototype.distanceToPoint=function(){let r=new R;return function(e){return this.closestPointToPoint(e,r),e.distanceTo(r)}}();xe.prototype.distanceToTriangle=function(){let r=new R,t=new R,e=["a","b","c"],n=new me,i=new me;return function(a,o=null,c=null){let l=o||c?n:null;if(this.intersectsTriangle(a,l))return(o||c)&&(o&&l.getCenter(o),c&&l.getCenter(c)),0;let h=1/0;for(let f=0;f<3;f++){let u,m=e[f],x=a[m];this.closestPointToPoint(x,r),u=x.distanceToSquared(r),unew R),this.satAxes=new Array(3).fill().map(()=>new R),this.satBounds=new Array(3).fill().map(()=>new ge),this.alignedSatBounds=new Array(3).fill().map(()=>new ge),this.needsUpdate=!1,t&&this.min.copy(t),e&&this.max.copy(e),n&&this.matrix.copy(n)}set(t,e,n){this.min.copy(t),this.max.copy(e),this.matrix.copy(n),this.needsUpdate=!0}copy(t){this.min.copy(t.min),this.max.copy(t.max),this.matrix.copy(t.matrix),this.needsUpdate=!0}};_e.prototype.update=function(){return function(){let t=this.matrix,e=this.min,n=this.max,i=this.points;for(let l=0;l<=1;l++)for(let h=0;h<=1;h++)for(let f=0;f<=1;f++){let u=1*l|2*h|4*f,m=i[u];m.x=l?n.x:e.x,m.y=h?n.y:e.y,m.z=f?n.z:e.z,m.applyMatrix4(t)}let s=this.satBounds,a=this.satAxes,o=i[0];for(let l=0;l<3;l++){let h=a[l],f=s[l],u=1<new me),e=new Array(12).fill().map(()=>new me),n=new R,i=new R;return function(a,o=0,c=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(c||l)&&(a.getCenter(i),this.closestPointToPoint(i,n),a.closestPointToPoint(n,i),c&&c.copy(n),l&&l.copy(i)),0;let h=o*o,f=a.min,u=a.max,m=this.points,x=1/0;for(let d=0;d<8;d++){let g=m[d];i.copy(g).clamp(f,u);let M=g.distanceToSquared(i);if(M=0,m,x;u?(m=vi(r),x=Mi(r,o)):(m=Mi(r,o),x=vi(r));let d=Gs(m,s,n,Us)?Vs(m,t,e,n):null;if(d){let _=d.point[h];if(u?_<=s[x+l]:_>=s[x+l+3])return d}let M=Gs(x,s,n,Us)?Vs(x,t,e,n):null;return d&&M?d.distance<=M.distance?d:M:d||M||null}}var xc=function(){let r,t,e=[],n=new _i(()=>new fe);return function(...a){r=n.getPrimitive(),t=n.getPrimitive(),e.push(r,t);let o=i(...a);n.releasePrimitive(r),n.releasePrimitive(t),e.pop(),e.pop();let c=e.length;return c>0&&(t=e[c-1],r=e[c-2]),o};function i(s,a,o,c,l=null,h=0,f=0){function u(_){let v=_*2,b=_n,A=yn;for(;!cn(v,b);)_=vi(_),v=_*2;return kn(_,A)}function m(_){let v=_*2,b=_n,A=yn;for(;!cn(v,b);)_=Mi(_,A),v=_*2;return kn(_,A)+yi(v,b)}let x=s*2,p=wi,d=_n,g=yn;if(cn(x,d)){let _=kn(s,g),v=yi(x,d);return Le(s,p,r),c(_,v,!1,f,h+s,r)}else{let _=vi(s),v=Mi(s,g),b=_,A=v,C,y,S,P;if(l&&(S=r,P=t,Le(b,p,S),Le(A,p,P),C=l(S),y=l(P),yi.intersectsBox(y),intersectsTriangle:y=>{y.a.applyMatrix4(l),y.b.applyMatrix4(l),y.c.applyMatrix4(l),y.needsUpdate=!0;for(let S=b*3,P=(A+b)*3;Snew xe),Ye=class{static serialize(t,e={}){if(e.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),Ye.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});e=Zi({cloneBuffers:!0},e);let n=t.geometry,i=t._roots,s=n.getIndex(),a;return e.cloneBuffers?a={roots:i.map(o=>o.slice()),index:s.array.slice()}:a={roots:i,index:s.array},a}static deserialize(t,e,n={}){if(typeof n=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),Ye.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});n=Zi({setIndex:!0},n);let{index:i,roots:s}=t,a=new Ye(e,Co(Zi({},n),{[yo]:!0}));if(a._roots=s,n.setIndex){let o=e.getIndex();if(o===null){let c=new Yt(t.index,1,!1);e.setIndex(c)}else o.array!==i&&(o.array.set(i),o.needsUpdate=!0)}return a}constructor(t,e={}){if(t.isBufferGeometry){if(t.index&&t.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[yo]:!1},e),e.useSharedArrayBuffer&&typeof SharedArrayBuffer=="undefined")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,e[yo]||(this._roots=cc(t,e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new fe))),this.geometry=t}refit(t=null){t&&Array.isArray(t)&&(t=new Set(t));let e=this.geometry,n=e.index.array,i=e.attributes.position,s,a,o,c,l=0,h=this._roots;for(let u=0,m=h.length;uA&&(A=B),DC&&(C=D),Iy&&(y=I)}return c[u+0]!==_||c[u+1]!==v||c[u+2]!==b||c[u+3]!==A||c[u+4]!==C||c[u+5]!==y?(c[u+0]=_,c[u+1]=v,c[u+2]=b,c[u+3]=A,c[u+4]=C,c[u+5]=y,!0):!1}else{let g=u+8,M=a[u+6],_=g+m,v=M+m,b=x,A=!1,C=!1;t?b||(A=t.has(_),C=t.has(v),b=!A&&!C):(A=!0,C=!0);let y=b||A,S=b||C,P=!1;y&&(P=f(g,m,b));let O=!1;S&&(O=f(M,m,b));let B=P||O;if(B)for(let D=0;D<3;D++){let I=g+D,k=M+D,Y=c[I],Z=c[I+3],H=c[k],$=c[k+3];c[u+D]=Y$?Z:$}return B}}}traverse(t,e=0){let n=this._roots[e],i=new Uint32Array(n),s=new Uint16Array(n);a(0);function a(o,c=0){let l=o*2,h=s[l+15]===65535;if(h){let f=i[o+6],u=s[l+14];t(c,h,new Float32Array(n,o*4,6),f,u)}else{let f=o+32/4,u=i[o+6],m=i[o+7];t(c,h,new Float32Array(n,o*4,6),m)||(a(f,c+1),a(u,c+1))}}}raycast(t,e=Ue){let n=this._roots,i=this.geometry,s=[],a=e.isMaterial,o=Array.isArray(e),c=i.groups,l=a?e.side:e;for(let h=0,f=n.length;h{let g=x*3;return u(m,g,g+1,g+2,p,d)}}t={boundsTraverseOrder:n,intersectsBounds:t,intersectsTriangle:e,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let s=Xe.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:o,intersectsRange:c,intersectsTriangle:l}=t;if(c&&l){let u=c;c=(m,x,p,d,g)=>u(m,x,p,d,g)?!0:xo(m,x,i,l,p,d,s)}else c||(l?c=(u,m,x,p)=>xo(u,m,i,l,x,p,s):c=(u,m,x)=>x);let h=!1,f=0;for(let u of this._roots){if(Si(u),h=xc(0,i,o,c,a,f),qi(),h)break;f+=u.byteLength}return Xe.releasePrimitive(s),h}bvhcast(t,e,n){let{intersectsRanges:i,intersectsTriangles:s}=n,a=this.geometry.index,o=this.geometry.attributes.position,c=t.geometry.index,l=t.geometry.attributes.position;Ti.copy(e).invert();let h=Xe.getPrimitive(),f=Xe.getPrimitive();if(s){let m=function(x,p,d,g,M,_,v,b){for(let A=d,C=d+g;AMo.intersectsBox(m),intersectsRange:(m,x,p,d,g,M)=>(vo.copy(M),vo.applyMatrix4(Ti),t.shapecast({intersectsBounds:_=>vo.intersectsBox(_),intersectsRange:(_,v,b,A,C)=>i(m,x,_,v,d,g,A,C)}))});return Xe.releasePrimitive(h),Xe.releasePrimitive(f),u}intersectsBox(t,e){return Vn.set(t.min,t.max,e),Vn.needsUpdate=!0,this.shapecast({intersectsBounds:n=>Vn.intersectsBox(n),intersectsTriangle:n=>Vn.intersectsTriangle(n)})}intersectsSphere(t){return this.shapecast({intersectsBounds:e=>t.intersectsBox(e),intersectsTriangle:e=>e.intersectsSphere(t)})}closestPointToGeometry(t,e,n={},i={},s=0,a=1/0){t.boundingBox||t.computeBoundingBox(),Vn.set(t.boundingBox.min,t.boundingBox.max,e),Vn.needsUpdate=!0;let o=this.geometry,c=o.attributes.position,l=o.index,h=t.attributes.position,f=t.index,u=Xe.getPrimitive(),m=Xe.getPrimitive(),x=Hs,p=Bp,d=null,g=null;i&&(d=Up,g=kp);let M=1/0,_=null,v=null;return Ti.copy(e).invert(),Xi.matrix.copy(Ti),this.shapecast({boundsTraverseOrder:b=>Vn.distanceToBox(b),intersectsBounds:(b,A,C)=>C{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:C=>Xi.distanceToBox(C),intersectsBounds:(C,y,S)=>S{for(let S=C*3,P=(C+y)*3;S(Yi.copy(t).clamp(h.min,h.max),Yi.distanceToSquared(t)),intersectsBounds:(h,f,u)=>u{h.closestPointToPoint(t,Yi);let u=t.distanceToSquared(Yi);return u{Le(0,new Float32Array(n),yc),t.union(yc)}),t}};var bo=self;bo.addEventListener("message",async function({data:r}){let t=performance.now();function e(o){let c=performance.now();(c-t>=10||o===1)&&(postMessage({error:void 0,serialized:void 0,position:void 0,progress:o}),t=c)}let{id:n,index:i,position:s,options:a}=r;try{let o=new ke;if(o.setAttribute("position",new Yt(s,3,!1)),i&&o.setIndex(new Yt(i,1,!1)),a.includedProgressCallback&&(a.onProgress=e),a.groups){let h=a.groups;for(let f in h){let u=h[f];o.addGroup(u.start,u.count,u.materialIndex)}}let c=new Ye(o,a),l=Ye.serialize(c,{cloneBuffers:!1});bo.postMessage({id:n,error:void 0,serialized:l,position:s,progress:1},[l.index.buffer,s.buffer,...l.roots])}catch(o){bo.postMessage({id:n,error:o,serialized:void 0,position:void 0,progress:1})}});\n/*! Bundled license information:\n\nthree/build/three.module.js:\n (**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n *)\n*/\n')}var BC=class{constructor(){this.running=!1,this.worker=new NB,this.worker.onerror=e=>{throw e.message?new Error(`[GenerateMeshBVHWorker] Could not create Web Worker with error "${e.message}"`):new Error("[GenerateMeshBVHWorker] Could not create Web Worker.")}}isRunning(){return this.running}generate(e,t={}){if(this.running)return void ne.warn("[GenerateMeshBVHWorker] Already running job.");if(!this.worker)return void ne.warn("[GenerateMeshBVHWorker] Worker has been disposed.");let{worker:i}=this;this.running=!0;let r=new Map;e.forEach((e=>{r.set(e.id,e)}));let n=0;return new Promise(((e,s)=>{let a=()=>{++n===r.size&&(this.running=!1,i.onmessage=null,e())};i.onerror=e=>{ne.warn(`[GenerateMeshBVHWorker] ${e.message}`),s(new Error(`[GenerateMeshBVHWorker] ${e.message}`)),this.running=!1},i.onmessage=e=>{this.running=!1;let{data:i}=e;if(i.error)ne.warn(i.error),a();else if(i.serialized){let{serialized:e,position:n,id:s}=i,o=r.get(s),l=Pc.deserialize(e,o,{setIndex:!1}),h=Object.assign({setBoundingBox:!0},t);if(h.transferred&&(o.attributes.position.array=n),o.index)t.saveOriginalIndex&&!o.userData.originalIndex&&(o.userData.originalIndex=o.index.array),ne.debug("before update, index:",o.index.array),o.index.array=e.index;else{let t=new Wt(e.index,1,!1);o.setIndex(t)}o.index&&(ne.debug("after update, index:",o.index.array),o.index.needsUpdate=!0),h.setBoundingBox&&!o.boundingBox&&(o.boundingBox=l.getBoundingBox(new Dt)),o.boundsTree=l,a()}else t.onProgress&&t.onProgress(i.progress)};for(let e of r){let r=e[0],n=e[1],s=n.index?n.index.array:void 0,o=n.attributes.position,l=o.array;if(o.isInterleavedBufferAttribute||s&&s.isInterleavedBufferAttribute){ne.warn("[GenerateMeshBVHWorker] InterleavedBufferAttribute are not supported for the geometry attributes."),a();continue}let h=[];t.transferred&&(h.push(l),s&&(h.push(s),t.saveOriginalIndex&&(n.userData.originalIndex=s.slice()))),i.postMessage({id:r,index:s,position:l,options:Dn(Br({},t),{onProgress:null,includedProgressCallback:Boolean(t.onProgress),groups:[...n.groups]})},h.length>0?h.map((e=>e.buffer)):[])}}))}dispose(){this.worker.terminate(),this.worker=void 0}};function LB(){return Vx('var vr="149";var co=0,Pr=1,ho=2;var Ga=1,uo=2,li=3,nn=0,ye=1,tn=2;var en=0,Gn=1,Rr=2,Lr=3,Ir=4,fo=5,Bn=100,po=101,mo=102,Dr=103,Nr=104,go=200,_o=201,xo=202,yo=203,Ha=204,Wa=205,vo=206,Mo=207,bo=208,wo=209,So=210,To=0,Ao=1,Eo=2,Gs=3,Co=4,Po=5,Ro=6,Lo=7,Xa=0,Io=1,Do=2,We=0,No=1,Fo=2,zo=3,Oo=4,Uo=5,qa=300,Xn=301,qn=302,Hs=303,Ws=304,ns=306,Xs=1e3,Pe=1001,qs=1002,ae=1003,Fr=1004;var us=1005;var Se=1006,Bo=1007;var pi=1008;var yn=1009,ko=1010,Vo=1011,Ya=1012,Go=1013,mn=1014,gn=1015,mi=1016,Ho=1017,Wo=1018,Hn=1020,Xo=1021,Re=1023,qo=1024,Yo=1025,_n=1026,Yn=1027,Zo=1028,Jo=1029,$o=1030,Ko=1031,jo=1033,ds=33776,fs=33777,ps=33778,ms=33779,zr=35840,Or=35841,Ur=35842,Br=35843,Qo=36196,kr=37492,Vr=37496,Gr=37808,Hr=37809,Wr=37810,Xr=37811,qr=37812,Yr=37813,Zr=37814,Jr=37815,$r=37816,Kr=37817,jr=37818,Qr=37819,ta=37820,ea=37821,gs=36492,tl=36283,na=36284,ia=36285,sa=36286;var ki=2300,Vi=2301,_s=2302,ra=2400,aa=2401,oa=2402;var vn=3e3,zt=3001,el=3200,nl=3201,il=0,sl=1;var Ie="srgb",gi="srgb-linear";var xs=7680;var rl=519,la=35044;var ca="300 es",Ys=1035,sn=class{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;let n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;let i=this._listeners[t];if(i!==void 0){let s=i.indexOf(e);s!==-1&&i.splice(s,1)}}dispatchEvent(t){if(this._listeners===void 0)return;let n=this._listeners[t.type];if(n!==void 0){t.target=this;let i=n.slice(0);for(let s=0,o=i.length;s>8&255]+ee[r>>16&255]+ee[r>>24&255]+"-"+ee[t&255]+ee[t>>8&255]+"-"+ee[t>>16&15|64]+ee[t>>24&255]+"-"+ee[e&63|128]+ee[e>>8&255]+"-"+ee[e>>16&255]+ee[e>>24&255]+ee[n&255]+ee[n>>8&255]+ee[n>>16&255]+ee[n>>24&255]).toLowerCase()}function ue(r,t,e){return Math.max(t,Math.min(e,r))}function Mr(r,t){return(r%t+t)%t}function al(r,t,e,n,i){return n+(r-t)*(i-n)/(e-t)}function ol(r,t,e){return r!==t?(e-r)/(t-r):0}function di(r,t,e){return(1-e)*r+e*t}function ll(r,t,e,n){return di(r,t,1-Math.exp(-e*n))}function cl(r,t=1){return t-Math.abs(Mr(r,t*2)-t)}function hl(r,t,e){return r<=t?0:r>=e?1:(r=(r-t)/(e-t),r*r*(3-2*r))}function ul(r,t,e){return r<=t?0:r>=e?1:(r=(r-t)/(e-t),r*r*r*(r*(r*6-15)+10))}function dl(r,t){return r+Math.floor(Math.random()*(t-r+1))}function fl(r,t){return r+Math.random()*(t-r)}function pl(r){return r*(.5-Math.random())}function ml(r){r!==void 0&&(ha=r);let t=ha+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function gl(r){return r*ui}function _l(r){return r*Gi}function Zs(r){return(r&r-1)===0&&r!==0}function xl(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function Hi(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function yl(r,t,e,n,i){let s=Math.cos,o=Math.sin,a=s(e/2),c=o(e/2),l=s((t+n)/2),h=o((t+n)/2),f=s((t-n)/2),u=o((t-n)/2),m=s((n-t)/2),_=o((n-t)/2);switch(i){case"XYX":r.set(a*h,c*f,c*u,a*l);break;case"YZY":r.set(c*u,a*h,c*f,a*l);break;case"ZXZ":r.set(c*f,c*u,a*h,a*l);break;case"XZX":r.set(a*h,c*_,c*m,a*l);break;case"YXY":r.set(c*m,a*h,c*_,a*l);break;case"ZYZ":r.set(c*_,c*m,a*h,a*l);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function ci(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function he(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var Za=Object.freeze({__proto__:null,DEG2RAD:ui,RAD2DEG:Gi,ceilPowerOfTwo:xl,clamp:ue,damp:ll,degToRad:gl,denormalize:ci,euclideanModulo:Mr,floorPowerOfTwo:Hi,generateUUID:jn,inverseLerp:ol,isPowerOfTwo:Zs,lerp:di,mapLinear:al,normalize:he,pingpong:cl,radToDeg:_l,randFloat:fl,randFloatSpread:pl,randInt:dl,seededRandom:ml,setQuaternionFromProperEuler:yl,smootherstep:ul,smoothstep:hl}),Nt=class{constructor(t=0,e=0){Nt.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){let 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=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(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(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let 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){let n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,o=this.y-t.y;return this.x=s*n-o*i+t.x,this.y=s*i+o*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},oe=class{constructor(){oe.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,s,o,a,c,l){let h=this.elements;return h[0]=t,h[1]=i,h[2]=a,h[3]=e,h[4]=s,h[5]=c,h[6]=n,h[7]=o,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let 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){let 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){let n=t.elements,i=e.elements,s=this.elements,o=n[0],a=n[3],c=n[6],l=n[1],h=n[4],f=n[7],u=n[2],m=n[5],_=n[8],p=i[0],d=i[3],v=i[6],T=i[1],b=i[4],M=i[7],A=i[2],C=i[5],I=i[8];return s[0]=o*p+a*T+c*A,s[3]=o*d+a*b+c*C,s[6]=o*v+a*M+c*I,s[1]=l*p+h*T+f*A,s[4]=l*d+h*b+f*C,s[7]=l*v+h*M+f*I,s[2]=u*p+m*T+_*A,s[5]=u*d+m*b+_*C,s[8]=u*v+m*M+_*I,this}multiplyScalar(t){let 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(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8];return e*o*h-e*a*l-n*s*h+n*a*c+i*s*l-i*o*c}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=h*o-a*l,u=a*c-h*s,m=l*s-o*c,_=e*f+n*u+i*m;if(_===0)return this.set(0,0,0,0,0,0,0,0,0);let p=1/_;return t[0]=f*p,t[1]=(i*l-h*n)*p,t[2]=(a*n-i*o)*p,t[3]=u*p,t[4]=(h*e-i*c)*p,t[5]=(i*s-a*e)*p,t[6]=m*p,t[7]=(n*c-l*e)*p,t[8]=(o*e-n*s)*p,this}transpose(){let t,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){let 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,s,o,a){let c=Math.cos(s),l=Math.sin(s);return this.set(n*c,n*l,-n*(c*o+l*a)+o+t,-i*l,i*c,-i*(-l*o+c*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(ys.makeScale(t,e)),this}rotate(t){return this.premultiply(ys.makeRotation(-t)),this}translate(t,e){return this.premultiply(ys.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){let 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){let 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){let 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)}},ys=new oe;function Ja(r){for(let t=r.length-1;t>=0;--t)if(r[t]>=65535)return!0;return!1}function Wi(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function xn(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Bi(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var vs={[Ie]:{[gi]:xn},[gi]:{[Ie]:Bi}},se={legacyMode:!0,get workingColorSpace(){return gi},set workingColorSpace(r){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(r,t,e){if(this.legacyMode||t===e||!t||!e)return r;if(vs[t]&&vs[t][e]!==void 0){let n=vs[t][e];return r.r=n(r.r),r.g=n(r.g),r.b=n(r.b),r}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(r,t){return this.convert(r,this.workingColorSpace,t)},toWorkingColorSpace:function(r,t){return this.convert(r,t,this.workingColorSpace)}},$a={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},Wt={r:0,g:0,b:0},Ae={h:0,s:0,l:0},vi={h:0,s:0,l:0};function Ms(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}function Mi(r,t){return t.r=r.r,t.g=r.g,t.b=r.b,t}var Ot=class{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,e===void 0&&n===void 0?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Ie){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,se.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=se.workingColorSpace){return this.r=t,this.g=e,this.b=n,se.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=se.workingColorSpace){if(t=Mr(t,1),e=ue(e,0,1),n=ue(n,0,1),e===0)this.r=this.g=this.b=n;else{let s=n<=.5?n*(1+e):n+e-n*e,o=2*n-s;this.r=Ms(o,s,t+1/3),this.g=Ms(o,s,t),this.b=Ms(o,s,t-1/3)}return se.toWorkingColorSpace(this,i),this}setStyle(t,e=Ie){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let s,o=i[1],a=i[2];switch(o){case"rgb":case"rgba":if(s=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(s[1],10))/255,this.g=Math.min(255,parseInt(s[2],10))/255,this.b=Math.min(255,parseInt(s[3],10))/255,se.toWorkingColorSpace(this,e),n(s[4]),this;if(s=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(s[1],10))/100,this.g=Math.min(100,parseInt(s[2],10))/100,this.b=Math.min(100,parseInt(s[3],10))/100,se.toWorkingColorSpace(this,e),n(s[4]),this;break;case"hsl":case"hsla":if(s=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a)){let c=parseFloat(s[1])/360,l=parseFloat(s[2])/100,h=parseFloat(s[3])/100;return n(s[4]),this.setHSL(c,l,h,e)}break}}else if(i=/^\\#([A-Fa-f\\d]+)$/.exec(t)){let s=i[1],o=s.length;if(o===3)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,se.toWorkingColorSpace(this,e),this;if(o===6)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,se.toWorkingColorSpace(this,e),this}return t&&t.length>0?this.setColorName(t,e):this}setColorName(t,e=Ie){let n=$a[t.toLowerCase()];return n!==void 0?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=xn(t.r),this.g=xn(t.g),this.b=xn(t.b),this}copyLinearToSRGB(t){return this.r=Bi(t.r),this.g=Bi(t.g),this.b=Bi(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Ie){return se.fromWorkingColorSpace(Mi(this,Wt),t),ue(Wt.r*255,0,255)<<16^ue(Wt.g*255,0,255)<<8^ue(Wt.b*255,0,255)<<0}getHexString(t=Ie){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=se.workingColorSpace){se.fromWorkingColorSpace(Mi(this,Wt),e);let n=Wt.r,i=Wt.g,s=Wt.b,o=Math.max(n,i,s),a=Math.min(n,i,s),c,l,h=(a+o)/2;if(a===o)c=0,l=0;else{let f=o-a;switch(l=h<=.5?f/(o+a):f/(2-o-a),o){case n:c=(i-s)/f+(i2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){let e=Wi("canvas");e.width=t.width,e.height=t.height;let n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);let i=n.getImageData(0,0,t.width,t.height),s=i.data;for(let o=0;o0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==qa)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Xs:t.x=t.x-Math.floor(t.x);break;case Pe:t.x=t.x<0?0:1;break;case qs:Math.abs(Math.floor(t.x)%2)===1?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 Xs:t.y=t.y-Math.floor(t.y);break;case Pe:t.y=t.y<0?0:1;break;case qs:Math.abs(Math.floor(t.y)%2)===1?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){t===!0&&(this.version++,this.source.needsUpdate=!0)}};le.DEFAULT_IMAGE=null;le.DEFAULT_MAPPING=qa;le.DEFAULT_ANISOTROPY=1;var Xt=class{constructor(t=0,e=0,n=0,i=1){Xt.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=t.w!==void 0?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){let e=this.x,n=this.y,i=this.z,s=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*i+o[12]*s,this.y=o[1]*e+o[5]*n+o[9]*i+o[13]*s,this.z=o[2]*e+o[6]*n+o[10]*i+o[14]*s,this.w=o[3]*e+o[7]*n+o[11]*i+o[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let 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,s,c=t.elements,l=c[0],h=c[4],f=c[8],u=c[1],m=c[5],_=c[9],p=c[2],d=c[6],v=c[10];if(Math.abs(h-u)<.01&&Math.abs(f-p)<.01&&Math.abs(_-d)<.01){if(Math.abs(h+u)<.1&&Math.abs(f+p)<.1&&Math.abs(_+d)<.1&&Math.abs(l+m+v-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let b=(l+1)/2,M=(m+1)/2,A=(v+1)/2,C=(h+u)/4,I=(f+p)/4,x=(_+d)/4;return b>M&&b>A?b<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(b),i=C/n,s=I/n):M>A?M<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(M),n=C/i,s=x/i):A<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(A),n=I/s,i=x/s),this.set(n,i,s,e),this}let T=Math.sqrt((d-_)*(d-_)+(f-p)*(f-p)+(u-h)*(u-h));return Math.abs(T)<.001&&(T=1),this.x=(d-_)/T,this.y=(f-p)/T,this.z=(u-h)/T,this.w=Math.acos((l+m+v-1)/2),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=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(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}},qe=class extends sn{constructor(t=1,e=1,n={}){super(),this.isWebGLRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Xt(0,0,t,e),this.scissorTest=!1,this.viewport=new Xt(0,0,t,e);let i={width:t,height:e,depth:1};this.texture=new le(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Se,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.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.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},t.texture.image);return this.texture.source=new qi(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},Yi=class extends le{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=ae,this.minFilter=ae,this.wrapR=Pe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Js=class extends le{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=ae,this.minFilter=ae,this.wrapR=Pe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var rn=class{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,s,o,a){let c=n[i+0],l=n[i+1],h=n[i+2],f=n[i+3],u=s[o+0],m=s[o+1],_=s[o+2],p=s[o+3];if(a===0){t[e+0]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f;return}if(a===1){t[e+0]=u,t[e+1]=m,t[e+2]=_,t[e+3]=p;return}if(f!==p||c!==u||l!==m||h!==_){let d=1-a,v=c*u+l*m+h*_+f*p,T=v>=0?1:-1,b=1-v*v;if(b>Number.EPSILON){let A=Math.sqrt(b),C=Math.atan2(A,v*T);d=Math.sin(d*C)/A,a=Math.sin(a*C)/A}let M=a*T;if(c=c*d+u*M,l=l*d+m*M,h=h*d+_*M,f=f*d+p*M,d===1-a){let A=1/Math.sqrt(c*c+l*l+h*h+f*f);c*=A,l*=A,h*=A,f*=A}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f}static multiplyQuaternionsFlat(t,e,n,i,s,o){let a=n[i],c=n[i+1],l=n[i+2],h=n[i+3],f=s[o],u=s[o+1],m=s[o+2],_=s[o+3];return t[e]=a*_+h*f+c*m-l*u,t[e+1]=c*_+h*u+l*f-a*m,t[e+2]=l*_+h*m+a*u-c*f,t[e+3]=h*_-a*f-c*u-l*m,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){let n=t._x,i=t._y,s=t._z,o=t._order,a=Math.cos,c=Math.sin,l=a(n/2),h=a(i/2),f=a(s/2),u=c(n/2),m=c(i/2),_=c(s/2);switch(o){case"XYZ":this._x=u*h*f+l*m*_,this._y=l*m*f-u*h*_,this._z=l*h*_+u*m*f,this._w=l*h*f-u*m*_;break;case"YXZ":this._x=u*h*f+l*m*_,this._y=l*m*f-u*h*_,this._z=l*h*_-u*m*f,this._w=l*h*f+u*m*_;break;case"ZXY":this._x=u*h*f-l*m*_,this._y=l*m*f+u*h*_,this._z=l*h*_+u*m*f,this._w=l*h*f-u*m*_;break;case"ZYX":this._x=u*h*f-l*m*_,this._y=l*m*f+u*h*_,this._z=l*h*_-u*m*f,this._w=l*h*f+u*m*_;break;case"YZX":this._x=u*h*f+l*m*_,this._y=l*m*f+u*h*_,this._z=l*h*_-u*m*f,this._w=l*h*f-u*m*_;break;case"XZY":this._x=u*h*f-l*m*_,this._y=l*m*f-u*h*_,this._z=l*h*_+u*m*f,this._w=l*h*f+u*m*_;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(t,e){let 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){let e=t.elements,n=e[0],i=e[4],s=e[8],o=e[1],a=e[5],c=e[9],l=e[2],h=e[6],f=e[10],u=n+a+f;if(u>0){let m=.5/Math.sqrt(u+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-l)*m,this._z=(o-i)*m}else if(n>a&&n>f){let m=2*Math.sqrt(1+n-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(i+o)/m,this._z=(s+l)/m}else if(a>f){let m=2*Math.sqrt(1+a-n-f);this._w=(s-l)/m,this._x=(i+o)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+f-n-a);this._w=(o-i)/m,this._x=(s+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.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(ue(this.dot(t),-1,1)))}rotateTowards(t,e){let n=this.angleTo(t);if(n===0)return this;let 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 t===0?(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){let n=t._x,i=t._y,s=t._z,o=t._w,a=e._x,c=e._y,l=e._z,h=e._w;return this._x=n*h+o*a+i*l-s*c,this._y=i*h+o*c+s*a-n*l,this._z=s*h+o*l+n*c-i*a,this._w=o*h-n*a-i*c-s*l,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let n=this._x,i=this._y,s=this._z,o=this._w,a=o*t._w+n*t._x+i*t._y+s*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=o,this._x=n,this._y=i,this._z=s,this;let c=1-a*a;if(c<=Number.EPSILON){let m=1-e;return this._w=m*o+e*this._w,this._x=m*n+e*this._x,this._y=m*i+e*this._y,this._z=m*s+e*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,a),f=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=o*f+this._w*u,this._x=n*f+this._x*u,this._y=i*f+this._y*u,this._z=s*f+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){let t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}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}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},N=class{constructor(t=0,e=0,n=0){N.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(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(ua.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ua.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=t.elements,o=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*o,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*o,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*o,this}applyQuaternion(t){let e=this.x,n=this.y,i=this.z,s=t.x,o=t.y,a=t.z,c=t.w,l=c*e+o*i-a*n,h=c*n+a*e-s*i,f=c*i+s*n-o*e,u=-s*e-o*n-a*i;return this.x=l*c+u*-s+h*-a-f*-o,this.y=h*c+u*-o+f*-s-l*-a,this.z=f*c+u*-a+l*-o-h*-s,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[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=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(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){let n=t.x,i=t.y,s=t.z,o=e.x,a=e.y,c=e.z;return this.x=i*c-s*a,this.y=s*o-n*c,this.z=n*a-i*o,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return ws.copy(this).projectOnVector(t),this.sub(ws)}reflect(t){return this.sub(ws.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(ue(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let 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){let 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){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let 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,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,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(){let t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},ws=new N,ua=new rn,Mn=class{constructor(t=new N(1/0,1/0,1/0),e=new N(-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){let e=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let c=0,l=t.length;cs&&(s=h),f>o&&(o=f),u>a&&(a=u)}return this.min.set(e,n,i),this.max.set(s,o,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let c=0,l=t.count;cs&&(s=h),f>o&&(o=f),u>a&&(a=u)}return this.min.set(e,n,i),this.max.set(s,o,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.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.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,hn),hn.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(ei),bi.subVectors(this.max,ei),An.subVectors(t.a,ei),En.subVectors(t.b,ei),Cn.subVectors(t.c,ei),Je.subVectors(En,An),$e.subVectors(Cn,En),un.subVectors(An,Cn);let e=[0,-Je.z,Je.y,0,-$e.z,$e.y,0,-un.z,un.y,Je.z,0,-Je.x,$e.z,0,-$e.x,un.z,0,-un.x,-Je.y,Je.x,0,-$e.y,$e.x,0,-un.y,un.x,0];return!Ts(e,An,En,Cn,bi)||(e=[1,0,0,0,1,0,0,0,1],!Ts(e,An,En,Cn,bi))?!1:(wi.crossVectors(Je,$e),e=[wi.x,wi.y,wi.z],Ts(e,An,En,Cn,bi))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return hn.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=this.getSize(hn).length()*.5,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()?this:(Ue[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Ue[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Ue[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Ue[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Ue[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Ue[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Ue[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Ue[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Ue),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)}},Ue=[new N,new N,new N,new N,new N,new N,new N,new N],hn=new N,Ss=new Mn,An=new N,En=new N,Cn=new N,Je=new N,$e=new N,un=new N,ei=new N,bi=new N,wi=new N,dn=new N;function Ts(r,t,e,n,i){for(let s=0,o=r.length-3;s<=o;s+=3){dn.fromArray(r,s);let a=i.x*Math.abs(dn.x)+i.y*Math.abs(dn.y)+i.z*Math.abs(dn.z),c=t.dot(dn),l=e.dot(dn),h=n.dot(dn);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>a)return!1}return!0}var Ml=new Mn,ni=new N,As=new N,_i=class{constructor(t=new N,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let n=this.center;e!==void 0?n.copy(e):Ml.setFromPoints(t).getCenter(n);let i=0;for(let s=0,o=t.length;sthis.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;ni.subVectors(t,this.center);let e=ni.lengthSq();if(e>this.radius*this.radius){let n=Math.sqrt(e),i=(n-this.radius)*.5;this.center.addScaledVector(ni,i/n),this.radius+=i}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(As.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(ni.copy(t.center).add(As)),this.expandByPoint(ni.copy(t.center).sub(As))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}},Be=new N,Es=new N,Si=new N,Ke=new N,Cs=new N,Ti=new N,Ps=new N,$s=class{constructor(t=new N,e=new N(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.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Be)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=Be.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Be.copy(this.direction).multiplyScalar(e).add(this.origin),Be.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Es.copy(t).add(e).multiplyScalar(.5),Si.copy(e).sub(t).normalize(),Ke.copy(this.origin).sub(Es);let s=t.distanceTo(e)*.5,o=-this.direction.dot(Si),a=Ke.dot(this.direction),c=-Ke.dot(Si),l=Ke.lengthSq(),h=Math.abs(1-o*o),f,u,m,_;if(h>0)if(f=o*c-a,u=o*a-c,_=s*h,f>=0)if(u>=-_)if(u<=_){let p=1/h;f*=p,u*=p,m=f*(f+o*u+2*a)+u*(o*f+u+2*c)+l}else u=s,f=Math.max(0,-(o*u+a)),m=-f*f+u*(u+2*c)+l;else u=-s,f=Math.max(0,-(o*u+a)),m=-f*f+u*(u+2*c)+l;else u<=-_?(f=Math.max(0,-(-o*s+a)),u=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l):u<=_?(f=0,u=Math.min(Math.max(-s,-c),s),m=u*(u+2*c)+l):(f=Math.max(0,-(o*s+a)),u=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l);else u=o>0?-s:s,f=Math.max(0,-(o*u+a)),m=-f*f+u*(u+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(f).add(this.origin),i&&i.copy(Si).multiplyScalar(u).add(Es),m}intersectSphere(t,e){Be.subVectors(t.center,this.origin);let n=Be.dot(this.direction),i=Be.dot(Be)-n*n,s=t.radius*t.radius;if(i>s)return null;let o=Math.sqrt(s-i),a=n-o,c=n+o;return a<0&&c<0?null:a<0?this.at(c,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){let n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,o,a,c,l=1/this.direction.x,h=1/this.direction.y,f=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?(s=(t.min.y-u.y)*h,o=(t.max.y-u.y)*h):(s=(t.max.y-u.y)*h,o=(t.min.y-u.y)*h),n>o||s>i||((s>n||isNaN(n))&&(n=s),(o=0?(a=(t.min.z-u.z)*f,c=(t.max.z-u.z)*f):(a=(t.max.z-u.z)*f,c=(t.min.z-u.z)*f),n>c||a>i)||((a>n||n!==n)&&(n=a),(c=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,Be)!==null}intersectTriangle(t,e,n,i,s){Cs.subVectors(e,t),Ti.subVectors(n,t),Ps.crossVectors(Cs,Ti);let o=this.direction.dot(Ps),a;if(o>0){if(i)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Ke.subVectors(this.origin,t);let c=a*this.direction.dot(Ti.crossVectors(Ke,Ti));if(c<0)return null;let l=a*this.direction.dot(Cs.cross(Ke));if(l<0||c+l>o)return null;let h=-a*Ke.dot(Ps);return h<0?null:this.at(h/o,s)}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)}},qt=class{constructor(){qt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,s,o,a,c,l,h,f,u,m,_,p,d){let v=this.elements;return v[0]=t,v[4]=e,v[8]=n,v[12]=i,v[1]=s,v[5]=o,v[9]=a,v[13]=c,v[2]=l,v[6]=h,v[10]=f,v[14]=u,v[3]=m,v[7]=_,v[11]=p,v[15]=d,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 qt().fromArray(this.elements)}copy(t){let 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){let e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){let 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){let e=this.elements,n=t.elements,i=1/Pn.setFromMatrixColumn(t,0).length(),s=1/Pn.setFromMatrixColumn(t,1).length(),o=1/Pn.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]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,n=t.x,i=t.y,s=t.z,o=Math.cos(n),a=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(s),f=Math.sin(s);if(t.order==="XYZ"){let u=o*h,m=o*f,_=a*h,p=a*f;e[0]=c*h,e[4]=-c*f,e[8]=l,e[1]=m+_*l,e[5]=u-p*l,e[9]=-a*c,e[2]=p-u*l,e[6]=_+m*l,e[10]=o*c}else if(t.order==="YXZ"){let u=c*h,m=c*f,_=l*h,p=l*f;e[0]=u+p*a,e[4]=_*a-m,e[8]=o*l,e[1]=o*f,e[5]=o*h,e[9]=-a,e[2]=m*a-_,e[6]=p+u*a,e[10]=o*c}else if(t.order==="ZXY"){let u=c*h,m=c*f,_=l*h,p=l*f;e[0]=u-p*a,e[4]=-o*f,e[8]=_+m*a,e[1]=m+_*a,e[5]=o*h,e[9]=p-u*a,e[2]=-o*l,e[6]=a,e[10]=o*c}else if(t.order==="ZYX"){let u=o*h,m=o*f,_=a*h,p=a*f;e[0]=c*h,e[4]=_*l-m,e[8]=u*l+p,e[1]=c*f,e[5]=p*l+u,e[9]=m*l-_,e[2]=-l,e[6]=a*c,e[10]=o*c}else if(t.order==="YZX"){let u=o*c,m=o*l,_=a*c,p=a*l;e[0]=c*h,e[4]=p-u*f,e[8]=_*f+m,e[1]=f,e[5]=o*h,e[9]=-a*h,e[2]=-l*h,e[6]=m*f+_,e[10]=u-p*f}else if(t.order==="XZY"){let u=o*c,m=o*l,_=a*c,p=a*l;e[0]=c*h,e[4]=-f,e[8]=l*h,e[1]=u*f+p,e[5]=o*h,e[9]=m*f-_,e[2]=_*f-m,e[6]=a*h,e[10]=p*f+u}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(bl,t,wl)}lookAt(t,e,n){let i=this.elements;return me.subVectors(t,e),me.lengthSq()===0&&(me.z=1),me.normalize(),je.crossVectors(n,me),je.lengthSq()===0&&(Math.abs(n.z)===1?me.x+=1e-4:me.z+=1e-4,me.normalize(),je.crossVectors(n,me)),je.normalize(),Ai.crossVectors(me,je),i[0]=je.x,i[4]=Ai.x,i[8]=me.x,i[1]=je.y,i[5]=Ai.y,i[9]=me.y,i[2]=je.z,i[6]=Ai.z,i[10]=me.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,o=n[0],a=n[4],c=n[8],l=n[12],h=n[1],f=n[5],u=n[9],m=n[13],_=n[2],p=n[6],d=n[10],v=n[14],T=n[3],b=n[7],M=n[11],A=n[15],C=i[0],I=i[4],x=i[8],S=i[12],L=i[1],X=i[5],q=i[9],z=i[13],R=i[2],G=i[6],Y=i[10],j=i[14],W=i[3],Q=i[7],Z=i[11],ft=i[15];return s[0]=o*C+a*L+c*R+l*W,s[4]=o*I+a*X+c*G+l*Q,s[8]=o*x+a*q+c*Y+l*Z,s[12]=o*S+a*z+c*j+l*ft,s[1]=h*C+f*L+u*R+m*W,s[5]=h*I+f*X+u*G+m*Q,s[9]=h*x+f*q+u*Y+m*Z,s[13]=h*S+f*z+u*j+m*ft,s[2]=_*C+p*L+d*R+v*W,s[6]=_*I+p*X+d*G+v*Q,s[10]=_*x+p*q+d*Y+v*Z,s[14]=_*S+p*z+d*j+v*ft,s[3]=T*C+b*L+M*R+A*W,s[7]=T*I+b*X+M*G+A*Q,s[11]=T*x+b*q+M*Y+A*Z,s[15]=T*S+b*z+M*j+A*ft,this}multiplyScalar(t){let 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(){let t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],o=t[1],a=t[5],c=t[9],l=t[13],h=t[2],f=t[6],u=t[10],m=t[14],_=t[3],p=t[7],d=t[11],v=t[15];return _*(+s*c*f-i*l*f-s*a*u+n*l*u+i*a*m-n*c*m)+p*(+e*c*m-e*l*u+s*o*u-i*o*m+i*l*h-s*c*h)+d*(+e*l*f-e*a*m-s*o*f+n*o*m+s*a*h-n*l*h)+v*(-i*a*h-e*c*f+e*a*u+i*o*f-n*o*u+n*c*h)}transpose(){let t=this.elements,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){let 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(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=t[9],u=t[10],m=t[11],_=t[12],p=t[13],d=t[14],v=t[15],T=f*d*l-p*u*l+p*c*m-a*d*m-f*c*v+a*u*v,b=_*u*l-h*d*l-_*c*m+o*d*m+h*c*v-o*u*v,M=h*p*l-_*f*l+_*a*m-o*p*m-h*a*v+o*f*v,A=_*f*c-h*p*c-_*a*u+o*p*u+h*a*d-o*f*d,C=e*T+n*b+i*M+s*A;if(C===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let I=1/C;return t[0]=T*I,t[1]=(p*u*s-f*d*s-p*i*m+n*d*m+f*i*v-n*u*v)*I,t[2]=(a*d*s-p*c*s+p*i*l-n*d*l-a*i*v+n*c*v)*I,t[3]=(f*c*s-a*u*s-f*i*l+n*u*l+a*i*m-n*c*m)*I,t[4]=b*I,t[5]=(h*d*s-_*u*s+_*i*m-e*d*m-h*i*v+e*u*v)*I,t[6]=(_*c*s-o*d*s-_*i*l+e*d*l+o*i*v-e*c*v)*I,t[7]=(o*u*s-h*c*s+h*i*l-e*u*l-o*i*m+e*c*m)*I,t[8]=M*I,t[9]=(_*f*s-h*p*s-_*n*m+e*p*m+h*n*v-e*f*v)*I,t[10]=(o*p*s-_*a*s+_*n*l-e*p*l-o*n*v+e*a*v)*I,t[11]=(h*a*s-o*f*s-h*n*l+e*f*l+o*n*m-e*a*m)*I,t[12]=A*I,t[13]=(h*p*i-_*f*i+_*n*u-e*p*u-h*n*d+e*f*d)*I,t[14]=(_*a*i-o*p*i-_*n*c+e*p*c+o*n*d-e*a*d)*I,t[15]=(o*f*i-h*a*i+h*n*c-e*f*c-o*n*u+e*a*u)*I,this}scale(t){let e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){let 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 this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){let 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){let 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){let 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){let n=Math.cos(e),i=Math.sin(e),s=1-n,o=t.x,a=t.y,c=t.z,l=s*o,h=s*a;return this.set(l*o+n,l*a-i*c,l*c+i*a,0,l*a+i*c,h*a+n,h*c-i*o,0,l*c-i*a,h*c+i*o,s*c*c+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,s,o){return this.set(1,n,s,0,t,1,o,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){let i=this.elements,s=e._x,o=e._y,a=e._z,c=e._w,l=s+s,h=o+o,f=a+a,u=s*l,m=s*h,_=s*f,p=o*h,d=o*f,v=a*f,T=c*l,b=c*h,M=c*f,A=n.x,C=n.y,I=n.z;return i[0]=(1-(p+v))*A,i[1]=(m+M)*A,i[2]=(_-b)*A,i[3]=0,i[4]=(m-M)*C,i[5]=(1-(u+v))*C,i[6]=(d+T)*C,i[7]=0,i[8]=(_+b)*I,i[9]=(d-T)*I,i[10]=(1-(u+p))*I,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){let i=this.elements,s=Pn.set(i[0],i[1],i[2]).length(),o=Pn.set(i[4],i[5],i[6]).length(),a=Pn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],Ee.copy(this);let l=1/s,h=1/o,f=1/a;return Ee.elements[0]*=l,Ee.elements[1]*=l,Ee.elements[2]*=l,Ee.elements[4]*=h,Ee.elements[5]*=h,Ee.elements[6]*=h,Ee.elements[8]*=f,Ee.elements[9]*=f,Ee.elements[10]*=f,e.setFromRotationMatrix(Ee),n.x=s,n.y=o,n.z=a,this}makePerspective(t,e,n,i,s,o){let a=this.elements,c=2*s/(e-t),l=2*s/(n-i),h=(e+t)/(e-t),f=(n+i)/(n-i),u=-(o+s)/(o-s),m=-2*o*s/(o-s);return a[0]=c,a[4]=0,a[8]=h,a[12]=0,a[1]=0,a[5]=l,a[9]=f,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=m,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,s,o){let a=this.elements,c=1/(e-t),l=1/(n-i),h=1/(o-s),f=(e+t)*c,u=(n+i)*l,m=(o+s)*h;return a[0]=2*c,a[4]=0,a[8]=0,a[12]=-f,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*h,a[14]=-m,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){let 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){let 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}},Pn=new N,Ee=new qt,bl=new N(0,0,0),wl=new N(1,1,1),je=new N,Ai=new N,me=new N,da=new qt,fa=new rn,Zn=class{constructor(t=0,e=0,n=0,i=Zn.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){let i=t.elements,s=i[0],o=i[4],a=i[8],c=i[1],l=i[5],h=i[9],f=i[2],u=i[6],m=i[10];switch(e){case"XYZ":this._y=Math.asin(ue(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-ue(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(ue(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-ue(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(u,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,l));break;case"YZX":this._z=Math.asin(ue(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-ue(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return da.makeRotationFromQuaternion(t),this.setFromRotationMatrix(da,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return fa.setFromEuler(this),this.setFromQuaternion(fa,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],t[3]!==void 0&&(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}};Zn.DEFAULT_ORDER="XYZ";var Zi=class{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(n=n.concat(o))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ii,t,Tl),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ii,Al,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);let e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON()));function s(a,c){return a[c.uuid]===void 0&&(a[c.uuid]=c.toJSON(t)),c.uuid}if(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&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(t.geometries,this.geometry);let a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){let c=a.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l0){i.children=[];for(let a=0;a0){i.animations=[];for(let a=0;a0&&(n.geometries=a),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),f.length>0&&(n.shapes=f),u.length>0&&(n.skeletons=u),m.length>0&&(n.animations=m),_.length>0&&(n.nodes=_)}return n.object=i,n;function o(a){let c=[];for(let l in a){let h=a[l];delete h.metadata,c.push(h)}return c}}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.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,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.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(t,e,n,i,s){Ce.subVectors(i,e),Ve.subVectors(n,e),Rs.subVectors(t,e);let o=Ce.dot(Ce),a=Ce.dot(Ve),c=Ce.dot(Rs),l=Ve.dot(Ve),h=Ve.dot(Rs),f=o*l-a*a;if(f===0)return s.set(-2,-1,-1);let u=1/f,m=(l*c-a*h)*u,_=(o*h-a*c)*u;return s.set(1-m-_,_,m)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Ge),Ge.x>=0&&Ge.y>=0&&Ge.x+Ge.y<=1}static getUV(t,e,n,i,s,o,a,c){return this.getBarycoord(t,e,n,i,Ge),c.set(0,0),c.addScaledVector(s,Ge.x),c.addScaledVector(o,Ge.y),c.addScaledVector(a,Ge.z),c}static isFrontFacing(t,e,n,i){return Ce.subVectors(n,e),Ve.subVectors(t,e),Ce.cross(Ve).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 Ce.subVectors(this.c,this.b),Ve.subVectors(this.a,this.b),Ce.cross(Ve).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return xe.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return xe.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,s){return xe.getUV(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return xe.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return xe.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let n=this.a,i=this.b,s=this.c,o,a;Ln.subVectors(i,n),In.subVectors(s,n),Ls.subVectors(t,n);let c=Ln.dot(Ls),l=In.dot(Ls);if(c<=0&&l<=0)return e.copy(n);Is.subVectors(t,i);let h=Ln.dot(Is),f=In.dot(Is);if(h>=0&&f<=h)return e.copy(i);let u=c*f-h*l;if(u<=0&&c>=0&&h<=0)return o=c/(c-h),e.copy(n).addScaledVector(Ln,o);Ds.subVectors(t,s);let m=Ln.dot(Ds),_=In.dot(Ds);if(_>=0&&m<=_)return e.copy(s);let p=m*l-c*_;if(p<=0&&l>=0&&_<=0)return a=l/(l-_),e.copy(n).addScaledVector(In,a);let d=h*_-m*f;if(d<=0&&f-h>=0&&m-_>=0)return ya.subVectors(s,i),a=(f-h)/(f-h+(m-_)),e.copy(i).addScaledVector(ya,a);let v=1/(d+p+u);return o=p*v,a=u*v,e.copy(n).addScaledVector(Ln,o).addScaledVector(In,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},Cl=0,Jn=class extends sn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Cl++}),this.uuid=jn(),this.name="",this.type="Material",this.blending=Gn,this.side=nn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=Ha,this.blendDst=Wa,this.blendEquation=Bn,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Gs,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=rl,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=xs,this.stencilZFail=xs,this.stencilZPass=xs,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}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let n=t[e];if(n===void 0){console.warn("THREE.Material: \'"+e+"\' parameter is undefined.");continue}let i=this[e];if(i===void 0){console.warn("THREE."+this.type+": \'"+e+"\' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n}}toJSON(t){let e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});let n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(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()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(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),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,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Gn&&(n.blending=this.blending),this.side!==nn&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(n.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function i(s){let o=[];for(let a in s){let c=s[a];delete c.metadata,o.push(c)}return o}if(e){let s=i(t.textures),o=i(t.images);s.length>0&&(n.textures=s),o.length>0&&(n.images=o)}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.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;let e=t.clippingPlanes,n=null;if(e!==null){let i=e.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=e[s].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.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){t===!0&&this.version++}},Ji=class extends Jn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ot(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.combine=Xa,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.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}},Gt=new N,Ci=new Nt,ce=class{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=la,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}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}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i0&&(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(t[l]=c[l]);return t}t.data={attributes:{}};let e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let n=this.attributes;for(let c in n){let l=n[c];t.data.attributes[c]=l.toJSON(t.data)}let i={},s=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let f=0,u=l.length;f0&&(i[c]=h,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));let a=this.boundingSphere;return a!==null&&(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;let e={};this.name=t.name;let n=t.index;n!==null&&this.setIndex(n.clone(e));let i=t.attributes;for(let l in i){let h=i[l];this.setAttribute(l,h.clone(e))}let s=t.morphAttributes;for(let l in s){let h=[],f=s[l];for(let u=0,m=f.length;u0){let i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;se.far?null:{distance:l,point:Di.clone(),object:r}}function Ni(r,t,e,n,i,s,o,a,c){r.getVertexPosition(o,ri),r.getVertexPosition(a,ai),r.getVertexPosition(c,oi);let l=Rl(r,t,e,n,ri,ai,oi,Os);if(l){i&&(Ri.fromBufferAttribute(i,o),Li.fromBufferAttribute(i,a),Ii.fromBufferAttribute(i,c),l.uv=xe.getUV(Os,ri,ai,oi,Ri,Li,Ii,new Nt)),s&&(Ri.fromBufferAttribute(s,o),Li.fromBufferAttribute(s,a),Ii.fromBufferAttribute(s,c),l.uv2=xe.getUV(Os,ri,ai,oi,Ri,Li,Ii,new Nt));let h={a:o,b:a,c,normal:new N,materialIndex:0};xe.getNormal(ri,ai,oi,h.normal),l.face=h}return l}var bn=class extends Ye{constructor(t=1,e=1,n=1,i=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:s,depthSegments:o};let a=this;i=Math.floor(i),s=Math.floor(s),o=Math.floor(o);let c=[],l=[],h=[],f=[],u=0,m=0;_("z","y","x",-1,-1,n,e,t,o,s,0),_("z","y","x",1,-1,n,e,-t,o,s,1),_("x","z","y",1,1,t,n,e,i,o,2),_("x","z","y",1,-1,t,n,-e,i,o,3),_("x","y","z",1,-1,t,e,n,i,s,4),_("x","y","z",-1,-1,t,e,-n,i,s,5),this.setIndex(c),this.setAttribute("position",new Xe(l,3)),this.setAttribute("normal",new Xe(h,3)),this.setAttribute("uv",new Xe(f,2));function _(p,d,v,T,b,M,A,C,I,x,S){let L=M/I,X=A/x,q=M/2,z=A/2,R=C/2,G=I+1,Y=x+1,j=0,W=0,Q=new N;for(let Z=0;Z0?1:-1,h.push(Q.x,Q.y,Q.z),f.push(F/I),f.push(1-Z/x),j+=1}}for(let Z=0;Z0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}},ji=class extends de{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new qt,this.projectionMatrix=new qt,this.projectionMatrixInverse=new qt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}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)}},_e=class extends ji{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=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=Gi*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(ui*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Gi*2*Math.atan(Math.tan(ui*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,s,o){this.aspect=t/e,this.view===null&&(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=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(ui*.5*this.fov)/this.zoom,n=2*e,i=this.aspect*n,s=-.5*i,o=this.view;if(this.view!==null&&this.view.enabled){let c=o.fullWidth,l=o.fullHeight;s+=o.offsetX*i/c,e-=o.offsetY*n/l,i*=o.width/c,n*=o.height/l}let a=this.filmOffset;a!==0&&(s+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let 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,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},Fn=-90,zn=1,Ks=class extends de{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;let i=new _e(Fn,zn,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);let s=new _e(Fn,zn,t,e);s.layers=this.layers,s.up.set(0,1,0),s.lookAt(-1,0,0),this.add(s);let o=new _e(Fn,zn,t,e);o.layers=this.layers,o.up.set(0,0,-1),o.lookAt(0,1,0),this.add(o);let a=new _e(Fn,zn,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);let c=new _e(Fn,zn,t,e);c.layers=this.layers,c.up.set(0,1,0),c.lookAt(0,0,1),this.add(c);let l=new _e(Fn,zn,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget,[i,s,o,a,c,l]=this.children,h=t.getRenderTarget(),f=t.toneMapping,u=t.xr.enabled;t.toneMapping=We,t.xr.enabled=!1;let m=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,o),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,c),n.texture.generateMipmaps=m,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.toneMapping=f,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}},Qi=class extends le{constructor(t,e,n,i,s,o,a,c,l,h){t=t!==void 0?t:[],e=e!==void 0?e:Xn,super(t,e,n,i,s,o,a,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},js=class extends qe{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Qi(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:Se}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let 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 \n\t\t\t\t\t#include \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 \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 bn(5,5,5),s=new Ze({name:"CubemapFromEquirect",uniforms:$n(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:ye,blending:en});s.uniforms.tEquirect.value=e;let o=new Ne(i,s),a=e.minFilter;return e.minFilter===pi&&(e.minFilter=Se),new Ks(1,10,this).update(t,o),e.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(t,e,n,i){let s=t.getRenderTarget();for(let o=0;o<6;o++)t.setRenderTarget(this,o),t.clear(e,n,i);t.setRenderTarget(s)}},Us=new N,Fl=new N,zl=new oe,He=class{constructor(t=new N(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){let i=Us.subVectors(n,e).cross(Fl.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let 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(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){let n=t.delta(Us),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(n).multiplyScalar(s).add(t.start)}intersectsLine(t){let 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){let n=e||zl.getNormalMatrix(t),i=this.coplanarPoint(Us).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),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)}},On=new _i,Fi=new N,ts=class{constructor(t=new He,e=new He,n=new He,i=new He,s=new He,o=new He){this.planes=[t,e,n,i,s,o]}set(t,e,n,i,s,o){let a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(s),a[5].copy(o),this}copy(t){let e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){let e=this.planes,n=t.elements,i=n[0],s=n[1],o=n[2],a=n[3],c=n[4],l=n[5],h=n[6],f=n[7],u=n[8],m=n[9],_=n[10],p=n[11],d=n[12],v=n[13],T=n[14],b=n[15];return e[0].setComponents(a-i,f-c,p-u,b-d).normalize(),e[1].setComponents(a+i,f+c,p+u,b+d).normalize(),e[2].setComponents(a+s,f+l,p+m,b+v).normalize(),e[3].setComponents(a-s,f-l,p-m,b-v).normalize(),e[4].setComponents(a-o,f-h,p-_,b-T).normalize(),e[5].setComponents(a+o,f+h,p+_,b+T).normalize(),this}intersectsObject(t){let e=t.geometry;return e.boundingSphere===null&&e.computeBoundingSphere(),On.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(On)}intersectsSprite(t){return On.center.set(0,0,0),On.radius=.7071067811865476,On.applyMatrix4(t.matrixWorld),this.intersectsSphere(On)}intersectsSphere(t){let e=this.planes,n=t.center,i=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(n)0?t.max.x:t.min.x,Fi.y=i.normal.y>0?t.max.y:t.min.y,Fi.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(Fi)<0)return!1}return!0}containsPoint(t){let 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)}};function ja(){let r=null,t=!1,e=null,n=null;function i(s,o){e(s,o),n=r.requestAnimationFrame(i)}return{start:function(){t!==!0&&e!==null&&(n=r.requestAnimationFrame(i),t=!0)},stop:function(){r.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){r=s}}}function Ol(r,t){let e=t.isWebGL2,n=new WeakMap;function i(l,h){let f=l.array,u=l.usage,m=r.createBuffer();r.bindBuffer(h,m),r.bufferData(h,f,u),l.onUploadCallback();let _;if(f instanceof Float32Array)_=5126;else if(f instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(e)_=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else _=5123;else if(f instanceof Int16Array)_=5122;else if(f instanceof Uint32Array)_=5125;else if(f instanceof Int32Array)_=5124;else if(f instanceof Int8Array)_=5120;else if(f instanceof Uint8Array)_=5121;else if(f instanceof Uint8ClampedArray)_=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:m,type:_,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version}}function s(l,h,f){let u=h.array,m=h.updateRange;r.bindBuffer(f,l),m.count===-1?r.bufferSubData(f,0,u):(e?r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u,m.offset,m.count):r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u.subarray(m.offset,m.offset+m.count)),m.count=-1),h.onUploadCallback()}function o(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function a(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(r.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let u=n.get(l);(!u||u.version 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}\nfloat 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}\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`,Yl=`#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\t return 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 R21 = R12;\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`,Zl=`#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + 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 = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = 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`,Jl=`#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif`,$l=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif`,Kl=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif`,jl=`#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif`,Ql=`#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif`,tc=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif`,ec=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif`,nc=`#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_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`,ic=`#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};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\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}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\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}`,sc=`#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_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\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`,rc=`vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif`,ac=`#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif`,oc=`#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif`,lc=`#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif`,cc=`#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif`,hc="gl_FragColor = linearToOutputTexel( gl_FragColor );",uc=`vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( 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}`,dc=`#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, 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`,fc=`#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\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`,pc=`#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`,mc=`#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`,gc=`#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`,_c=`#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif`,xc=`#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif`,yc=`#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`,vc=`#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`,Mc=`#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}`,bc=`#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif`,wc=`#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif`,Sc=`LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;`,Tc=`varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, 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 GeometricContext geometry, 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;\nuniform vec3 lightProbe[ 9 ];\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\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\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, const in GeometricContext geometry, 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 GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\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 GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\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`,Ec=`#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, 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#if defined( 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, 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#endif`,Cc=`ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;`,Pc=`varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, 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`,Rc=`BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;`,Lc=`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 GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, 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`,Ic=`PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\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 SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\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, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).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_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).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_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif`,Dc=`struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\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};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness );\n\t#else\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, 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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, 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( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, 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}`,Nc=`\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\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, geometry, 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.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, 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, geometry, 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.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, 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, geometry, 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.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, 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, geometry, 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\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\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 ], geometry.normal );\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`,Fc=`#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\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( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif`,zc=`#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif`,Oc=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif`,Uc=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,Bc=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif`,kc=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif`,Vc=`#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif`,Gc=`#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif`,Hc=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\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`,Wc=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Xc=`float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif`,qc=`#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif`,Yc=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\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\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif`,Jc=`#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif`,$c=`#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\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 = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;`,jc=`#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).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( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif`,Qc=`#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`,th=`#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`,eh=`#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`,nh=`#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.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 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif`,ih=`#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif`,sh=`#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif`,rh=`#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif`,ah=`#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif`,oh=`#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );`,lh=`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.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( 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( 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 linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( 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 invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}`,ch=`#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif`,hh=`vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;`,uh=`#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif`,dh=`#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`,fh=`float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif`,ph=`#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif`,mh=`#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform 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 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 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 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 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 shadow;\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 shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif`,gh=`#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying 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 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 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 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`,_h=`#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`,xh=`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.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.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.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}`,yh=`#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`,vh=`#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif`,Mh=`#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`,bh=`#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`,wh=`float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif`,Sh=`#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif`,Th=`#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif`,Ah=`#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( 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}\nvec3 CustomToneMapping( vec3 color ) { return color; }`,Eh=`#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, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif`,Ch=`#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\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 framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\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 ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif`,Ph=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif`,Rh=`#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif`,Lh=`#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif`,Ih=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif`,Dh=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif`,Nh=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif`,Fh=`#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_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif`,zh=`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}`,Oh=`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 \n\t#include \n}`,Uh=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Bh=`#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;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, 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 \n\t#include \n}`,kh=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Vh=`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 \n\t#include \n}`,Gh=`#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}`,Hh=`#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \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#endif\n}`,Wh=`#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}`,Xh=`#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}`,qh=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}`,Yh=`uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}`,Zh=`uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Jh=`uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,$h=`#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Kh=`uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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, vUv2 );\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 \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,jh=`#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,Qh=`#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,tu=`#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}`,eu=`#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,nu=`#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}`,iu=`#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}`,su=`#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,ru=`#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,au=`#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}`,ou=`#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define 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 SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\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_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \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 + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,lu=`#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}`,cu=`#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,hu=`uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n\t#include \n\t#include \n\t#include \n}`,uu=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,du=`#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,fu=`uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}`,pu=`uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\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 \n\t#include \n\t#include \n}`,mu=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,wt={alphamap_fragment:Ul,alphamap_pars_fragment:Bl,alphatest_fragment:kl,alphatest_pars_fragment:Vl,aomap_fragment:Gl,aomap_pars_fragment:Hl,begin_vertex:Wl,beginnormal_vertex:Xl,bsdfs:ql,iridescence_fragment:Yl,bumpmap_pars_fragment:Zl,clipping_planes_fragment:Jl,clipping_planes_pars_fragment:$l,clipping_planes_pars_vertex:Kl,clipping_planes_vertex:jl,color_fragment:Ql,color_pars_fragment:tc,color_pars_vertex:ec,color_vertex:nc,common:ic,cube_uv_reflection_fragment:sc,defaultnormal_vertex:rc,displacementmap_pars_vertex:ac,displacementmap_vertex:oc,emissivemap_fragment:lc,emissivemap_pars_fragment:cc,encodings_fragment:hc,encodings_pars_fragment:uc,envmap_fragment:dc,envmap_common_pars_fragment:fc,envmap_pars_fragment:pc,envmap_pars_vertex:mc,envmap_physical_pars_fragment:Ec,envmap_vertex:gc,fog_vertex:_c,fog_pars_vertex:xc,fog_fragment:yc,fog_pars_fragment:vc,gradientmap_pars_fragment:Mc,lightmap_fragment:bc,lightmap_pars_fragment:wc,lights_lambert_fragment:Sc,lights_lambert_pars_fragment:Tc,lights_pars_begin:Ac,lights_toon_fragment:Cc,lights_toon_pars_fragment:Pc,lights_phong_fragment:Rc,lights_phong_pars_fragment:Lc,lights_physical_fragment:Ic,lights_physical_pars_fragment:Dc,lights_fragment_begin:Nc,lights_fragment_maps:Fc,lights_fragment_end:zc,logdepthbuf_fragment:Oc,logdepthbuf_pars_fragment:Uc,logdepthbuf_pars_vertex:Bc,logdepthbuf_vertex:kc,map_fragment:Vc,map_pars_fragment:Gc,map_particle_fragment:Hc,map_particle_pars_fragment:Wc,metalnessmap_fragment:Xc,metalnessmap_pars_fragment:qc,morphcolor_vertex:Yc,morphnormal_vertex:Zc,morphtarget_pars_vertex:Jc,morphtarget_vertex:$c,normal_fragment_begin:Kc,normal_fragment_maps:jc,normal_pars_fragment:Qc,normal_pars_vertex:th,normal_vertex:eh,normalmap_pars_fragment:nh,clearcoat_normal_fragment_begin:ih,clearcoat_normal_fragment_maps:sh,clearcoat_pars_fragment:rh,iridescence_pars_fragment:ah,output_fragment:oh,packing:lh,premultiplied_alpha_fragment:ch,project_vertex:hh,dithering_fragment:uh,dithering_pars_fragment:dh,roughnessmap_fragment:fh,roughnessmap_pars_fragment:ph,shadowmap_pars_fragment:mh,shadowmap_pars_vertex:gh,shadowmap_vertex:_h,shadowmask_pars_fragment:xh,skinbase_vertex:yh,skinning_pars_vertex:vh,skinning_vertex:Mh,skinnormal_vertex:bh,specularmap_fragment:wh,specularmap_pars_fragment:Sh,tonemapping_fragment:Th,tonemapping_pars_fragment:Ah,transmission_fragment:Eh,transmission_pars_fragment:Ch,uv_pars_fragment:Ph,uv_pars_vertex:Rh,uv_vertex:Lh,uv2_pars_fragment:Ih,uv2_pars_vertex:Dh,uv2_vertex:Nh,worldpos_vertex:Fh,background_vert:zh,background_frag:Oh,backgroundCube_vert:Uh,backgroundCube_frag:Bh,cube_vert:kh,cube_frag:Vh,depth_vert:Gh,depth_frag:Hh,distanceRGBA_vert:Wh,distanceRGBA_frag:Xh,equirect_vert:qh,equirect_frag:Yh,linedashed_vert:Zh,linedashed_frag:Jh,meshbasic_vert:$h,meshbasic_frag:Kh,meshlambert_vert:jh,meshlambert_frag:Qh,meshmatcap_vert:tu,meshmatcap_frag:eu,meshnormal_vert:nu,meshnormal_frag:iu,meshphong_vert:su,meshphong_frag:ru,meshphysical_vert:au,meshphysical_frag:ou,meshtoon_vert:lu,meshtoon_frag:cu,points_vert:hu,points_frag:uu,shadow_vert:du,shadow_frag:fu,sprite_vert:pu,sprite_frag:mu},et={common:{diffuse:{value:new Ot(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new oe},uv2Transform:{value:new oe},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Nt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ot(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{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 Ot(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new oe}},sprite:{diffuse:{value:new Ot(16777215)},opacity:{value:1},center:{value:new Nt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new oe}}},De={basic:{uniforms:re([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.fog]),vertexShader:wt.meshbasic_vert,fragmentShader:wt.meshbasic_frag},lambert:{uniforms:re([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Ot(0)}}]),vertexShader:wt.meshlambert_vert,fragmentShader:wt.meshlambert_frag},phong:{uniforms:re([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Ot(0)},specular:{value:new Ot(1118481)},shininess:{value:30}}]),vertexShader:wt.meshphong_vert,fragmentShader:wt.meshphong_frag},standard:{uniforms:re([et.common,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.roughnessmap,et.metalnessmap,et.fog,et.lights,{emissive:{value:new Ot(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag},toon:{uniforms:re([et.common,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.gradientmap,et.fog,et.lights,{emissive:{value:new Ot(0)}}]),vertexShader:wt.meshtoon_vert,fragmentShader:wt.meshtoon_frag},matcap:{uniforms:re([et.common,et.bumpmap,et.normalmap,et.displacementmap,et.fog,{matcap:{value:null}}]),vertexShader:wt.meshmatcap_vert,fragmentShader:wt.meshmatcap_frag},points:{uniforms:re([et.points,et.fog]),vertexShader:wt.points_vert,fragmentShader:wt.points_frag},dashed:{uniforms:re([et.common,et.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:wt.linedashed_vert,fragmentShader:wt.linedashed_frag},depth:{uniforms:re([et.common,et.displacementmap]),vertexShader:wt.depth_vert,fragmentShader:wt.depth_frag},normal:{uniforms:re([et.common,et.bumpmap,et.normalmap,et.displacementmap,{opacity:{value:1}}]),vertexShader:wt.meshnormal_vert,fragmentShader:wt.meshnormal_frag},sprite:{uniforms:re([et.sprite,et.fog]),vertexShader:wt.sprite_vert,fragmentShader:wt.sprite_frag},background:{uniforms:{uvTransform:{value:new oe},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:wt.background_vert,fragmentShader:wt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:wt.backgroundCube_vert,fragmentShader:wt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:wt.cube_vert,fragmentShader:wt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:wt.equirect_vert,fragmentShader:wt.equirect_frag},distanceRGBA:{uniforms:re([et.common,et.displacementmap,{referencePosition:{value:new N},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:wt.distanceRGBA_vert,fragmentShader:wt.distanceRGBA_frag},shadow:{uniforms:re([et.lights,et.fog,{color:{value:new Ot(0)},opacity:{value:1}}]),vertexShader:wt.shadow_vert,fragmentShader:wt.shadow_frag}};De.physical={uniforms:re([De.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Nt(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Ot(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Nt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ot(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Ot(1,1,1)},specularColorMap:{value:null}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag};var zi={r:0,b:0,g:0};function gu(r,t,e,n,i,s,o){let a=new Ot(0),c=s===!0?0:1,l,h,f=null,u=0,m=null;function _(d,v){let T=!1,b=v.isScene===!0?v.background:null;b&&b.isTexture&&(b=(v.backgroundBlurriness>0?e:t).get(b));let M=r.xr,A=M.getSession&&M.getSession();A&&A.environmentBlendMode==="additive"&&(b=null),b===null?p(a,c):b&&b.isColor&&(p(b,1),T=!0),(r.autoClear||T)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),b&&(b.isCubeTexture||b.mapping===ns)?(h===void 0&&(h=new Ne(new bn(1,1,1),new Ze({name:"BackgroundCubeMaterial",uniforms:$n(De.backgroundCube.uniforms),vertexShader:De.backgroundCube.vertexShader,fragmentShader:De.backgroundCube.fragmentShader,side:ye,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(C,I,x){this.matrixWorld.copyPosition(x.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),h.material.uniforms.envMap.value=b,h.material.uniforms.flipEnvMap.value=b.isCubeTexture&&b.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=v.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,h.material.toneMapped=b.encoding!==zt,(f!==b||u!==b.version||m!==r.toneMapping)&&(h.material.needsUpdate=!0,f=b,u=b.version,m=r.toneMapping),h.layers.enableAll(),d.unshift(h,h.geometry,h.material,0,0,null)):b&&b.isTexture&&(l===void 0&&(l=new Ne(new xi(2,2),new Ze({name:"BackgroundMaterial",uniforms:$n(De.background.uniforms),vertexShader:De.background.vertexShader,fragmentShader:De.background.fragmentShader,side:nn,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=b,l.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,l.material.toneMapped=b.encoding!==zt,b.matrixAutoUpdate===!0&&b.updateMatrix(),l.material.uniforms.uvTransform.value.copy(b.matrix),(f!==b||u!==b.version||m!==r.toneMapping)&&(l.material.needsUpdate=!0,f=b,u=b.version,m=r.toneMapping),l.layers.enableAll(),d.unshift(l,l.geometry,l.material,0,0,null))}function p(d,v){d.getRGB(zi,Ka(r)),n.buffers.color.setClear(zi.r,zi.g,zi.b,v,o)}return{getClearColor:function(){return a},setClearColor:function(d,v=1){a.set(d),c=v,p(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(d){c=d,p(a,c)},render:_}}function _u(r,t,e,n){let i=r.getParameter(34921),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),o=n.isWebGL2||s!==null,a={},c=d(null),l=c,h=!1;function f(R,G,Y,j,W){let Q=!1;if(o){let Z=p(j,Y,G);l!==Z&&(l=Z,m(l.object)),Q=v(R,j,Y,W),Q&&T(R,j,Y,W)}else{let Z=G.wireframe===!0;(l.geometry!==j.id||l.program!==Y.id||l.wireframe!==Z)&&(l.geometry=j.id,l.program=Y.id,l.wireframe=Z,Q=!0)}W!==null&&e.update(W,34963),(Q||h)&&(h=!1,x(R,G,Y,j),W!==null&&r.bindBuffer(34963,e.get(W).buffer))}function u(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function m(R){return n.isWebGL2?r.bindVertexArray(R):s.bindVertexArrayOES(R)}function _(R){return n.isWebGL2?r.deleteVertexArray(R):s.deleteVertexArrayOES(R)}function p(R,G,Y){let j=Y.wireframe===!0,W=a[R.id];W===void 0&&(W={},a[R.id]=W);let Q=W[G.id];Q===void 0&&(Q={},W[G.id]=Q);let Z=Q[j];return Z===void 0&&(Z=d(u()),Q[j]=Z),Z}function d(R){let G=[],Y=[],j=[];for(let W=0;W=0){let nt=W[F],it=Q[F];if(it===void 0&&(F==="instanceMatrix"&&R.instanceMatrix&&(it=R.instanceMatrix),F==="instanceColor"&&R.instanceColor&&(it=R.instanceColor)),nt===void 0||nt.attribute!==it||it&&nt.data!==it.data)return!0;Z++}return l.attributesNum!==Z||l.index!==j}function T(R,G,Y,j){let W={},Q=G.attributes,Z=0,ft=Y.getAttributes();for(let F in ft)if(ft[F].location>=0){let nt=Q[F];nt===void 0&&(F==="instanceMatrix"&&R.instanceMatrix&&(nt=R.instanceMatrix),F==="instanceColor"&&R.instanceColor&&(nt=R.instanceColor));let it={};it.attribute=nt,nt&&nt.data&&(it.data=nt.data),W[F]=it,Z++}l.attributes=W,l.attributesNum=Z,l.index=j}function b(){let R=l.newAttributes;for(let G=0,Y=R.length;G=0){let J=W[ft];if(J===void 0&&(ft==="instanceMatrix"&&R.instanceMatrix&&(J=R.instanceMatrix),ft==="instanceColor"&&R.instanceColor&&(J=R.instanceColor)),J!==void 0){let nt=J.normalized,it=J.itemSize,O=e.get(J);if(O===void 0)continue;let Mt=O.buffer,ht=O.type,ut=O.bytesPerElement;if(J.isInterleavedBufferAttribute){let ot=J.data,Ft=ot.stride,bt=J.offset;if(ot.isInstancedInterleavedBuffer){for(let xt=0;xt0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";I="mediump"}return I==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let o=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext,a=e.precision!==void 0?e.precision:"highp",c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);let l=o||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,f=r.getParameter(34930),u=r.getParameter(35660),m=r.getParameter(3379),_=r.getParameter(34076),p=r.getParameter(34921),d=r.getParameter(36347),v=r.getParameter(36348),T=r.getParameter(36349),b=u>0,M=o||t.has("OES_texture_float"),A=b&&M,C=o?r.getParameter(36183):0;return{isWebGL2:o,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:u,maxTextureSize:m,maxCubemapSize:_,maxAttributes:p,maxVertexUniforms:d,maxVaryings:v,maxFragmentUniforms:T,vertexTextures:b,floatFragmentTextures:M,floatVertexTextures:A,maxSamples:C}}function vu(r){let t=this,e=null,n=0,i=!1,s=!1,o=new He,a=new oe,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,u){let m=f.length!==0||u||n!==0||i;return i=u,n=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,u){e=h(f,u,0)},this.setState=function(f,u,m){let _=f.clippingPlanes,p=f.clipIntersection,d=f.clipShadows,v=r.get(f);if(!i||_===null||_.length===0||s&&!d)s?h(null):l();else{let T=s?0:n,b=T*4,M=v.clippingState||null;c.value=M,M=h(_,u,b,m);for(let A=0;A!==b;++A)M[A]=e[A];v.clippingState=M,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=T}};function l(){c.value!==e&&(c.value=e,c.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(f,u,m,_){let p=f!==null?f.length:0,d=null;if(p!==0){if(d=c.value,_!==!0||d===null){let v=m+p*4,T=u.matrixWorldInverse;a.getNormalMatrix(T),(d===null||d.length0){let l=new js(c.height/2);return l.fromEquirectangularTexture(r,o),t.set(o,l),o.addEventListener("dispose",i),e(l.texture,o.mapping)}else return null}}return o}function i(o){let a=o.target;a.removeEventListener("dispose",i);let c=t.get(a);c!==void 0&&(t.delete(a),c.dispose())}function s(){t=new WeakMap}return{get:n,dispose:s}}var Qs=class extends ji{constructor(t=-1,e=1,n=1,i=-1,s=.1,o=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=s,this.far=o,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=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,o){this.view===null&&(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=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let 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,s=n-t,o=n+t,a=i+e,c=i-e;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=l*this.view.offsetX,o=s+l*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let 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,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},kn=4,Ma=[.125,.215,.35,.446,.526,.582],pn=20,Bs=new Qs,ba=new Ot,ks=null,fn=(1+Math.sqrt(5))/2,Un=1/fn,wa=[new N(1,1,1),new N(-1,1,1),new N(1,1,-1),new N(-1,1,-1),new N(0,fn,Un),new N(0,fn,-Un),new N(Un,0,fn),new N(-Un,0,fn),new N(fn,Un,0),new N(-fn,Un,0)],es=class{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){ks=this._renderer.getRenderTarget(),this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Aa(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Ta(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?b:0,b,b),h.setRenderTarget(i),p&&h.render(_,a),h.render(t,a)}_.geometry.dispose(),_.material.dispose(),h.toneMapping=u,h.autoClear=f,t.background=d}_textureToCubeUV(t,e){let n=this._renderer,i=t.mapping===Xn||t.mapping===qn;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Aa()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Ta());let s=i?this._cubemapMaterial:this._equirectMaterial,o=new Ne(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=t;let c=this._cubeSize;Oi(e,0,0,3*c,2*c),n.setRenderTarget(e),n.render(o,Bs)}_applyPMREM(t){let e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let i=1;ipn&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${d} samples when the maximum is set to ${pn}`);let v=[],T=0;for(let I=0;Ib-kn?i-b+kn:0),C=4*(this._cubeSize-M);Oi(e,A,C,3*M,2*M),c.setRenderTarget(e),c.render(f,Bs)}};function bu(r){let t=[],e=[],n=[],i=r,s=r-kn+1+Ma.length;for(let o=0;or-kn?c=Ma[o-r+kn-1]:o===0&&(c=0),n.push(c);let l=1/(a-2),h=-l,f=1+l,u=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,_=6,p=3,d=2,v=1,T=new Float32Array(p*_*m),b=new Float32Array(d*_*m),M=new Float32Array(v*_*m);for(let C=0;C2?0:-1,S=[I,x,0,I+2/3,x,0,I+2/3,x+1,0,I,x,0,I+2/3,x+1,0,I,x+1,0];T.set(S,p*_*C),b.set(u,d*_*C);let L=[C,C,C,C,C,C];M.set(L,v*_*C)}let A=new Ye;A.setAttribute("position",new ce(T,p)),A.setAttribute("uv",new ce(b,d)),A.setAttribute("faceIndex",new ce(M,v)),t.push(A),i>kn&&i--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Sa(r,t,e){let n=new qe(r,t,e);return n.texture.mapping=ns,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function Oi(r,t,e,n,i){r.viewport.set(t,e,n,i),r.scissor.set(t,e,n,i)}function wu(r,t,e){let n=new Float32Array(pn),i=new N(0,1,0);return new Ze({name:"SphericalGaussianBlur",defines:{n:pn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:br(),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 \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:en,depthTest:!1,depthWrite:!1})}function Ta(){return new Ze({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:br(),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 \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:en,depthTest:!1,depthWrite:!1})}function Aa(){return new Ze({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:br(),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:en,depthTest:!1,depthWrite:!1})}function br(){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 Su(r){let t=new WeakMap,e=null;function n(a){if(a&&a.isTexture){let c=a.mapping,l=c===Hs||c===Ws,h=c===Xn||c===qn;if(l||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=t.get(a);return e===null&&(e=new es(r)),f=l?e.fromEquirectangular(a,f):e.fromCubemap(a,f),t.set(a,f),f.texture}else{if(t.has(a))return t.get(a).texture;{let f=a.image;if(l&&f&&f.height>0||h&&f&&i(f)){e===null&&(e=new es(r));let u=l?e.fromEquirectangular(a):e.fromCubemap(a);return t.set(a,u),a.addEventListener("dispose",s),u.texture}else return null}}}return a}function i(a){let c=0,l=6;for(let h=0;ht.maxTextureSize&&(X=Math.ceil(L/t.maxTextureSize),L=t.maxTextureSize);let q=new Float32Array(L*X*4*p),z=new Yi(q,L,X,p);z.type=gn,z.needsUpdate=!0;let R=S*4;for(let Y=0;Y0)return r;let i=t*e,s=Ea[i];if(s===void 0&&(s=new Float32Array(i),Ea[i]=s),t!==0){n.toArray(s,0);for(let o=1,a=0;o!==t;++o)a+=e,r[o].toArray(s,a)}return s}function Yt(r,t){if(r.length!==t.length)return!1;for(let e=0,n=r.length;e":" "} ${a}: ${e[o]}`)}return n.join(`\n`)}function bd(r){switch(r){case vn:return["Linear","( value )"];case zt:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",r),["Linear","( value )"]}}function Na(r,t,e){let n=r.getShaderParameter(t,35713),i=r.getShaderInfoLog(t).trim();if(n&&i==="")return"";let s=/ERROR: 0:(\\d+)/.exec(i);if(s){let o=parseInt(s[1]);return e.toUpperCase()+`\n\n`+i+`\n\n`+Md(r.getShaderSource(t),o)}else return i}function wd(r,t){let e=bd(t);return"vec4 "+r+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function Sd(r,t){let e;switch(t){case No:e="Linear";break;case Fo:e="Reinhard";break;case zo:e="OptimizedCineon";break;case Oo:e="ACESFilmic";break;case Uo:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+r+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function Td(r){return[r.extensionDerivatives||r.envMapCubeUVHeight||r.bumpMap||r.tangentSpaceNormalMap||r.clearcoatNormalMap||r.flatShading||r.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(r.extensionFragDepth||r.logarithmicDepthBuffer)&&r.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",r.extensionDrawBuffers&&r.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(r.extensionShaderTextureLOD||r.envMap||r.transmission)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(hi).join(`\n`)}function Ad(r){let t=[];for(let e in r){let n=r[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(`\n`)}function Ed(r,t){let e={},n=r.getProgramParameter(t,35721);for(let i=0;i/gm;function ir(r){return r.replace(Cd,Pd)}function Pd(r,t){let e=wt[t];if(e===void 0)throw new Error("Can not resolve #include <"+t+">");return ir(e)}var Rd=/#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 Oa(r){return r.replace(Rd,Ld)}function Ld(r,t,e,n){let i="";for(let s=parseInt(t);s0&&(d+=`\n`),v=[m,_].filter(hi).join(`\n`),v.length>0&&(v+=`\n`)):(d=[Ua(e),"#define SHADER_NAME "+e.shaderName,_,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.supportsVertexTextures?"#define VERTEX_TEXTURES":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.displacementMap&&e.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","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","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif",`\n`].filter(hi).join(`\n`),v=[m,Ua(e),"#define SHADER_NAME "+e.shaderName,_,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+l:"",e.envMap?"#define "+h:"",e.envMap?"#define "+f:"",u?"#define CUBEUV_TEXEL_WIDTH "+u.texelWidth:"",u?"#define CUBEUV_TEXEL_HEIGHT "+u.texelHeight:"",u?"#define CUBEUV_MAX_MIP "+u.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==We?"#define TONE_MAPPING":"",e.toneMapping!==We?wt.tonemapping_pars_fragment:"",e.toneMapping!==We?Sd("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",wt.encodings_pars_fragment,wd("linearToOutputTexel",e.outputEncoding),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",`\n`].filter(hi).join(`\n`)),o=ir(o),o=Fa(o,e),o=za(o,e),a=ir(a),a=Fa(a,e),a=za(a,e),o=Oa(o),a=Oa(a),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(T=`#version 300 es\n`,d=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(`\n`)+`\n`+d,v=["#define varying in",e.glslVersion===ca?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===ca?"":"#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`+v);let b=T+d+o,M=T+v+a,A=Da(i,35633,b),C=Da(i,35632,M);if(i.attachShader(p,A),i.attachShader(p,C),e.index0AttributeName!==void 0?i.bindAttribLocation(p,0,e.index0AttributeName):e.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p),r.debug.checkShaderErrors){let S=i.getProgramInfoLog(p).trim(),L=i.getShaderInfoLog(A).trim(),X=i.getShaderInfoLog(C).trim(),q=!0,z=!0;if(i.getProgramParameter(p,35714)===!1){q=!1;let R=Na(i,A,"vertex"),G=Na(i,C,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,35715)+`\n\nProgram Info Log: `+S+`\n`+R+`\n`+G)}else S!==""?console.warn("THREE.WebGLProgram: Program Info Log:",S):(L===""||X==="")&&(z=!1);z&&(this.diagnostics={runnable:q,programLog:S,vertexShader:{log:L,prefix:d},fragmentShader:{log:X,prefix:v}})}i.deleteShader(A),i.deleteShader(C);let I;this.getUniforms=function(){return I===void 0&&(I=new Wn(i,p)),I};let x;return this.getAttributes=function(){return x===void 0&&(x=Ed(i,p)),x},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.name=e.shaderName,this.id=vd++,this.cacheKey=t,this.usedTimes=1,this.program=p,this.vertexShader=A,this.fragmentShader=C,this}var Ud=0,sr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),s=this._getShaderStage(n),o=this._getShaderCacheForMaterial(t);return o.has(i)===!1&&(o.add(i),i.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let n of e)n.usedTimes--,n.usedTimes===0&&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){let e=this.materialCache,n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){let e=this.shaderCache,n=e.get(t);return n===void 0&&(n=new rr(t),e.set(t,n)),n}},rr=class{constructor(t){this.id=Ud++,this.code=t,this.usedTimes=0}};function Bd(r,t,e,n,i,s,o){let a=new Zi,c=new sr,l=[],h=i.isWebGL2,f=i.logarithmicDepthBuffer,u=i.vertexTextures,m=i.precision,_={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 p(x,S,L,X,q){let z=X.fog,R=q.geometry,G=x.isMeshStandardMaterial?X.environment:null,Y=(x.isMeshStandardMaterial?e:t).get(x.envMap||G),j=Y&&Y.mapping===ns?Y.image.height:null,W=_[x.type];x.precision!==null&&(m=i.getMaxPrecision(x.precision),m!==x.precision&&console.warn("THREE.WebGLProgram.getParameters:",x.precision,"not supported, using",m,"instead."));let Q=R.morphAttributes.position||R.morphAttributes.normal||R.morphAttributes.color,Z=Q!==void 0?Q.length:0,ft=0;R.morphAttributes.position!==void 0&&(ft=1),R.morphAttributes.normal!==void 0&&(ft=2),R.morphAttributes.color!==void 0&&(ft=3);let F,J,nt,it;if(W){let Ft=De[W];F=Ft.vertexShader,J=Ft.fragmentShader}else F=x.vertexShader,J=x.fragmentShader,c.update(x),nt=c.getVertexShaderID(x),it=c.getFragmentShaderID(x);let O=r.getRenderTarget(),Mt=x.alphaTest>0,ht=x.clearcoat>0,ut=x.iridescence>0;return{isWebGL2:h,shaderID:W,shaderName:x.type,vertexShader:F,fragmentShader:J,defines:x.defines,customVertexShaderID:nt,customFragmentShaderID:it,isRawShaderMaterial:x.isRawShaderMaterial===!0,glslVersion:x.glslVersion,precision:m,instancing:q.isInstancedMesh===!0,instancingColor:q.isInstancedMesh===!0&&q.instanceColor!==null,supportsVertexTextures:u,outputEncoding:O===null?r.outputEncoding:O.isXRRenderTarget===!0?O.texture.encoding:vn,map:!!x.map,matcap:!!x.matcap,envMap:!!Y,envMapMode:Y&&Y.mapping,envMapCubeUVHeight:j,lightMap:!!x.lightMap,aoMap:!!x.aoMap,emissiveMap:!!x.emissiveMap,bumpMap:!!x.bumpMap,normalMap:!!x.normalMap,objectSpaceNormalMap:x.normalMapType===sl,tangentSpaceNormalMap:x.normalMapType===il,decodeVideoTexture:!!x.map&&x.map.isVideoTexture===!0&&x.map.encoding===zt,clearcoat:ht,clearcoatMap:ht&&!!x.clearcoatMap,clearcoatRoughnessMap:ht&&!!x.clearcoatRoughnessMap,clearcoatNormalMap:ht&&!!x.clearcoatNormalMap,iridescence:ut,iridescenceMap:ut&&!!x.iridescenceMap,iridescenceThicknessMap:ut&&!!x.iridescenceThicknessMap,displacementMap:!!x.displacementMap,roughnessMap:!!x.roughnessMap,metalnessMap:!!x.metalnessMap,specularMap:!!x.specularMap,specularIntensityMap:!!x.specularIntensityMap,specularColorMap:!!x.specularColorMap,opaque:x.transparent===!1&&x.blending===Gn,alphaMap:!!x.alphaMap,alphaTest:Mt,gradientMap:!!x.gradientMap,sheen:x.sheen>0,sheenColorMap:!!x.sheenColorMap,sheenRoughnessMap:!!x.sheenRoughnessMap,transmission:x.transmission>0,transmissionMap:!!x.transmissionMap,thicknessMap:!!x.thicknessMap,combine:x.combine,vertexTangents:!!x.normalMap&&!!R.attributes.tangent,vertexColors:x.vertexColors,vertexAlphas:x.vertexColors===!0&&!!R.attributes.color&&R.attributes.color.itemSize===4,vertexUvs:!!x.map||!!x.bumpMap||!!x.normalMap||!!x.specularMap||!!x.alphaMap||!!x.emissiveMap||!!x.roughnessMap||!!x.metalnessMap||!!x.clearcoatMap||!!x.clearcoatRoughnessMap||!!x.clearcoatNormalMap||!!x.iridescenceMap||!!x.iridescenceThicknessMap||!!x.displacementMap||!!x.transmissionMap||!!x.thicknessMap||!!x.specularIntensityMap||!!x.specularColorMap||!!x.sheenColorMap||!!x.sheenRoughnessMap,uvsVertexOnly:!(x.map||x.bumpMap||x.normalMap||x.specularMap||x.alphaMap||x.emissiveMap||x.roughnessMap||x.metalnessMap||x.clearcoatNormalMap||x.iridescenceMap||x.iridescenceThicknessMap||x.transmission>0||x.transmissionMap||x.thicknessMap||x.specularIntensityMap||x.specularColorMap||x.sheen>0||x.sheenColorMap||x.sheenRoughnessMap)&&!!x.displacementMap,fog:!!z,useFog:x.fog===!0,fogExp2:z&&z.isFogExp2,flatShading:!!x.flatShading,sizeAttenuation:x.sizeAttenuation,logarithmicDepthBuffer:f,skinning:q.isSkinnedMesh===!0,morphTargets:R.morphAttributes.position!==void 0,morphNormals:R.morphAttributes.normal!==void 0,morphColors:R.morphAttributes.color!==void 0,morphTargetsCount:Z,morphTextureStride:ft,numDirLights:S.directional.length,numPointLights:S.point.length,numSpotLights:S.spot.length,numSpotLightMaps:S.spotLightMap.length,numRectAreaLights:S.rectArea.length,numHemiLights:S.hemi.length,numDirLightShadows:S.directionalShadowMap.length,numPointLightShadows:S.pointShadowMap.length,numSpotLightShadows:S.spotShadowMap.length,numSpotLightShadowsWithMaps:S.numSpotLightShadowsWithMaps,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:x.dithering,shadowMapEnabled:r.shadowMap.enabled&&L.length>0,shadowMapType:r.shadowMap.type,toneMapping:x.toneMapped?r.toneMapping:We,physicallyCorrectLights:r.physicallyCorrectLights,premultipliedAlpha:x.premultipliedAlpha,doubleSided:x.side===tn,flipSided:x.side===ye,useDepthPacking:!!x.depthPacking,depthPacking:x.depthPacking||0,index0AttributeName:x.index0AttributeName,extensionDerivatives:x.extensions&&x.extensions.derivatives,extensionFragDepth:x.extensions&&x.extensions.fragDepth,extensionDrawBuffers:x.extensions&&x.extensions.drawBuffers,extensionShaderTextureLOD:x.extensions&&x.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:x.customProgramCacheKey()}}function d(x){let S=[];if(x.shaderID?S.push(x.shaderID):(S.push(x.customVertexShaderID),S.push(x.customFragmentShaderID)),x.defines!==void 0)for(let L in x.defines)S.push(L),S.push(x.defines[L]);return x.isRawShaderMaterial===!1&&(v(S,x),T(S,x),S.push(r.outputEncoding)),S.push(x.customProgramCacheKey),S.join()}function v(x,S){x.push(S.precision),x.push(S.outputEncoding),x.push(S.envMapMode),x.push(S.envMapCubeUVHeight),x.push(S.combine),x.push(S.vertexUvs),x.push(S.fogExp2),x.push(S.sizeAttenuation),x.push(S.morphTargetsCount),x.push(S.morphAttributeCount),x.push(S.numDirLights),x.push(S.numPointLights),x.push(S.numSpotLights),x.push(S.numSpotLightMaps),x.push(S.numHemiLights),x.push(S.numRectAreaLights),x.push(S.numDirLightShadows),x.push(S.numPointLightShadows),x.push(S.numSpotLightShadows),x.push(S.numSpotLightShadowsWithMaps),x.push(S.shadowMapType),x.push(S.toneMapping),x.push(S.numClippingPlanes),x.push(S.numClipIntersection),x.push(S.depthPacking)}function T(x,S){a.disableAll(),S.isWebGL2&&a.enable(0),S.supportsVertexTextures&&a.enable(1),S.instancing&&a.enable(2),S.instancingColor&&a.enable(3),S.map&&a.enable(4),S.matcap&&a.enable(5),S.envMap&&a.enable(6),S.lightMap&&a.enable(7),S.aoMap&&a.enable(8),S.emissiveMap&&a.enable(9),S.bumpMap&&a.enable(10),S.normalMap&&a.enable(11),S.objectSpaceNormalMap&&a.enable(12),S.tangentSpaceNormalMap&&a.enable(13),S.clearcoat&&a.enable(14),S.clearcoatMap&&a.enable(15),S.clearcoatRoughnessMap&&a.enable(16),S.clearcoatNormalMap&&a.enable(17),S.iridescence&&a.enable(18),S.iridescenceMap&&a.enable(19),S.iridescenceThicknessMap&&a.enable(20),S.displacementMap&&a.enable(21),S.specularMap&&a.enable(22),S.roughnessMap&&a.enable(23),S.metalnessMap&&a.enable(24),S.gradientMap&&a.enable(25),S.alphaMap&&a.enable(26),S.alphaTest&&a.enable(27),S.vertexColors&&a.enable(28),S.vertexAlphas&&a.enable(29),S.vertexUvs&&a.enable(30),S.vertexTangents&&a.enable(31),S.uvsVertexOnly&&a.enable(32),x.push(a.mask),a.disableAll(),S.fog&&a.enable(0),S.useFog&&a.enable(1),S.flatShading&&a.enable(2),S.logarithmicDepthBuffer&&a.enable(3),S.skinning&&a.enable(4),S.morphTargets&&a.enable(5),S.morphNormals&&a.enable(6),S.morphColors&&a.enable(7),S.premultipliedAlpha&&a.enable(8),S.shadowMapEnabled&&a.enable(9),S.physicallyCorrectLights&&a.enable(10),S.doubleSided&&a.enable(11),S.flipSided&&a.enable(12),S.useDepthPacking&&a.enable(13),S.dithering&&a.enable(14),S.specularIntensityMap&&a.enable(15),S.specularColorMap&&a.enable(16),S.transmission&&a.enable(17),S.transmissionMap&&a.enable(18),S.thicknessMap&&a.enable(19),S.sheen&&a.enable(20),S.sheenColorMap&&a.enable(21),S.sheenRoughnessMap&&a.enable(22),S.decodeVideoTexture&&a.enable(23),S.opaque&&a.enable(24),x.push(a.mask)}function b(x){let S=_[x.type],L;if(S){let X=De[S];L=Il.clone(X.uniforms)}else L=x.uniforms;return L}function M(x,S){let L;for(let X=0,q=l.length;X0?n.push(v):m.transparent===!0?i.push(v):e.push(v)}function c(f,u,m,_,p,d){let v=o(f,u,m,_,p,d);m.transmission>0?n.unshift(v):m.transparent===!0?i.unshift(v):e.unshift(v)}function l(f,u){e.length>1&&e.sort(f||Vd),n.length>1&&n.sort(u||Ba),i.length>1&&i.sort(u||Ba)}function h(){for(let f=t,u=r.length;f=s.length?(o=new ka,s.push(o)):o=s[i],o}function e(){r=new WeakMap}return{get:t,dispose:e}}function Hd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new N,color:new Ot};break;case"SpotLight":e={position:new N,direction:new N,color:new Ot,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new N,color:new Ot,distance:0,decay:0};break;case"HemisphereLight":e={direction:new N,skyColor:new Ot,groundColor:new Ot};break;case"RectAreaLight":e={color:new Ot,position:new N,halfWidth:new N,halfHeight:new N};break}return r[t.id]=e,e}}}function Wd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[t.id]=e,e}}}var Xd=0;function qd(r,t){return(t.castShadow?2:0)-(r.castShadow?2:0)+(t.map?1:0)-(r.map?1:0)}function Yd(r,t){let e=new Hd,n=Wd(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-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};for(let h=0;h<9;h++)i.probe.push(new N);let s=new N,o=new qt,a=new qt;function c(h,f){let u=0,m=0,_=0;for(let X=0;X<9;X++)i.probe[X].set(0,0,0);let p=0,d=0,v=0,T=0,b=0,M=0,A=0,C=0,I=0,x=0;h.sort(qd);let S=f!==!0?Math.PI:1;for(let X=0,q=h.length;X0&&(t.isWebGL2||r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=et.LTC_FLOAT_1,i.rectAreaLTC2=et.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=et.LTC_HALF_1,i.rectAreaLTC2=et.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=u,i.ambient[1]=m,i.ambient[2]=_;let L=i.hash;(L.directionalLength!==p||L.pointLength!==d||L.spotLength!==v||L.rectAreaLength!==T||L.hemiLength!==b||L.numDirectionalShadows!==M||L.numPointShadows!==A||L.numSpotShadows!==C||L.numSpotMaps!==I)&&(i.directional.length=p,i.spot.length=v,i.rectArea.length=T,i.point.length=d,i.hemi.length=b,i.directionalShadow.length=M,i.directionalShadowMap.length=M,i.pointShadow.length=A,i.pointShadowMap.length=A,i.spotShadow.length=C,i.spotShadowMap.length=C,i.directionalShadowMatrix.length=M,i.pointShadowMatrix.length=A,i.spotLightMatrix.length=C+I-x,i.spotLightMap.length=I,i.numSpotLightShadowsWithMaps=x,L.directionalLength=p,L.pointLength=d,L.spotLength=v,L.rectAreaLength=T,L.hemiLength=b,L.numDirectionalShadows=M,L.numPointShadows=A,L.numSpotShadows=C,L.numSpotMaps=I,i.version=Xd++)}function l(h,f){let u=0,m=0,_=0,p=0,d=0,v=f.matrixWorldInverse;for(let T=0,b=h.length;T=a.length?(c=new Va(r,t),a.push(c)):c=a[o],c}function i(){e=new WeakMap}return{get:n,dispose:i}}var ar=class extends Jn{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=el,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}},or=class extends Jn{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new N,this.nearDistance=1,this.farDistance=1e3,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.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},Jd=`void main() {\n\tgl_Position = vec4( position, 1.0 );\n}`,$d=`uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \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 Kd(r,t,e){let n=new ts,i=new Nt,s=new Nt,o=new Xt,a=new ar({depthPacking:nl}),c=new or,l={},h=e.maxTextureSize,f={[nn]:ye,[ye]:nn,[tn]:tn},u=new Ze({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Nt},radius:{value:4}},vertexShader:Jd,fragmentShader:$d}),m=u.clone();m.defines.HORIZONTAL_PASS=1;let _=new Ye;_.setAttribute("position",new ce(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let p=new Ne(_,u),d=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ga,this.render=function(M,A,C){if(d.enabled===!1||d.autoUpdate===!1&&d.needsUpdate===!1||M.length===0)return;let I=r.getRenderTarget(),x=r.getActiveCubeFace(),S=r.getActiveMipmapLevel(),L=r.state;L.setBlending(en),L.buffers.color.setClear(1,1,1,1),L.buffers.depth.setTest(!0),L.setScissorTest(!1);for(let X=0,q=M.length;Xh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/G.x),i.x=s.x*G.x,R.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/G.y),i.y=s.y*G.y,R.mapSize.y=s.y)),R.map===null){let j=this.type!==li?{minFilter:ae,magFilter:ae}:{};R.map=new qe(i.x,i.y,j),R.map.texture.name=z.name+".shadowMap",R.camera.updateProjectionMatrix()}r.setRenderTarget(R.map),r.clear();let Y=R.getViewportCount();for(let j=0;j0||A.map&&A.alphaTest>0){let q=L.uuid,z=A.uuid,R=l[q];R===void 0&&(R={},l[q]=R);let G=R[z];G===void 0&&(G=L.clone(),R[z]=G),L=G}return L.visible=A.visible,L.wireframe=A.wireframe,S===li?L.side=A.shadowSide!==null?A.shadowSide:A.side:L.side=A.shadowSide!==null?A.shadowSide:f[A.side],L.alphaMap=A.alphaMap,L.alphaTest=A.alphaTest,L.map=A.map,L.clipShadows=A.clipShadows,L.clippingPlanes=A.clippingPlanes,L.clipIntersection=A.clipIntersection,L.displacementMap=A.displacementMap,L.displacementScale=A.displacementScale,L.displacementBias=A.displacementBias,L.wireframeLinewidth=A.wireframeLinewidth,L.linewidth=A.linewidth,C.isPointLight===!0&&L.isMeshDistanceMaterial===!0&&(L.referencePosition.setFromMatrixPosition(C.matrixWorld),L.nearDistance=I,L.farDistance=x),L}function b(M,A,C,I,x){if(M.visible===!1)return;if(M.layers.test(A.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&x===li)&&(!M.frustumCulled||n.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(C.matrixWorldInverse,M.matrixWorld);let X=t.update(M),q=M.material;if(Array.isArray(q)){let z=X.groups;for(let R=0,G=z.length;R=1):W.indexOf("OpenGL ES")!==-1&&(j=parseFloat(/^OpenGL ES (\\d)/.exec(W)[1]),Y=j>=2);let Q=null,Z={},ft=r.getParameter(3088),F=r.getParameter(2978),J=new Xt().fromArray(ft),nt=new Xt().fromArray(F);function it(E,U,$){let at=new Uint8Array(4),ct=r.createTexture();r.bindTexture(E,ct),r.texParameteri(E,10241,9728),r.texParameteri(E,10240,9728);for(let Lt=0;Lt<$;Lt++)r.texImage2D(U+Lt,0,6408,1,1,0,6408,5121,at);return ct}let O={};O[3553]=it(3553,3553,1),O[34067]=it(34067,34069,6),a.setClear(0,0,0,1),c.setClear(1),l.setClear(0),Mt(2929),c.setFunc(Gs),Qt(!1),Me(Pr),Mt(2884),ne(en);function Mt(E){u[E]!==!0&&(r.enable(E),u[E]=!0)}function ht(E){u[E]!==!1&&(r.disable(E),u[E]=!1)}function ut(E,U){return m[E]!==U?(r.bindFramebuffer(E,U),m[E]=U,n&&(E===36009&&(m[36160]=U),E===36160&&(m[36009]=U)),!0):!1}function ot(E,U){let $=p,at=!1;if(E)if($=_.get(U),$===void 0&&($=[],_.set(U,$)),E.isWebGLMultipleRenderTargets){let ct=E.texture;if($.length!==ct.length||$[0]!==36064){for(let Lt=0,$t=ct.length;Lt<$t;Lt++)$[Lt]=36064+Lt;$.length=ct.length,at=!0}}else $[0]!==36064&&($[0]=36064,at=!0);else $[0]!==1029&&($[0]=1029,at=!0);at&&(e.isWebGL2?r.drawBuffers($):t.get("WEBGL_draw_buffers").drawBuffersWEBGL($))}function Ft(E){return d!==E?(r.useProgram(E),d=E,!0):!1}let bt={[Bn]:32774,[po]:32778,[mo]:32779};if(n)bt[Dr]=32775,bt[Nr]=32776;else{let E=t.get("EXT_blend_minmax");E!==null&&(bt[Dr]=E.MIN_EXT,bt[Nr]=E.MAX_EXT)}let xt={[go]:0,[_o]:1,[xo]:768,[Ha]:770,[So]:776,[bo]:774,[vo]:772,[yo]:769,[Wa]:771,[wo]:775,[Mo]:773};function ne(E,U,$,at,ct,Lt,$t,te){if(E===en){v===!0&&(ht(3042),v=!1);return}if(v===!1&&(Mt(3042),v=!0),E!==fo){if(E!==T||te!==S){if((b!==Bn||C!==Bn)&&(r.blendEquation(32774),b=Bn,C=Bn),te)switch(E){case Gn:r.blendFuncSeparate(1,771,1,771);break;case Rr:r.blendFunc(1,1);break;case Lr:r.blendFuncSeparate(0,769,0,1);break;case Ir:r.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",E);break}else switch(E){case Gn:r.blendFuncSeparate(770,771,1,771);break;case Rr:r.blendFunc(770,1);break;case Lr:r.blendFuncSeparate(0,769,0,1);break;case Ir:r.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",E);break}M=null,A=null,I=null,x=null,T=E,S=te}return}ct=ct||U,Lt=Lt||$,$t=$t||at,(U!==b||ct!==C)&&(r.blendEquationSeparate(bt[U],bt[ct]),b=U,C=ct),($!==M||at!==A||Lt!==I||$t!==x)&&(r.blendFuncSeparate(xt[$],xt[at],xt[Lt],xt[$t]),M=$,A=at,I=Lt,x=$t),T=E,S=!1}function ve(E,U){E.side===tn?ht(2884):Mt(2884);let $=E.side===ye;U&&($=!$),Qt($),E.blending===Gn&&E.transparent===!1?ne(en):ne(E.blending,E.blendEquation,E.blendSrc,E.blendDst,E.blendEquationAlpha,E.blendSrcAlpha,E.blendDstAlpha,E.premultipliedAlpha),c.setFunc(E.depthFunc),c.setTest(E.depthTest),c.setMask(E.depthWrite),a.setMask(E.colorWrite);let at=E.stencilWrite;l.setTest(at),at&&(l.setMask(E.stencilWriteMask),l.setFunc(E.stencilFunc,E.stencilRef,E.stencilFuncMask),l.setOp(E.stencilFail,E.stencilZFail,E.stencilZPass)),Dt(E.polygonOffset,E.polygonOffsetFactor,E.polygonOffsetUnits),E.alphaToCoverage===!0?Mt(32926):ht(32926)}function Qt(E){L!==E&&(E?r.frontFace(2304):r.frontFace(2305),L=E)}function Me(E){E!==co?(Mt(2884),E!==X&&(E===Pr?r.cullFace(1029):E===ho?r.cullFace(1028):r.cullFace(1032))):ht(2884),X=E}function Ht(E){E!==q&&(Y&&r.lineWidth(E),q=E)}function Dt(E,U,$){E?(Mt(32823),(z!==U||R!==$)&&(r.polygonOffset(U,$),z=U,R=$)):ht(32823)}function Fe(E){E?Mt(3089):ht(3089)}function Te(E){E===void 0&&(E=33984+G-1),Q!==E&&(r.activeTexture(E),Q=E)}function w(E,U,$){$===void 0&&(Q===null?$=33984+G-1:$=Q);let at=Z[$];at===void 0&&(at={type:void 0,texture:void 0},Z[$]=at),(at.type!==E||at.texture!==U)&&(Q!==$&&(r.activeTexture($),Q=$),r.bindTexture(E,U||O[E]),at.type=E,at.texture=U)}function g(){let E=Z[Q];E!==void 0&&E.type!==void 0&&(r.bindTexture(E.type,null),E.type=void 0,E.texture=void 0)}function k(){try{r.compressedTexImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function K(){try{r.compressedTexImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function tt(){try{r.texSubImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function st(){try{r.texSubImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function yt(){try{r.compressedTexSubImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function rt(){try{r.compressedTexSubImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function H(){try{r.texStorage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function mt(){try{r.texStorage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function _t(){try{r.texImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function lt(){try{r.texImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function gt(E){J.equals(E)===!1&&(r.scissor(E.x,E.y,E.z,E.w),J.copy(E))}function dt(E){nt.equals(E)===!1&&(r.viewport(E.x,E.y,E.z,E.w),nt.copy(E))}function Pt(E,U){let $=f.get(U);$===void 0&&($=new WeakMap,f.set(U,$));let at=$.get(E);at===void 0&&(at=r.getUniformBlockIndex(U,E.name),$.set(E,at))}function Ut(E,U){let at=f.get(U).get(E);h.get(U)!==at&&(r.uniformBlockBinding(U,at,E.__bindingPointIndex),h.set(U,at))}function Jt(){r.disable(3042),r.disable(2884),r.disable(2929),r.disable(32823),r.disable(3089),r.disable(2960),r.disable(32926),r.blendEquation(32774),r.blendFunc(1,0),r.blendFuncSeparate(1,0,1,0),r.colorMask(!0,!0,!0,!0),r.clearColor(0,0,0,0),r.depthMask(!0),r.depthFunc(513),r.clearDepth(1),r.stencilMask(4294967295),r.stencilFunc(519,0,4294967295),r.stencilOp(7680,7680,7680),r.clearStencil(0),r.cullFace(1029),r.frontFace(2305),r.polygonOffset(0,0),r.activeTexture(33984),r.bindFramebuffer(36160,null),n===!0&&(r.bindFramebuffer(36009,null),r.bindFramebuffer(36008,null)),r.useProgram(null),r.lineWidth(1),r.scissor(0,0,r.canvas.width,r.canvas.height),r.viewport(0,0,r.canvas.width,r.canvas.height),u={},Q=null,Z={},m={},_=new WeakMap,p=[],d=null,v=!1,T=null,b=null,M=null,A=null,C=null,I=null,x=null,S=!1,L=null,X=null,q=null,z=null,R=null,J.set(0,0,r.canvas.width,r.canvas.height),nt.set(0,0,r.canvas.width,r.canvas.height),a.reset(),c.reset(),l.reset()}return{buffers:{color:a,depth:c,stencil:l},enable:Mt,disable:ht,bindFramebuffer:ut,drawBuffers:ot,useProgram:Ft,setBlending:ne,setMaterial:ve,setFlipSided:Qt,setCullFace:Me,setLineWidth:Ht,setPolygonOffset:Dt,setScissorTest:Fe,activeTexture:Te,bindTexture:w,unbindTexture:g,compressedTexImage2D:k,compressedTexImage3D:K,texImage2D:_t,texImage3D:lt,updateUBOMapping:Pt,uniformBlockBinding:Ut,texStorage2D:H,texStorage3D:mt,texSubImage2D:tt,texSubImage3D:st,compressedTexSubImage2D:yt,compressedTexSubImage3D:rt,scissor:gt,viewport:dt,reset:Jt}}function Qd(r,t,e,n,i,s,o){let a=i.isWebGL2,c=i.maxTextures,l=i.maxCubemapSize,h=i.maxTextureSize,f=i.maxSamples,u=t.has("WEBGL_multisampled_render_to_texture")?t.get("WEBGL_multisampled_render_to_texture"):null,m=typeof navigator=="undefined"?!1:/OculusBrowser/g.test(navigator.userAgent),_=new WeakMap,p,d=new WeakMap,v=!1;try{v=typeof OffscreenCanvas!="undefined"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch(w){}function T(w,g){return v?new OffscreenCanvas(w,g):Wi("canvas")}function b(w,g,k,K){let tt=1;if((w.width>K||w.height>K)&&(tt=K/Math.max(w.width,w.height)),tt<1||g===!0)if(typeof HTMLImageElement!="undefined"&&w instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&w instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&w instanceof ImageBitmap){let st=g?Hi:Math.floor,yt=st(tt*w.width),rt=st(tt*w.height);p===void 0&&(p=T(yt,rt));let H=k?T(yt,rt):p;return H.width=yt,H.height=rt,H.getContext("2d").drawImage(w,0,0,yt,rt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+w.width+"x"+w.height+") to ("+yt+"x"+rt+")."),H}else return"data"in w&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+w.width+"x"+w.height+")."),w;return w}function M(w){return Zs(w.width)&&Zs(w.height)}function A(w){return a?!1:w.wrapS!==Pe||w.wrapT!==Pe||w.minFilter!==ae&&w.minFilter!==Se}function C(w,g){return w.generateMipmaps&&g&&w.minFilter!==ae&&w.minFilter!==Se}function I(w){r.generateMipmap(w)}function x(w,g,k,K,tt=!1){if(a===!1)return g;if(w!==null){if(r[w]!==void 0)return r[w];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'"+w+"\'")}let st=g;return g===6403&&(k===5126&&(st=33326),k===5131&&(st=33325),k===5121&&(st=33321)),g===33319&&(k===5126&&(st=33328),k===5131&&(st=33327),k===5121&&(st=33323)),g===6408&&(k===5126&&(st=34836),k===5131&&(st=34842),k===5121&&(st=K===zt&&tt===!1?35907:32856),k===32819&&(st=32854),k===32820&&(st=32855)),(st===33325||st===33326||st===33327||st===33328||st===34842||st===34836)&&t.get("EXT_color_buffer_float"),st}function S(w,g,k){return C(w,k)===!0||w.isFramebufferTexture&&w.minFilter!==ae&&w.minFilter!==Se?Math.log2(Math.max(g.width,g.height))+1:w.mipmaps!==void 0&&w.mipmaps.length>0?w.mipmaps.length:w.isCompressedTexture&&Array.isArray(w.image)?g.mipmaps.length:1}function L(w){return w===ae||w===Fr||w===us?9728:9729}function X(w){let g=w.target;g.removeEventListener("dispose",X),z(g),g.isVideoTexture&&_.delete(g)}function q(w){let g=w.target;g.removeEventListener("dispose",q),G(g)}function z(w){let g=n.get(w);if(g.__webglInit===void 0)return;let k=w.source,K=d.get(k);if(K){let tt=K[g.__cacheKey];tt.usedTimes--,tt.usedTimes===0&&R(w),Object.keys(K).length===0&&d.delete(k)}n.remove(w)}function R(w){let g=n.get(w);r.deleteTexture(g.__webglTexture);let k=w.source,K=d.get(k);delete K[g.__cacheKey],o.memory.textures--}function G(w){let g=w.texture,k=n.get(w),K=n.get(g);if(K.__webglTexture!==void 0&&(r.deleteTexture(K.__webglTexture),o.memory.textures--),w.depthTexture&&w.depthTexture.dispose(),w.isWebGLCubeRenderTarget)for(let tt=0;tt<6;tt++)r.deleteFramebuffer(k.__webglFramebuffer[tt]),k.__webglDepthbuffer&&r.deleteRenderbuffer(k.__webglDepthbuffer[tt]);else{if(r.deleteFramebuffer(k.__webglFramebuffer),k.__webglDepthbuffer&&r.deleteRenderbuffer(k.__webglDepthbuffer),k.__webglMultisampledFramebuffer&&r.deleteFramebuffer(k.__webglMultisampledFramebuffer),k.__webglColorRenderbuffer)for(let tt=0;tt=c&&console.warn("THREE.WebGLTextures: Trying to use "+w+" texture units while this GPU supports only "+c),Y+=1,w}function Q(w){let g=[];return g.push(w.wrapS),g.push(w.wrapT),g.push(w.wrapR||0),g.push(w.magFilter),g.push(w.minFilter),g.push(w.anisotropy),g.push(w.internalFormat),g.push(w.format),g.push(w.type),g.push(w.generateMipmaps),g.push(w.premultiplyAlpha),g.push(w.flipY),g.push(w.unpackAlignment),g.push(w.encoding),g.join()}function Z(w,g){let k=n.get(w);if(w.isVideoTexture&&Fe(w),w.isRenderTargetTexture===!1&&w.version>0&&k.__version!==w.version){let K=w.image;if(K===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(K.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{ht(k,w,g);return}}e.bindTexture(3553,k.__webglTexture,33984+g)}function ft(w,g){let k=n.get(w);if(w.version>0&&k.__version!==w.version){ht(k,w,g);return}e.bindTexture(35866,k.__webglTexture,33984+g)}function F(w,g){let k=n.get(w);if(w.version>0&&k.__version!==w.version){ht(k,w,g);return}e.bindTexture(32879,k.__webglTexture,33984+g)}function J(w,g){let k=n.get(w);if(w.version>0&&k.__version!==w.version){ut(k,w,g);return}e.bindTexture(34067,k.__webglTexture,33984+g)}let nt={[Xs]:10497,[Pe]:33071,[qs]:33648},it={[ae]:9728,[Fr]:9984,[us]:9986,[Se]:9729,[Bo]:9985,[pi]:9987};function O(w,g,k){if(k?(r.texParameteri(w,10242,nt[g.wrapS]),r.texParameteri(w,10243,nt[g.wrapT]),(w===32879||w===35866)&&r.texParameteri(w,32882,nt[g.wrapR]),r.texParameteri(w,10240,it[g.magFilter]),r.texParameteri(w,10241,it[g.minFilter])):(r.texParameteri(w,10242,33071),r.texParameteri(w,10243,33071),(w===32879||w===35866)&&r.texParameteri(w,32882,33071),(g.wrapS!==Pe||g.wrapT!==Pe)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(w,10240,L(g.magFilter)),r.texParameteri(w,10241,L(g.minFilter)),g.minFilter!==ae&&g.minFilter!==Se&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),t.has("EXT_texture_filter_anisotropic")===!0){let K=t.get("EXT_texture_filter_anisotropic");if(g.magFilter===ae||g.minFilter!==us&&g.minFilter!==pi||g.type===gn&&t.has("OES_texture_float_linear")===!1||a===!1&&g.type===mi&&t.has("OES_texture_half_float_linear")===!1)return;(g.anisotropy>1||n.get(g).__currentAnisotropy)&&(r.texParameterf(w,K.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(g.anisotropy,i.getMaxAnisotropy())),n.get(g).__currentAnisotropy=g.anisotropy)}}function Mt(w,g){let k=!1;w.__webglInit===void 0&&(w.__webglInit=!0,g.addEventListener("dispose",X));let K=g.source,tt=d.get(K);tt===void 0&&(tt={},d.set(K,tt));let st=Q(g);if(st!==w.__cacheKey){tt[st]===void 0&&(tt[st]={texture:r.createTexture(),usedTimes:0},o.memory.textures++,k=!0),tt[st].usedTimes++;let yt=tt[w.__cacheKey];yt!==void 0&&(tt[w.__cacheKey].usedTimes--,yt.usedTimes===0&&R(g)),w.__cacheKey=st,w.__webglTexture=tt[st].texture}return k}function ht(w,g,k){let K=3553;(g.isDataArrayTexture||g.isCompressedArrayTexture)&&(K=35866),g.isData3DTexture&&(K=32879);let tt=Mt(w,g),st=g.source;e.bindTexture(K,w.__webglTexture,33984+k);let yt=n.get(st);if(st.version!==yt.__version||tt===!0){e.activeTexture(33984+k),r.pixelStorei(37440,g.flipY),r.pixelStorei(37441,g.premultiplyAlpha),r.pixelStorei(3317,g.unpackAlignment),r.pixelStorei(37443,0);let rt=A(g)&&M(g.image)===!1,H=b(g.image,rt,!1,h);H=Te(g,H);let mt=M(H)||a,_t=s.convert(g.format,g.encoding),lt=s.convert(g.type),gt=x(g.internalFormat,_t,lt,g.encoding,g.isVideoTexture);O(K,g,mt);let dt,Pt=g.mipmaps,Ut=a&&g.isVideoTexture!==!0,Jt=yt.__version===void 0||tt===!0,E=S(g,H,mt);if(g.isDepthTexture)gt=6402,a?g.type===gn?gt=36012:g.type===mn?gt=33190:g.type===Hn?gt=35056:gt=33189:g.type===gn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),g.format===_n&>===6402&&g.type!==Ya&&g.type!==mn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),g.type=mn,lt=s.convert(g.type)),g.format===Yn&>===6402&&(gt=34041,g.type!==Hn&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),g.type=Hn,lt=s.convert(g.type))),Jt&&(Ut?e.texStorage2D(3553,1,gt,H.width,H.height):e.texImage2D(3553,0,gt,H.width,H.height,0,_t,lt,null));else if(g.isDataTexture)if(Pt.length>0&&mt){Ut&&Jt&&e.texStorage2D(3553,E,gt,Pt[0].width,Pt[0].height);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],Ut?e.texSubImage2D(3553,U,0,0,dt.width,dt.height,_t,lt,dt.data):e.texImage2D(3553,U,gt,dt.width,dt.height,0,_t,lt,dt.data);g.generateMipmaps=!1}else Ut?(Jt&&e.texStorage2D(3553,E,gt,H.width,H.height),e.texSubImage2D(3553,0,0,0,H.width,H.height,_t,lt,H.data)):e.texImage2D(3553,0,gt,H.width,H.height,0,_t,lt,H.data);else if(g.isCompressedTexture)if(g.isCompressedArrayTexture){Ut&&Jt&&e.texStorage3D(35866,E,gt,Pt[0].width,Pt[0].height,H.depth);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],g.format!==Re?_t!==null?Ut?e.compressedTexSubImage3D(35866,U,0,0,0,dt.width,dt.height,H.depth,_t,dt.data,0,0):e.compressedTexImage3D(35866,U,gt,dt.width,dt.height,H.depth,0,dt.data,0,0):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Ut?e.texSubImage3D(35866,U,0,0,0,dt.width,dt.height,H.depth,_t,lt,dt.data):e.texImage3D(35866,U,gt,dt.width,dt.height,H.depth,0,_t,lt,dt.data)}else{Ut&&Jt&&e.texStorage2D(3553,E,gt,Pt[0].width,Pt[0].height);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],g.format!==Re?_t!==null?Ut?e.compressedTexSubImage2D(3553,U,0,0,dt.width,dt.height,_t,dt.data):e.compressedTexImage2D(3553,U,gt,dt.width,dt.height,0,dt.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Ut?e.texSubImage2D(3553,U,0,0,dt.width,dt.height,_t,lt,dt.data):e.texImage2D(3553,U,gt,dt.width,dt.height,0,_t,lt,dt.data)}else if(g.isDataArrayTexture)Ut?(Jt&&e.texStorage3D(35866,E,gt,H.width,H.height,H.depth),e.texSubImage3D(35866,0,0,0,0,H.width,H.height,H.depth,_t,lt,H.data)):e.texImage3D(35866,0,gt,H.width,H.height,H.depth,0,_t,lt,H.data);else if(g.isData3DTexture)Ut?(Jt&&e.texStorage3D(32879,E,gt,H.width,H.height,H.depth),e.texSubImage3D(32879,0,0,0,0,H.width,H.height,H.depth,_t,lt,H.data)):e.texImage3D(32879,0,gt,H.width,H.height,H.depth,0,_t,lt,H.data);else if(g.isFramebufferTexture){if(Jt)if(Ut)e.texStorage2D(3553,E,gt,H.width,H.height);else{let U=H.width,$=H.height;for(let at=0;at>=1,$>>=1}}else if(Pt.length>0&&mt){Ut&&Jt&&e.texStorage2D(3553,E,gt,Pt[0].width,Pt[0].height);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],Ut?e.texSubImage2D(3553,U,0,0,_t,lt,dt):e.texImage2D(3553,U,gt,_t,lt,dt);g.generateMipmaps=!1}else Ut?(Jt&&e.texStorage2D(3553,E,gt,H.width,H.height),e.texSubImage2D(3553,0,0,0,_t,lt,H)):e.texImage2D(3553,0,gt,_t,lt,H);C(g,mt)&&I(K),yt.__version=st.version,g.onUpdate&&g.onUpdate(g)}w.__version=g.version}function ut(w,g,k){if(g.image.length!==6)return;let K=Mt(w,g),tt=g.source;e.bindTexture(34067,w.__webglTexture,33984+k);let st=n.get(tt);if(tt.version!==st.__version||K===!0){e.activeTexture(33984+k),r.pixelStorei(37440,g.flipY),r.pixelStorei(37441,g.premultiplyAlpha),r.pixelStorei(3317,g.unpackAlignment),r.pixelStorei(37443,0);let yt=g.isCompressedTexture||g.image[0].isCompressedTexture,rt=g.image[0]&&g.image[0].isDataTexture,H=[];for(let U=0;U<6;U++)!yt&&!rt?H[U]=b(g.image[U],!1,!0,l):H[U]=rt?g.image[U].image:g.image[U],H[U]=Te(g,H[U]);let mt=H[0],_t=M(mt)||a,lt=s.convert(g.format,g.encoding),gt=s.convert(g.type),dt=x(g.internalFormat,lt,gt,g.encoding),Pt=a&&g.isVideoTexture!==!0,Ut=st.__version===void 0||K===!0,Jt=S(g,mt,_t);O(34067,g,_t);let E;if(yt){Pt&&Ut&&e.texStorage2D(34067,Jt,dt,mt.width,mt.height);for(let U=0;U<6;U++){E=H[U].mipmaps;for(let $=0;$0&&Jt++,e.texStorage2D(34067,Jt,dt,H[0].width,H[0].height));for(let U=0;U<6;U++)if(rt){Pt?e.texSubImage2D(34069+U,0,0,0,H[U].width,H[U].height,lt,gt,H[U].data):e.texImage2D(34069+U,0,dt,H[U].width,H[U].height,0,lt,gt,H[U].data);for(let $=0;$=34069&&tt<=34074)&&r.framebufferTexture2D(36160,K,tt,n.get(k).__webglTexture,0),e.bindFramebuffer(36160,null)}function Ft(w,g,k){if(r.bindRenderbuffer(36161,w),g.depthBuffer&&!g.stencilBuffer){let K=33189;if(k||Dt(g)){let tt=g.depthTexture;tt&&tt.isDepthTexture&&(tt.type===gn?K=36012:tt.type===mn&&(K=33190));let st=Ht(g);Dt(g)?u.renderbufferStorageMultisampleEXT(36161,st,K,g.width,g.height):r.renderbufferStorageMultisample(36161,st,K,g.width,g.height)}else r.renderbufferStorage(36161,K,g.width,g.height);r.framebufferRenderbuffer(36160,36096,36161,w)}else if(g.depthBuffer&&g.stencilBuffer){let K=Ht(g);k&&Dt(g)===!1?r.renderbufferStorageMultisample(36161,K,35056,g.width,g.height):Dt(g)?u.renderbufferStorageMultisampleEXT(36161,K,35056,g.width,g.height):r.renderbufferStorage(36161,34041,g.width,g.height),r.framebufferRenderbuffer(36160,33306,36161,w)}else{let K=g.isWebGLMultipleRenderTargets===!0?g.texture:[g.texture];for(let tt=0;tt0&&Dt(w)===!1){let rt=st?g:[g];k.__webglMultisampledFramebuffer=r.createFramebuffer(),k.__webglColorRenderbuffer=[],e.bindFramebuffer(36160,k.__webglMultisampledFramebuffer);for(let H=0;H0&&Dt(w)===!1){let g=w.isWebGLMultipleRenderTargets?w.texture:[w.texture],k=w.width,K=w.height,tt=16384,st=[],yt=w.stencilBuffer?33306:36096,rt=n.get(w),H=w.isWebGLMultipleRenderTargets===!0;if(H)for(let mt=0;mt0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&g.__useRenderToTexture!==!1}function Fe(w){let g=o.render.frame;_.get(w)!==g&&(_.set(w,g),w.update())}function Te(w,g){let k=w.encoding,K=w.format,tt=w.type;return w.isCompressedTexture===!0||w.isVideoTexture===!0||w.format===Ys||k!==vn&&(k===zt?a===!1?t.has("EXT_sRGB")===!0&&K===Re?(w.format=Ys,w.minFilter=Se,w.generateMipmaps=!1):g=Xi.sRGBToLinear(g):(K!==Re||tt!==yn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",k)),g}this.allocateTextureUnit=W,this.resetTextureUnits=j,this.setTexture2D=Z,this.setTexture2DArray=ft,this.setTexture3D=F,this.setTextureCube=J,this.rebindTextures=ne,this.setupRenderTarget=ve,this.updateRenderTargetMipmap=Qt,this.updateMultisampleRenderTarget=Me,this.setupDepthRenderbuffer=xt,this.setupFrameBufferTexture=ot,this.useMultisampledRTT=Dt}function tf(r,t,e){let n=e.isWebGL2;function i(s,o=null){let a;if(s===yn)return 5121;if(s===Ho)return 32819;if(s===Wo)return 32820;if(s===ko)return 5120;if(s===Vo)return 5122;if(s===Ya)return 5123;if(s===Go)return 5124;if(s===mn)return 5125;if(s===gn)return 5126;if(s===mi)return n?5131:(a=t.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===Xo)return 6406;if(s===Re)return 6408;if(s===qo)return 6409;if(s===Yo)return 6410;if(s===_n)return 6402;if(s===Yn)return 34041;if(s===Ys)return a=t.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===Zo)return 6403;if(s===Jo)return 36244;if(s===$o)return 33319;if(s===Ko)return 33320;if(s===jo)return 36249;if(s===ds||s===fs||s===ps||s===ms)if(o===zt)if(a=t.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===ds)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===fs)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===ms)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=t.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===ds)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===fs)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===ms)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===zr||s===Or||s===Ur||s===Br)if(a=t.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===zr)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Or)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Ur)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Br)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===Qo)return a=t.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===kr||s===Vr)if(a=t.get("WEBGL_compressed_texture_etc"),a!==null){if(s===kr)return o===zt?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===Vr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Gr||s===Hr||s===Wr||s===Xr||s===qr||s===Yr||s===Zr||s===Jr||s===$r||s===Kr||s===jr||s===Qr||s===ta||s===ea)if(a=t.get("WEBGL_compressed_texture_astc"),a!==null){if(s===Gr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Hr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Wr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===Xr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===qr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Yr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===Zr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===Jr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===$r)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Kr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===jr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===Qr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===ta)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===ea)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===gs)if(a=t.get("EXT_texture_compression_bptc"),a!==null){if(s===gs)return o===zt?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(s===tl||s===na||s===ia||s===sa)if(a=t.get("EXT_texture_compression_rgtc"),a!==null){if(s===gs)return a.COMPRESSED_RED_RGTC1_EXT;if(s===na)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===ia)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===sa)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===Hn?n?34042:(a=t.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):r[s]!==void 0?r[s]:null}return{convert:i}}var lr=class extends _e{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}},Vn=class extends de{constructor(){super(),this.isGroup=!0,this.type="Group"}},ef={type:"move"},fi=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Vn,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Vn,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new N,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new N),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Vn,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new N,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new N),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){let e=this._hand;if(e)for(let 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}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,o=null,a=this._targetRay,c=this._grip,l=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(l&&t.hand){o=!0;for(let p of t.hand.values()){let d=e.getJointPose(p,n),v=this._getHandJoint(l,p);d!==null&&(v.matrix.fromArray(d.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.jointRadius=d.radius),v.visible=d!==null}let h=l.joints["index-finger-tip"],f=l.joints["thumb-tip"],u=h.position.distanceTo(f.position),m=.02,_=.005;l.inputState.pinching&&u>m+_?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=m-_&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(i=e.getPose(t.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),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(ef)))}return a!==null&&(a.visible=i!==null),c!==null&&(c.visible=s!==null),l!==null&&(l.visible=o!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){let n=new Vn;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}},cr=class extends le{constructor(t,e,n,i,s,o,a,c,l,h){if(h=h!==void 0?h:_n,h!==_n&&h!==Yn)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===_n&&(n=mn),n===void 0&&h===Yn&&(n=Hn),super(null,i,s,o,a,c,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=a!==void 0?a:ae,this.minFilter=c!==void 0?c:ae,this.flipY=!1,this.generateMipmaps=!1}},hr=class extends sn{constructor(t,e){super();let n=this,i=null,s=1,o=null,a="local-floor",c=1,l=null,h=null,f=null,u=null,m=null,_=null,p=e.getContextAttributes(),d=null,v=null,T=[],b=[],M=new Set,A=new Map,C=new _e;C.layers.enable(1),C.viewport=new Xt;let I=new _e;I.layers.enable(2),I.viewport=new Xt;let x=[C,I],S=new lr;S.layers.enable(1),S.layers.enable(2);let L=null,X=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(F){let J=T[F];return J===void 0&&(J=new fi,T[F]=J),J.getTargetRaySpace()},this.getControllerGrip=function(F){let J=T[F];return J===void 0&&(J=new fi,T[F]=J),J.getGripSpace()},this.getHand=function(F){let J=T[F];return J===void 0&&(J=new fi,T[F]=J),J.getHandSpace()};function q(F){let J=b.indexOf(F.inputSource);if(J===-1)return;let nt=T[J];nt!==void 0&&nt.dispatchEvent({type:F.type,data:F.inputSource})}function z(){i.removeEventListener("select",q),i.removeEventListener("selectstart",q),i.removeEventListener("selectend",q),i.removeEventListener("squeeze",q),i.removeEventListener("squeezestart",q),i.removeEventListener("squeezeend",q),i.removeEventListener("end",z),i.removeEventListener("inputsourceschange",R);for(let F=0;F=0&&(b[it]=null,T[it].disconnect(nt))}for(let J=0;J=b.length){b.push(nt),it=Mt;break}else if(b[Mt]===null){b[Mt]=nt,it=Mt;break}if(it===-1)break}let O=T[it];O&&O.connect(nt)}}let G=new N,Y=new N;function j(F,J,nt){G.setFromMatrixPosition(J.matrixWorld),Y.setFromMatrixPosition(nt.matrixWorld);let it=G.distanceTo(Y),O=J.projectionMatrix.elements,Mt=nt.projectionMatrix.elements,ht=O[14]/(O[10]-1),ut=O[14]/(O[10]+1),ot=(O[9]+1)/O[5],Ft=(O[9]-1)/O[5],bt=(O[8]-1)/O[0],xt=(Mt[8]+1)/Mt[0],ne=ht*bt,ve=ht*xt,Qt=it/(-bt+xt),Me=Qt*-bt;J.matrixWorld.decompose(F.position,F.quaternion,F.scale),F.translateX(Me),F.translateZ(Qt),F.matrixWorld.compose(F.position,F.quaternion,F.scale),F.matrixWorldInverse.copy(F.matrixWorld).invert();let Ht=ht+Qt,Dt=ut+Qt,Fe=ne-Me,Te=ve+(it-Me),w=ot*ut/Dt*Ht,g=Ft*ut/Dt*Ht;F.projectionMatrix.makePerspective(Fe,Te,w,g,Ht,Dt)}function W(F,J){J===null?F.matrixWorld.copy(F.matrix):F.matrixWorld.multiplyMatrices(J.matrixWorld,F.matrix),F.matrixWorldInverse.copy(F.matrixWorld).invert()}this.updateCamera=function(F){if(i===null)return;S.near=I.near=C.near=F.near,S.far=I.far=C.far=F.far,(L!==S.near||X!==S.far)&&(i.updateRenderState({depthNear:S.near,depthFar:S.far}),L=S.near,X=S.far);let J=F.parent,nt=S.cameras;W(S,J);for(let O=0;OO&&(A.set(it,it.lastChangedTime),n.dispatchEvent({type:"planechanged",data:it}))}}_=null}let ft=new ja;ft.setAnimationLoop(Z),this.setAnimationLoop=function(F){Q=F},this.dispose=function(){}}};function nf(r,t){function e(p,d){d.color.getRGB(p.fogColor.value,Ka(r)),d.isFog?(p.fogNear.value=d.near,p.fogFar.value=d.far):d.isFogExp2&&(p.fogDensity.value=d.density)}function n(p,d,v,T,b){d.isMeshBasicMaterial||d.isMeshLambertMaterial?i(p,d):d.isMeshToonMaterial?(i(p,d),h(p,d)):d.isMeshPhongMaterial?(i(p,d),l(p,d)):d.isMeshStandardMaterial?(i(p,d),f(p,d),d.isMeshPhysicalMaterial&&u(p,d,b)):d.isMeshMatcapMaterial?(i(p,d),m(p,d)):d.isMeshDepthMaterial?i(p,d):d.isMeshDistanceMaterial?(i(p,d),_(p,d)):d.isMeshNormalMaterial?i(p,d):d.isLineBasicMaterial?(s(p,d),d.isLineDashedMaterial&&o(p,d)):d.isPointsMaterial?a(p,d,v,T):d.isSpriteMaterial?c(p,d):d.isShadowMaterial?(p.color.value.copy(d.color),p.opacity.value=d.opacity):d.isShaderMaterial&&(d.uniformsNeedUpdate=!1)}function i(p,d){p.opacity.value=d.opacity,d.color&&p.diffuse.value.copy(d.color),d.emissive&&p.emissive.value.copy(d.emissive).multiplyScalar(d.emissiveIntensity),d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.bumpMap&&(p.bumpMap.value=d.bumpMap,p.bumpScale.value=d.bumpScale,d.side===ye&&(p.bumpScale.value*=-1)),d.displacementMap&&(p.displacementMap.value=d.displacementMap,p.displacementScale.value=d.displacementScale,p.displacementBias.value=d.displacementBias),d.emissiveMap&&(p.emissiveMap.value=d.emissiveMap),d.normalMap&&(p.normalMap.value=d.normalMap,p.normalScale.value.copy(d.normalScale),d.side===ye&&p.normalScale.value.negate()),d.specularMap&&(p.specularMap.value=d.specularMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let v=t.get(d).envMap;if(v&&(p.envMap.value=v,p.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=d.reflectivity,p.ior.value=d.ior,p.refractionRatio.value=d.refractionRatio),d.lightMap){p.lightMap.value=d.lightMap;let M=r.physicallyCorrectLights!==!0?Math.PI:1;p.lightMapIntensity.value=d.lightMapIntensity*M}d.aoMap&&(p.aoMap.value=d.aoMap,p.aoMapIntensity.value=d.aoMapIntensity);let T;d.map?T=d.map:d.specularMap?T=d.specularMap:d.displacementMap?T=d.displacementMap:d.normalMap?T=d.normalMap:d.bumpMap?T=d.bumpMap:d.roughnessMap?T=d.roughnessMap:d.metalnessMap?T=d.metalnessMap:d.alphaMap?T=d.alphaMap:d.emissiveMap?T=d.emissiveMap:d.clearcoatMap?T=d.clearcoatMap:d.clearcoatNormalMap?T=d.clearcoatNormalMap:d.clearcoatRoughnessMap?T=d.clearcoatRoughnessMap:d.iridescenceMap?T=d.iridescenceMap:d.iridescenceThicknessMap?T=d.iridescenceThicknessMap:d.specularIntensityMap?T=d.specularIntensityMap:d.specularColorMap?T=d.specularColorMap:d.transmissionMap?T=d.transmissionMap:d.thicknessMap?T=d.thicknessMap:d.sheenColorMap?T=d.sheenColorMap:d.sheenRoughnessMap&&(T=d.sheenRoughnessMap),T!==void 0&&(T.isWebGLRenderTarget&&(T=T.texture),T.matrixAutoUpdate===!0&&T.updateMatrix(),p.uvTransform.value.copy(T.matrix));let b;d.aoMap?b=d.aoMap:d.lightMap&&(b=d.lightMap),b!==void 0&&(b.isWebGLRenderTarget&&(b=b.texture),b.matrixAutoUpdate===!0&&b.updateMatrix(),p.uv2Transform.value.copy(b.matrix))}function s(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity}function o(p,d){p.dashSize.value=d.dashSize,p.totalSize.value=d.dashSize+d.gapSize,p.scale.value=d.scale}function a(p,d,v,T){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.size.value=d.size*v,p.scale.value=T*.5,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let b;d.map?b=d.map:d.alphaMap&&(b=d.alphaMap),b!==void 0&&(b.matrixAutoUpdate===!0&&b.updateMatrix(),p.uvTransform.value.copy(b.matrix))}function c(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.rotation.value=d.rotation,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let v;d.map?v=d.map:d.alphaMap&&(v=d.alphaMap),v!==void 0&&(v.matrixAutoUpdate===!0&&v.updateMatrix(),p.uvTransform.value.copy(v.matrix))}function l(p,d){p.specular.value.copy(d.specular),p.shininess.value=Math.max(d.shininess,1e-4)}function h(p,d){d.gradientMap&&(p.gradientMap.value=d.gradientMap)}function f(p,d){p.roughness.value=d.roughness,p.metalness.value=d.metalness,d.roughnessMap&&(p.roughnessMap.value=d.roughnessMap),d.metalnessMap&&(p.metalnessMap.value=d.metalnessMap),t.get(d).envMap&&(p.envMapIntensity.value=d.envMapIntensity)}function u(p,d,v){p.ior.value=d.ior,d.sheen>0&&(p.sheenColor.value.copy(d.sheenColor).multiplyScalar(d.sheen),p.sheenRoughness.value=d.sheenRoughness,d.sheenColorMap&&(p.sheenColorMap.value=d.sheenColorMap),d.sheenRoughnessMap&&(p.sheenRoughnessMap.value=d.sheenRoughnessMap)),d.clearcoat>0&&(p.clearcoat.value=d.clearcoat,p.clearcoatRoughness.value=d.clearcoatRoughness,d.clearcoatMap&&(p.clearcoatMap.value=d.clearcoatMap),d.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=d.clearcoatRoughnessMap),d.clearcoatNormalMap&&(p.clearcoatNormalScale.value.copy(d.clearcoatNormalScale),p.clearcoatNormalMap.value=d.clearcoatNormalMap,d.side===ye&&p.clearcoatNormalScale.value.negate())),d.iridescence>0&&(p.iridescence.value=d.iridescence,p.iridescenceIOR.value=d.iridescenceIOR,p.iridescenceThicknessMinimum.value=d.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=d.iridescenceThicknessRange[1],d.iridescenceMap&&(p.iridescenceMap.value=d.iridescenceMap),d.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=d.iridescenceThicknessMap)),d.transmission>0&&(p.transmission.value=d.transmission,p.transmissionSamplerMap.value=v.texture,p.transmissionSamplerSize.value.set(v.width,v.height),d.transmissionMap&&(p.transmissionMap.value=d.transmissionMap),p.thickness.value=d.thickness,d.thicknessMap&&(p.thicknessMap.value=d.thicknessMap),p.attenuationDistance.value=d.attenuationDistance,p.attenuationColor.value.copy(d.attenuationColor)),p.specularIntensity.value=d.specularIntensity,p.specularColor.value.copy(d.specularColor),d.specularIntensityMap&&(p.specularIntensityMap.value=d.specularIntensityMap),d.specularColorMap&&(p.specularColorMap.value=d.specularColorMap)}function m(p,d){d.matcap&&(p.matcap.value=d.matcap)}function _(p,d){p.referencePosition.value.copy(d.referencePosition),p.nearDistance.value=d.nearDistance,p.farDistance.value=d.farDistance}return{refreshFogUniforms:e,refreshMaterialUniforms:n}}function sf(r,t,e,n){let i={},s={},o=[],a=e.isWebGL2?r.getParameter(35375):0;function c(T,b){let M=b.program;n.uniformBlockBinding(T,M)}function l(T,b){let M=i[T.id];M===void 0&&(_(T),M=h(T),i[T.id]=M,T.addEventListener("dispose",d));let A=b.program;n.updateUBOMapping(T,A);let C=t.render.frame;s[T.id]!==C&&(u(T),s[T.id]=C)}function h(T){let b=f();T.__bindingPointIndex=b;let M=r.createBuffer(),A=T.__size,C=T.usage;return r.bindBuffer(35345,M),r.bufferData(35345,A,C),r.bindBuffer(35345,null),r.bindBufferBase(35345,b,M),M}function f(){for(let T=0;T0){C=M%A;let q=A-C;C!==0&&q-L.boundary<0&&(M+=A-C,S.__offset=M)}M+=L.storage}return C=M%A,C>0&&(M+=A-C),T.__size=M,T.__cache={},this}function p(T){let b={boundary:0,storage:0};return typeof T=="number"?(b.boundary=4,b.storage=4):T.isVector2?(b.boundary=8,b.storage=8):T.isVector3||T.isColor?(b.boundary=16,b.storage=12):T.isVector4?(b.boundary=16,b.storage=16):T.isMatrix3?(b.boundary=48,b.storage=48):T.isMatrix4?(b.boundary=64,b.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),b}function d(T){let b=T.target;b.removeEventListener("dispose",d);let M=o.indexOf(b.__bindingPointIndex);o.splice(M,1),r.deleteBuffer(i[b.id]),delete i[b.id],delete s[b.id]}function v(){for(let T in i)r.deleteBuffer(i[T]);o=[],i={},s={}}return{bind:c,update:l,dispose:v}}function rf(){let r=Wi("canvas");return r.style.display="block",r}function af(r={}){this.isWebGLRenderer=!0;let t=r.canvas!==void 0?r.canvas:rf(),e=r.context!==void 0?r.context:null,n=r.depth!==void 0?r.depth:!0,i=r.stencil!==void 0?r.stencil:!0,s=r.antialias!==void 0?r.antialias:!1,o=r.premultipliedAlpha!==void 0?r.premultipliedAlpha:!0,a=r.preserveDrawingBuffer!==void 0?r.preserveDrawingBuffer:!1,c=r.powerPreference!==void 0?r.powerPreference:"default",l=r.failIfMajorPerformanceCaveat!==void 0?r.failIfMajorPerformanceCaveat:!1,h;e!==null?h=e.getContextAttributes().alpha:h=r.alpha!==void 0?r.alpha:!1;let f=null,u=null,m=[],_=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=vn,this.physicallyCorrectLights=!1,this.toneMapping=We,this.toneMappingExposure=1;let p=this,d=!1,v=0,T=0,b=null,M=-1,A=null,C=new Xt,I=new Xt,x=null,S=t.width,L=t.height,X=1,q=null,z=null,R=new Xt(0,0,S,L),G=new Xt(0,0,S,L),Y=!1,j=new ts,W=!1,Q=!1,Z=null,ft=new qt,F=new Nt,J=new N,nt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function it(){return b===null?X:1}let O=e;function Mt(y,D){for(let B=0;B0?u=_[_.length-1]:u=null,m.pop(),m.length>0?f=m[m.length-1]:f=null};function $t(y,D,B,P){if(y.visible===!1)return;if(y.layers.test(D.layers)){if(y.isGroup)B=y.renderOrder;else if(y.isLOD)y.autoUpdate===!0&&y.update(D);else if(y.isLight)u.pushLight(y),y.castShadow&&u.pushShadow(y);else if(y.isSprite){if(!y.frustumCulled||j.intersectsSprite(y)){P&&J.setFromMatrixPosition(y.matrixWorld).applyMatrix4(ft);let vt=Ht.update(y),St=y.material;St.visible&&f.push(y,vt,St,B,J.z,null)}}else if((y.isMesh||y.isLine||y.isPoints)&&(y.isSkinnedMesh&&y.skeleton.frame!==Ft.render.frame&&(y.skeleton.update(),y.skeleton.frame=Ft.render.frame),!y.frustumCulled||j.intersectsObject(y))){P&&J.setFromMatrixPosition(y.matrixWorld).applyMatrix4(ft);let vt=Ht.update(y),St=y.material;if(Array.isArray(St)){let Tt=vt.groups;for(let Rt=0,At=Tt.length;Rt0&&an(V,D,B),P&&ot.viewport(C.copy(P)),V.length>0&&Bt(V,D,B),pt.length>0&&Bt(pt,D,B),vt.length>0&&Bt(vt,D,B),ot.buffers.depth.setTest(!0),ot.buffers.depth.setMask(!0),ot.buffers.color.setMask(!0),ot.setPolygonOffset(!1)}function an(y,D,B){let P=ut.isWebGL2;Z===null&&(Z=new qe(1,1,{generateMipmaps:!0,type:ht.has("EXT_color_buffer_half_float")?mi:yn,minFilter:pi,samples:P&&s===!0?4:0})),p.getDrawingBufferSize(F),P?Z.setSize(F.x,F.y):Z.setSize(Hi(F.x),Hi(F.y));let V=p.getRenderTarget();p.setRenderTarget(Z),p.clear();let pt=p.toneMapping;p.toneMapping=We,Bt(y,D,B),p.toneMapping=pt,xt.updateMultisampleRenderTarget(Z),xt.updateRenderTargetMipmap(Z),p.setRenderTarget(V)}function Bt(y,D,B){let P=D.isScene===!0?D.overrideMaterial:null;for(let V=0,pt=y.length;V0&&xt.useMultisampledRTT(y)===!1?V=bt.get(y).__webglMultisampledFramebuffer:V=At,C.copy(y.viewport),I.copy(y.scissor),x=y.scissorTest}else C.copy(R).multiplyScalar(X).floor(),I.copy(G).multiplyScalar(X).floor(),x=Y;if(ot.bindFramebuffer(36160,V)&&ut.drawBuffers&&P&&ot.drawBuffers(y,V),ot.viewport(C),ot.scissor(I),ot.setScissorTest(x),pt){let Tt=bt.get(y.texture);O.framebufferTexture2D(36160,36064,34069+D,Tt.__webglTexture,B)}else if(vt){let Tt=bt.get(y.texture),Rt=D||0;O.framebufferTextureLayer(36160,36064,Tt.__webglTexture,B||0,Rt)}M=-1},this.readRenderTargetPixels=function(y,D,B,P,V,pt,vt){if(!(y&&y.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let St=bt.get(y).__webglFramebuffer;if(y.isWebGLCubeRenderTarget&&vt!==void 0&&(St=St[vt]),St){ot.bindFramebuffer(36160,St);try{let Tt=y.texture,Rt=Tt.format,At=Tt.type;if(Rt!==Re&&rt.convert(Rt)!==O.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let Et=At===mi&&(ht.has("EXT_color_buffer_half_float")||ut.isWebGL2&&ht.has("EXT_color_buffer_float"));if(At!==yn&&rt.convert(At)!==O.getParameter(35738)&&!(At===gn&&(ut.isWebGL2||ht.has("OES_texture_float")||ht.has("WEBGL_color_buffer_float")))&&!Et){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}D>=0&&D<=y.width-P&&B>=0&&B<=y.height-V&&O.readPixels(D,B,P,V,rt.convert(Rt),rt.convert(At),pt)}finally{let Tt=b!==null?bt.get(b).__webglFramebuffer:null;ot.bindFramebuffer(36160,Tt)}}},this.copyFramebufferToTexture=function(y,D,B=0){let P=Math.pow(2,-B),V=Math.floor(D.image.width*P),pt=Math.floor(D.image.height*P);xt.setTexture2D(D,0),O.copyTexSubImage2D(3553,B,0,0,y.x,y.y,V,pt),ot.unbindTexture()},this.copyTextureToTexture=function(y,D,B,P=0){let V=D.image.width,pt=D.image.height,vt=rt.convert(B.format),St=rt.convert(B.type);xt.setTexture2D(B,0),O.pixelStorei(37440,B.flipY),O.pixelStorei(37441,B.premultiplyAlpha),O.pixelStorei(3317,B.unpackAlignment),D.isDataTexture?O.texSubImage2D(3553,P,y.x,y.y,V,pt,vt,St,D.image.data):D.isCompressedTexture?O.compressedTexSubImage2D(3553,P,y.x,y.y,D.mipmaps[0].width,D.mipmaps[0].height,vt,D.mipmaps[0].data):O.texSubImage2D(3553,P,y.x,y.y,vt,St,D.image),P===0&&B.generateMipmaps&&O.generateMipmap(3553),ot.unbindTexture()},this.copyTextureToTexture3D=function(y,D,B,P,V=0){if(p.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let pt=y.max.x-y.min.x+1,vt=y.max.y-y.min.y+1,St=y.max.z-y.min.z+1,Tt=rt.convert(P.format),Rt=rt.convert(P.type),At;if(P.isData3DTexture)xt.setTexture3D(P,0),At=32879;else if(P.isDataArrayTexture)xt.setTexture2DArray(P,0),At=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}O.pixelStorei(37440,P.flipY),O.pixelStorei(37441,P.premultiplyAlpha),O.pixelStorei(3317,P.unpackAlignment);let Et=O.getParameter(3314),kt=O.getParameter(32878),fe=O.getParameter(3316),Oe=O.getParameter(3315),on=O.getParameter(32877),Vt=B.isCompressedTexture?B.mipmaps[0]:B.image;O.pixelStorei(3314,Vt.width),O.pixelStorei(32878,Vt.height),O.pixelStorei(3316,y.min.x),O.pixelStorei(3315,y.min.y),O.pixelStorei(32877,y.min.z),B.isDataTexture||B.isData3DTexture?O.texSubImage3D(At,V,D.x,D.y,D.z,pt,vt,St,Tt,Rt,Vt.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),O.compressedTexSubImage3D(At,V,D.x,D.y,D.z,pt,vt,St,Tt,Vt.data)):O.texSubImage3D(At,V,D.x,D.y,D.z,pt,vt,St,Tt,Rt,Vt),O.pixelStorei(3314,Et),O.pixelStorei(32878,kt),O.pixelStorei(3316,fe),O.pixelStorei(3315,Oe),O.pixelStorei(32877,on),V===0&&P.generateMipmaps&&O.generateMipmap(At),ot.unbindTexture()},this.initTexture=function(y){y.isCubeTexture?xt.setTextureCube(y,0):y.isData3DTexture?xt.setTexture3D(y,0):y.isDataArrayTexture||y.isCompressedArrayTexture?xt.setTexture2DArray(y,0):xt.setTexture2D(y,0),ot.unbindTexture()},this.resetState=function(){v=0,T=0,b=null,ot.reset(),H.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var ur=class extends af{};ur.prototype.isWebGL1Renderer=!0;function Qe(r,t,e){return io(r)?new r.constructor(r.subarray(t,e!==void 0?e:r.length)):r.slice(t,e)}function Ui(r,t,e){return!r||!e&&r.constructor===t?r:typeof t.BYTES_PER_ELEMENT=="number"?new t(r):Array.prototype.slice.call(r)}function io(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}var Kn=class{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,n=this._cachedIndex,i=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){let a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==i){s>=o&&(o=Math.max(o,1),s=o-1);let a=this.getValueSize();this.times=Qe(n,s,o),this.values=Qe(this.values,s*a,o*a)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){let c=n[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),t=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),t=!1;break}o=c}if(i!==void 0&&io(i))for(let a=0,c=i.length;a!==c;++a){let l=i[a];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,l),t=!1;break}}return t}optimize(){let t=Qe(this.times),e=Qe(this.values),n=this.getValueSize(),i=this.getInterpolation()===_s,s=t.length-1,o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,c=o*n,l=0;l!==n;++l)e[c+l]=e[a+l];++o}return o!==t.length?(this.times=Qe(t,0,o),this.values=Qe(e,0,o*n)):(this.times=t,this.values=e),this}clone(){let t=Qe(this.times,0),e=Qe(this.values,0),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}};Le.prototype.TimeBufferType=Float32Array;Le.prototype.ValueBufferType=Float32Array;Le.prototype.DefaultInterpolation=Vi;var wn=class extends Le{};wn.prototype.ValueTypeName="bool";wn.prototype.ValueBufferType=Array;wn.prototype.DefaultInterpolation=ki;wn.prototype.InterpolantFactoryMethodLinear=void 0;wn.prototype.InterpolantFactoryMethodSmooth=void 0;var mr=class extends Le{};mr.prototype.ValueTypeName="color";var gr=class extends Le{};gr.prototype.ValueTypeName="number";var _r=class extends Kn{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){let s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(n-e)/(i-e),l=t*a;for(let h=l+a;l!==h;l+=4)rn.slerpFlat(s,0,o,l-a,o,l,c);return s}},yi=class extends Le{InterpolantFactoryMethodLinear(t){return new _r(this.times,this.values,this.getValueSize(),t)}};yi.prototype.ValueTypeName="quaternion";yi.prototype.DefaultInterpolation=Vi;yi.prototype.InterpolantFactoryMethodSmooth=void 0;var Sn=class extends Le{};Sn.prototype.ValueTypeName="string";Sn.prototype.ValueBufferType=Array;Sn.prototype.DefaultInterpolation=ki;Sn.prototype.InterpolantFactoryMethodLinear=void 0;Sn.prototype.InterpolantFactoryMethodSmooth=void 0;var xr=class extends Le{};xr.prototype.ValueTypeName="vector";var wr="\\\\[\\\\]\\\\.:\\\\/",of=new RegExp("["+wr+"]","g"),Sr="[^"+wr+"]",lf="[^"+wr.replace("\\\\.","")+"]",cf=/((?:WC+[\\/:])*)/.source.replace("WC",Sr),hf=/(WCOD+)?/.source.replace("WCOD",lf),uf=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace("WC",Sr),df=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace("WC",Sr),ff=new RegExp("^"+cf+hf+uf+df+"$"),pf=["material","materials","bones","map"],yr=class{constructor(t,e,n){let i=n||It.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},It=class{constructor(t,e,n){this.path=e,this.parsedPath=n||It.parseTrackName(e),this.node=It.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new It.Composite(t,e,n):new It(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,"_").replace(of,"")}static parseTrackName(t){let e=ff.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);let n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){let s=n.nodeName.substring(i+1);pf.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){let n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){let n=function(s){for(let o=0;oMath.round(S*a);if(d[0]=`${x(A.x)}, ${x(A.y)}, ${x(A.z)}`,d[1]=`${x(C.x)}, ${x(C.y)}, ${x(C.z)}`,d[2]=`${x(I.x)}, ${x(I.y)}, ${x(I.z)}`,!(d[0]===d[1]||d[1]===d[2]||d[2]===d[0]))for(let S=0;S<3;S++){let L=(S+1)%3,X=d[S],q=d[L],z=as[p[S]],R=as[p[L]],G=`${X}_${q}`,Y=`${q}_${X}`;Y in v&&v[Y]?(Tr.dot(v[Y].normal)<=c&&(T.push(z.x,z.y,z.z),T.push(R.x,R.y,R.z)),v[Y]=null):G in v||(v[G]={index0:_[S],index1:_[L],normal:Tr.clone()})}}for(let M in v)if(v[M]){let{index0:A,index1:C}=v[M];ss.fromBufferAttribute(u,A),rs.fromBufferAttribute(u,C),T.push(ss.x,ss.y,ss.z),T.push(rs.x,rs.y,rs.z)}let b=new self[h](T);so.postMessage({id:e,vertices:b},[b.buffer])}});\n/*! Bundled license information:\n\nthree/build/three.module.js:\n (**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n *)\n*/\n')}var jo,zx=class{constructor(){this.worker=new LB,this.geometries=new Map,this.loadedGeometries=new Map,this.jobCount=0,this.init()}add(e,t){this.geometries.set(e,t),this.jobCount++}get(e){return this.geometries.get(e)}init(){this.worker.addEventListener("message",(e=>{let t=this.geometries.get(e.data.id.toString());(null==t?void 0:t.length)>0&&(t.forEach((t=>{null!=t&&t.geometry&&null!=t&&t.matrix&&null!=t&&t.geom&&null!=t&&t.line&&(t.geom.parameters={geometry:t.geometry,thresholdAngle:5},t.geom.setAttribute("position",new dt(e.data.vertices,3)),t.geom.applyMatrix4(t.matrix),t.line.geometry=t.geom,t.line.visible=!0)})),this.geometries.delete(e.data.id.toString()),this.jobCount--),this.loadedGeometries.set(e.data.id.toString(),e.data.vertices)}))}postMessage(e){this.worker.postMessage(JSON.stringify(e))}},lyt=new A(0,1,0),Wg=class{static resetObjectStyle(e){this.revertWireframeMode(e),this.revertObjectOpacity(e,[]),this.revertAppliedMaterialToObject(e),this.revertVisibleForFloors(e)}static resetObjectStyleById(e,t){let i=this.getObjectById(e,t);this.resetObjectStyle(i)}static setObjectOpacity(e,t=.3,i,r){let n=[],s=e=>{n.find((t=>t.id===e.id))||(n.push({id:e.id,opacity:e.opacity,transparent:e.transparent,side:e.side}),e.opacity*=t,e.transparent=!0,e.side=gi)},a=e=>{let i=n.find((t=>t.id===e.id));if(!i){let i=e.clone();return n.push({id:e.id,opacity:e.opacity,transparent:e.transparent,side:e.side,material:e,clonedMaterial:i}),i.opacity*=t,i.transparent=!0,i}return i.clonedMaterial};return e.traverse((e=>{if((!r||-1===r.indexOf(e.id))&&(!i||-1!==i.indexOf(e.id))&&e instanceof rt){let t=e;if(i||r){if(Array.isArray(t.material)){let e=[];t.material.forEach((t=>{let i=a(t);i&&e.push(i)})),t.material=e}else if(t.material){let e=a(t.material);e&&(t.material=e)}}else if(Array.isArray(t.material))t.material.forEach((e=>{s(e)}));else if(t.material){let e=t.material;s(e)}}})),n}static revertObjectOpacity(e,t,i,r){let n=e=>{let i=t.find((t=>t.id===e.id));i&&(e.opacity=i.opacity,e.transparent=i.transparent,e.side=i.side)},s=e=>{let i=t.find((t=>t.clonedMaterial&&t.clonedMaterial.id===e.id));if(i)return i.material};e.traverse((e=>{if((!r||-1===r.indexOf(e.id))&&(!i||-1!==i.indexOf(e.id))&&e instanceof rt)if(Array.isArray(e.material)){let t=[];e.material.forEach((e=>{let i=s(e);i?t.push(i):n(e)})),e.material=t}else if(e.material){let t=s(e.material);t?e.material=t:n(e.material)}}))}static setObjectOpacityById(e,t,i=.3,r,n){let s=e.getObjectById(t);if(!s)throw new Error(`Failed to find object by id: ${t}`);return Wg.setObjectOpacity(s,i,r,n)}static revertObjectOpacityById(e,t,i,r,n){let s=e.getObjectById(t);if(!s)throw new Error(`Failed to find object by id: ${t}`);Wg.revertObjectOpacity(s,i,r,n)}static applyMaterialToObject(e,t,i,r){e.traverse((e=>{r&&-1!==r.indexOf(e.id)||i&&-1===i.indexOf(e.id)||e instanceof rt&&(e.userData.originalMaterial||(e.userData.originalMaterial=e.material),e.material=t)}))}static revertAppliedMaterialToObject(e,t,i){e.traverse((e=>{i&&-1!==i.indexOf(e.id)||t&&-1===t.indexOf(e.id)||e.userData.originalMaterial&&(e.material=e.userData.originalMaterial,e.userData.originalMaterial=void 0)}))}static applyMaterialToObjectById(e,t,i,r,n){let s=e.getObjectById(t);if(!s)throw new Error(`Failed to find object by id: ${t}`);this.applyMaterialToObject(s,i,r,n)}static revertAppliedMaterialToObjectById(e,t,i,r){let n=e.getObjectById(t);if(!n)throw new Error(`Failed to find object by id: ${t}`);this.revertAppliedMaterialToObject(n,i,r)}static applyOpacityMaterialToObject(e,t,i){let r=new or({color:0,transparent:!0,opacity:.05});this.applyMaterialToObject(e,r,t,i)}static setWireframeMode(e){let t=new or({color:16732160,wireframe:!0,transparent:!0,opacity:.8});e.traverseVisible((e=>{if(e instanceof rt){let i=e;i.userData.materialForWireframe=i.material,i.material=t}}))}static setWireframeModeById(e,t){let i=e.getObjectById(t);if(!i)throw new Error(`Failed to find object by id: ${t}`);Wg.setWireframeMode(i)}static revertWireframeMode(e){e.traverseVisible((e=>{e instanceof rt&&e.userData.materialForWireframe&&(e.material=e.userData.materialForWireframe,e.userData.materialForWireframe=void 0)}))}static revertWireframeModeById(e,t){let i=e.getObjectById(t);if(!i)throw new Error(`Failed to find object by id: ${t}`);Wg.revertWireframeMode(i)}static findInner(e,t,i=[],r=!1){let n=t.toLowerCase(),s=[],a=e=>-1!==e.toLowerCase().indexOf(n),o=e=>-1!==e.toString().indexOf(n),l=e=>{if(e.name&&-1!==e.name.toLowerCase().indexOf(n))return!0;if(e.gltfExtensions){let t=e.gltfExtensions,i=t.objectId&&t.objectId.Value||t.elementId&&t.elementId.Value;if(i&&-1!==i.toLowerCase().indexOf(n))return!0}return!1};if(i.length>0)for(let t=0;t{(a(e.name)||o(e.id)||l(e.userData))&&s.push(e)})),r&&s.length>0)return[s[0]]}else if(e.traverse((e=>{(a(e.name)||o(e.id)||l(e.userData))&&s.push(e)})),r&&s.length>0)return[s[0]];return s}static find(e,t,i=[],r=!1){return this.findInner(e,t,i,r)}static findFirst(e,t,i=[],r=!1){let n=this.findInner(e,t,i,r);if(n.length>0)return n[0]}static getFloorsFromString(e){let t=[],i=new RegExp(/(?:-?(?:\d+(?:\.5)?)F)(?=\W|$)/,"g").exec(e);return i&&i.length>0&&i.forEach((e=>{if(e){let i=e.replace("F",""),r=Number(i);r?t.push(r):console.log(`[OU] invalid floor: ${e}`)}})),t}static matchFloor(e,t){return-1!==this.getFloorsFromString(e).findIndex((e=>e===t))}static matchFloors(e,t){return-1!==this.getFloorsFromString(e).findIndex((e=>-1!==t.findIndex((t=>t===e))))}static distinctFloors(e,t){let i=[],r=e=>{this.getFloorsFromString(e).forEach((e=>{i[e]=!0}))};return t.forEach((t=>{let i=e.getObjectById(t);i&&i.traverse((e=>{if(r(e.name),e.userData.gltfExtensions){let t=e.userData.gltfExtensions;t.level&&t.level.Value&&r(t.level.Value)}}))})),Object.keys(i).sort()}static traverseObjectByFloors(e,t,i,r,n){let s=e.getObjectById(t);if(!s)return[];s.traverse((e=>{let t=this.matchFloors(e.name,i);if(!t&&e.userData&&e.userData.gltfExtensions){let r=e.userData.gltfExtensions;r.level&&r.level.Value&&(t=this.matchFloors(r.level.Value,i))}t&&r&&r(e),!t&&n&&n(e)}))}static setVisibleForFloors(e,t,i,r=!0){this.traverseObjectByFloors(e,t,i,(e=>{let t=e;for(;t;)t.visible=!0,t=t.parent||void 0}),(e=>{r&&(e.visible=!1)}))}static revertVisibleForFloors(e){e.traverse((e=>{e.visible=!0}))}static revertVisibleForFloorsById(e,t){let i=this.getObjectById(e,t);this.revertVisibleForFloors(i)}static getObjectById(e,t){let i=e.getObjectById(t);if(!i)throw new Error(`Failed to find object by id: ${t}`);return i}static createOutlines(e,t={visibleOnly:!0,meshOnly:!0,replaceOriginalObject:!1}){if(!e)return[];if(0===e.children.length&&(t.visibleOnly&&!e.visible||t.meshOnly&&!(e instanceof rt)))return[];let i=e;for(let e=i.children.length-1;e>=0;--e){let r=i.children[e];this.createOutlines(r,t).forEach((e=>e.applyMatrix4(i.matrixWorld)))}if(!i.geometry)return[];let r=[];if(i instanceof rn)for(let e=0;e=0;--t){let i=e.children[t];i.children.length>0&&this.removeOutlines(i),i.userData.isOutline&&e.remove(i)}}static hasOutline(e){let t=!1;for(let i=0;i0&&(t=this.hasOutline(r),t))break}return t}static setOutlinesVisibility(e,t){e.traverse((e=>{e.userData.isOutline&&(e.visible=t)}))}static createOutline(e,t,i=this.OUTLINE_MATERIAL){let r=new Rp,n=new li(r,i);if(n.layers.set(11),n.userData.isOutline=!0,n.matrixAutoUpdate=!1,n.visible=!1,n.updateMatrix(),jo||(jo=new zx),jo.loadedGeometries.has(e.id.toString())){let i=jo.loadedGeometries.get(e.id.toString());return r.parameters={geometry:e,thresholdAngle:5},r.setAttribute("position",new dt(i,3)),r.applyMatrix4(t),n.geometry=r,n.visible=!0,n}if(jo.get(e.id.toString())||jo.add(e.id.toString(),[]),!jo.loadedGeometries.has(e.id.toString())){jo.add(e.id.toString(),jo.get(e.id.toString()).concat([{geometry:e,matrix:t,geom:r,line:n}]));let i=e.getAttribute("position");jo.postMessage({id:e.id,position:i.toJSON(),index:e.getIndex(),thresholdAngle:5})}return n}static createOutlineSync(e,t,i=this.OUTLINE_MATERIAL){let r=new Rp(e,5),n=new li(r,i);return n.layers.set(11),n.userData.isOutline=!0,n.matrixAutoUpdate=!1,n.applyMatrix4(t),n}static cloneObject(e,t=!0){let i=e.clone();return t&&i.traverse((e=>{(e instanceof rt||e instanceof Ir)&&(e.material=Cs.cloneMaterial(e.material))})),i}static createBox(e,t,i,r=Wg.BOX_FACE_MATERIAL,n=!0){let s=[],a=(e,t,i)=>{s.push(new A(e,t,i))};a(0,0,0),a(e,0,0),a(e,t,0),a(0,t,0),a(0,0,i),a(e,0,i),a(e,t,i),a(0,t,i);let o=new lt;o.setFromPoints(s);let l=[0,3,2,0,2,1,4,6,7,4,5,6,0,7,3,0,4,7,3,6,2,3,7,6,1,6,5,1,2,6];return n&&l.push(0,5,4,0,1,5),o.setIndex(l),o.computeVertexNormals(),new rt(o,r)}static rebaseObjectOnRTC(e){let t=e;if(!((t.isMesh||t.isLine||t.isPoints)&&t.geometry&&t.geometry instanceof lt))return e;let i=t.geometry;if(!i.hasAttribute("position"))return e;let r=i.getAttribute("position");if(0===r.count)return e;let n=r.itemSize,s=r.array,a=[];for(let e=0;e2?a[2]:0);let l=e.matrixAutoUpdate;return e.matrixAutoUpdate=!1,e.applyMatrix4(o),e.matrixAutoUpdate=l,e}static isEmptyObject(e){if(0===e.children.length){let t=e.geometry;if(!t||!t.hasAttribute("position")||0===t.getAttribute("position").count)return!0}return!1}static removeEmptyObjects(e){for(let t=0;t{e.removeFromParent()})),this.removeEmptyObjects(t))}static setSharedVariablesOfObject(e){e.uuid="",e.up=lyt}static isLeafObject(e){return(e instanceof rt||e instanceof Ir||e instanceof nn)&&!(e.children.length>0||!e.geometry)}},ei=Wg;ei.OUTLINE_MATERIAL=new vr({name:"outline",color:0,transparent:!0,opacity:.2}),ei.BOX_FACE_MATERIAL=new Es({color:11648971,transparent:!0,opacity:.3,side:tn});var kC=new Be,cyt=new Be,GC=class{static resetMergeInfo(){this.mergeInfo.removedObjects=0,this.mergeInfo.mergedMeshes=0,this.mergeInfo.mergedLines=0,this.mergeInfo.mergedPoints=0,this.mergeInfo.mergedUnknownTypeObjects=0,this.mergeInfo.elapsedTime=0}static merge(e,t=!0){let i=Date.now();this.mergeInner(e,t),this.mergeInfo.elapsedTime+=Date.now()-i}static mergeInner(e,t=!0){if(!e.children||e.children.length<1)return;let i=e.children.length,r={},n=[];for(let s=0;s0){this.mergeInner(i,t);continue}if(i.userData.relativeToCenter||i.isInstancedMesh||!i.geometry||!(i.geometry instanceof lt))continue;let a=!1,o=Object.values(r);for(let t=o.length-1;t>=0;--t){let i=o[t].indexes[0];if(a=this.tryHandleMergeableObjects(e,s,i,r,n),a)break}for(let t=n.length-1;!a&&t>=0;--t){let i=n[t];if(a=this.tryHandleMergeableObjects(e,s,i,r,n),a)break}a||n.push(s)}if(Object.keys(r).length<=0)return;let s=[],a=[],o=[],l=[];Object.values(r).forEach((i=>{let r,n=i.indexes,h=e.children[n[0]],u=[],c=0,p=0,d=0,f=[];if(n.forEach((i=>{var r,n,s;let a=e.children[i],o=a.geometry.clone();if(o.applyMatrix4(a.matrix),kt.tryConvertInterleavedBufferAttributes(o),o.userData.isLineSegments=!0===a.isLineSegments,u.push(o),t){let e=null==(n=null==(r=o.attributes)?void 0:r.position)?void 0:n.count,t=(null==(s=o.index)?void 0:s.count)||0;f.push({batchId:c,positionStart:p,positionCount:e,indexStart:d,indexCount:t}),p+=e,d+=t,c++}})),0!==u.length){if(h.isMesh){let e=zo(u);if(!e)return;e.userData={},r=new rt(e,h.material),s.push(r)}else if(h.isLine){let e=this.mergeLineGeometries(u,t,h.material instanceof Ap||h.material instanceof Yt,f);if(!e)return;r=new li(e,h.material),a.push(r)}else if(h.isPoints){let e=zo(u);if(!e)return;e.userData={},r=new nn(e,h.material),o.push(r)}r&&(t?r.userData.batches=f:r.userData=h.userData,r.userData.layerName=h.userData.layerName,r.name=`[Merged] ${h.name}`,r.matrixAutoUpdate=!1,r.renderOrder=h.renderOrder,r.layers=h.layers,r.visible=h.visible,l.push(...n)),u.forEach((e=>{kt.releaseGeometryManually(e)})),u=[]}})),l.sort(((e,t)=>t-e)),l.forEach((t=>{let i=e.children[t];e.remove(i)})),[...s,...a,...o].forEach((t=>{e.add(t)})),e.updateMatrix(),this.mergeInfo.removedObjects+=l.length,this.mergeInfo.mergedMeshes+=s.length,this.mergeInfo.mergedLines+=a.length,this.mergeInfo.mergedPoints+=o.length}static tryHandleMergeableObjects(e,t,i,r,n){let s=!1,a=Array.isArray(e),o=a?e.length:e.children.length;if(t===i||t>=o||i>=o)return s;let l=a?e[t]:e.children[t],h=a?e[i]:e.children[i];return this.areObjectsMergeable(l,h)&&this.areGeometriesMergeable(l.geometry,h.geometry)&&Cs.materialsEquals(l.material,h.material)&&(r[i]||(r[i]={indexes:[i]},this.removeFromArray(n,i)),r[i].indexes.push(t),s=!0),s}static isFilteredByOtherFactors(e,t){let i=e;if(i.isMesh&&i.material.isShaderMaterial)return!0;let r=!1,n=e;for(;n&&n!==t;){let e=n.userData;if(e.relativeToCenter||e.spatialFilterHandle){r=!0;break}n=n.parent}return r}static deepMerge(e,t,i=!0,r=!0,n=!0){let s={added:[],removed:[]};if(e.length<=1)return s;let a=Date.now(),o={},l=[];for(let i=0;i=0;--t){let r=s[t].indexes[0];if(n=this.tryHandleMergeableObjects(e,i,r,o,l),n)break}for(let t=l.length-1;!n&&t>=0;--t){let r=l[t];if(n=this.tryHandleMergeableObjects(e,i,r,o,l),n)break}n||l.push(i)}if(Object.keys(o).length<=0)return s;ne.debug(`[Merge] Built merged indexes for ${e.length} objects in ${(Date.now()-a)/1e3}s`),a=Date.now();let h=[],u=[],c=[],p=[];Object.values(o).forEach((i=>{let r=i.indexes;if(r.length<2)return;let s,a=e[r[0]],o=[],l=0,d=0,f=0,m=[];if(r.forEach((i=>{var r,s,h;let u=e[i],c=u.geometry.clone();if(a.material instanceof vr&&c.deleteAttribute("lineDistance"),this.applyMatrix(c,u,t),c.userData.isLineSegments=!0===u.isLineSegments,o.push(c),n){let e,t=null==(s=null==(r=c.attributes)?void 0:r.position)?void 0:s.count,i=(null==(h=c.index)?void 0:h.count)||0;a.isLine&&(c.boundingSphere||c.computeBoundingSphere(),e=c.boundingSphere.clone()),m.push({batchId:l,positionStart:d,positionCount:t,indexStart:f,indexCount:i,boundingSphere:e}),d+=t,f+=i,l++}})),0!==o.length){if(a.isMesh){let e=zo(o);if(!e)return;e.userData={},s=new rt(e,a.material),h.push(s)}else if(a.isLine){let e=this.mergeLineGeometries(o,n,a.material instanceof Ap||a.material instanceof Yt,m);if(!e)return;s=new li(e,a.material),u.push(s)}else if(a.isPoints){let e=zo(o);if(!e)return;e.userData={},s=new nn(e,a.material),c.push(s)}s&&(n?s.userData.batches=m:s.userData=a.userData,s.userData.layerName=a.userData.layerName,s.name=`[Merged] ${a.name}`,s.matrixAutoUpdate=!1,s.renderOrder=a.renderOrder,s.layers=a.layers,s.visible=a.visible,r.forEach((e=>p.push(e)))),o.forEach((e=>{kt.releaseGeometryManually(e)})),o=[]}})),ne.debug(`[Merge] Ran deepMerge() in ${(Date.now()-a)/1e3}s`);let d=s.removed;p.forEach((t=>{let r=e[t];d.push(r),i&&r.removeFromParent()}));let f=s.added;return[...h,...u,...c].forEach((e=>{f.push(e),i&&t&&(t.add(e),e.updateWorldMatrix(!1,!1))})),this.mergeInfo.removedObjects+=p.length,this.mergeInfo.mergedMeshes+=h.length,this.mergeInfo.mergedLines+=u.length,this.mergeInfo.mergedPoints+=c.length,r&&t&&ei.removeEmptyObjects(t),s}static applyMatrix(e,t,i){let r=t;for(kC.identity();r&&r!==i&&(kC.premultiply(r.matrix),r.parent);)r=r.parent;return kC.equals(cyt)?e:e.applyMatrix4(kC)}static mergeLineGeometries(e,t,i,r){let n;if(i)n=GC.mergeBufferGeometriesWithLinesToLineSegements(e,t,r);else{if(n=zo(e),!n)return;n.userData={};let i=[],s=0;e.forEach(((e,n)=>{let a=e.attributes.position;if(!a)return;let o=e.index,l=!0===e.userData.isLineSegments,h=i.length;if(o)for(let e=0;e0&&i.push(s+o.array[e-1],s+t)}else for(let e=0;e0&&(l?e%2==1&&i.push(s+e-1,s+e):i.push(s+e-1,s+e));s+=a.count,t&&r&&(r[n].indexStart=h,r[n].indexCount=i.length-h)})),n.setIndex(i)}return n}static mergeBufferGeometriesWithLinesToLineSegements(e,t,i){let r=new Set(Object.keys(e[0].attributes)),n={},s=new lt,a=[],o=0;for(let s=0;s=0;--i)if(e[i]===t)return void e.splice(i,1)}static removeObjectFromArray(e,t){for(let i=e.length-1;i>=0;--i)if(e[i]===t)return void e.splice(i,1)}static areGeometriesMergeable(e,t){if(!e||!t||"InstancedBufferGeometry"===e.type||"InstancedBufferGeometry"===t.type||!!e.index!=!!t.index)return!1;let i=Object.keys(e.attributes);if(i.length!==Object.keys(t.attributes).length)return!1;for(let e of i)if(!t.attributes[e])return!1;return!0}static areObjectsMergeable(e,t){if(e.layers.mask!==t.layers.mask||e.renderOrder!==t.renderOrder||e.visible!==t.visible||e.userData.layerName!==t.userData.layerName)return!1;if(e.type===t.type)return!0;let i=e,r=t;return i.isMesh&&r.isMesh||i.isLine&&r.isLine||i.isPoints&&r.isPoints}static isMergedMesh(e){return!(!e||!e.userData.batches)}static isFaceIndexInBatch(e,t,i){if(e.boundsTree){let r=e.index.getX(3*i);if(r>=t.positionStart&&r=e&&i<=r)return!0}else{let e=3*i;if(e>=t.positionStart&&e80*i){r=s=e[0],n=a=e[1];for(let t=i;ts&&(s=o),l>a&&(a=l);h=Math.max(s-r,a-n),h=0!==h?32767/h:0}return Xx(p,d,i,r,n,h,0),d}};function tde(e,t,i,r,n){let s,a;if(n===tTt(e,t,i,r)>0)for(s=t;s=t;s-=r)a=Qpe(s,e[s],e[s+1],a);return a&&KC(a,a.next)&&(Kx(a),a=a.next),a}function Yg(e,t){if(!e)return e;t||(t=e);let i,r=e;do{if(i=!1,r.steiner||!KC(r,r.next)&&0!==Ln(r.prev,r,r.next))r=r.next;else{if(Kx(r),r=t=r.prev,r===r.next)break;i=!0}}while(i||r!==t);return t}function Xx(e,t,i,r,n,s,a){if(!e)return;!a&&s&&$yt(e,r,n,s);let o,l,h=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,s?Gyt(e,r,n,s):kyt(e))t.push(o.i/i|0),t.push(e.i/i|0),t.push(l.i/i|0),Kx(e),e=l.next,h=l.next;else if((e=l)===h){a?1===a?Xx(e=Vyt(Yg(e),t,i),t,i,r,n,s,2):2===a&&zyt(e,t,i,r,n,s):Xx(Yg(e),t,i,r,n,s,1);break}}function kyt(e){let t=e.prev,i=e,r=e.next;if(Ln(t,i,r)>=0)return!1;let n=t.x,s=i.x,a=r.x,o=t.y,l=i.y,h=r.y,u=ns?n>a?n:a:s>a?s:a,d=o>l?o>h?o:h:l>h?l:h,f=r.next;for(;f!==t;){if(f.x>=u&&f.x<=p&&f.y>=c&&f.y<=d&&pT(n,o,s,l,a,h,f.x,f.y)&&Ln(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Gyt(e,t,i,r){let n=e.prev,s=e,a=e.next;if(Ln(n,s,a)>=0)return!1;let o=n.x,l=s.x,h=a.x,u=n.y,c=s.y,p=a.y,d=ol?o>h?o:h:l>h?l:h,g=u>c?u>p?u:p:c>p?c:p,y=VB(d,f,t,i,r),v=VB(m,g,t,i,r),T=e.prevZ,x=e.nextZ;for(;T&&T.z>=y&&x&&x.z<=v;){if(T.x>=d&&T.x<=m&&T.y>=f&&T.y<=g&&T!==n&&T!==a&&pT(o,u,l,c,h,p,T.x,T.y)&&Ln(T.prev,T,T.next)>=0||(T=T.prevZ,x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&pT(o,u,l,c,h,p,x.x,x.y)&&Ln(x.prev,x,x.next)>=0))return!1;x=x.nextZ}for(;T&&T.z>=y;){if(T.x>=d&&T.x<=m&&T.y>=f&&T.y<=g&&T!==n&&T!==a&&pT(o,u,l,c,h,p,T.x,T.y)&&Ln(T.prev,T,T.next)>=0)return!1;T=T.prevZ}for(;x&&x.z<=v;){if(x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&pT(o,u,l,c,h,p,x.x,x.y)&&Ln(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Vyt(e,t,i){let r=e;do{let n=r.prev,s=r.next.next;!KC(n,s)&&rde(n,r,r.next,s)&&$x(n,s)&&$x(s,n)&&(t.push(n.i/i|0),t.push(r.i/i|0),t.push(s.i/i|0),Kx(r),Kx(r.next),r=e=s),r=r.next}while(r!==e);return Yg(r)}function zyt(e,t,i,r,n,s){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&Jyt(a,e)){let o=ide(a,e);return a=Yg(a,a.next),o=Yg(o,o.next),Xx(a,t,i,r,n,s,0),void Xx(o,t,i,r,n,s,0)}e=e.next}a=a.next}while(a!==e)}function jyt(e,t,i,r){let n,s,a,o,l,h=[];for(n=0,s=t.length;n=r.next.y&&r.next.y!==r.y){let e=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(e<=s&&e>n&&(n=e,i=r.x=r.x&&r.x>=h&&s!==r.x&&pT(ai.x||r.x===i.x&&Xyt(i,r)))&&(i=r,c=o)),r=r.next}while(r!==l);return i}function Xyt(e,t){return Ln(e.prev,e,t.prev)<0&&Ln(t.next,e,e.next)<0}function $yt(e,t,i,r){let n=e;do{0===n.z&&(n.z=VB(n.x,n.y,t,i,r)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,Kyt(n)}function Kyt(e){let t,i,r,n,s,a,o,l,h=1;do{for(i=e,e=null,s=null,a=0;i;){for(a++,r=i,o=0,t=0;t0||l>0&&r;)0!==o&&(0===l||!r||i.z<=r.z)?(n=i,i=i.nextZ,o--):(n=r,r=r.nextZ,l--),s?s.nextZ=n:e=n,n.prevZ=s,s=n;i=r}s.nextZ=null,h*=2}while(a>1);return e}function VB(e,t,i,r,n){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Zyt(e){let t=e,i=e;do{(t.x=(e-a)*(s-o)&&(e-a)*(r-o)>=(i-a)*(t-o)&&(i-a)*(s-o)>=(n-a)*(r-o)}function Jyt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Qyt(e,t)&&($x(e,t)&&$x(t,e)&&eTt(e,t)&&(Ln(e.prev,e,t.prev)||Ln(e,t.prev,t))||KC(e,t)&&Ln(e.prev,e,e.next)>0&&Ln(t.prev,t,t.next)>0)}function Ln(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function KC(e,t){return e.x===t.x&&e.y===t.y}function rde(e,t,i,r){let n=$C(Ln(e,t,i)),s=$C(Ln(e,t,r)),a=$C(Ln(i,r,e)),o=$C(Ln(i,r,t));return!!(n!==s&&a!==o||0===n&&XC(e,i,t)||0===s&&XC(e,r,t)||0===a&&XC(i,e,r)||0===o&&XC(i,t,r))}function XC(e,t,i){return t.x<=Math.max(e.x,i.x)&&t.x>=Math.min(e.x,i.x)&&t.y<=Math.max(e.y,i.y)&&t.y>=Math.min(e.y,i.y)}function $C(e){return e>0?1:e<0?-1:0}function Qyt(e,t){let i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&rde(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}function $x(e,t){return Ln(e.prev,e,e.next)<0?Ln(e,t,e.next)>=0&&Ln(e,e.prev,t)>=0:Ln(e,t,e.prev)<0||Ln(e,e.next,t)<0}function eTt(e,t){let i=e,r=!1,n=(e.x+t.x)/2,s=(e.y+t.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&n<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(r=!r),i=i.next}while(i!==e);return r}function ide(e,t){let i=new zB(e.i,e.x,e.y),r=new zB(t.i,t.x,t.y),n=e.next,s=t.prev;return e.next=t,t.prev=e,i.next=n,n.prev=i,r.next=i,i.prev=r,s.next=r,r.prev=s,r}function Qpe(e,t,i,r){let n=new zB(e,t,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function Kx(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function zB(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function tTt(e,t,i,r){let n=0;for(let s=t,a=i-r;se.toArray())).reduce(((e,t)=>(e.push(...t),e)),[]),i=[];return ede.triangulate(t,[],3).forEach((e=>i.push(e))),i}static arePointsCoplanar(e){if(e.length<4)return!0;let t=e[1].clone().sub(e[0]),i=e[2].clone().sub(e[0]).cross(t).normalize();for(let t=3;trTt)return!1;return!0}static isSelfIntersecting(e){let t=e.map((e=>e.toArray().slice(0,-1)));return(0,nde.default)(t).length>0}},jB=class{constructor(e,t,i,r=jB.DEFAULT_SCALE){this.isExplodeUp=!1,this.scene=e,this.objectId=t,t||console.log(`[EXP] Invalid objectId: ${t}`),this.scale=r,r<=0&&console.log(`[EXP] Invalid scale: ${r}`),i?this.position=i:(this.position=new A,this.getObjectCenter(this.position))}explode(){if(!this.objectId||!this.position||!this.scale)return void console.log(`[EXP] Invalid objectId: ${this.objectId}, or position: ${this.position}, or this.power: ${this.scale}`);let e=this.scene.getObjectById(this.objectId);e&&e.children?(console.log(`[EXP] Exploding ${e.name} at: ${this.position.x}, ${this.position.y}, ${this.position.z}`),this.explodeObject(e)):console.log("[EXP] No children to explode!")}explodeObject(e){e.geometry?this.explodeLeafObject(e):e.children.length>0?e.children.forEach((e=>this.explodeObject(e))):this.explodeLeafObject(e)}explodeLeafObject(e){if(e.geometry){if(e.userData.originalPosition=e.position.clone(),e instanceof rn){let t=new Be,i=new A,r=new Hr,n=new A;for(let s=0;s0?e.children.forEach((e=>this.unexplodeObject(e))):this.unexplodeLeafObject(e)}unexplodeLeafObject(e){let t=e.userData.originalPosition;t&&(e.position.set(t.x,t.y,t.z),e.updateMatrix(),delete e.userData.originalPosition)}setOnlyExplodeUp(e){this.isExplodeUp=e}getObjectCenter(e){let t=new Dt;if(!this.objectId)return void console.log(`[EXP] Invalid objectId: ${this.objectId}`);let i=this.scene.getObjectById(this.objectId);i&&i.children?(i.traverse((e=>{t.expandByObject(e)})),t.getCenter(e)):console.log("[EXP] No children to explode!")}},Zx=jB;Zx.DEFAULT_SCALE=1;var Tn=class{static getVisibleObjectBoundingBox(e){let t=new Dt;return e.traverseVisible((e=>{e instanceof rt&&!1!==e.userData.selectable&&t.expandByObject(e)})),t}static getObjectsBoundingBox(e,t,i){let r=new Dt;return t.forEach((t=>{let n=e.getObjectById(t);if(n){let e=Tn.getBoundingBox(n,i);e.isEmpty()||r.union(e)}})),r}static getBoundingBox(e,t=!0){let i=new Dt;if(e instanceof rn)return Tn.getInstancedMeshBoundingBox(e);if(0===e.children.length)return i.expandByObject(e),i;let r=e.children.length,n=1;r>20&&(n=3),r>100&&(n=5),r>200&&(n=10),r>1e3&&(n=100),e.updateMatrixWorld(!1);for(let s=0;s{i.find((e=>e===n.id))&&(n.children&&1===n.children.length?Tn.explodeObject(n.children[0],e,t,r):Tn.explodeObject(n,e,t,r))})),t}static unexplodeObjects(e,t){e.traverse((e=>{let i=t[e.id];i&&(i.unexplode(),delete t[e.id])}))}static getObjectCenter(e,t){let i=Tn.getBoundingBox(e);i.getCenter(t),t.y=i.min.y}},Yu=class{static setMaterialSection(e,t,i=!1,r=!1){let n=i&&e.clippingPlanes?e.clippingPlanes:[];n.push(...t),e.clippingPlanes=n,e.clipIntersection=r}static removeSection(e){e&&e.traverse((e=>{let t=e.material;Array.isArray(t)?t.forEach((e=>{e.clippingPlanes=void 0})):t&&(t.clippingPlanes=void 0)}))}static addSection(e,t,i=!1,r=!1){e&&e.traverse((e=>{let n=e.material;Array.isArray(n)?n.forEach((e=>{Yu.setMaterialSection(e,t,i,r)})):n&&Yu.setMaterialSection(n,t,i,r)}))}static generateSectionPlanesByBox(e){let t=e.min,i=e.max;return[new bi(new A(0,-1,0),i.y),new bi(new A(0,1,0),-t.y),new bi(new A(1,0,0),-t.x),new bi(new A(-1,0,0),i.x)]}static generateSectionPlanesByPoints(e,t=!0){let i=e.length;if(i<2)return;let r=[];for(let n=0;n-1&&e.splice(i,1)}function nTt(e,t){let i=t.position.distanceTo(e.position),r=0,n=[];for(let i=0,r=e.faces.length;i=0;e--)i.faces[e]&&i.faces[e].hasVertex(r)&&sTt(i.faces[e],t);for(let e=i.faces.length-1;e>=0;e--)i.faces[e].replaceVertex(i,r);ode(i,e);for(let e=0;e0?(new JC).modify(e,i):e}static simplifyPoints(e,t=1){let i=(0,cde.default)(e,t);return this.simplifiedInfo.total+=e.length,this.simplifiedInfo.removed+=e.length-i.length,i}static getNumberOfVerticesToRemove(e,t){let i=0;e instanceof lt&&e.index&&(i=e.attributes.position.count);let r=Math.floor(i*t);return i<20?0:r}};Jx.simplifiedInfo={total:0,removed:0};var $g=class{static createSkyOfGradientRamp(e=4e3,t=32,i=15,r=new A,n=new A(0,.7,.5)){let s=this.COLOR_TEMPLATES.default,a={topColor:{value:new je(s[0])},skylineColor:{value:new je(s[1])},bottomColor:{value:new je(s[2])},offset:{value:400},exponent:{value:.9},skyCenter:{value:r||new A},sunDirection:{value:n.normalize()}},o=new ro(e,t,i),l=new Yt({uniforms:a,vertexShader:this.vertexShader,fragmentShader:this.fragmentShader,side:zn}),h=new rt(o,l);return h.matrixAutoUpdate=!1,h.name=this.NAME,h.userData.selectable=!1,h.layers.set(11),h}static createSkyOfGradientRampByBoundingBox(e){let t=2*(e.max.x-e.min.x+(e.max.y-e.min.y)+(e.max.z-e.min.z));t<$g.MIN_SKY_RADIUS?t=$g.MIN_SKY_RADIUS:t>$g.MAX_SKY_RADIUS&&(t=$g.MAX_SKY_RADIUS);let i=new A;e.getCenter(i);let r=$g.createSkyOfGradientRamp(t,void 0,void 0,i);return r.position.set(i.x,0,i.z),r}static createSkyFromTextures(e){return ht(this,null,(function*(){let t=new Tx;return new Promise((i=>{t.load(e,(e=>i(e)))}))}))}},qo=$g;qo.NAME="SKYBOX",qo.MIN_SKY_RADIUS=4e3,qo.MAX_SKY_RADIUS=2e4,qo.vertexShader="\n varying vec3 vWorldPosition;\n void main() {\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",qo.fragmentShader="\n uniform vec3 topColor;\n uniform vec3 skylineColor;\n uniform vec3 bottomColor;\n uniform float offset;\n uniform float exponent;\n uniform vec3 skyCenter;\n uniform vec3 sunDirection;\n varying vec3 vWorldPosition;\n // Used to find the position to draw the sun. Sun size is bigger when this value is smaller\n const float sunDirectionDotThreshold = 0.98;\n\n void main() {\n vec3 position = vec3(vWorldPosition.x - skyCenter.x, vWorldPosition.y - skyCenter.y, vWorldPosition.z - skyCenter.z);\n vec3 normalizedPosition = normalize( position + offset );\n float h = normalizedPosition.y;\n vec3 color;\n if (h > 0.0) {\n color = mix( skylineColor, topColor, pow( h, exponent ) );\n\n // draw the sun\n float dotResult = dot(sunDirection, normalizedPosition);\n if (dotResult > sunDirectionDotThreshold) {\n const float sunSize = 1.0 - sunDirectionDotThreshold; // maximum sun size\n const vec3 sunColor = vec3(1.0, 1.0, 1.0);\n color = mix(color, sunColor, pow((dotResult + sunSize - 1.0) / sunSize, 3.0));\n }\n } else {\n color = mix( skylineColor, bottomColor, pow( -h, exponent ) );\n }\n gl_FragColor = vec4(color , 1.0);\n }",qo.COLOR_TEMPLATES={default:[8828661,16777215,10066329],blueSky:[11189247,16777215,6974058],boardwalk:[14413823,16777215,15459804]};var eA=class extends Fg{constructor(e){super(e),this.type=Uo}parse(e){let t=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},i=function(e,t,i){t=t||1024;let r=e.pos,n=-1,s=0,a="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(r,r+128)));for(;0>(n=o.indexOf("\n"))&&s=e.byteLength||!(r=i(e)))return t(1,"no header found");if(!(n=r.match(/^#\?(\S+)/)))return t(3,"bad initial token");for(h.valid|=1,h.programtype=n[1],h.string+=r+"\n";r=i(e),!1!==r;)if(h.string+=r+"\n","#"!==r.charAt(0)){if((n=r.match(s))&&(h.gamma=parseFloat(n[1])),(n=r.match(a))&&(h.exposure=parseFloat(n[1])),(n=r.match(o))&&(h.valid|=2,h.format=n[1]),(n=r.match(l))&&(h.valid|=4,h.height=parseInt(n[1],10),h.width=parseInt(n[2],10)),2&h.valid&&4&h.valid)break}else h.comments+=r+"\n";return 2&h.valid?4&h.valid?h:t(3,"missing image size specifier"):t(3,"missing format specifier")}(s);if(-1!==a){let e=a.width,i=a.height,o=function(e,i,r){let n=i;if(n<8||n>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(n!==(e[2]<<8|e[3]))return t(3,"wrong scanline width");let s=new Uint8Array(4*i*r);if(!s.length)return t(4,"unable to allocate buffer space");let a=0,o=0,l=4*n,h=new Uint8Array(4),u=new Uint8Array(l),c=r;for(;c>0&&oe.byteLength)return t(1);if(h[0]=e[o++],h[1]=e[o++],h[2]=e[o++],h[3]=e[o++],2!=h[0]||2!=h[1]||(h[2]<<8|h[3])!=n)return t(3,"bad rgbe scanline format");let i,r=0;for(;r128;if(n&&(i-=128),0===i||r+i>l)return t(3,"bad scanline data");if(n){let t=e[o++];for(let e=0;e{i.load(t,(t=>{if(e){let i=e.fromEquirectangular(t).texture;e.dispose(),r(i)}}))}))}))}static createEnvTextureFromDataArray(e){return ht(this,arguments,(function*(e,t=this.HDR_CITY_STREET_64x32,i=64,r=32){if(e){let n=new Il(t,i,r);n.flipY=!0,n.magFilter=oi,n.minFilter=oi,n.type=Uo,n.version=1;let s=e.fromEquirectangular(n).texture;return e.dispose(),Promise.resolve(s)}return Promise.reject("Invalid pmremGenerator!")}))}};function lTt(){if(wi.isBrowser){let e=document.createElement("div");return e.setAttribute("style","height: 1in; visibility: hidden; position: absolute; margin: 0; padding: 0;"),document.body.appendChild(e),.0254/e.clientHeight}return.0254/96}Nc.HDR_CITY_STREET_64x32=Uint16Array.from([11910,12340,12797,15360,11926,12348,12806,15360,11958,12364,12814,15360,11974,12380,12830,15360,11958,12364,12822,15360,11926,12348,12797,15360,11878,12324,12773,15360,11830,12308,12749,15360,11798,12292,12733,15360,11782,12279,12725,15360,11765,12263,12709,15360,11749,12247,12701,15360,11733,12231,12701,15360,11701,12215,12693,15360,11685,12199,12685,15360,11685,12199,12685,15360,11701,12215,12693,15360,11717,12231,12701,15360,11733,12247,12709,15360,11749,12263,12717,15360,11749,12279,12717,15360,11765,12279,12725,15360,11765,12279,12725,15360,11765,12292,12725,15360,11798,12300,12733,15360,11830,12316,12749,15360,11846,12324,12757,15360,11894,12340,12781,15360,11926,12356,12797,15360,11942,12356,12797,15360,11926,12348,12789,15360,11926,12348,12789,15360,11942,12356,12797,15360,11942,12356,12797,15360,11942,12348,12806,15360,11942,12356,12806,15360,11942,12356,12814,15360,11958,12372,12830,15360,11974,12372,12830,15360,11974,12372,12838,15360,11990,12388,12854,15360,12055,12420,12886,15360,12119,12452,12918,15360,12167,12476,12950,15360,12231,12500,12982,15360,12263,12516,12998,15360,12231,12500,12974,15360,12199,12484,12958,15360,12199,12484,12958,15360,12199,12492,12966,15360,12247,12508,12982,15360,12247,12508,12990,15360,12231,12500,12982,15360,12199,12484,12966,15360,12167,12468,12942,15360,12119,12444,12918,15360,12087,12436,12902,15360,12055,12420,12886,15360,12055,12412,12878,15360,12039,12412,12878,15360,12022,12396,12862,15360,12006,12388,12846,15360,11958,12364,12830,15360,11910,12340,12806,15360,12119,12508,13103,15360,12087,12484,13071,15360,12055,12468,13046,15360,12006,12436,13006,15360,11926,12396,12958,15360,11878,12364,12926,15360,11846,12348,12894,15360,11782,12308,12854,15360,11749,12292,12830,15360,11717,12263,12814,15360,11685,12247,12806,15360,11669,12215,12789,15360,11685,12231,12789,15360,11701,12247,12797,15360,11701,12247,12806,15360,11717,12263,12814,15360,11749,12292,12822,15360,11782,12308,12838,15360,11798,12316,12846,15360,11814,12332,12862,15360,11846,12340,12870,15360,11862,12348,12878,15360,11846,12340,12870,15360,11846,12340,12862,15360,11878,12356,12886,15360,11910,12372,12910,15360,11942,12396,12934,15360,11958,12412,12958,15360,12039,12452,12998,15360,12071,12468,13022,15360,12039,12452,12998,15360,12039,12452,12998,15360,12006,12444,13006,15360,11974,12436,12998,15360,11942,12412,12982,15360,11926,12396,12974,15360,11926,12404,12974,15360,11958,12420,12998,15360,12006,12452,13038,15360,12055,12476,13071,15360,12039,12476,13079,15360,12087,12508,13127,15360,12247,12597,13231,15360,12388,12693,13332,15360,12420,12741,13364,15360,12436,12757,13372,15360,12468,12773,13380,15360,12500,12806,13388,15360,12516,12822,13404,15360,12629,12934,13452,15360,12741,13046,13508,15360,12806,13095,13532,15360,12757,13046,13516,15360,12645,12950,13460,15360,12565,12870,13428,15360,12532,12838,13412,15360,12549,12854,13412,15360,12516,12838,13396,15360,12452,12757,13356,15360,12420,12725,13340,15360,12404,12709,13332,15360,12372,12677,13316,15360,12279,12589,13207,15360,12135,12516,13119,15360,12388,12709,13348,15360,12247,12581,13223,15360,12055,12476,13087,15360,11910,12388,12982,15360,11733,12308,12886,15360,11669,12247,12846,15360,11621,12199,12814,15360,11541,12103,12765,15360,11492,12055,12733,15360,11508,12055,12733,15360,11476,12022,12717,15360,11525,12055,12725,15360,11589,12135,12757,15360,11669,12199,12765,15360,11765,12292,12814,15360,11862,12348,12886,15360,11910,12372,12910,15360,12006,12420,12966,15360,12071,12452,12998,15360,12119,12476,13022,15360,12167,12492,13046,15360,12183,12500,13063,15360,12199,12524,13079,15360,12308,12589,13151,15360,12300,12581,13151,15360,12167,12516,13087,15360,12087,12468,13030,15360,12022,12444,13014,15360,11990,12420,12990,15360,11974,12420,12990,15360,11974,12420,12990,15360,11990,12436,13014,15360,11990,12444,13030,15360,12103,12500,13103,15360,12087,12508,13111,15360,12039,12484,13103,15360,12039,12476,13103,15360,11942,12436,13054,15360,11974,12452,13087,15360,12039,12492,13135,15360,12103,12532,13199,15360,12183,12581,13263,15360,12308,12661,13340,15360,12484,12822,13436,15360,12613,12918,13484,15360,12725,13046,13540,15360,13046,13332,13677,15360,13143,13380,13717,15360,13223,13420,13741,15360,13396,13540,13862,15360,13436,13589,13902,15360,13484,13629,13942,15360,13468,13621,13934,15360,13412,13564,13878,15360,13372,13524,13846,15360,13287,13452,13781,15360,13223,13428,13749,15360,13340,13492,13805,15360,13239,13428,13749,15360,13095,13364,13685,15360,12918,13223,13597,15360,12822,13111,13556,15360,12613,12934,13468,15360,12532,12854,13428,15360,12565,12870,13444,15360,12468,12789,13396,15360,12372,12693,13340,15360,12087,12492,13111,15360,11846,12364,12958,15360,11717,12300,12878,15360,11557,12135,12781,15360,11476,12055,12741,15360,11460,12022,12725,15360,11476,12022,12725,15360,11476,12022,12709,15360,11476,11958,12605,15360,11364,11733,12332,15360,11111,11412,11661,15360,11223,11476,11773,15360,11388,11669,12095,15360,11765,12119,12492,15360,12388,12613,13079,15360,12661,12902,13356,15360,12998,13255,13564,15360,13372,13508,13797,15360,13412,13548,13846,15360,13287,13436,13725,15360,13271,13428,13709,15360,13287,13428,13717,15360,13014,13287,13597,15360,12709,12998,13460,15360,12452,12741,13332,15360,12364,12653,13271,15360,12404,12693,13316,15360,12420,12709,13316,15360,12420,12709,13332,15360,12263,12589,13231,15360,12332,12661,13312,15360,12300,12629,13295,15360,12263,12605,13287,15360,12231,12597,13279,15360,12247,12613,13303,15360,12231,12597,13295,15360,12231,12605,13312,15360,12199,12597,13324,15360,12231,12613,13340,15360,12516,12870,13468,15360,12725,13063,13564,15360,12741,13079,13573,15360,12854,13175,13613,15360,12902,13223,13629,15360,13046,13348,13693,15360,13356,13516,13846,15360,13605,13765,14078,15360,13717,13870,14191,15360,13765,13918,14255,15360,13765,13910,14247,15360,13701,13854,14191,15360,13573,13733,14070,15360,13508,13677,14006,15360,13380,13548,13886,15360,13111,13380,13741,15360,13063,13348,13709,15360,12886,13207,13629,15360,12725,13046,13548,15360,12645,12966,13508,15360,12677,12982,13508,15360,12629,12950,13492,15360,12452,12789,13412,15360,12324,12661,13332,15360,12356,12677,13340,15360,12388,12693,13348,15360,12279,12597,13247,15360,11894,12396,12998,15360,11637,12231,12846,15360,11573,12135,12789,15360,11589,12151,12797,15360,11621,12167,12797,15360,11637,12119,12677,15360,11079,11404,11693,15360,10517,10701,10653,15360,10252,10348,10007,15360,9902,9999,9428,15360,9846,9886,9047,15360,10135,10260,9685,15360,10412,10533,10412,15360,11268,11436,11549,15360,12364,12605,13087,15360,12444,12709,13255,15360,12549,12822,13348,15360,12613,12886,13396,15360,12597,12886,13412,15360,12581,12870,13404,15360,12661,12950,13460,15360,12725,13014,13492,15360,13079,13332,13645,15360,12757,13046,13500,15360,12677,12982,13476,15360,12854,13143,13556,15360,12693,12982,13492,15360,12581,12886,13452,15360,12709,13030,13508,15360,12372,12709,13364,15360,12324,12661,13348,15360,12292,12645,13340,15360,12292,12645,13348,15360,12468,12806,13436,15360,12532,12854,13460,15360,12500,12854,13468,15360,12500,12854,13484,15360,12725,13063,13589,15360,12982,13324,13701,15360,13111,13388,13741,15360,13014,13340,13709,15360,13014,13332,13717,15360,13287,13476,13862,15360,13436,13621,13974,15360,13532,13717,14095,15360,13725,13902,14295,15360,13942,14103,14420,15360,13974,14135,14436,15360,13862,14022,14388,15360,13725,13894,14295,15360,13789,13958,14336,15360,13830,13990,14348,15360,13372,13548,13942,15360,13014,13332,13733,15360,12886,13239,13661,15360,12854,13207,13637,15360,12757,13095,13589,15360,12757,13079,13573,15360,12645,12982,13516,15360,12629,12966,13532,15360,12549,12870,13468,15360,12356,12693,13372,15360,12151,12549,13231,15360,12215,12573,13247,15360,12199,12565,13231,15360,12071,12492,13135,15360,12055,12468,13087,15360,11878,12372,12958,15360,11685,12199,12781,15360,10774,11159,11412,15360,9533,9621,8870,15360,9308,9340,8071,15360,9276,9300,7878,15360,9324,9332,8420,15360,9191,9216,7991,15360,8950,8983,7766,15360,9493,9525,8677,15360,10252,10332,10007,15360,10661,10846,10894,15360,10701,10926,10998,15360,10950,11276,11428,15360,11364,11637,12063,15360,11958,12388,12926,15360,12183,12540,13175,15360,12340,12645,13295,15360,12420,12693,13316,15360,12757,13030,13460,15360,13046,13324,13645,15360,13095,13348,13677,15360,13303,13460,13781,15360,13207,13404,13741,15360,13127,13372,13717,15360,13372,13524,13862,15360,12693,13030,13540,15360,12725,13046,13548,15360,12468,12822,13436,15360,12263,12629,13348,15360,12436,12773,13428,15360,12693,12998,13524,15360,12725,13046,13564,15360,12645,12982,13556,15360,12613,12966,13556,15360,12886,13255,13685,15360,13436,13629,14022,15360,13637,13813,14231,15360,13621,13789,14215,15360,13878,14038,14412,15360,14022,14183,14468,15360,13926,14119,14452,15360,14054,14231,14508,15360,14135,14311,14540,15360,14348,14436,14669,15360,14460,14540,14749,15360,14404,14484,14709,15360,14420,14500,14709,15360,14653,14717,14894,15360,14119,14279,14508,15360,13484,13669,14078,15360,13063,13380,13773,15360,12677,13079,13613,15360,12484,12886,13516,15360,12436,12822,13476,15360,12468,12838,13476,15360,12039,12532,13316,15360,12231,12613,13340,15360,12468,12789,13436,15360,12388,12725,13396,15360,12135,12557,13287,15360,12151,12557,13271,15360,12039,12484,13175,15360,11878,12396,13038,15360,11814,12348,12950,15360,11492,11894,12460,15360,9950,10103,9621,15360,8830,8838,7220,15360,8565,8533,7015,15360,8541,8501,6919,15360,8332,8300,6822,15360,8412,8372,7220,15360,8710,8701,7686,15360,9372,9404,8549,15360,9533,9621,9079,15360,9268,9292,8196,15360,9452,9460,8167,15360,9533,9581,8533,15360,9742,9870,9316,15360,11460,11814,12348,15360,11942,12388,12902,15360,11749,12167,12573,15360,11300,11492,11621,15360,11974,12332,12669,15360,12436,12741,13364,15360,12597,12886,13460,15360,12966,13271,13653,15360,12998,13303,13669,15360,13476,13629,13974,15360,13733,13886,14239,15360,13364,13524,13894,15360,13063,13356,13725,15360,12982,13287,13669,15360,12484,12806,13444,15360,12565,12902,13500,15360,12950,13287,13693,15360,12934,13271,13677,15360,12693,13046,13589,15360,12661,13030,13605,15360,12870,13271,13717,15360,13348,13548,13966,15360,13621,13813,14271,15360,13797,13974,14412,15360,13942,14119,14484,15360,14263,14388,14629,15360,14420,14508,14733,15360,14460,14548,14773,15360,14982,15046,15231,15360,15564,15580,15669,15360,15974,15982,16078,15360,15805,15821,15926,15360,15460,15476,15572,15360,15436,15460,15556,15360,14781,14862,15127,15360,13621,13813,14348,15360,12789,13207,13757,15360,12452,12886,13581,15360,12263,12709,13476,15360,12039,12597,13396,15360,11942,12516,13340,15360,11846,12468,13271,15360,11733,12380,13127,15360,11926,12460,13191,15360,12055,12524,13263,15360,11878,12428,13159,15360,11605,12231,12886,15360,11412,11990,12709,15360,11508,12103,12789,15360,11637,12231,12854,15360,10661,11079,11380,15360,9541,9685,9252,15360,8573,8605,7493,15360,8404,8388,7348,15360,8830,8822,8212,15360,9308,9324,9095,15360,9324,9364,9220,15360,9047,9119,8653,15360,9023,9055,8404,15360,9055,9063,8167,15360,8870,8846,7541,15360,8862,8806,7380,15360,8950,8910,7252,15360,9268,9284,7557,15360,10316,10468,10380,15360,11239,11476,11677,15360,10653,10942,11047,15360,9661,9814,9324,15360,10693,10958,11047,15360,11396,11653,11990,15360,11878,12292,12597,15360,12468,12789,13396,15360,12773,13095,13589,15360,13364,13516,13894,15360,13894,14054,14380,15360,13717,13870,14247,15360,13420,13589,13958,15360,13255,13452,13830,15360,12806,13143,13637,15360,13159,13412,13830,15360,13629,13813,14215,15360,13303,13500,13910,15360,13079,13396,13805,15360,13191,13452,13878,15360,13412,13621,14062,15360,14103,14279,14540,15360,14773,14854,15086,15360,14717,14805,15046,15360,14295,14420,14685,15360,14380,14476,14733,15360,14572,14661,14902,15360,15596,15612,15701,15360,16351,16335,16384,15360,16484,16476,16492,15360,16516,16500,16516,15360,16388,16375,16404,15360,16054,16054,16118,15360,15918,15926,16006,15360,15556,15572,15669,15360,14653,14725,14982,15360,13637,13838,14319,15360,13412,13613,14054,15360,12870,13287,13789,15360,12404,12838,13524,15360,12199,12677,13428,15360,12324,12741,13452,15360,11942,12516,13324,15360,11765,12380,13111,15360,11428,11942,12589,15360,10886,11388,11902,15360,10372,10717,11006,15360,9846,10240,10191,15360,10252,10549,10766,15360,10613,11079,11484,15360,10581,10998,11388,15360,9613,9846,9629,15360,8525,8557,7541,15360,8605,8613,7814,15360,9292,9324,9079,15360,9388,9396,9220,15360,10709,10846,11031,15360,9894,9966,9854,15360,9252,9236,8774,15360,8822,8790,8183,15360,8292,8260,6533,15360,8111,8007,6324,15360,8228,8183,6405,15360,8501,8501,6565,15360,8814,8878,7172,15360,9260,9364,8244,15360,8902,9095,8252,15360,9444,9581,9047,15360,9509,9637,8790,15360,9477,9613,8806,15360,10725,11063,11079,15360,11508,11910,12356,15360,12484,12789,13380,15360,12838,13159,13629,15360,13428,13589,13974,15360,14135,14279,14484,15360,13942,14087,14396,15360,13677,13846,14247,15360,13436,13613,14006,15360,13597,13781,14183,15360,14183,14340,14540,15360,14022,14215,14484,15360,13637,13838,14271,15360,14038,14231,14508,15360,14380,14476,14701,15360,14757,14854,15078,15360,15030,15111,15343,15360,15420,15452,15556,15360,15476,15500,15588,15360,15351,15388,15492,15360,15572,15596,15677,15360,15653,15669,15717,15360,15821,15821,15853,15360,15845,15845,15869,15360,15998,15990,16022,15360,15926,15926,15974,15360,15653,15669,15733,15360,15661,15677,15749,15360,15612,15629,15717,15360,15271,15335,15452,15360,14484,14572,14821,15360,14215,14372,14588,15360,13468,13677,14167,15360,12773,13175,13653,15360,12725,13143,13637,15360,12452,12886,13532,15360,12263,12709,13444,15360,11894,12436,13103,15360,10252,10533,10661,15360,8613,8693,7445,15360,8742,8782,7047,15360,8420,8412,6565,15360,7926,7910,6405,15360,8806,8854,7300,15360,9127,9228,8007,15360,8685,8750,7300,15360,8348,8356,6758,15360,8380,8340,7300,15360,8991,8918,8388,15360,9838,9790,9549,15360,10055,10127,10047,15360,9501,9493,9268,15360,9332,9292,8902,15360,9079,9007,8509,15360,8300,8260,7252,15360,8693,8701,8196,15360,8228,8212,7111,15360,8469,8501,7380,15360,8420,8501,6919,15360,8549,8645,6983,15360,8581,8661,6951,15360,9268,9332,7718,15360,9063,9207,7445,15360,9284,9380,7718,15360,9412,9557,8693,15360,10276,10517,10103,15360,11830,12279,12589,15360,12725,13079,13589,15360,13127,13396,13773,15360,14087,14231,14460,15360,13974,14119,14412,15360,13677,13854,14247,15360,14119,14279,14500,15360,13990,14167,14460,15360,14364,14452,14653,15360,14564,14653,14837,15360,14404,14492,14701,15360,14870,14942,15135,15360,15388,15420,15500,15360,15207,15287,15420,15360,14797,14894,15127,15360,15271,15335,15452,15360,15926,15942,15990,15360,16207,16207,16231,15360,16118,16110,16126,15360,15741,15733,15741,15360,16239,16207,16175,15360,16444,16460,16484,15360,16046,16022,16006,15360,15942,15950,15966,15360,15773,15789,15829,15360,15789,15797,15845,15360,15693,15709,15757,15360,15540,15564,15653,15360,15303,15364,15468,15360,14733,14813,15014,15360,13862,14054,14420,15360,12838,13255,13725,15360,12789,13207,13693,15360,12468,12918,13564,15360,12404,12838,13500,15360,11428,11862,12412,15360,9143,9276,8388,15360,8541,8533,6726,15360,8444,8428,6629,15360,8212,8183,6597,15360,8388,8380,7015,15360,8726,8710,6758,15360,8332,8316,6437,15360,8453,8428,6565,15360,8597,8605,7814,15360,8701,8661,8151,15360,9452,9396,9015,15360,10581,10557,10380,15360,10950,10974,10846,15360,10380,10356,10252,15360,10749,10741,10685,15360,9870,9854,9693,15360,9023,9039,8669,15360,8790,8854,8509,15360,8196,8167,7332,15360,7975,8015,7079,15360,8589,8750,7445,15360,9095,9260,7111,15360,8983,9135,7188,15360,8902,8991,7252,15360,8862,9007,7015,15360,8967,9111,7300,15360,8742,8878,7493,15360,9557,9999,9549,15360,11292,11613,11862,15360,12135,12468,12982,15360,12215,12460,12878,15360,13356,13468,13685,15360,13821,13934,14199,15360,13548,13701,14022,15360,14103,14263,14468,15360,14279,14388,14572,15360,14364,14452,14645,15360,14709,14789,14950,15360,15143,15199,15327,15360,15388,15412,15468,15360,15476,15500,15548,15360,15420,15444,15492,15360,15436,15460,15516,15360,15612,15637,15685,15360,16086,16086,16110,15360,16396,16388,16396,15360,16094,16094,16110,15360,15869,15861,15861,15360,16135,16110,16070,15360,16428,16420,16404,15360,15588,15556,15524,15360,15484,15500,15508,15360,15335,15364,15396,15360,15677,15685,15717,15360,15604,15621,15661,15360,15420,15444,15500,15360,15303,15372,15452,15360,14717,14805,14998,15360,14412,14508,14701,15360,13548,13765,14199,15360,13271,13508,13942,15360,12661,13159,13709,15360,12468,12854,13436,15360,10260,10484,10509,15360,8613,8669,6951,15360,8151,8143,6469,15360,8653,8629,7814,15360,8469,8444,7541,15360,8718,8693,7814,15360,8372,8332,6597,15360,8356,8308,7111,15360,9047,8983,8396,15360,8822,8798,8308,15360,9372,9348,8967,15360,10364,10364,10183,15360,10268,10260,9894,15360,10541,10533,10468,15360,10380,10364,10276,15360,10621,10613,10549,15360,9910,9942,9758,15360,8364,8380,7621,15360,8581,8637,8135,15360,8252,8300,7573,15360,8119,8175,7300,15360,8372,8453,7493,15360,8420,8501,6983,15360,8742,8822,7573,15360,8782,8854,8151,15360,8581,8661,7079,15360,9220,9268,8340,15360,9549,9645,8854,15360,11717,11950,12127,15360,12468,12741,13207,15360,12709,12966,13388,15360,12300,12508,12886,15360,12492,12709,13063,15360,13239,13372,13548,15360,12476,12597,12814,15360,13581,13685,13878,15360,14476,14548,14685,15360,14556,14629,14773,15360,14765,14829,14966,15360,15159,15207,15303,15360,15372,15396,15444,15360,15516,15532,15572,15360,15653,15661,15693,15360,15829,15837,15853,15360,16022,16014,16022,15360,16311,16295,16279,15360,16343,16319,16303,15360,16412,16388,16359,15360,15813,15797,15773,15360,13063,13151,13183,15360,11484,11701,11798,15360,12300,12412,12468,15360,14613,14637,14653,15360,11974,12215,12316,15360,14135,14215,14303,15360,15604,15629,15677,15360,15524,15548,15596,15360,15351,15380,15428,15360,14797,14894,15054,15360,13990,14231,14500,15360,13492,13709,14070,15360,12886,13316,13701,15360,12613,13207,13749,15360,11525,11974,12428,15360,9284,9412,8629,15360,8597,8653,6951,15360,7806,7790,6292,15360,7589,7541,6437,15360,7485,7437,6597,15360,7453,7404,6180,15360,7774,7686,6565,15360,8300,8260,7332,15360,9918,9942,9862,15360,10348,10372,10231,15360,9725,9709,9228,15360,10613,10621,10509,15360,10199,10175,9838,15360,10380,10388,10340,15360,11207,11255,11284,15360,10661,10717,10725,15360,10103,10135,9950,15360,8444,8436,7669,15360,8469,8501,7445,15360,8950,9111,8854,15360,9485,9798,10071,15360,8364,8501,8039,15360,7959,7951,6806,15360,8597,8605,8039,15360,8501,8533,7557,15360,8758,8830,7509,15360,10758,10830,10693,15360,11508,11605,11621,15360,13524,13669,13886,15360,13830,14022,14327,15360,13926,14103,14364,15360,13460,13621,13886,15360,12854,13191,13420,15360,13597,13733,13926,15360,13846,13990,14223,15360,13773,13942,14199,15360,13910,14087,14356,15360,13813,14022,14319,15360,14247,14396,14540,15360,14693,14765,14878,15360,15223,15279,15343,15360,15508,15524,15540,15360,15540,15548,15564,15360,15327,15335,15319,15360,15303,15311,15303,15360,15918,15910,15886,15360,16247,16207,16151,15360,16175,16143,16086,15360,14436,14452,14436,15360,12263,12380,12404,15360,11476,11701,11773,15360,12380,12492,12532,15360,14797,14797,14757,15360,11372,11589,11677,15360,12597,12934,13356,15360,13990,14364,14725,15360,14183,14444,14773,15360,14231,14444,14717,15360,14412,14532,14709,15360,14054,14199,14380,15360,12372,12500,12605,15360,12199,12565,13006,15360,12581,13175,13653,15360,10055,10380,10324,15360,8557,8573,6726,15360,8167,8196,6533,15360,7517,7485,6119,15360,7244,7172,5798,15360,7071,6959,5718,15360,7669,7581,6260,15360,8661,8605,7975,15360,10942,11079,11151,15360,12573,12741,13014,15360,11902,12030,12191,15360,10308,10332,10135,15360,11255,11300,11284,15360,11276,11348,11396,15360,10055,10215,10292,15360,12183,12332,12468,15360,9918,9966,9798,15360,8734,8742,8196,15360,8967,8950,8469,15360,10260,10276,10039,15360,9734,9758,9605,15360,9388,9404,9308,15360,7943,7878,7095,15360,7726,7637,6645,15360,8047,7983,7204,15360,9284,9236,8693,15360,9621,9565,9143,15360,11255,11268,11047,15360,13175,13332,13420,15360,13773,13934,14175,15360,13854,14022,14271,15360,13870,14038,14279,15360,13388,13516,13677,15360,12279,12629,12966,15360,13348,13452,13564,15360,13821,13918,14054,15360,13701,13846,14022,15360,13460,13605,13781,15360,13492,13637,13821,15360,13709,13821,13950,15360,14372,14428,14476,15360,14516,14572,14613,15360,14741,14789,14813,15360,14725,14749,14749,15360,13452,13484,13468,15360,13476,13500,13492,15360,14990,15022,15022,15360,14556,14572,14564,15360,15094,15111,15094,15360,13231,13287,13215,15360,11255,11380,11175,15360,10677,10886,10492,15360,11846,12006,11934,15360,14327,14340,14279,15360,10766,11039,10862,15360,12918,13255,13452,15360,14231,14548,14886,15360,13878,14380,14765,15360,13444,13862,14412,15360,12151,12404,12621,15360,12637,12902,13215,15360,11549,11749,11870,15360,12279,12653,13119,15360,13223,13404,13516,15360,9228,9260,8276,15360,8087,7991,6308,15360,7918,7814,6919,15360,7469,7364,6148,15360,7485,7380,6212,15360,8228,7991,7204,15360,9276,8967,8212,15360,9806,9573,8742,15360,10135,10087,9621,15360,11452,11452,11452,15360,10629,10637,10509,15360,10693,10733,10637,15360,11095,11111,10982,15360,11292,11348,11372,15360,10199,10244,10167,15360,10814,10926,10846,15360,8669,8774,7493,15360,7870,7910,6244,15360,8204,8183,6919,15360,9806,9758,9159,15360,9460,9436,8629,15360,9159,9087,8260,15360,7637,7509,6790,15360,7758,7629,6838,15360,7967,7918,6774,15360,10854,10749,10501,15360,11508,11412,11316,15360,12372,12300,12151,15360,12030,12119,12063,15360,12781,12910,12982,15360,13476,13581,13661,15360,13484,13589,13677,15360,12404,12428,12380,15360,11605,11765,11798,15360,11492,11533,11452,15360,11838,11886,11798,15360,12263,12372,12380,15360,12151,12231,12175,15360,11492,11508,11412,15360,11119,11111,10838,15360,12508,12581,12573,15360,12621,12693,12677,15360,12573,12629,12589,15360,12292,12324,12231,15360,12476,12565,12573,15360,11998,12159,12215,15360,12950,13071,13159,15360,12263,12372,12428,15360,12380,12428,12444,15360,11300,11308,11143,15360,10199,10244,9734,15360,9709,9701,9252,15360,10492,10581,10404,15360,11476,11516,11388,15360,9477,9517,8790,15360,11717,11854,11838,15360,14247,14420,14524,15360,14054,14311,14436,15360,13597,13805,13982,15360,11364,11533,11597,15360,12263,12428,12549,15360,11436,11605,11653,15360,13079,13324,13444,15360,12516,12613,12605,15360,10039,10015,9605,15360,8693,8621,7878,15360,7951,7862,6902,15360,8196,8204,7015,15360,8677,8589,7637,15360,9284,9031,8340,15360,9814,9605,8902,15360,10685,10428,9910,15360,10492,10260,9685,15360,9404,9252,7943,15360,8830,8766,7220,15360,9220,9047,7943,15360,9693,9669,9015,15360,11412,11468,11372,15360,11135,11159,11023,15360,10087,10055,9428,15360,9910,10007,9621,15360,9236,9300,8934,15360,9597,9557,8902,15360,10669,10549,9782,15360,9926,9870,9127,15360,9894,9918,9047,15360,8685,8742,7910,15360,9958,10167,10284,15360,10215,10332,10396,15360,11396,11428,11452,15360,11223,11255,11300,15360,11814,11862,11958,15360,10685,10846,10870,15360,10340,10380,10007,15360,11175,11207,10894,15360,12103,12207,12215,15360,11143,11103,10902,15360,9910,9966,9613,15360,10015,10079,9493,15360,10806,10846,10517,15360,10862,10934,10637,15360,10838,10942,10661,15360,10958,11087,10878,15360,10709,10838,10701,15360,10669,10741,10589,15360,10581,10669,10525,15360,10252,10348,9974,15360,11396,11500,11525,15360,11207,11255,11264,15360,10878,10910,10934,15360,11031,11063,11159,15360,11292,11324,11396,15360,11223,11255,11300,15360,10693,10685,10645,15360,10428,10420,10324,15360,10300,10252,9991,15360,10838,10846,10798,15360,10428,10428,10364,15360,9669,9605,9380,15360,10167,10244,10087,15360,11709,11854,11910,15360,11223,11284,11268,15360,10231,10244,9878,15360,10199,10244,9862,15360,10183,10260,9942,15360,10525,10653,10541,15360,12500,12597,12621,15360,11814,11741,11597,15360,11533,11460,11175,15360,11103,11006,10557,15360,10444,10396,9846,15360,10007,10023,9228,15360,9653,9790,8469,15360,9316,9372,8039,15360,9557,9830,8071,15360,9621,9918,8071,15360,9677,10015,8167,15360,9991,10284,8420,15360,10215,10436,8581,15360,10260,10484,8645,15360,10292,10476,8902,15360,10324,10468,9252,15360,9910,9894,8886,15360,10525,10573,9701,15360,9782,10039,8581,15360,9565,9814,8167,15360,9950,10039,8934,15360,10749,10758,10199,15360,10669,10685,10244,15360,10838,10838,10460,15360,11215,10910,10087,15360,11492,11364,10806,15360,11095,11159,11055,15360,11364,11388,11356,15360,11023,11039,10990,15360,11653,11653,11613,15360,11798,11725,11557,15360,11974,11862,11637,15360,12039,11942,11765,15360,12119,12047,11934,15360,12151,12071,11950,15360,12087,12006,11886,15360,12047,11966,11838,15360,11990,11926,11790,15360,11974,11910,11798,15360,11998,11934,11814,15360,12111,12039,11886,15360,12231,12143,11998,15360,12292,12199,12039,15360,12039,11974,11846,15360,11822,11782,11653,15360,11862,11838,11765,15360,11798,11765,11701,15360,11782,11733,11669,15360,11798,11749,11685,15360,11838,11790,11725,15360,11870,11822,11749,15360,11741,11701,11621,15360,11565,11541,11452,15360,11533,11500,11412,15360,11621,11581,11484,15360,11605,11557,11460,15360,11516,11468,11372,15360,11565,11533,11444,15360,11677,11637,11541,15360,11725,11661,11557,15360,11725,11661,11557,15360,11733,11669,11573,15360,11838,11773,11677,15360,11998,11926,11814,15360,12014,11926,11798,15360,11460,11404,11332,15360,11637,11557,11428,15360,12014,11894,11693,15360,12167,12022,11765,15360,12119,11982,11709,15360,11926,11806,11516,15360,11685,11589,11300,15360,11476,11404,10886,15360,11239,11151,10468,15360,10766,10733,9894,15360,10565,10565,9589,15360,10436,10444,9332,15360,10308,10308,9031,15360,10308,10316,8999,15360,10199,10244,8774,15360,9725,9645,8549,15360,10244,10276,8967,15360,10878,10838,10183,15360,11055,10966,10348,15360,11119,11006,10404,15360,11264,11135,10565,15360,11404,11316,10822,15360,11492,11388,10982,15360,11798,11613,11223,15360,12047,11830,11412,15360,12039,11894,11597,15360,12127,11990,11693,15360,12127,11990,11725,15360,12191,12055,11806,15360,12191,12055,11830,15360,11870,11773,11613,15360,11573,11516,11428,15360,11533,11484,11412,15360,11541,11492,11420,15360,11565,11516,11452,15360,11589,11541,11476,15360,11605,11557,11500,15360,11637,11589,11533,15360,11669,11621,11557,15360,11701,11645,11573,15360,11733,11669,11589,15360,11798,11717,11605,15360,11838,11749,11621,15360,11878,11782,11661,15360,11894,11798,11661,15360,11926,11806,11653,15360,11958,11822,11661,15360,11982,11846,11677,15360,12006,11870,11685,15360,12095,11950,11765,15360,12047,11910,11741,15360,11886,11765,11605,15360,11838,11733,11589,15360,11814,11717,11589,15360,11814,11709,11573,15360,11790,11693,11565,15360,11741,11677,11589,15360,11733,11677,11613,15360,11733,11685,11629,15360,11717,11669,11621,15360,11685,11645,11589,15360,11629,11589,11533,15360,11573,11525,11468,15360,11492,11444,11380,15360,11316,11255,11111,15360,11348,11292,11143,15360,11516,11436,11316,15360,11854,11749,11589,15360,12127,11990,11765,15360,12199,12055,11782,15360,12340,12231,11910,15360,12372,12292,11958,15360,12380,12300,11974,15360,12348,12247,11910,15360,12324,12215,11878,15360,12247,12103,11773,15360,12095,11958,11637,15360,12055,11926,11613,15360,11974,11854,11541,15360,11870,11765,11468,15360,11966,11854,11541,15360,12300,12151,11846,15360,12396,12316,12006,15360,12388,12308,11990,15360,12388,12308,12006,15360,12396,12316,12022,15360,12396,12308,12022,15360,12396,12308,12022,15360,12364,12279,11974,15360,12340,12247,11942,15360,12340,12231,11926,15360,12215,12071,11806,15360,12095,11966,11749,15360,11741,11645,11500,15360,11420,11356,11255,15360,11364,11308,11207,15360,11356,11300,11175,15360,11348,11292,11191,15360,11372,11324,11255,15360,11412,11364,11308,15360,11420,11372,11316,15360,11428,11380,11324,15360,11444,11388,11332,15360,11484,11428,11364,15360,11508,11460,11396,15360,11557,11500,11436,15360,11589,11533,11460,15360,11613,11557,11484,15360,11621,11557,11492,15360,11613,11557,11500,15360,11621,11557,11500,15360,11629,11573,11508,15360,11629,11573,11508,15360,11605,11557,11484,15360,11589,11533,11468,15360,11557,11508,11436,15360,11549,11500,11428,15360,11557,11500,11436,15360,11549,11492,11436,15360,11533,11484,11428,15360,11525,11476,11428,15360,11516,11476,11428,15360,11525,11484,11444,15360,11516,11476,11428,15360,11468,11428,11380,15360,11428,11388,11332,15360,11356,11308,11239,15360,11308,11255,11127,15360,11167,11071,10926,15360,11223,11119,10966,15360,11276,11175,10998,15360,11404,11332,11191,15360,11773,11693,11557,15360,11926,11798,11613,15360,12207,12039,11773,15360,12348,12231,11894,15360,12308,12151,11846,15360,12332,12215,11894,15360,12364,12279,11958,15360,12380,12292,11974,15360,12396,12316,12022,15360,12404,12316,12039,15360,12412,12332,12087,15360,12412,12332,12103,15360,12436,12356,12135,15360,12372,12292,12039,15360,12420,12332,12087,15360,12396,12316,12055,15360,12356,12263,11990,15360,12340,12231,11942,15360,12271,12127,11854,15360,12215,12071,11814,15360,12292,12135,11878,15360,12288,12135,11870,15360,12111,11982,11765,15360,11990,11886,11717,15360,11637,11557,11428,15360,11364,11300,11143,15360,11316,11239,11079,15360,11300,11207,11047,15360,11268,11159,11015,15360,11268,11159,11015,15360,11268,11159,11031,15360,11300,11223,11095,15360,11340,11292,11191,15360,11348,11300,11223,15360,11372,11324,11255,15360,11380,11332,11255,15360,11372,11316,11239,15360,11396,11340,11268,15360,11468,11404,11300,15360,11460,11404,11324,15360,11484,11428,11356,15360,11492,11436,11372,15360,11500,11444,11388,15360,11508,11460,11404,15360,11500,11452,11396,15360,11492,11436,11380,15360,11468,11412,11356,15360,11444,11388,11324,15360,11444,11388,11324,15360,11428,11380,11316,15360,11412,11356,11300,15360,11404,11348,11300,15360,11404,11356,11308,15360,11396,11356,11308,15360,11388,11348,11308,15360,11372,11340,11292,15360,11348,11308,11255,15360,11284,11223,11111,15360,11231,11143,11023,15360,11199,11111,10974,15360,11047,10958,10814,15360,11127,11023,10870,15360,11119,11006,10846,15360,11175,11055,10886,15360,11292,11191,10998,15360,11525,11404,11284,15360,11822,11637,11476,15360,11878,11733,11549,15360,11918,11790,11573,15360,12063,11918,11653,15360,12223,12063,11765,15360,12300,12151,11846,15360,12255,12103,11814,15360,12271,12127,11846,15360,12271,12127,11862,15360,12271,12127,11886,15360,12308,12183,11942,15360,12175,12039,11814,15360,12063,11934,11709,15360,12159,12014,11765,15360,12215,12063,11798,15360,12143,11998,11757,15360,12071,11934,11693,15360,11998,11870,11661,15360,11974,11870,11685,15360,11998,11910,11757,15360,11846,11765,11629,15360,11468,11396,11284,15360,11308,11223,11031,15360,11215,11103,10934,15360,11207,11095,10942,15360,11215,11103,10950,15360,11191,11087,10942,15360,11175,11079,10942,15360,11167,11063,10934,15360,11143,11031,10902,15360,11247,11143,11015,15360,11284,11191,11079,15360,11300,11223,11095,15360,11316,11268,11127,15360,11340,11284,11143,15360,11340,11284,11159,15360,11356,11300,11191,15360,11372,11316,11239,15360,11380,11324,11255,15360,11372,11316,11255,15360,11380,11324,11276,15360,11380,11324,11268,15360,11372,11316,11255,15360,11364,11316,11255,15360,11364,11308,11239,15360,11348,11292,11207,15360,11340,11284,11191,15360,11348,11292,11191,15360,11348,11292,11207,15360,11340,11292,11207,15360,11340,11292,11207,15360,11324,11276,11207,15360,11308,11255,11175,15360,11264,11175,11079,15360,11119,11039,10934,15360,11103,11015,10902,15360,11095,11006,10878,15360,11031,10942,10806,15360,10990,10902,10766,15360,11047,10942,10814,15360,11031,10926,10790,15360,11055,10942,10806,15360,11119,10998,10846,15360,11151,11015,10830,15360,11268,11095,10886,15360,11484,11396,11268,15360,11790,11701,11549,15360,11886,11790,11637,15360,11838,11741,11581,15360,11838,11725,11541,15360,11902,11782,11581,15360,11966,11838,11629,15360,11974,11846,11629,15360,11958,11838,11629,15360,11950,11838,11637,15360,11814,11701,11525,15360,11581,11492,11332,15360,11645,11541,11380,15360,11806,11701,11533,15360,11902,11806,11637,15360,11950,11862,11717,15360,12014,11934,11790,15360,11942,11862,11725,15360,11565,11492,11388,15360,11292,11191,11015,15360,11231,11111,10950,15360,11159,11047,10894,15360,11119,11006,10854,15360,11127,11023,10878,15360,11159,11055,10902,15360,11135,11031,10894,15360,11111,11006,10878,15360,11095,10990,10870,15360,11095,10998,10886,15360,11071,10966,10846,15360,11111,11006,10902,15360,11191,11095,10974,15360,11268,11159,11031,15360,11284,11191,11063,15360,11292,11207,11063,15360,11300,11223,11079,15360,11332,11268,11143,15360,11316,11255,11127,15360,11316,11255,11143,15360,11308,11239,11127,15360,11316,11255,11159,15360,11300,11223,11127,15360,11292,11207,11095,15360,11300,11223,11111,15360,11300,11223,11095,15360,11300,11223,11095,15360,11308,11239,11111,15360,11300,11223,11111,15360,11292,11207,11111,15360,11264,11167,11071,15360,11215,11127,11047,15360,11135,11055,10966,15360,11015,10934,10846,15360,10918,10838,10733,15360,10982,10894,10782,15360,10974,10886,10766,15360,10982,10894,10766,15360,10958,10862,10749,15360,10982,10886,10774,15360,10958,10862,10758,15360,10958,10862,10749,15360,11015,10910,10790,15360,11023,10910,10774,15360,11079,10958,10806,15360,11103,10974,10798,15360,11191,11047,10846,15360,11468,11388,11276,15360,11846,11765,11637,15360,12006,11918,11782,15360,11998,11910,11782,15360,11902,11822,11693,15360,11838,11749,11637,15360,11782,11709,11605,15360,11806,11741,11645,15360,11782,11717,11629,15360,11773,11717,11621,15360,11870,11806,11701,15360,11942,11862,11757,15360,12183,12103,11974,15360,11974,11894,11765,15360,11476,11404,11308,15360,11268,11143,10966,15360,11183,11063,10902,15360,11111,10998,10854,15360,11055,10942,10806,15360,11023,10910,10766,15360,11047,10934,10782,15360,11039,10926,10782,15360,11079,10966,10830,15360,11031,10918,10782,15360,11031,10926,10806,15360,10990,10894,10782,15360,10974,10886,10790,15360,10966,10870,10774,15360,11006,10902,10806,15360,11039,10942,10838,15360,11127,11023,10910,15360,11175,11079,10958,15360,11191,11087,10958,15360,11207,11095,10958,15360,11268,11143,11015,15360,11276,11175,11047,15360,11284,11191,11079,15360,11292,11191,11079,15360,11276,11175,11079,15360,11239,11135,11031,15360,11268,11159,11047,15360,11215,11111,11006,15360,11239,11127,11015,15360,11255,11143,11031,15360,11223,11119,11015,15360,11199,11103,10998,15360,11175,11087,10982,15360,11143,11047,10958,15360,11031,10942,10854,15360,10958,10878,10790,15360,10910,10830,10741,15360,10942,10862,10758,15360,10926,10838,10733,15360,10854,10758,10637,15360,10918,10830,10709,15360,10910,10822,10717,15360,10942,10846,10749,15360,10942,10854,10741,15360,10942,10854,10749,15360,10966,10870,10758,15360,10966,10870,10758,15360,10958,10854,10733,15360,10998,10886,10741,15360,10942,10830,10677,15360,11039,10918,10749,15360,11095,10974,10806,15360,11308,11223,11031,15360,11468,11396,11292,15360,11605,11533,11428,15360,11701,11621,11525,15360,11693,11629,11541,15360,11685,11621,11549,15360,11685,11629,11549,15360,11629,11565,11484,15360,11589,11533,11444,15360,11364,11308,11191,15360,11191,11087,10958,15360,11135,11031,10902,15360,11135,11031,10894,15360,11055,10950,10830,15360,11015,10910,10782,15360,10958,10854,10733,15360,10942,10838,10717,15360,10974,10870,10733,15360,10982,10878,10749,15360,10990,10886,10758,15360,11015,10910,10798,15360,10966,10862,10758,15360,10950,10854,10758,15360,10910,10822,10733,15360,10894,10798,10709,15360,10902,10814,10725,15360,10934,10846,10758,15360,10910,10822,10733,15360,10950,10854,10749,15360,10974,10878,10766,15360,11047,10942,10830,15360,11095,10990,10878,15360,11167,11055,10942,15360,11199,11103,10990,15360,11191,11087,10982,15360,11151,11047,10950,15360,11135,11031,10934,15360,11095,10998,10902,15360,11143,11047,10950,15360,11079,10990,10894,15360,11079,10990,10902,15360,11103,11006,10910,15360,11079,10982,10886,15360,11023,10926,10822,15360,10982,10894,10798,15360,10958,10870,10782,15360,10910,10814,10725,15360,10926,10838,10741,15360,10934,10838,10733,15360,10950,10854,10749,15360,10886,10798,10709,15360,10910,10814,10709,15360,10926,10830,10725,15360,10910,10814,10701,15360,10862,10774,10677,15360,10950,10854,10733,15360,10926,10830,10717,15360,10926,10838,10725,15360,10926,10830,10725,15360,10894,10798,10685,15360,10926,10830,10701,15360,10958,10854,10717,15360,10934,10830,10685,15360,10950,10846,10709,15360,10974,10862,10717,15360,10942,10830,10685,15360,10958,10846,10701,15360,11006,10894,10749,15360,10950,10846,10725,15360,10958,10862,10741,15360,10894,10806,10701,15360,10854,10774,10669,15360,10886,10806,10701,15360,10862,10790,10693,15360,10878,10806,10717,15360,10982,10902,10798,15360,10990,10902,10798,15360,10950,10862,10758,15360,10942,10846,10733,15360,10870,10774,10669,15360,10894,10798,10693,15360,10918,10830,10725,15360,10894,10806,10701,15360,10926,10830,10733,15360,10902,10830,10725,15360,10870,10790,10693,15360,10886,10814,10725,15360,10814,10741,10661,15360,10838,10766,10677,15360,10822,10741,10661,15360,10822,10741,10669,15360,10862,10790,10709,15360,10846,10758,10669,15360,10894,10798,10693,15360,10974,10878,10766,15360,10966,10870,10766,15360,11023,10926,10814,15360,11079,10974,10862,15360,11006,10910,10814,15360,10950,10862,10766,15360,10982,10894,10798,15360,10958,10862,10774,15360,10958,10870,10782,15360,10910,10830,10741,15360,10950,10862,10766,15360,10982,10886,10790,15360,10918,10822,10725,15360,10886,10798,10701,15360,10854,10766,10669,15360,10894,10806,10709,15360,10926,10830,10725,15360,10926,10830,10725,15360,10958,10862,10749,15360,10958,10862,10749,15360,10894,10806,10717,15360,10902,10814,10717,15360,10878,10790,10677,15360,10942,10838,10717,15360,10918,10814,10701,15360,10886,10790,10661,15360,10942,10838,10717,15360,10950,10854,10725,15360,10950,10854,10725,15360,10910,10814,10693,15360,10910,10814,10685,15360,10942,10838,10709,15360,10894,10790,10661,15360,10910,10806,10669,15360,10822,10725,10597,15360,10749,10661,10541,15360,10830,10733,10613,15360,10838,10741,10629,15360,10806,10709,10597,15360,10854,10766,10653,15360,10862,10774,10669,15360,10798,10725,10629,15360,10822,10749,10653,15360,10854,10782,10693,15360,10806,10741,10661,15360,10862,10790,10701,15360,10870,10790,10685,15360,10870,10790,10693,15360,10878,10790,10677,15360,10862,10782,10677,15360,10870,10790,10693,15360,10870,10782,10685,15360,10894,10814,10709,15360,10886,10814,10709,15360,10846,10782,10685,15360,10741,10669,10573,15360,10766,10693,10589,15360,10709,10637,10541,15360,10741,10669,10589,15360,10741,10677,10589,15360,10709,10637,10557,15360,10774,10701,10613,15360,10862,10774,10677,15360,11006,10918,10806,15360,11006,10902,10782,15360,10974,10870,10749,15360,10958,10854,10733,15360,10934,10838,10725,15360,10934,10838,10733,15360,10934,10838,10725,15360,10886,10790,10685,15360,10854,10766,10661,15360,10886,10798,10701,15360,10838,10749,10645,15360,10878,10782,10661,15360,10822,10725,10613,15360,10822,10717,10605,15360,10846,10749,10629,15360,10854,10749,10637,15360,10950,10854,10733,15360,10958,10854,10741,15360,10910,10806,10693,15360,10926,10822,10693,15360,10934,10838,10725,15360,10910,10822,10709,15360,10910,10822,10709,15360,10886,10782,10661,15360,10910,10814,10677,15360,10910,10806,10677,15360,10926,10822,10685,15360,10958,10854,10717,15360,10974,10870,10725,15360,10926,10830,10693,15360,10926,10830,10693,15360,10918,10822,10693,15360,10934,10838,10701,15360,10918,10814,10685,15360,10878,10782,10653,15360,10870,10774,10645,15360,10838,10749,10629,15360,10806,10717,10605,15360,10822,10733,10621,15360,10822,10733,10621,15360,10846,10758,10653,15360,10846,10766,10653,15360,10822,10741,10629,15360,10806,10733,10629,15360,10806,10725,10621,15360,10790,10709,10605,15360,10766,10693,10589,15360,10814,10741,10629,15360,10846,10766,10653,15360,10838,10758,10653,15360,10878,10790,10677,15360,10894,10798,10685,15360,10830,10741,10629,15360,10830,10758,10653,15360,10798,10725,10629,15360,10806,10733,10629,15360,10717,10637,10525,15360,10661,10581,10476,15360,10701,10621,10517,15360,10733,10661,10565,15360,10782,10685,10557,15360,10862,10758,10613,15360,10974,10862,10725,15360,10958,10846,10709,15360,11006,10902,10766,15360,11006,10902,10774,15360,11039,10934,10814,15360,11006,10902,10790,15360,11006,10910,10790,15360,10950,10854,10741,15360,10934,10830,10709,15360,10918,10814,10701,15360,10854,10758,10653,15360,10918,10814,10701,15360,10870,10766,10645,15360,10830,10733,10621,15360,10934,10830,10709,15360,10990,10886,10758,15360,10950,10838,10717,15360,10910,10814,10701,15360,10926,10822,10693,15360,10934,10830,10709,15360,10878,10774,10653,15360,10934,10830,10701,15360,10926,10822,10693,15360,10878,10782,10661,15360,10878,10782,10661,15360,10862,10766,10621,15360,10886,10782,10645,15360,10886,10782,10653,15360,10926,10822,10701,15360,10902,10806,10685,15360,10926,10822,10701,15360,10918,10814,10685,15360,10878,10782,10645,15360,10910,10806,10669,15360,10854,10758,10621,15360,10886,10790,10645,15360,10854,10758,10629,15360,10830,10741,10613,15360,10918,10814,10685,15360,10862,10766,10645,15360,10830,10741,10613,15360,10806,10717,10597,15360,10741,10661,10557,15360,10774,10693,10581,15360,10749,10669,10557,15360,10774,10693,10581,15360,10766,10685,10573,15360,10790,10709,10597,15360,10782,10701,10589,15360,10790,10709,10597,15360,10838,10749,10621,15360,10870,10774,10645,15360,10894,10790,10661,15360,10878,10782,10653,15360,10846,10741,10613,15360,10790,10693,10557,15360,10814,10717,10597,15360,10790,10701,10581,15360,10741,10645,10525,15360,10717,10629,10509,15360,10774,10685,10573,15360,10725,10637,10525,15360,10854,10749,10621,15360,10950,10846,10701,15360,10966,10854,10709,15360,10934,10814,10677,15360,10926,10822,10701,15360,10982,10878,10766,15360,10998,10894,10782,15360,10990,10878,10766,15360,10998,10894,10782,15360,10998,10886,10774,15360,10998,10886,10758,15360,11006,10894,10774,15360,10942,10838,10733,15360,10958,10854,10741,15360,10958,10854,10749,15360,11006,10902,10790,15360,11015,10902,10798,15360,10982,10870,10758,15360,10998,10894,10782,15360,10974,10870,10758,15360,11006,10902,10790,15360,10998,10894,10774,15360,10974,10870,10758,15360,10950,10854,10741,15360,10878,10790,10693,15360,10902,10814,10701,15360,10918,10822,10709,15360,10838,10733,10613,15360,10878,10782,10661,15360,10934,10838,10717,15360,10902,10806,10693,15360,10918,10822,10709,15360,10926,10830,10709,15360,10838,10733,10605,15360,10910,10806,10661,15360,10942,10838,10693,15360,10886,10782,10645,15360,10886,10782,10637,15360,10854,10749,10621,15360,10926,10830,10709,15360,10966,10862,10741,15360,10846,10749,10629,15360,10830,10733,10605,15360,10854,10758,10637,15360,10822,10725,10605,15360,10886,10790,10661,15360,10902,10806,10669,15360,10918,10814,10677,15360,10830,10733,10605,15360,10806,10717,10589,15360,10870,10774,10645,15360,10934,10838,10709,15360,10958,10862,10733,15360,10886,10790,10661,15360,10894,10798,10661,15360,10958,10854,10709,15360,10934,10830,10709,15360,10814,10717,10581,15360,10862,10758,10613,15360,10854,10741,10589,15360,10814,10717,10573,15360,10886,10782,10645,15360,10814,10725,10597,15360,10862,10766,10637,15360,10910,10806,10669,15360,10942,10838,10709,15360,10966,10862,10733,15360,10974,10870,10741,15360,10974,10870,10749,15360,10958,10862,10749,15360,11031,10934,10822,15360,10998,10894,10782,15360,10974,10870,10766,15360,11023,10918,10814,15360,11039,10926,10822,15360,10958,10846,10741,15360,10918,10814,10693,15360,10966,10870,10741,15360,10982,10886,10766,15360,10982,10878,10766,15360,10942,10846,10733,15360,10958,10862,10758,15360,10950,10854,10758,15360,10934,10830,10717,15360,10966,10862,10733,15360,10942,10846,10725,15360,10934,10846,10733,15360,10934,10846,10733,15360,10878,10798,10693,15360,10886,10798,10693,15360,10910,10814,10709,15360,10942,10846,10733,15360,10838,10733,10597,15360,10878,10774,10645,15360,10918,10822,10701,15360,10878,10782,10653,15360,10894,10790,10661,15360,10934,10838,10725,15360,10958,10854,10725,15360,10966,10862,10733,15360,10910,10806,10685,15360,10982,10878,10758,15360,10942,10854,10749,15360,10934,10838,10733,15360,10918,10814,10701,15360,10894,10798,10669,15360,10894,10798,10669,15360,10814,10725,10605,15360,10902,10798,10669,15360,10814,10725,10605,15360,10894,10798,10685,15360,10958,10862,10749,15360,10910,10814,10701,15360,10910,10806,10685,15360,10918,10814,10693,15360,10926,10822,10709,15360,10894,10790,10661,15360,10902,10806,10677,15360,10902,10806,10685,15360,10934,10838,10717,15360,10934,10838,10701,15360,10934,10838,10717,15360,10950,10854,10725,15360,10894,10798,10661,15360,10862,10749,10597,15360,10894,10798,10677,15360,10878,10782,10661,15360,10926,10838,10717,15360,10926,10838,10717,15360,10918,10822,10709,15360,10934,10838,10733,15360,10926,10838,10733,15360,10958,10870,10766,15360,10942,10854,10749,15360,10958,10870,10774,15360,10974,10878,10774,15360,10958,10854,10741,15360,10950,10846,10741,15360,10950,10854,10758,15360,10934,10838,10733,15360,10942,10846,10725,15360,10966,10862,10741,15360,10926,10838,10733,15360,10958,10862,10749,15360,10910,10822,10709,15360,10942,10854,10758,15360,10926,10838,10733,15360,10910,10822,10717,15360,10934,10838,10733,15360,10934,10846,10733,15360,10902,10814,10709,15360,10926,10830,10717,15360,10918,10822,10709,15360,10838,10749,10637,15360,10878,10790,10677,15360,10942,10846,10733,15360,10926,10822,10701,15360,10958,10862,10749,15360,10886,10790,10685,15360,10918,10814,10693,15360,10910,10814,10693,15360,10902,10806,10701,15360,10878,10774,10637,15360,10798,10693,10565,15360,10822,10725,10597,15360,10934,10838,10709,15360,10958,10854,10725,15360,10886,10790,10669,15360,10910,10806,10677,15360,10886,10782,10645,15360,10830,10725,10597,15360,10822,10717,10581,15360,10862,10758,10637,15360,10878,10782,10669,15360,10926,10822,10709,15360,10974,10878,10774,15360,10966,10870,10758,15360,10918,10822,10709,15360,10846,10749,10645,15360,10894,10798,10693,15360,10918,10822,10709,15360,10974,10878,10774,15360,10918,10822,10717,15360,10982,10886,10774,15360,10974,10878,10758,15360,10950,10854,10741,15360,10958,10854,10725,15360,10982,10886,10766,15360,10918,10822,10701,15360,10878,10782,10669,15360,10886,10790,10669,15360,10934,10838,10717,15360,10950,10854,10741,15360,10934,10838,10733,15360,10982,10886,10782,15360,10886,10798,10701,15360,10870,10782,10685,15360,10894,10814,10717,15360,10910,10822,10725,15360,10934,10838,10733,15360,10950,10846,10741,15360,10934,10838,10725,15360,10934,10846,10749,15360,10902,10814,10717,15360,10878,10790,10677,15360,10878,10782,10669,15360,10854,10766,10645,15360,10838,10749,10629,15360,10902,10814,10701,15360,10910,10814,10693,15360,10902,10798,10669,15360,10910,10806,10677,15360,10886,10782,10653,15360,10854,10749,10629,15360,10870,10774,10653,15360,10974,10870,10758,15360,10990,10878,10758,15360,10918,10822,10709,15360,10926,10838,10725,15360,10958,10854,10733,15360,10894,10790,10653,15360,10822,10725,10605,15360,10878,10782,10661,15360,10974,10870,10749,15360,10902,10806,10677,15360,10934,10838,10725,15360,10870,10774,10653,15360,10798,10701,10581,15360,10854,10749,10621,15360,10894,10798,10669,15360,10934,10822,10685,15360,10942,10830,10701,15360,10910,10806,10669,15360,10870,10758,10629,15360,10886,10774,10645,15360,10950,10838,10701,15360,10966,10870,10749,15360,10886,10790,10685,15360,10870,10782,10677,15360,10934,10838,10733,15360,10934,10838,10725,15360,10822,10725,10621,15360,10878,10790,10677,15360,10894,10798,10693,15360,10822,10733,10629,15360,10894,10798,10685,15360,10998,10902,10790,15360,11015,10918,10806,15360,10950,10854,10741,15360,10950,10846,10741,15360,10934,10838,10733,15360,10942,10846,10749,15360,10910,10822,10725,15360,10846,10758,10653,15360,10878,10790,10685,15360,10894,10798,10701,15360,10862,10774,10669,15360,10814,10725,10621,15360,10846,10758,10645,15360,10870,10774,10661,15360,10870,10774,10677,15360,10878,10790,10693,15360,10878,10782,10677,15360,10830,10741,10637,15360,10870,10782,10677,15360,10966,10870,10766,15360,11015,10918,10814,15360,10910,10814,10701,15360,10942,10846,10725,15360,10950,10846,10725,15360,10942,10838,10725,15360,10934,10830,10701,15360,10910,10798,10677,15360,10886,10782,10653,15360,10838,10733,10597,15360,10902,10806,10669,15360,10830,10733,10613,15360,10838,10741,10621,15360,10838,10741,10621,15360,10894,10798,10669,15360,10934,10830,10685,15360,10886,10790,10669,15360,10902,10806,10685,15360,10854,10749,10637,15360]);var ude={file:1,m:1,mm:.001,cm:.01,ft:.3048,in:.0254,pt:lTt()},cTt={file:"m",m:"m",mm:"mm",cm:"cm",ft:"ft",in:"in",pt:"pt"},hde=e=>2===e?"²":3===e?"³":"",Qx=(e,t=1)=>cTt[e]+hde(t),YYt=(e,t,i,r=1)=>(null==i&&(i=t),i===t?{value:e,unit:Qx(i)}:{value:e*Math.pow(ude[t]/ude[i],r),unit:Qx(i)+hde(r)}),YB=(e=>(e.Top="Top",e.Bottom="Bottom",e.Front="Front",e.Back="Back",e.Left="Left",e.Right="Right",e))(YB||{}),tA=class{static getCameraPositionByBboxAndView(e,t,i,r,n){let s=tA.getCameraDirectionByView(t);return this.getCameraPositionByBboxAndDirection(e,i,r,n,s)}static getCameraPositionByBboxAndDirection(e,t,i,r,n){if(e.isEmpty()||!r)return;let s=new A,a=new A,o=new A(0,1,0);e.getSize(a),e.getCenter(s);let l,h,u=(a.x+a.y+a.z)/3*1.5;if(!n||null!=n&&n.equals(new A))l=new A(s.x+u,s.y+u/1.5,s.z+u),h=l.clone().sub(s);else{let e=new A(u,u/1.5,u).length();h=new A(-n.x,-n.y,-n.z).normalize().multiplyScalar(e),l=h.clone().add(s)}u=h.length(),h=h.normalize();let c=new Be;c.lookAt(l,s,o);let p=new Be;p.makeTranslation(-l.x,-l.y,-l.z);let d=e.clone().applyMatrix4(p).applyMatrix4(c.invert()).applyMatrix4(r),f=Math.max(Math.abs(d.max.x),Math.abs(d.min.x)),m=Math.max(Math.abs(d.max.y),Math.abs(d.min.y));u*=1.1*Math.sqrt(Math.pow(f,2)+Math.pow(m,2)),l=h.multiplyScalar(u).add(s),i.set(s.x,s.y,s.z),t.set(l.x,l.y,l.z)}static getCameraDirectionByView(e){let t=new A(1,0,0);return"Top"===e?t.set(0,-1,0):"Bottom"===e?t.set(0,1,0):"Front"===e?t.set(0,0,-1):"Back"===e?t.set(0,0,1):"Left"===e?t.set(1,0,0):"Right"===e&&t.set(-1,0,0),t}static sleep(e){return ht(this,null,(function*(){let t;return new Promise((i=>{t=setTimeout((()=>{i("")}),e)})).then((()=>{clearTimeout(t)}))}))}static twinkle(e,t=500){return ht(this,null,(function*(){let i=tA.twinklingObjectIds;i[e.id]||(i[e.id]=!0,e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,delete i[e.id])}))}},xs=tA;xs.twinklingObjectIds={};var uTt=!1,Aa=class extends Ks{constructor(e){super(),this.DEFAULT_LINE_WIDTH=1,this.DEFAULT_STROKE_STYLE="#000000",this.DEFAULT_FILL_STYLE="#000000",this.lineWidth=this.DEFAULT_LINE_WIDTH,this.lineColor=this.DEFAULT_STROKE_STYLE,this.fillColor=this.DEFAULT_FILL_STYLE,this.x=0,this.y=0,this.points=[],this.userData={},this.width=0,this.height=0,this.tolerance=1,this.visible=!0,this.selected=!1,this.needsFrustumCulled=!0,this.editPointSize=3,this.editPointColor="#ffffff",this.matrix=new Be,this.id=e||_t.guid()}setTolerance(e){this.tolerance=e}render(e,t){this.ctx=e,this.draw(e,t),this.selected&&this.drawSelect(e,t),uTt&&(this.drawBounds(e,t),this.drawCenter(e,t))}getData(){return{id:this.id,points:this.points.map((e=>[e.x,e.y])),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.getClassType()}}setData(e){this.id=e.id,this.setLineWidth(e.lineWidth),this.setLineColor(e.lineColor),this.setFillColor(e.fillColor)}getVertexs(){return[new A(this.x,this.y,0),new A(this.x+this.width,this.y,0),new A(this.x+this.width,this.y+this.height,0),new A(this.x,this.y+this.height,0)]}setLineWidth(e){this.lineWidth=e||this.DEFAULT_LINE_WIDTH}setLineColor(e){this.lineColor=e||this.DEFAULT_STROKE_STYLE}setFillColor(e){this.fillColor=e||this.DEFAULT_FILL_STYLE}isSelected(){return this.selected}getCenter(){return this.getBounds().getCenter(new A)}transToScreenCoord(e,t){return this.ctx?Ci.worldPosition2ScreenPoint(e,t,this.ctx.canvas):new le}drawBounds(e,t){let{min:i,max:r}=this.getBounds(),n=[],s=(e,t,i)=>n.push(new A(e,t,i));s(r.x,r.y,r.z),s(i.x,r.y,r.z),s(i.x,i.y,r.z),s(r.x,i.y,r.z),s(r.x,r.y,i.z),s(i.x,r.y,i.z),s(i.x,i.y,i.z),s(r.x,i.y,i.z),s(i.x,r.y,r.z),s(i.x,i.y,r.z),s(r.x,r.y,r.z),s(r.x,i.y,r.z),s(r.x,r.y,i.z),s(r.x,i.y,i.z),s(i.x,r.y,i.z),s(i.x,i.y,i.z),s(i.x,r.y,r.z),s(i.x,r.y,i.z),s(r.x,r.y,r.z),s(r.x,r.y,i.z),s(i.x,i.y,r.z),s(i.x,i.y,i.z),s(r.x,i.y,r.z),s(r.x,i.y,i.z),e.save(),e.strokeStyle="yellow",e.beginPath(),n.forEach(((i,r)=>{let n=this.transToScreenCoord(i,t);r%2==0?e.moveTo(n.x,n.y):e.lineTo(n.x,n.y)})),e.closePath(),e.stroke(),e.restore()}drawCenter(e,t){let i=this.transToScreenCoord(this.getCenter(),t);e.save(),e.fillStyle="yellow",e.beginPath(),e.arc(i.x,i.y,5,0,2*Math.PI),e.closePath(),e.fill(),e.restore()}getBounds(){let e=this.getVertexs();return(new Dt).setFromPoints(e)}},Kg=(e=>(e.LayoutChanged="LayoutChanged",e.ModelLoaded="ModelLoaded",e.RenderAfter="RenderAfter",e.CameraChanged="CameraChanged",e))(Kg||{}),pde={},wr=class extends Ks{constructor(e){super(),this.drawableLists=[],this.frustum=new Xs,this.projScreenMatrix=new Be,this.viewer=e,this.init()}static _registerDrawableClass(e){pde[e.prototype.getClassType()]=e}static createDrawable(e){let t=pde[e.type];if(!t)throw new Error(`Invalid drawable type: ${t}`);let i=e.points.map((e=>new A(e[0],e[1],e[2]||0))),r=new t(e.id,i);return r.setData(e),r}get container(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}getPixelSize(e,t){if(!this.canvas)return 1;let{clientWidth:i,clientHeight:r}=this.canvas,n=0;if("OrthographicCamera"===t.type){let s=t;n=e*Math.max(s.right-s.left,s.top-s.bottom)/s.zoom/Math.max(i,r)}else if("PerspectiveCamera"===t.type){let i=t,s=this.viewer.cameraCfg,a=s&&_t.arrayToVector3(s.eye),o=s&&_t.arrayToVector3(s.look);n=2*e*(a.distanceTo(o)*Math.tan(i.fov/2*Math.PI/180))/r}return n}init(){this.initCanvas(),this.viewer.addEventListener("RenderAfter",(()=>{this.projScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),this.frustum.setFromProjectionMatrix(this.projScreenMatrix),this.render()}))}initCanvas(){let e=this.viewer.getViewConfig();if(wi.isBrowser&&!e.context2d){let e=this.canvas=document.createElement("canvas"),t=this.viewer.viewerContainer;t.appendChild(e),e.classList.add("overlay-renderer"),e.style.pointerEvents="none",e.style.position="absolute",e.style.left="0px",e.style.top="0px",e.style.userSelect="none",this.context=e.getContext("2d",{willReadFrequently:!0});let{clientWidth:i,clientHeight:r}=t;this.setSize(i,r)}else e.context2d&&(this.context=e.context2d,this.canvas=wi.creatReactNativeCanvas(this.context),this.context.canvas||(this.context.canvas=this.canvas))}toHighDpr(e,t,i){let r=Math.max(window.devicePixelRatio||1,1),n=this.canvas;return n.width=t*r,n.height=i*r,e.scale(r,r),n.style.width=`${t}px`,n.style.height=`${i}px`,e}clearCanvas(){var e,t,i;null==(i=this.context)||i.clearRect(0,0,null==(e=this.canvas)?void 0:e.width,null==(t=this.canvas)?void 0:t.height)}addDrawableList(e){this.drawableLists.push(e)}render(){if(!this.canvas||!this.context)return;this.clearCanvas();let e=this.getSortedDrawables(),t=new Wi;for(let i=0;i{e.push(...Array.from(t.getDrawables().values()))})),e.sort(((e,t)=>t.getCenter().distanceTo(this.camera.position)-e.getCenter().distanceTo(this.camera.position))),e}getDrawablesByPosition(e,t){let i=this.getSortedDrawables().reverse(),r=[];for(let n=0;ne.clear())),this.drawableLists=[],this.canvas&&(null==(e=this.viewer.viewerContainer)||e.removeChild(this.canvas),this.canvas=void 0)}},Xu=class{constructor(e){this.drawableMap=new Map,this.category=e}addDrawable(e){this.drawableMap.set(e.id,e)}updateDrawable(e,t){e.setData(t)}removeDrawable(e){this.drawableMap.delete(e.id)}getDrawableById(e){return this.drawableMap.get(e)}clear(){this.drawableMap.clear()}getDrawables(){return this.drawableMap}getDrawableDatas(){return Array.from(this.drawableMap).map((([e,t])=>t.getData()))}setDrawableDatas(e){for(let t=0;t{let r=this.transToScreenCoord(i,t);e.moveTo(r.x,r.y),e.arc(r.x,r.y,this.editPointSize,0,2*Math.PI)})),e.closePath(),e.fill(),e.restore()}setEditPointSize(e){this.editPointSize=e}setEditPointColor(e){this.editPointColor=e}getCenter(){return this.getBounds().getCenter(new A)}isPointInPath(e){let t=this.getVertexs().map((e=>new le(e.x,e.y)));return kt.isPointInPolygon(new le(e.x,e.y),t,!0)}setData(e){super.setData(e),this.update(e.points.map((e=>new A(e[0],e[1],0))))}translate(e,t){let i=new A(e,t,0);return this.points.forEach((e=>e.add(i))),this.update(this.points),this}rotate(){return this}scale(){return this}},Yo=(e=>(e.Arrow="ArrowMarkup",e.Circle="CircleMarkup",e.CloudLine="CloudLineMarkup",e.CloudLineRectangle="CloudRectMarkup",e.Dot="DotMarkup",e.Ellipse="EllipseMarkup",e.PolyLine="PolylineMarkup",e.Rectangle="RectMarkup",e.Text="TextMarkup",e.X="XMarkup",e))(Yo||{}),XB=class extends Wn{constructor(e,t){super(e),this.type="ArrowMarkup",this.update(t)}draw(e,t){let i=this.points.map((e=>this.transToScreenCoord(e,t)));this.drawArrowLine(e,i),this.drawArrowHead(e,i[0],i[1],this.lineWidth+10,this.lineWidth+20)}drawArrowLine(e,t){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor;let[i,r]=t,n=(new le).subVectors(r,i).normalize();e.beginPath(),e.moveTo(i.x,i.y);let s=r.clone().sub(n.multiplyScalar(this.lineWidth+5));e.lineTo(s.x,s.y),e.closePath(),e.stroke(),e.restore()}drawArrowHead(e,t,i,r,n){let s=180*Math.atan2(t.y-i.y,t.x-i.x)/Math.PI,a=(s+r)*Math.PI/180,o=(s-r)*Math.PI/180,l=n*Math.cos(a),h=n*Math.sin(a),u=n*Math.cos(o),c=n*Math.sin(o),p=new le(i.x+l,i.y+h),d=new le(i.x+u,i.y+c);e.save(),e.fillStyle=this.lineColor,e.beginPath(),e.moveTo(i.x,i.y),e.lineTo(p.x,p.y),e.lineTo(d.x,d.y),e.closePath(),e.fill(),e.restore()}getVertexs(){return this.points}update(e){let[t,i]=e;return this.points=e,this.x=Math.min(t.x,i.x),this.y=Math.min(t.y,i.y),this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this}isPointInPath(e){return kt.isPointOnLineSegments(e,this.points,this.tolerance)}getClassType(){return"ArrowMarkup"}};wr._registerDrawableClass(XB);var $B=class extends Wn{constructor(e,t){super(e),this.radius=1,this.type="CircleMarkup",this.update(t)}draw(e,t){let[i,r]=this.points.map((e=>this.transToScreenCoord(e,t)));this.radius=(new le).subVectors(r,i).length(),e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor,e.beginPath(),e.arc(i.x,i.y,this.radius,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}update(e){let[t,i]=e,r=(new A).subVectors(i,t).length();return this.width=2*r,this.height=2*r,this.x=t.x-this.width/2,this.y=t.y-this.height/2,this.points=e,this}isPointInPath(e){let[t,i]=this.points,r=(new A).subVectors(t,i).length();return Math.abs(e.distanceTo(t)-r)<=2*this.tolerance}getClassType(){return"CircleMarkup"}};wr._registerDrawableClass($B);var hTt=new Dt,kp=class extends Wn{constructor(e,t){super(e),this.type="CloudLineMarkup",this.update(t)}draw(e,t){let i=this.points,r=[];e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor,e.beginPath();for(let n=0;nthis.transToScreenCoord(e,t))),n=(new le).lerpVectors(i,r,.5);this.radiusX=Math.abs(r.x-i.x)/2,this.radiusY=Math.abs(r.y-i.y)/2,e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor,e.beginPath(),e.ellipse(n.x,n.y,this.radiusX,this.radiusY,0,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}update(e){let[t,i]=e;return this.x=Math.min(t.x,i.x),this.y=Math.min(t.y,i.y),this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this.points=e,this}isPointInPath(e){let[t,i]=this.points,r=(new A).lerpVectors(t,i,.5),n=Math.abs(i.x-t.x)/2,s=Math.abs(i.y-t.y)/2,a=Math.pow(e.x-r.x,2)/(n*n),o=Math.pow(e.y-r.y,2)/(s*s);return Math.abs(a+o-1)<=.1}getClassType(){return"EllipseMarkup"}};wr._registerDrawableClass(JB);var QB=class extends Wn{constructor(e,t){super(e),this.type="PolylineMarkup",this.update(t)}draw(e,t){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor;let i=this.points;e.beginPath(),i.forEach(((i,r)=>{let n=this.transToScreenCoord(i,t);0===r?e.moveTo(n.x,n.y):e.lineTo(n.x,n.y)})),e.stroke(),e.restore()}isPointInPath(e){let t=this.points,i=[];for(let e=0;e{let n=this.transToScreenCoord(i,t);0===r?e.moveTo(n.x,n.y):e.lineTo(n.x,n.y)})),e.closePath(),e.stroke(),e.restore()}update(e){let[t,i]=e;return this.x=Math.min(t.x,i.x),this.y=Math.min(t.y,i.y),this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this.points=e,this}isPointInPath(e){let t=this.getVertexs(),i=[];for(let e=0;ethis.textWidth&&(this.textWidth=s),r.push({lineWidth:s,lineText:n})}return this.textRow!==r.length&&(this.y-=(r.length-1)*this.fontSize),r.reverse()}setFontSize(e){this.fontSize=e}update(e){let t=e[0];return this.x=t.x,this.y=t.y,this.points=[t],this.textRow=1,this}setData(e){super.setData(e),this.text=e.text,this.setFontSize(e.fontSize)}updateText(e){this.text=e}getData(){return{id:this.id,points:this.points.map((e=>[e.x,e.y])),text:this.text,lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,type:this.getClassType()}}getClassType(){return"TextMarkup"}};wr._registerDrawableClass(tk);var rk=class extends Wn{constructor(e,t){super(e),this.type="XMarkup",this.update(t)}draw(e,t){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.beginPath();let[i,r,n,s]=this.getVertexs().map((e=>this.transToScreenCoord(e,t)));e.moveTo(i.x,i.y),e.lineTo(n.x,n.y),e.moveTo(r.x,r.y),e.lineTo(s.x,s.y),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let[t,i,r,n]=this.getVertexs();return kt.isPointOnLineSegments(e,[t,r,i,n],.1)}update(e){let[t,i]=e;return this.points=e,this.x=Math.min(t.x,i.x),this.y=Math.min(t.y,i.y),this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this}getClassType(){return"XMarkup"}};wr._registerDrawableClass(rk);var rA=class{constructor(e,t){this.flyDuration=500,this.autoRotateRemainingTime=0,this.automaticallyAdjustCameraPosition=!0,this.rotateIntervalStartTime=0,this.camera=e,this.controls=t}flyTo(e,t,i){let r=this.camera,n=this.controls;if(!r||!n)return;if(e.equals(t))return void console.error("[BimViewer] camera position and lookAt cannot be the same!");if(isNaN(e.x)||isNaN(e.y)||isNaN(e.z)||isNaN(t.x)||isNaN(t.y)||isNaN(t.z))return void console.error("[BimViewer] invalid position or lookAt!");if(this.automaticallyAdjustCameraPosition){let i=e.distanceTo(t);ir.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*r.far),console.warn("[BimViewer] camera could be too far to see the object!"))}let s=r.position.clone(),a=n.target.clone(),o=this.flyDuration,l=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let h=Date.now()-l;h>o&&(h=o);let u=(e,t,i)=>{let r=e.x+(t.x-e.x)*i,n=e.y+(t.y-e.y)*i,s=e.z+(t.z-e.z)*i;return new A(r,n,s)};((e,t)=>{r.lookAt(t),r.position.set(e.x,e.y,e.z),n.target.set(t.x,t.y,t.z),n.update()})(u(s,e,h/o),u(a,t,h/o)),h>=o&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0,i&&i())}),10)}lookTo(e){let t=this.camera,i=this.controls;if(!t||!i)return;let r=t.position,n=i.target.distanceTo(r),s=e.normalize().multiplyScalar(n),a=new A(r.x+s.x,r.y+s.y,r.z+s.z);this.flyTo(r,a)}startAutoRotate(){let e=this.camera,t=this.controls;if(!e||!t)return;t.autoRotate=!0;let i=new A;e.getWorldPosition(i);let r=t.target;if(r.y===i.y)return;let n=(r.y-i.y)/50;for(let e=0;e<50;++e)setTimeout((()=>{let e=t.target.y-n;t.target.setY(e),t.update()}),30*e)}delayAutoRotate(){this.autoRotateRemainingTime=5e3,this.controls&&(this.controls.autoRotate=!1)}startToRotate(e){let t=Date.now()-this.rotateIntervalStartTime;this.rotateIntervalStartTime=Date.now(),!(this.rotateInterval&&t<100)&&(this.rotateInterval&&clearInterval(this.rotateInterval),this.rotateInterval=setInterval((()=>{if(Date.now()-this.rotateIntervalStartTime>=100)return clearInterval(this.rotateInterval),void(this.rotateInterval=void 0);"ArrowLeft"===e.code||"ArrowRight"===e.code?this.rotateLeftOrRight(.3,"ArrowLeft"===e.code):("ArrowUp"===e.code||"ArrowDown"===e.code)&&this.rotateUpOrDown(.3,"ArrowUp"===e.code)}),1))}rotateLeftOrRight(e,t=!0){let i=this.controls;if(!this.camera||!i)return;let r=this.camera.position,n=i.target,s=n.clone(),a=Math.PI*e/180;t&&(a=-a),s.x=(n.x-r.x)*Math.cos(a)-(n.z-r.z)*Math.sin(a)+r.x,s.z=(n.z-r.z)*Math.cos(a)+(n.x-r.x)*Math.sin(a)+r.z,this.camera.lookAt(s),i.target=s,i.update()}rotateUpOrDown(e,t=!0){let i=this.controls;if(!this.camera||!i)return;let r=this.camera.position,n=i.target,s=n.clone(),a=Math.PI*e/180,o=new A(n.x-r.x,n.y-r.y,n.z-r.z).length(),l=n.y-r.y;t||(a=-a);let h=Math.asin(l/o)+a;if(h<-Math.PI/2||h>Math.PI/2)return;let u=Math.sin(h)*o;s.y=n.y+(u-l),i.target=s,i.update()}},iA=class{constructor(e){this.object=e}instantiate(){let e=Date.now();this.instantiateInner(this.object),console.log(`[Inst] instantiate() costed ${(Date.now()-e)/1e3}s`)}instantiateInner(e){if(!e.children||0===e.children.length)return;let t=e.children.length,i={},r=[];for(let n=0;n0||!t.geometry)continue;let s=!1,a=Object.values(i);for(let o=a.length-1;o>=0;--o){let l=a[o].indexes[0],h=e.children[l];if(this.geometryEquals(t.geometry,h.geometry)&&Cs.materialsEquals(t.material,h.material)){i[l]||(i[l]={indexes:[l]},this.removeFromArray(r,l)),i[l].indexes.push(n),s=!0;break}}for(let a=r.length-1;!s&&a>=0;--a){let o=r[a],l=e.children[o];if(this.geometryEquals(t.geometry,l.geometry)&&Cs.materialsEquals(t.material,l.material)){i[o]||(i[o]={indexes:[o]},this.removeFromArray(r,o)),i[o].indexes.push(n),s=!0;break}}s||r.push(n)}if(Object.keys(i).length<=0)return;let n=[],s=[];Object.values(i).forEach((t=>{let i=t.indexes;s.push(...i);let r=e.children[i[0]],a=r.material;if(a instanceof zr)a=a.clone();else if(Array.isArray(a)){let e=[];a.forEach((t=>e.push(t.clone()))),a=e}let o=new rn(r.geometry,a,i.length);o.name=`[Instanced] ${r.name}`;for(let t=0;tt-e)),s.forEach((t=>e.remove(e.children[t]))),n.forEach((t=>{t.parent=e,e.children.push(t)})),e.updateMatrix(),console.log(`[Inst] ${s.length}(out of ${t}) objects instanced to ${n.length} InstancedMesh`)}removeFromArray(e,t){for(let i=e.length-1;i>=0;--i)if(e[i]===t)return void e.splice(i,1)}geometryEquals(e,t){return kt.geometryEquals(e,t)}},dT=class{constructor(){this.TIMEOUT="timeout",this.INTERVAL="interval",this.timeoutMap={},this.intervalMap={}}run(e=this.INTERVAL,t,i=16.7){let r=Date.now,n=r(),s=n,a=Symbol(""),o=()=>{this.setIdMap(a,e,o),s=r(),s-n>=i&&(e===this.intervalMap&&(n=r(),s=n),t(),e===this.TIMEOUT&&this.clearTimeout(a))};return this.setIdMap(a,e,o),a}setIdMap(e,t,i){let r=requestAnimationFrame(i);t===this.INTERVAL?this.intervalMap[e]=r:t===this.TIMEOUT&&(this.timeoutMap[e]=r)}setTimeout(e,t){return this.run(this.TIMEOUT,e,t)}clearTimeout(e){cancelAnimationFrame(this.timeoutMap[e])}setInterval(e,t){return this.run(this.INTERVAL,e,t)}clearInterval(e){cancelAnimationFrame(this.intervalMap[e])}},sk=kn(dde(),1),Af=class{constructor(e,t){this.endian=t&&"big"===t?"big":"little",this.position=0,this.data=new DataView(e)}readAsciiString(e){if(this.data.byteLength256||24!==e.colormap_size||1!==e.colormap_type)&&console.error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case r:case n:case a:case o:e.colormap_type&&console.error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case t:console.error("THREE.TGALoader: No data.");default:console.error('THREE.TGALoader: Invalid type "%s".',e.image_type)}(e.width<=0||e.height<=0)&&console.error("THREE.TGALoader: Invalid image size."),8!==e.pixel_size&&16!==e.pixel_size&&24!==e.pixel_size&&32!==e.pixel_size&&console.error('THREE.TGALoader: Invalid pixel size "%s".',e.pixel_size)})(g),g.id_length+f>e.length&&console.error("THREE.TGALoader: No data."),f+=g.id_length;let y=!1,v=!1,T=!1;switch(g.image_type){case s:y=!0,v=!0;break;case i:v=!0;break;case a:y=!0;break;case r:break;case o:y=!0,T=!0;break;case n:T=!0}let x=new Uint8Array(g.width*g.height*4),b=function(e,t,i,r,n){let s,a,o=i.pixel_size>>3,l=i.width*i.height*o;if(t&&(a=n.subarray(r,r+=i.colormap_length*(i.colormap_size>>3))),e){s=new Uint8Array(l);let e,t,i,a=0,h=new Uint8Array(o);for(;a>h){default:case p:s=0,o=1,m=t,a=0,f=1,y=i;break;case u:s=0,o=1,m=t,a=i-1,f=-1,y=-1;break;case d:s=t-1,o=-1,m=-1,a=0,f=1,y=i;break;case c:s=t-1,o=-1,m=-1,a=i-1,f=-1,y=-1}if(T)switch(g.pixel_size){case 8:!function(e,t,i,r,n,s,a,o){let l,h,u,c=0,p=g.width;for(u=t;u!==r;u+=i)for(h=n;h!==a;h+=s,c++)l=o[c],e[4*(h+p*u)+0]=l,e[4*(h+p*u)+1]=l,e[4*(h+p*u)+2]=l,e[4*(h+p*u)+3]=255}(e,a,f,y,s,o,m,r);break;case 16:!function(e,t,i,r,n,s,a,o){let l,h,u=0,c=g.width;for(h=t;h!==r;h+=i)for(l=n;l!==a;l+=s,u+=2)e[4*(l+c*h)+0]=o[u+0],e[4*(l+c*h)+1]=o[u+0],e[4*(l+c*h)+2]=o[u+0],e[4*(l+c*h)+3]=o[u+1]}(e,a,f,y,s,o,m,r);break;default:console.error("THREE.TGALoader: Format not supported.")}else switch(g.pixel_size){case 8:!function(e,t,i,r,n,s,a,o,l){let h,u,c,p=l,d=0,f=g.width;for(c=t;c!==r;c+=i)for(u=n;u!==a;u+=s,d++)h=o[d],e[4*(u+f*c)+3]=255,e[4*(u+f*c)+2]=p[3*h+0],e[4*(u+f*c)+1]=p[3*h+1],e[4*(u+f*c)+0]=p[3*h+2]}(e,a,f,y,s,o,m,r,n);break;case 16:!function(e,t,i,r,n,s,a,o){let l,h,u,c=0,p=g.width;for(u=t;u!==r;u+=i)for(h=n;h!==a;h+=s,c+=2)l=o[c+0]+(o[c+1]<<8),e[4*(h+p*u)+0]=(31744&l)>>7,e[4*(h+p*u)+1]=(992&l)>>2,e[4*(h+p*u)+2]=(31&l)<<3,e[4*(h+p*u)+3]=32768&l?0:255}(e,a,f,y,s,o,m,r);break;case 24:!function(e,t,i,r,n,s,a,o){let l,h,u=0,c=g.width;for(h=t;h!==r;h+=i)for(l=n;l!==a;l+=s,u+=3)e[4*(l+c*h)+3]=255,e[4*(l+c*h)+2]=o[u+0],e[4*(l+c*h)+1]=o[u+1],e[4*(l+c*h)+0]=o[u+2]}(e,a,f,y,s,o,m,r);break;case 32:!function(e,t,i,r,n,s,a,o){let l,h,u=0,c=g.width;for(h=t;h!==r;h+=i)for(l=n;l!==a;l+=s,u+=4)e[4*(l+c*h)+2]=o[u+0],e[4*(l+c*h)+1]=o[u+1],e[4*(l+c*h)+0]=o[u+2],e[4*(l+c*h)+3]=o[u+3]}(e,a,f,y,s,o,m,r);break;default:console.error("THREE.TGALoader: Format not supported.")}}(x,g.width,g.height,b.pixel_data,b.palettes),{data:x,width:g.width,height:g.height,flipY:!0,generateMipmaps:!0,minFilter:Ra}}},nA=class extends ci{constructor(e){super(e)}load(e,t,i,r){let n=this,s=""===n.path?Bs.extractUrlBase(e):n.path,a=new ui(n.manager);a.setPath(n.path),a.setRequestHeader(n.requestHeader),a.setWithCredentials(n.withCredentials),a.load(e,(function(i){try{t(n.parse(i,s))}catch(t){r?r(t):console.error(t),n.manager.itemError(e)}}),i,r)}parse(e,t){function i(e,t){let i=[],r=e.childNodes;for(let e=0,n=r.length;e0&&t.push(new no(r+".position",n,s)),a.length>0&&t.push(new Da(r+".quaternion",n,a)),o.length>0&&t.push(new no(r+".scale",n,o)),t}function _(e,t,i){let r,n,s,a=!0;for(n=0,s=e.length;n=0;){let r=e[t];if(null!==r.value[i])return r;t--}return null}function w(e,t,i){for(;t>>0));t="tga"===(i=i.toLowerCase(),i)?$e:Ke;return t}(n);if(void 0!==i){let r=i.load(n),s=e.extra;if(void 0!==s&&void 0!==s.technique&&!1===o(s.technique)){let e=s.technique;r.wrapS=e.wrapU?vn:gn,r.wrapT=e.wrapV?vn:gn,r.offset.set(e.offsetU||0,e.offsetV||0),r.repeat.set(e.repeatU||1,e.repeatV||1)}else r.wrapS=vn,r.wrapT=vn;return null!==t&&(r.encoding=t),r}return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",n),null}return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",e.id),null}t.name=e.name||"";let s=r.parameters;for(let e in s){let i=s[e];switch(e){case"diffuse":i.color&&t.color.fromArray(i.color),i.texture&&(t.map=n(i.texture,gr));break;case"specular":i.color&&t.specular&&t.specular.fromArray(i.color),i.texture&&(t.specularMap=n(i.texture));break;case"bump":i.texture&&(t.normalMap=n(i.texture));break;case"ambient":i.texture&&(t.lightMap=n(i.texture,gr));break;case"shininess":i.float&&t.shininess&&(t.shininess=i.float);break;case"emission":i.color&&t.emissive&&t.emissive.fromArray(i.color),i.texture&&(t.emissiveMap=n(i.texture,gr))}}t.color.convertSRGBToLinear(),t.specular&&t.specular.convertSRGBToLinear(),t.emissive&&t.emissive.convertSRGBToLinear();let a=s.transparent,l=s.transparency;if(void 0===l&&a&&(l={float:1}),void 0===a&&l&&(a={opaque:"A_ONE",data:{color:[1,1,1,1]}}),a&&l)if(a.data.texture)t.transparent=!0;else{let e=a.data.color;switch(a.opaque){case"A_ONE":t.opacity=e[3]*l.float;break;case"RGB_ZERO":t.opacity=1-e[0]*l.float;break;case"A_ZERO":t.opacity=1-e[3]*l.float;break;case"RGB_ONE":t.opacity=e[0]*l.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',a.opaque)}t.opacity<1&&(t.transparent=!0)}if(void 0!==r.extra&&void 0!==r.extra.technique){let e=r.extra.technique;for(let i in e){let r=e[i];switch(i){case"double_sided":t.side=1===r?gi:tn;break;case"bump":t.normalMap=n(r.texture),t.normalScale=new le(1,1)}}}return t}function J(e){return p(nt.materials[e],K)}function $(e){for(let t=0;t0?i+o:i;t.inputs[l]={id:e,offset:n},t.stride=Math.max(t.stride,n+1),"TEXCOORD"===i&&(t.hasUV=!0);break;case"vcount":t.vcount=s(r.textContent);break;case"p":t.p=s(r.textContent)}}return t}function ce(e){let t=0;for(let i=0,r=e.length;i0&&t0&&d.setAttribute("position",new dt(n.array,n.stride)),s.array.length>0&&d.setAttribute("normal",new dt(s.array,s.stride)),l.array.length>0&&d.setAttribute("color",new dt(l.array,l.stride)),a.array.length>0&&d.setAttribute("uv",new dt(a.array,a.stride)),o.array.length>0&&d.setAttribute("uv2",new dt(o.array,o.stride)),h.length>0&&d.setAttribute("skinIndex",new dt(h,u)),c.length>0&&d.setAttribute("skinWeight",new dt(c,p)),r.data=d,r.type=e[0].type,r.materialKeys=f,r}function fe(e,t,i,r,n=!1){let s=e.p,a=e.stride,o=e.vcount;function l(e){let t=s[e+i]*u,a=t+u;for(;t4)for(let t=1,r=i-2;t<=r;t++){let i=e+a*t,r=e+a*(t+1);l(e+0*a),l(i),l(r)}e+=a*i}}else for(let e=0,t=s.length;e=t.limits.max&&(t.static=!0),t.middlePosition=(t.limits.min+t.limits.max)/2,t}function xe(e){let t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",attachments:[],transforms:[]};for(let i=0;ir.limits.max||t{this.decodeDracoFile(e,t).catch(r)}),i,r)}decodeDracoFile(e,t,i,r){let n={attributeIDs:i||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!i};return this.decodeGeometry(e,n).then(t)}decodeGeometry(e,t){let i=JSON.stringify(t);if(ak.has(e)){let t=ak.get(e);if(t.key===i)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let r,n=this.workerNextTaskID++,s=e.byteLength,a=this._getWorker(n,s).then((i=>(r=i,new Promise(((i,s)=>{r._callbacks[n]={resolve:i,reject:s},r.postMessage({type:"decode",id:n,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return a.catch((()=>!0)).then((()=>{r&&n&&this._releaseTask(r,n)})),ak.set(e,{key:i,promise:a}),a}_createGeometry(e){let t=new lt;e.index&&t.setIndex(new Wt(e.index.array,1));for(let i=0;i{i.load(e,t,void 0,r)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{let i=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let r=pTt.toString(),n=["/* draco decoder */",i,"","/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([n]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));let i=this.workerPool[this.workerPool.length-1];return i._taskCosts[e]=t,i._taskLoad+=t,i}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e{let t=e.draco,a=new t.Decoder,o=new t.DecoderBuffer;o.Init(new Int8Array(r),r.byteLength);try{let e=function(e,t,r,n){let s,a,o=n.attributeIDs,l=n.attributeTypes,h=t.GetEncodedGeometryType(r);if(h===e.TRIANGULAR_MESH)s=new e.Mesh,a=t.DecodeBufferToMesh(r,s);else{if(h!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");s=new e.PointCloud,a=t.DecodeBufferToPointCloud(r,s)}if(!a.ok()||0===s.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+a.error_msg());let u={index:null,attributes:[]};for(let r in o){let a,h,c=self[l[r]];if(n.useUniqueIDs)h=o[r],a=t.GetAttributeByUniqueId(s,h);else{if(h=t.GetAttributeId(s,e[o[r]]),-1===h)continue;a=t.GetAttribute(s,h)}u.attributes.push(i(e,t,s,r,c,a))}return h===e.TRIANGULAR_MESH&&(u.index=function(e,t,i){let r=3*i.num_faces(),n=4*r,s=e._malloc(n);t.GetTrianglesUInt32Array(i,n,s);let a=new Uint32Array(e.HEAPF32.buffer,s,r).slice();return e._free(s),{array:a,itemSize:1}}(e,t,s)),e.destroy(s),u}(t,a,o,s),r=e.attributes.map((e=>e.array.buffer));e.index&&r.push(e.index.array.buffer),self.postMessage({type:"decode",id:n.id,geometry:e},r)}catch(e){console.error(e),self.postMessage({type:"error",id:n.id,error:e.message})}finally{t.destroy(o),t.destroy(a)}}))}}}var fde=function(e){return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))},dTt=function(e){return new Worker(e)};try{URL.revokeObjectURL(fde(""))}catch(e){fde=function(e){return"data:application/javascript;charset=UTF-8,"+encodeURI(e)},dTt=function(e){return new Worker(e,{type:"module"})}}var Hl=Uint8Array,Of=Uint16Array,ck=Uint32Array,mde=new Hl([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),gde=new Hl([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),fTt=new Hl([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vde=function(e,t){for(var i=new Of(31),r=0;r<31;++r)i[r]=t+=1<>>1|(21845&ki)<<1))>>>2|(13107&Gp)<<2))>>>4|(3855&Gp)<<4,uk[ki]=((65280&Gp)>>>8|(255&Gp)<<8)>>>1;var Gp,tI=function(e,t,i){for(var r=e.length,n=0,s=new Of(t);n>>l]=h}else for(a=new Of(r),n=0;n>>15-e[n]);return a},rI=new Hl(288);for(ki=0;ki<144;++ki)rI[ki]=8;for(ki=144;ki<256;++ki)rI[ki]=9;for(ki=256;ki<280;++ki)rI[ki]=7;for(ki=280;ki<288;++ki)rI[ki]=8;var ki,bde=new Hl(32);for(ki=0;ki<32;++ki)bde[ki]=5;var vTt=tI(rI,9,1),yTt=tI(bde,5,1),ok=function(e){for(var t=e[0],i=1;it&&(t=e[i]);return t},Lc=function(e,t,i){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&i},lk=function(e,t){var i=t/8|0;return(e[i]|e[i+1]<<8|e[i+2]<<16)>>(7&t)},TTt=function(e){return(e/8|0)+(7&e&&1)},ETt=function(e,t,i){(null==t||t<0)&&(t=0),(null==i||i>e.length)&&(i=e.length);var r=new(e instanceof Of?Of:e instanceof ck?ck:Hl)(i-t);return r.set(e.subarray(t,i)),r},bTt=function(e,t,i){var r=e.length;if(!r||i&&!i.l&&r<5)return t||new Hl(0);var n=!t||i,s=!i||i.i;i||(i={}),t||(t=new Hl(3*r));var a=function(e){var i=t.length;if(e>i){var r=new Hl(Math.max(2*i,e));r.set(t),t=r}},o=i.f||0,l=i.p||0,h=i.b||0,u=i.l,c=i.d,p=i.m,d=i.n,f=8*r;do{if(!u){i.f=o=Lc(e,l,1);var m=Lc(e,l+1,3);if(l+=3,!m){var g=e[(M=TTt(l)+4)-4]|e[M-3]<<8,y=M+g;if(y>r){if(s)throw"unexpected EOF";break}n&&a(h+g),t.set(e.subarray(M,y),h),i.b=h+=g,i.p=l=8*y;continue}if(1==m)u=vTt,c=yTt,p=9,d=5;else{if(2!=m)throw"invalid block type";var v=Lc(e,l,31)+257,T=Lc(e,l+10,15)+4,x=v+Lc(e,l+5,31)+1;l+=14;for(var b=new Hl(x),_=new Hl(19),E=0;E>>4)<16)b[E++]=M;else{var D=0,O=0;for(16==M?(O=3+Lc(e,l,3),l+=2,D=b[E-1]):17==M?(O=3+Lc(e,l,7),l+=3):18==M&&(O=11+Lc(e,l,127),l+=7);O--;)b[E++]=D}}var R=b.subarray(0,v),C=b.subarray(v);p=ok(R),d=ok(C),u=tI(R,p,1),c=tI(C,d,1)}if(l>f){if(s)throw"unexpected EOF";break}}n&&a(h+131072);for(var N=(1<>>4;if((l+=15&D)>f){if(s)throw"unexpected EOF";break}if(!D)throw"invalid length/literal";if(F<256)t[h++]=F;else{if(256==F){L=l,u=null;break}var U=F-254;if(F>264){var k=mde[E=F-257];U=Lc(e,l,(1<>>4;if(!B)throw"invalid distance";l+=15&B;C=gTt[H];if(H>3){k=gde[H];C+=lk(e,l)&(1<f){if(s)throw"unexpected EOF";break}n&&a(h+131072);for(var G=h+U;h>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function xde(e,t){return bTt((ITt(e),e.subarray(2,-4)),t)}var _Tt="undefined"!=typeof TextDecoder&&new TextDecoder,STt=0;try{_Tt.decode(xTt,{stream:!0}),STt=1}catch(e){}function Ide(e,t,i){let r=i.length-e-1;if(t>=i[r])return r-1;if(t<=i[e])return e;let n=e,s=r,a=Math.floor((n+s)/2);for(;t=i[a+1];)t=s&&(l[n][0]=l[t][0]/o[u+1][h],r=l[n][0]*o[h][u]);let c=e-1<=u?s-1:i-e;for(let e=h>=-1?1:-h;e<=c;++e)l[n][e]=(l[t][e]-l[t][e-1])/o[u+1][h+e],r+=l[n][e]*o[h+e][u];e<=u&&(l[n][s]=-l[t][s-1]/o[u+1][e],r+=l[n][s]*o[e][u]),a[s][e]=r;let p=t;t=n,n=p}}let u=i;for(let e=1;e<=r;++e){for(let t=0;t<=i;++t)a[e][t]*=u;u*=i-e}return a}function DTt(e,t,i,r,n){let s=n0,s="string"==typeof n.Content&&""!==n.Content;if(e||s){let e=this.parseImage(i[r]);t[n.RelativeFilename||n.Filename]=e}}}}for(let i in e){let r=e[i];void 0!==t[r]?e[i]=t[r]:e[i]=e[i].split("\\").pop()}return e}parseImage(e){let t,i=e.Content,r=e.RelativeFilename||e.Filename,n=r.slice(r.lastIndexOf(".")+1).toLowerCase();switch(n){case"bmp":t="image/bmp";break;case"jpg":case"jpeg":t="image/jpeg";break;case"png":t="image/png";break;case"tif":t="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",r),t="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+n+'" is not supported.')}if("string"==typeof i)return"data:"+t+";base64,"+i;{let e=new Uint8Array(i);return window.URL.createObjectURL(new Blob([e],{type:t}))}}parseTextures(e){let t=new Map;if("Texture"in hi.Objects){let i=hi.Objects.Texture;for(let r in i){let n=this.parseTexture(i[r],e);t.set(parseInt(r),n)}}return t}parseTexture(e,t){let i=this.loadTexture(e,t);i.ID=e.id,i.name=e.attrName;let r=e.WrapModeU,n=e.WrapModeV,s=void 0!==r?r.value:0,a=void 0!==n?n.value:0;if(i.wrapS=0===s?vn:gn,i.wrapT=0===a?vn:gn,"Scaling"in e){let t=e.Scaling.value;i.repeat.x=t[0],i.repeat.y=t[1]}if("Translation"in e){let t=e.Translation.value;i.offset.x=t[0],i.offset.y=t[1]}return i}loadTexture(e,t){let i,r=this.textureLoader.path,n=is.get(e.id).children;void 0!==n&&n.length>0&&void 0!==t[n[0].ID]&&(i=t[n[0].ID],(0===i.indexOf("blob:")||0===i.indexOf("data:"))&&this.textureLoader.setPath(void 0));let s,a=e.FileName.slice(-3).toLowerCase();if("tga"===a){let t=this.manager.getHandler(".tga");null===t?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),s=new Bi):(t.setPath(this.textureLoader.path),s=t.load(i))}else"psd"===a?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),s=new Bi):s=this.textureLoader.load(i);return this.textureLoader.setPath(r),s}parseMaterials(e){let t=new Map;if("Material"in hi.Objects){let i=hi.Objects.Material;for(let r in i){let n=this.parseMaterial(i[r],e);null!==n&&t.set(parseInt(r),n)}}return t}parseMaterial(e,t){let i=e.id,r=e.attrName,n=e.ShadingModel;if("object"==typeof n&&(n=n.value),!is.has(i))return null;let s,a=this.parseParameters(e,t,i);switch(n.toLowerCase()){case"phong":s=new Es;break;case"lambert":s=new io;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',n),s=new Es}return s.setValues(a),s.name=r,s}parseParameters(e,t,i){let r={};e.BumpFactor&&(r.bumpScale=e.BumpFactor.value),e.Diffuse?r.color=(new je).fromArray(e.Diffuse.value):e.DiffuseColor&&("Color"===e.DiffuseColor.type||"ColorRGB"===e.DiffuseColor.type)&&(r.color=(new je).fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(r.displacementScale=e.DisplacementFactor.value),e.Emissive?r.emissive=(new je).fromArray(e.Emissive.value):e.EmissiveColor&&("Color"===e.EmissiveColor.type||"ColorRGB"===e.EmissiveColor.type)&&(r.emissive=(new je).fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(r.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(r.opacity=parseFloat(e.Opacity.value)),r.opacity<1&&(r.transparent=!0),e.ReflectionFactor&&(r.reflectivity=e.ReflectionFactor.value),e.Shininess&&(r.shininess=e.Shininess.value),e.Specular?r.specular=(new je).fromArray(e.Specular.value):e.SpecularColor&&"Color"===e.SpecularColor.type&&(r.specular=(new je).fromArray(e.SpecularColor.value));let n=this;return is.get(i).children.forEach((function(e){let i=e.relationship;switch(i){case"Bump":r.bumpMap=n.getTexture(t,e.ID);break;case"Maya|TEX_ao_map":r.aoMap=n.getTexture(t,e.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":r.map=n.getTexture(t,e.ID),void 0!==r.map&&(r.map.encoding=gr);break;case"DisplacementColor":r.displacementMap=n.getTexture(t,e.ID);break;case"EmissiveColor":r.emissiveMap=n.getTexture(t,e.ID),void 0!==r.emissiveMap&&(r.emissiveMap.encoding=gr);break;case"NormalMap":case"Maya|TEX_normal_map":r.normalMap=n.getTexture(t,e.ID);break;case"ReflectionColor":r.envMap=n.getTexture(t,e.ID),void 0!==r.envMap&&(r.envMap.mapping=yg,r.envMap.encoding=gr);break;case"SpecularColor":r.specularMap=n.getTexture(t,e.ID),void 0!==r.specularMap&&(r.specularMap.encoding=gr);break;case"TransparentColor":case"TransparencyFactor":r.alphaMap=n.getTexture(t,e.ID),r.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",i)}})),r}getTexture(e,t){return"LayeredTexture"in hi.Objects&&t in hi.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=is.get(t).children[0].ID),e.get(t)}parseDeformers(){let e={},t={};if("Deformer"in hi.Objects){let i=hi.Objects.Deformer;for(let r in i){let n=i[r],s=is.get(parseInt(r));if("Skin"===n.attrType){let t=this.parseSkeleton(s,i);t.ID=r,s.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=s.parents[0].ID,e[r]=t}else if("BlendShape"===n.attrType){let e={id:r};e.rawTargets=this.parseMorphTargets(s,i),e.id=r,s.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[r]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){let i=[];return e.children.forEach((function(e){let r=t[e.ID];if("Cluster"!==r.attrType)return;let n={ID:e.ID,indices:[],weights:[],transformLink:(new Be).fromArray(r.TransformLink.a)};"Indexes"in r&&(n.indices=r.Indexes.a,n.weights=r.Weights.a),i.push(n)})),{rawBones:i,bones:[]}}parseMorphTargets(e,t){let i=[];for(let r=0;r1?s=a:a.length>0?s=a[0]:(s=new Es({color:13421772}),a.push(s)),"color"in n.attributes&&a.forEach((function(e){e.vertexColors=!0})),n.FBX_Deformer?(r=new Bu(n,s),r.normalizeSkinWeights()):r=new rt(n,s),r}createCurve(e,t){let i=e.children.reduce((function(e,i){return t.has(i.ID)&&(e=t.get(i.ID)),e}),null),r=new vr({color:3342591,linewidth:1});return new Ir(i,r)}getTransformData(e,t){let i={};"InheritType"in t&&(i.inheritType=parseInt(t.InheritType.value)),i.eulerOrder="RotationOrder"in t?Dde(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(i.translation=t.Lcl_Translation.value),"PreRotation"in t&&(i.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(i.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(i.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(i.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(i.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(i.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(i.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(i.rotationPivot=t.RotationPivot.value),e.userData.transformData=i}setLookAtProperties(e,t){"LookAtProperty"in t&&is.get(e.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){let i=hi.Objects.Model[t.ID];if("Lcl_Translation"in i){let t=i.Lcl_Translation.value;void 0!==e.target?(e.target.position.fromArray(t),ho.add(e.target)):e.lookAt((new A).fromArray(t))}}}))}bindSkeleton(e,t,i){let r=this.parsePoseNodes();for(let n in e){let s=e[n];is.get(parseInt(s.ID)).parents.forEach((function(e){if(t.has(e.ID)){let t=e.ID;is.get(t).parents.forEach((function(e){i.has(e.ID)&&i.get(e.ID).bind(new wl(s.bones),r[e.ID])}))}}))}}parsePoseNodes(){let e={};if("Pose"in hi.Objects){let t=hi.Objects.Pose;for(let i in t)if("BindPose"===t[i].attrType&&t[i].NbPoseNodes>0){let r=t[i].PoseNode;Array.isArray(r)?r.forEach((function(t){e[t.Node]=(new Be).fromArray(t.Matrix.a)})):e[r.Node]=(new Be).fromArray(r.Matrix.a)}}return e}createAmbientLight(){if("GlobalSettings"in hi&&"AmbientColor"in hi.GlobalSettings){let e=hi.GlobalSettings.AmbientColor.value,t=e[0],i=e[1],r=e[2];if(0!==t||0!==i||0!==r){let e=new je(t,i,r);ho.add(new Cl(e,1))}}}},fk=class{constructor(){this.negativeMaterialIndices=!1}parse(e){let t=new Map;if("Geometry"in hi.Objects){let i=hi.Objects.Geometry;for(let r in i){let n=is.get(parseInt(r)),s=this.parseGeometry(n,i[r],e);t.set(parseInt(r),s)}}return!0===this.negativeMaterialIndices&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),t}parseGeometry(e,t,i){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,i);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,i){let r=i.skeletons,n=[],s=e.parents.map((function(e){return hi.Objects.Model[e.ID]}));if(0===s.length)return;let a=e.children.reduce((function(e,t){return void 0!==r[t.ID]&&(e=r[t.ID]),e}),null);e.children.forEach((function(e){void 0!==i.morphTargets[e.ID]&&n.push(i.morphTargets[e.ID])}));let o=s[0],l={};"RotationOrder"in o&&(l.eulerOrder=Dde(o.RotationOrder.value)),"InheritType"in o&&(l.inheritType=parseInt(o.InheritType.value)),"GeometricTranslation"in o&&(l.translation=o.GeometricTranslation.value),"GeometricRotation"in o&&(l.rotation=o.GeometricRotation.value),"GeometricScaling"in o&&(l.scale=o.GeometricScaling.value);let h=Mde(l);return this.genGeometry(t,a,n,h)}genGeometry(e,t,i,r){let n=new lt;e.attrName&&(n.name=e.attrName);let s=this.parseGeoNode(e,t),a=this.genBuffers(s),o=new dt(a.vertex,3);if(o.applyMatrix4(r),n.setAttribute("position",o),a.colors.length>0&&n.setAttribute("color",new dt(a.colors,3)),t&&(n.setAttribute("skinIndex",new Tg(a.weightsIndices,4)),n.setAttribute("skinWeight",new dt(a.vertexWeights,4)),n.FBX_Deformer=t),a.normal.length>0){let e=(new Pi).getNormalMatrix(r),t=new dt(a.normal,3);t.applyNormalMatrix(e),n.setAttribute("normal",t)}if(a.uvs.forEach((function(e,t){let i="uv"+(t+1).toString();0===t&&(i="uv"),n.setAttribute(i,new dt(a.uvs[t],2))})),s.material&&"AllSame"!==s.material.mappingType){let e=a.materialIndex[0],t=0;if(a.materialIndex.forEach((function(i,r){i!==e&&(n.addGroup(t,r-t,e),e=i,t=r)})),n.groups.length>0){let t=n.groups[n.groups.length-1],i=t.start+t.count;i!==a.materialIndex.length&&n.addGroup(i,a.materialIndex.length-i,e)}0===n.groups.length&&n.addGroup(0,a.materialIndex.length,a.materialIndex[0])}return this.addMorphTargets(n,e,i,r),n}parseGeoNode(e,t){let i={};if(i.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],i.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(i.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(i.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(i.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){i.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&i.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return i.weightTable={},null!==t&&(i.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(r,n){void 0===i.weightTable[r]&&(i.weightTable[r]=[]),i.weightTable[r].push({id:t,weight:e.weights[n]})}))}))),i}genBuffers(e){let t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},i=0,r=0,n=!1,s=[],a=[],o=[],l=[],h=[],u=[],c=this;return e.vertexIndices.forEach((function(p,d){let f,m=!1;p<0&&(p^=-1,m=!0);let g=[],y=[];if(s.push(3*p,3*p+1,3*p+2),e.color){let t=oA(d,i,p,e.color);o.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[p]&&e.weightTable[p].forEach((function(e){y.push(e.weight),g.push(e.id)})),y.length>4){n||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),n=!0);let e=[0,0,0,0],t=[0,0,0,0];y.forEach((function(i,r){let n=i,s=g[r];t.forEach((function(t,i,r){if(n>t){r[i]=n,n=t;let a=e[i];e[i]=s,s=a}}))})),g=e,y=t}for(;y.length<4;)y.push(0),g.push(0);for(let e=0;e<4;++e)h.push(y[e]),u.push(g[e])}if(e.normal){let t=oA(d,i,p,e.normal);a.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=oA(d,i,p,e.material)[0],f<0&&(c.negativeMaterialIndices=!0,f=0)),e.uv&&e.uv.forEach((function(e,t){let r=oA(d,i,p,e);void 0===l[t]&&(l[t]=[]),l[t].push(r[0]),l[t].push(r[1])})),r++,m&&(r>4&&console.warn("THREE.FBXLoader: Polygons with more than four sides are not supported. Make sure to triangulate the geometry during export."),c.genFace(t,e,s,f,a,o,l,h,u,r),i++,r=0,s=[],a=[],o=[],l=[],h=[],u=[])})),t}genFace(e,t,i,r,n,s,a,o,l,h){for(let u=2;u1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");let s=e.get(n[0].ID);i[r]={name:t[r].attrName,layer:s}}return i}addClip(e){let t=[],i=this;return e.layer.forEach((function(e){t=t.concat(i.generateTracks(e))})),new so(e.name,-1,t)}generateTracks(e){let t=[],i=new A,r=new Hr,n=new A;if(e.transform&&e.transform.decompose(i,r,n),i=i.toArray(),r=(new xr).setFromQuaternion(r,e.eulerOrder).toArray(),n=n.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){let r=this.generateVectorTrack(e.modelName,e.T.curves,i,"position");void 0!==r&&t.push(r)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){let i=this.generateRotationTrack(e.modelName,e.R.curves,r,e.preRotation,e.postRotation,e.eulerOrder);void 0!==i&&t.push(i)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){let i=this.generateVectorTrack(e.modelName,e.S.curves,n,"scale");void 0!==i&&t.push(i)}if(void 0!==e.DeformPercent){let i=this.generateMorphTrack(e);void 0!==i&&t.push(i)}return t}generateVectorTrack(e,t,i,r){let n=this.getTimesForAllAxes(t),s=this.getKeyframeTrackValues(n,t,i);return new no(e+"."+r,n,s)}generateRotationTrack(e,t,i,r,n,s){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(_r.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(_r.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(_r.degToRad));let a=this.getTimesForAllAxes(t),o=this.getKeyframeTrackValues(a,t,i);void 0!==r&&((r=r.map(_r.degToRad)).push(s),r=(new xr).fromArray(r),r=(new Hr).setFromEuler(r)),void 0!==n&&((n=n.map(_r.degToRad)).push(s),n=(new xr).fromArray(n),n=(new Hr).setFromEuler(n).invert());let l=new Hr,h=new xr,u=[];for(let e=0;e1){let e=1,i=t[0];for(let r=1;r=180){let s=n/180,a=r/s,o=i+a,l=e.times[t-1],h=(e.times[t]-l)/s,u=l+h,c=[],p=[];for(;u1&&(i=e[1].replace(/^(\w+)::/,""),r=e[2]),{id:t,name:i,type:r}}parseNodeProperty(e,t,i){let r=t[1].replace(/^"/,"").replace(/"$/,"").trim(),n=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===r&&","===n&&(n=i.replace(/"/g,"").replace(/,$/,"").trim());let s=this.getCurrentNode();if("Properties70"!==s.name){if("C"===r){let e=n.split(",").slice(1),t=parseInt(e[0]),i=parseInt(e[1]),a=n.split(",").slice(3);a=a.map((function(e){return e.trim().replace(/^"/,"")})),r="connections",n=[t,i],HTt(n,a),void 0===s[r]&&(s[r]=[])}"Node"===r&&(s.id=n),r in s&&Array.isArray(s[r])?s[r].push(n):"a"!==r?s[r]=n:s.a=n,this.setCurrentProp(s,r),"a"===r&&","!==n.slice(-1)&&(s.a=pk(n))}else this.parseNodeSpecialProperty(e,r,n)}parseNodePropertyContinued(e){let t=this.getCurrentNode();t.a+=e,","!==e.slice(-1)&&(t.a=pk(t.a))}parseNodeSpecialProperty(e,t,i){let r=i.split('",').map((function(e){return e.trim().replace(/^\"/,"").replace(/\s/,"_")})),n=r[0],s=r[1],a=r[2],o=r[3],l=r[4];switch(s){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":l=parseFloat(l);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":l=pk(l)}this.getPrevNode()[n]={type:s,type2:a,flag:o,value:l},this.setCurrentProp(this.getPrevNode(),n)}},vk=class{parse(e){let t=new cA(e);t.skip(23);let i=t.getUint32();if(i<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+i);let r=new uA;for(;!this.endOfContent(t);){let e=this.parseNode(t,i);null!==e&&r.add(e.name,e)}return r}endOfContent(e){return e.size()%16==0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){let i={},r=t>=7500?e.getUint64():e.getUint32(),n=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();let s=e.getUint8(),a=e.getString(s);if(0===r)return null;let o=[];for(let t=0;t0?o[0]:"",h=o.length>1?o[1]:"",u=o.length>2?o[2]:"";for(i.singleProperty=1===n&&e.getOffset()===r;r>e.getOffset();){let r=this.parseNode(e,t);null!==r&&this.parseSubNode(a,i,r)}return i.propertyList=o,"number"==typeof l&&(i.id=l),""!==h&&(i.attrName=h),""!==u&&(i.attrType=u),""!==a&&(i.name=a),i}parseSubNode(e,t,i){if(!0===i.singleProperty){let e=i.propertyList[0];Array.isArray(e)?(t[i.name]=i,i.a=e):t[i.name]=e}else if("Connections"===e&&"C"===i.name){let e=[];i.propertyList.forEach((function(t,i){0!==i&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===i.name)Object.keys(i).forEach((function(e){t[e]=i[e]}));else if("Properties70"===e&&"P"===i.name){let e,r=i.propertyList[0],n=i.propertyList[1],s=i.propertyList[2],a=i.propertyList[3];0===r.indexOf("Lcl ")&&(r=r.replace("Lcl ","Lcl_")),0===n.indexOf("Lcl ")&&(n=n.replace("Lcl ","Lcl_")),e="Color"===n||"ColorRGB"===n||"Vector"===n||"Vector3D"===n||0===n.indexOf("Lcl_")?[i.propertyList[4],i.propertyList[5],i.propertyList[6]]:i.propertyList[4],t[r]={type:n,type2:s,flag:a,value:e}}else void 0===t[i.name]?"number"==typeof i.id?(t[i.name]={},t[i.name][i.id]=i):t[i.name]=i:"PoseNode"===i.name?(Array.isArray(t[i.name])||(t[i.name]=[t[i.name]]),t[i.name].push(i)):void 0===t[i.name][i.id]&&(t[i.name][i.id]=i)}parseProperty(e){let t,i=e.getString(1);switch(i){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return t=e.getUint32(),e.getArrayBuffer(t);case"S":return t=e.getUint32(),e.getString(t);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":let r=e.getUint32(),n=e.getUint32(),s=e.getUint32();if(0===n)switch(i){case"b":case"c":return e.getBooleanArray(r);case"d":return e.getFloat64Array(r);case"f":return e.getFloat32Array(r);case"i":return e.getInt32Array(r);case"l":return e.getInt64Array(r)}let a=xde(new Uint8Array(e.getArrayBuffer(s))),o=new cA(a.buffer);switch(i){case"b":case"c":return o.getBooleanArray(r);case"d":return o.getFloat64Array(r);case"f":return o.getFloat32Array(r);case"i":return o.getInt32Array(r);case"l":return o.getInt64Array(r)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+i)}}},cA=class{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){let t=[];for(let i=0;i=0&&(i=new Uint8Array(this.dv.buffer,t,r)),this._textDecoder.decode(i)}},uA=class{add(e,t){this[e]=t}};function PTt(e){let t="Kaydara FBX Binary \0";return e.byteLength>=t.length&&t===Cde(e,0,t.length)}function NTt(e){let t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],i=0;function r(t){let r=e[t-1];return e=e.slice(i+t),i++,r}for(let e=0;e=2.0 are supported.")));let l=new Gk(n,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===a[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}l.setExtensions(s),l.setPlugins(a),l.parse(i,r)}parseAsync(e,t){let i=this;return new Promise((function(r,n){i.parse(e,t,r,n)}))}};function GTt(){let e={};return{get:function(t){return e[t]},add:function(t,i){e[t]=i},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var Ai={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},Ek=class{constructor(e){this.parser=e,this.name=Ai.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let i=0,r=t.length;i=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,s)}},Ak=class{constructor(e){this.parser=e,this.name=Ai.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,i=this.parser,r=i.json,n=r.textures[e];if(!n.extensions||!n.extensions[t])return null;let s=n.extensions[t],a=r.images[s.source],o=i.textureLoader;if(a.uri){let e=i.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(n){if(n)return i.loadTextureImage(e,s.source,o);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}},Ok=class{constructor(e){this.name=Ai.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,i=t.bufferViews[e];if(i.extensions&&i.extensions[this.name]){let e=i.extensions[this.name],r=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then((function(t){let i=e.byteOffset||0,r=e.byteLength||0,s=e.count,a=e.byteStride,o=new Uint8Array(t,i,r);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(s,a,o,e.mode,e.filter).then((function(e){return e.buffer})):n.ready.then((function(){let t=new ArrayBuffer(s*a);return n.decodeGltfBuffer(new Uint8Array(t),s,a,o,e.mode,e.filter),t}))}))}return null}},Pk=class{constructor(e){this.name=Ai.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,i=t.nodes[e];if(!i.extensions||!i.extensions[this.name]||void 0===i.mesh)return null;let r=t.meshes[i.mesh];for(let e of r.primitives)if(e.mode!==Ul.TRIANGLES&&e.mode!==Ul.TRIANGLE_STRIP&&e.mode!==Ul.TRIANGLE_FAN&&void 0!==e.mode)return null;let n=i.extensions[this.name].attributes,s=[],a={};for(let e in n)s.push(this.parser.getDependency("accessor",n[e]).then((t=>(a[e]=t,a[e]))));return s.length<1?null:(s.push(this.parser.createNodeMesh(e)),Promise.all(s).then((e=>{let t=e.pop(),i=t.isGroup?t.children:[t],r=e[0].count,n=[];for(let e of i){let t=new Be,i=new A,s=new Hr,o=new A(1,1,1),l=new rn(e.geometry,e.material,r);for(let e=0;e0||0===e.search(/^data\:image\/jpeg/)?"image/jpeg":e.search(/\.webp($|\?)/i)>0||0===e.search(/^data\:image\/webp/)?"image/webp":"image/png"}var $Tt=new Be,Gk=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new GTt,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let i=!1,r=!1,n=-1;"undefined"!=typeof navigator&&(i=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),r=navigator.userAgent.indexOf("Firefox")>-1,n=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||i||r&&n<98?this.textureLoader=new bs(this.options.manager):this.textureLoader=new bx(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new ui(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let i=this,r=this.json,n=this.extensions;this.cache.removeAll(),this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])})).then((function(t){let s={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:i,userData:{}};nI(n,s,r),Nf(s,r),Promise.all(i._invokeAll((function(e){return e.afterRoot&&e.afterRoot(s)}))).then((function(){e(s)}))})).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let i=0,r=t.length;i{let i=this.associations.get(e);null!=i&&this.associations.set(t,i);for(let[i,r]of e.children.entries())n(r,t.children[i])};return n(i,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let i=0;i=2&&s.setY(t,c[e*o+1]),o>=3&&s.setZ(t,c[e*o+2]),o>=4&&s.setW(t,c[e*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return s}))}loadTexture(e){let t=this.json,i=this.options,r=t.textures[e].source,n=t.images[r],s=this.textureLoader;if(n.uri){let e=i.manager.getHandler(n.uri);null!==e&&(s=e)}return this.loadTextureImage(e,r,s)}loadTextureImage(e,t,i){let r=this,n=this.json,s=n.textures[e],a=n.images[t],o=(a.uri||a.bufferView)+":"+s.sampler;if(this.textureCache[o])return this.textureCache[o];let l=this.loadImageSource(t,i).then((function(t){t.flipY=!1,t.name=s.name||a.name||"";let i=(n.samplers||{})[s.sampler]||{};return t.magFilter=Ode[i.magFilter]||oi,t.minFilter=Ode[i.minFilter]||Ra,t.wrapS=Pde[i.wrapS]||vn,t.wrapT=Pde[i.wrapT]||vn,r.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=l,l}loadImageSource(e,t){let i=this.json,r=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));let n=i.images[e],s=self.URL||self.webkitURL,a=n.uri||"",o=!1;if(void 0!==n.bufferView)a=this.getDependency("bufferView",n.bufferView).then((function(e){o=!0;let t=new Blob([e],{type:n.mimeType});return a=s.createObjectURL(t),a}));else if(void 0===n.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let l=Promise.resolve(a).then((function(e){return new Promise((function(i,n){let s=i;!0===t.isImageBitmapLoader&&(s=function(e){let t=new Bi(e);t.needsUpdate=!0,i(t)}),t.load(Bs.resolveURL(e,r.path),s,void 0,n)}))})).then((function(e){return!0===o&&s.revokeObjectURL(a),e.userData.mimeType=n.mimeType||XTt(n.uri),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",a),e}));return this.sourceCache[e]=l,l}assignTexture(e,t,i,r){let n=this;return this.getDependency("texture",i.index).then((function(s){if(!s)return null;if(void 0!==i.texCoord&&0!=i.texCoord&&!("aoMap"===t&&1==i.texCoord)&&console.warn("THREE.GLTFLoader: Custom UV set "+i.texCoord+" for texture "+t+" not yet supported."),n.extensions[Ai.KHR_TEXTURE_TRANSFORM]){let e=void 0!==i.extensions?i.extensions[Ai.KHR_TEXTURE_TRANSFORM]:void 0;if(e){let t=n.associations.get(s);s=n.extensions[Ai.KHR_TEXTURE_TRANSFORM].extendTexture(s,e),n.associations.set(s,t)}}return void 0!==r&&(s.encoding=r),e[t]=s,s}))}assignFinalMaterial(e){let t=e.geometry,i=e.material,r=void 0===t.attributes.tangent,n=void 0!==t.attributes.color,s=void 0===t.attributes.normal;if(e.isPoints){let e="PointsMaterial:"+i.uuid,t=this.cache.get(e);t||(t=new jn,zr.prototype.copy.call(t,i),t.color.copy(i.color),t.map=i.map,t.sizeAttenuation=!1,this.cache.add(e,t)),i=t}else if(e.isLine){let e="LineBasicMaterial:"+i.uuid,t=this.cache.get(e);t||(t=new vr,zr.prototype.copy.call(t,i),t.color.copy(i.color),this.cache.add(e,t)),i=t}if(r||n||s){let e="ClonedMaterial:"+i.uuid+":";r&&(e+="derivative-tangents:"),n&&(e+="vertex-colors:"),s&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=i.clone(),n&&(t.vertexColors=!0),s&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(i))),i=t}i.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=i}getMaterialType(){return Gu}loadMaterial(e){let t,i=this,r=this.json,n=this.extensions,s=r.materials[e],a={},o=[];if((s.extensions||{})[Ai.KHR_MATERIALS_UNLIT]){let e=n[Ai.KHR_MATERIALS_UNLIT];t=e.getMaterialType(),o.push(e.extendParams(a,s,i))}else{let r=s.pbrMetallicRoughness||{};if(a.color=new je(1,1,1),a.opacity=1,Array.isArray(r.baseColorFactor)){let e=r.baseColorFactor;a.color.fromArray(e),a.opacity=e[3]}void 0!==r.baseColorTexture&&o.push(i.assignTexture(a,"map",r.baseColorTexture,gr)),a.metalness=void 0!==r.metallicFactor?r.metallicFactor:1,a.roughness=void 0!==r.roughnessFactor?r.roughnessFactor:1,void 0!==r.metallicRoughnessTexture&&(o.push(i.assignTexture(a,"metalnessMap",r.metallicRoughnessTexture)),o.push(i.assignTexture(a,"roughnessMap",r.metallicRoughnessTexture))),t=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),o.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,a)}))))}!0===s.doubleSided&&(a.side=gi);let l=s.alphaMode||Tk.OPAQUE;if(l===Tk.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,l===Tk.MASK&&(a.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&t!==or&&(o.push(i.assignTexture(a,"normalMap",s.normalTexture)),a.normalScale=new le(1,1),void 0!==s.normalTexture.scale)){let e=s.normalTexture.scale;a.normalScale.set(e,e)}return void 0!==s.occlusionTexture&&t!==or&&(o.push(i.assignTexture(a,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(a.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&t!==or&&(a.emissive=(new je).fromArray(s.emissiveFactor)),void 0!==s.emissiveTexture&&t!==or&&o.push(i.assignTexture(a,"emissiveMap",s.emissiveTexture,gr)),Promise.all(o).then((function(){let r=new t(a);return s.name&&(r.name=s.name),Nf(r,s),i.associations.set(r,{materials:e}),s.extensions&&nI(n,r,s),r}))}createUniqueName(e){let t=Rr.sanitizeNodeName(e||""),i=t;for(let e=1;this.nodeNamesUsed[i];++e)i=t+"_"+e;return this.nodeNamesUsed[i]=!0,i}loadGeometries(e){let t=this,i=this.extensions,r=this.primitiveCache;function n(e){return i[Ai.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(i){return Lde(i,e,t)}))}let s=[];for(let i=0,a=e.length;i0&&qTt(h,n),h.name=t.createUniqueName(n.name||"mesh_"+e),Nf(h,n),c.extensions&&nI(r,h,c),t.assignFinalMaterial(h),l.push(h)}for(let i=0,r=l.length;i1?new ur:1===o.length?o[0]:new cr,a!==o[0])for(let e=0,t=o.length;e{let t=new Map;for(let[e,i]of r.associations)(e instanceof zr||e instanceof Bi)&&t.set(e,i);return e.traverse((e=>{let i=r.associations.get(e);null!=i&&t.set(e,i)})),t})(n),n}))}};function KTt(e,t,i){let r=t.attributes,n=new Dt;if(void 0===r.POSITION)return;{let e=i.json.accessors[r.POSITION],t=e.min,s=e.max;if(void 0===t||void 0===s)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(n.set(new A(t[0],t[1],t[2]),new A(s[0],s[1],s[2])),e.normalized){let t=kk(gT[e.componentType]);n.min.multiplyScalar(t),n.max.multiplyScalar(t)}}let s=t.targets;if(void 0!==s){let e=new A,t=new A;for(let r=0,n=s.length;rt in e?ZTt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Bde=(e,t)=>{for(var i in t||(t={}))JTt.call(t,i)&&Ude(e,i,t[i]);if(Hde)for(var i of Hde(t))QTt.call(t,i)&&Ude(e,i,t[i]);return e},Vk=e=>{if(void 0!==t2)return t2(e);throw new Error('Dynamic require of "'+e+'" is not supported')},Gde=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},eEt=(e,t,i)=>new Promise(((r,n)=>{var s=e=>{try{o(i.next(e))}catch(e){n(e)}},a=e=>{try{o(i.throw(e))}catch(e){n(e)}},o=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,a);o((i=i.apply(e,t)).next())})),tEt=Gde({"(disabled):crypto"(){}}),rEt=Gde({"dist/web-ifc.js"(e,t){var i,r=(i="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(i=i||__filename),function(e){var t,r,n=void 0!==(e=e||{})?e:{};n.ready=new Promise((function(e,i){t=e,r=i}));var s,a={};for(s in n)n.hasOwnProperty(s)&&(a[s]=n[s]);var o=[],l="./this.program",h=function(e,t){throw t},u=!1,c=!1,p=!1,d=!1;u="object"==typeof window,c="function"==typeof importScripts,p="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,d=!u&&!p&&!c;var f,m,g,y,v="";function T(e){return n.locateFile?n.locateFile(e,v):v+e}p?(v=c?Vk("path").dirname(v)+"/":__dirname+"/",f=function(e,t){return g||(g=Vk("fs")),y||(y=Vk("path")),e=y.normalize(e),g.readFileSync(e,t?null:"utf8")},m=function(e){var t=f(e,!0);return t.buffer||(t=new Uint8Array(t)),D(t.buffer),t},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),o=process.argv.slice(2),process.on("uncaughtException",(function(e){if(!(e instanceof Hr))throw e})),process.on("unhandledRejection",xe),h=function(e){process.exit(e)},n.inspect=function(){return"[Emscripten Module object]"}):d?("undefined"!=typeof read&&(f=function(e){return read(e)}),m=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(D("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?o=scriptArgs:void 0!==arguments&&(o=arguments),"function"==typeof quit&&(h=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(u||c)&&(c?v=self.location.href:"undefined"!=typeof document&&document.currentScript&&(v=document.currentScript.src),i&&(v=i),v=0!==v.indexOf("blob:")?v.slice(0,v.lastIndexOf("/")+1):"",f=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},c&&(m=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}));var x=n.print||console.log.bind(console),b=n.printErr||console.warn.bind(console);for(s in a)a.hasOwnProperty(s)&&(n[s]=a[s]);a=null,n.arguments&&(o=n.arguments),n.thisProgram&&(l=n.thisProgram),n.quit&&(h=n.quit);var _=16;function E(e,t){return t||(t=_),Math.ceil(e/t)*t}var w,S,I=function(e){};n.wasmBinary&&(w=n.wasmBinary),n.noExitRuntime&&(S=n.noExitRuntime),"object"!=typeof WebAssembly&&xe("no native wasm support detected");var M,A=!1;function D(e,t){e||xe("Assertion failed: "+t)}var O="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function R(e,t,i){for(var r=(t>>>=0)+i,n=t;e[n>>>0]&&!(n>=r);)++n;if(n-t>16&&e.subarray&&O)return O.decode(e.subarray(t>>>0,n>>>0));for(var s="";t>>0];if(128&a){var o=63&e[t++>>>0];if(192!=(224&a)){var l=63&e[t++>>>0];if((a=224==(240&a)?(15&a)<<12|o<<6|l:(7&a)<<18|o<<12|l<<6|63&e[t++>>>0])<65536)s+=String.fromCharCode(a);else{var h=a-65536;s+=String.fromCharCode(55296|h>>10,56320|1023&h)}}else s+=String.fromCharCode((31&a)<<6|o)}else s+=String.fromCharCode(a)}return s}function C(e,t){return(e>>>=0)?R(k,e,t):""}function N(e,t,i,r){if(!(r>0))return 0;for(var n=i>>>=0,s=i+r-1,a=0;a=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++a)),o<=127){if(i>=s)break;t[i++>>>0]=o}else if(o<=2047){if(i+1>=s)break;t[i++>>>0]=192|o>>6,t[i++>>>0]=128|63&o}else if(o<=65535){if(i+2>=s)break;t[i++>>>0]=224|o>>12,t[i++>>>0]=128|o>>6&63,t[i++>>>0]=128|63&o}else{if(i+3>=s)break;t[i++>>>0]=240|o>>18,t[i++>>>0]=128|o>>12&63,t[i++>>>0]=128|o>>6&63,t[i++>>>0]=128|63&o}}return t[i>>>0]=0,i-n}function P(e,t,i){return N(e,k,t,i)}function L(e){for(var t=0,i=0;i=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++i)),r<=127?++t:t+=r<=2047?2:r<=65535?3:4}return t}var F,U,k,B,H,G,z,V,j,W="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Y(e,t){for(var i=e,r=i>>1,n=r+t/2;!(r>=n)&&H[r>>>0];)++r;if((i=r<<1)-e>32&&W)return W.decode(k.subarray(e>>>0,i>>>0));for(var s="",a=0;!(a>=t/2);++a){var o=B[e+2*a>>>1];if(0==o)break;s+=String.fromCharCode(o)}return s}function X(e,t,i){if(void 0===i&&(i=2147483647),i<2)return 0;for(var r=t,n=(i-=2)<2*e.length?i/2:e.length,s=0;s>>1]=a,t+=2}return B[t>>>1]=0,t-r}function q(e){return 2*e.length}function Z(e,t){for(var i=0,r="";!(i>=t/4);){var n=G[e+4*i>>>2];if(0==n)break;if(++i,n>=65536){var s=n-65536;r+=String.fromCharCode(55296|s>>10,56320|1023&s)}else r+=String.fromCharCode(n)}return r}function K(e,t,i){if(void 0===i&&(i=2147483647),i<4)return 0;for(var r=t>>>=0,n=r+i-4,s=0;s=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++s)),G[t>>>2]=a,(t+=4)+4>n)break}return G[t>>>2]=0,t-r}function J(e){for(var t=0,i=0;i=55296&&r<=57343&&++i,t+=4}return t}function $(e,t){U.set(e,t>>>0)}function Q(e,t,i){for(var r=0;r>>0]=e.charCodeAt(r);i||(U[t>>>0]=0)}function ee(e,t){return e%t>0&&(e+=t-e%t),e}function te(e){F=e,n.HEAP8=U=new Int8Array(e),n.HEAP16=B=new Int16Array(e),n.HEAP32=G=new Int32Array(e),n.HEAPU8=k=new Uint8Array(e),n.HEAPU16=H=new Uint16Array(e),n.HEAPU32=z=new Uint32Array(e),n.HEAPF32=V=new Float32Array(e),n.HEAPF64=j=new Float64Array(e)}var ie=n.INITIAL_MEMORY||16777216;(M=n.wasmMemory?n.wasmMemory:new WebAssembly.Memory({initial:ie/65536,maximum:65536}))&&(F=M.buffer),ie=F.byteLength,te(F);var re,ne=[],se=[],ae=[],oe=[];function le(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)de(n.preRun.shift());Ce(ne)}function he(){!n.noFSInit&&!Ve.init.initialized&&Ve.init(),He.init(),Ce(se)}function ue(){Ve.ignorePermissions=!1,Ce(ae)}function ce(){}function pe(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)fe(n.postRun.shift());Ce(oe)}function de(e){ne.unshift(e)}function fe(e){oe.unshift(e)}var me=0,ge=null,ye=null;function ve(e){me++,n.monitorRunDependencies&&n.monitorRunDependencies(me)}function Te(e){if(me--,n.monitorRunDependencies&&n.monitorRunDependencies(me),0==me&&(null!==ge&&(clearInterval(ge),ge=null),ye)){var t=ye;ye=null,t()}}function xe(e){n.onAbort&&n.onAbort(e),b(e+=""),A=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(e);throw r(t),t}function be(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}n.preloadedImages={},n.preloadedAudios={};var _e="data:application/octet-stream;base64,";function Ee(e){return be(e,_e)}var we="file://";function Se(e){return be(e,we)}var Ie,Me,Ae=lRe+"web-ifc.wasm";function De(){try{if(w)return new Uint8Array(w);if(m)return m(Ae);throw"both async and sync fetching of the wasm failed"}catch(e){xe(e)}}function Oe(){return w||!u&&!c||"function"!=typeof fetch||Se(Ae)?Promise.resolve().then(De):fetch(Ae,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Ae+"'";return e.arrayBuffer()})).catch((function(){return De()}))}function Re(){var e={a:Pr};function t(e,t){var i=e.exports;n.asm=i,re=n.asm.X,Te()}function i(e){t(e.instance)}function s(t){return Oe().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){b("failed to asynchronously prepare wasm: "+e),xe(e)}))}if(ve(),n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(e){return b("Module.instantiateWasm callback failed with error: "+e),!1}return(w||"function"!=typeof WebAssembly.instantiateStreaming||Ee(Ae)||Se(Ae)||"function"!=typeof fetch?s(i):fetch(Ae,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){return b("wasm streaming compile failed: "+e),b("falling back to ArrayBuffer instantiation"),s(i)}))}))).catch(r),{}}function Ce(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var i=t.func;"number"==typeof i?void 0===t.arg?re.get(i)():re.get(i)(t.arg):i(void 0===t.arg?null:t.arg)}else t(n)}}function Ne(e,t,i){return i&&i.length?n["dynCall_"+e].apply(null,[t].concat(i)):n["dynCall_"+e].call(null,t)}function Pe(e,t,i){return-1!=e.indexOf("j")?Ne(e,t,i):re.get(t).apply(null,i)}function Le(e,t,i,r){xe("Assertion failed: "+C(e)+", at: "+[t?C(t):"unknown filename",i,r?C(r):"unknown function"])}function Fe(e){return G[kr()>>>2]=e,e}Ee(Ae)||(Ae=T(Ae));var Ue={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var i=0,r=e.length-1;r>=0;r--){var n=e[r];"."===n?e.splice(r,1):".."===n?(e.splice(r,1),i++):i&&(e.splice(r,1),i--)}if(t)for(;i;i--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),i="/"===e.slice(-1);return!(e=Ue.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))&&!t&&(e="."),e&&i&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=Ue.splitPath(e),i=t[0],r=t[1];return i||r?(r&&(r=r.slice(0,r.length-1)),i+r):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=Ue.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.slice(t+1)},extname:function(e){return Ue.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return Ue.normalize(e.join("/"))},join2:function(e,t){return Ue.normalize(e+"/"+t)}};function ke(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(p)try{var t=tEt();return function(){return t.randomBytes(1)[0]}}catch(e){}return function(){xe("randomDevice")}}var Be={resolve:function(){for(var e="",t=!1,i=arguments.length-1;i>=-1&&!t;i--){var r=i>=0?arguments[i]:Ve.cwd();if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";e=r+"/"+e,t="/"===r.charAt(0)}return(t?"/":"")+(e=Ue.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function i(e){for(var t=0;t=0&&""===e[i];i--);return t>i?[]:e.slice(t,i-t+1)}e=Be.resolve(e).slice(1),t=Be.resolve(t).slice(1);for(var r=i(e.split("/")),n=i(t.split("/")),s=Math.min(r.length,n.length),a=s,o=0;o0?i.slice(0,r).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;e.input=Cr(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(x(R(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(x(R(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(b(R(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(b(R(e.output,0)),e.output=[])}}};function Ge(e){for(var t=E(e,16384),i=Fr(t);e>>0]=0;return i}var ze={ops_table:null,mount:function(e){return ze.createNode(null,"/",16895,0)},createNode:function(e,t,i,r){if(Ve.isBlkdev(i)||Ve.isFIFO(i))throw new Ve.ErrnoError(63);ze.ops_table||(ze.ops_table={dir:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr,lookup:ze.node_ops.lookup,mknod:ze.node_ops.mknod,rename:ze.node_ops.rename,unlink:ze.node_ops.unlink,rmdir:ze.node_ops.rmdir,readdir:ze.node_ops.readdir,symlink:ze.node_ops.symlink},stream:{llseek:ze.stream_ops.llseek}},file:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr},stream:{llseek:ze.stream_ops.llseek,read:ze.stream_ops.read,write:ze.stream_ops.write,allocate:ze.stream_ops.allocate,mmap:ze.stream_ops.mmap,msync:ze.stream_ops.msync}},link:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr,readlink:ze.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr},stream:Ve.chrdev_stream_ops}});var n=Ve.createNode(e,t,i,r);return Ve.isDir(n.mode)?(n.node_ops=ze.ops_table.dir.node,n.stream_ops=ze.ops_table.dir.stream,n.contents={}):Ve.isFile(n.mode)?(n.node_ops=ze.ops_table.file.node,n.stream_ops=ze.ops_table.file.stream,n.usedBytes=0,n.contents=null):Ve.isLink(n.mode)?(n.node_ops=ze.ops_table.link.node,n.stream_ops=ze.ops_table.link.stream):Ve.isChrdev(n.mode)&&(n.node_ops=ze.ops_table.chrdev.node,n.stream_ops=ze.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[t]=n),n},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],i=0;i>>=0;var i=e.contents?e.contents.length:0;if(!(i>=t)){t=Math.max(t,i*(i<1048576?2:1.125)>>>0),0!=i&&(t=Math.max(t,256));var r=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(t>>>=0,e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var i=e.contents;return e.contents=new Uint8Array(t),i&&e.contents.set(i.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-n,r);if(a>8&&s.subarray)t.set(s.subarray(n,n+a),i);else for(var o=0;o0||r+i>>=0,U.set(l,a>>>0)}else o=!1,a=l.byteOffset;return{ptr:a,allocated:o}},msync:function(e,t,i,r,n){if(!Ve.isFile(e.node.mode))throw new Ve.ErrnoError(43);return 2&n||ze.stream_ops.write(e,t,0,r,i,!1),0}}},Ve={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(e,t){if(t=t||{},!(e=Be.resolve(Ve.cwd(),e)))return{path:"",node:null};var i={follow_mount:!0,recurse_count:0};for(var r in i)void 0===t[r]&&(t[r]=i[r]);if(t.recurse_count>8)throw new Ve.ErrnoError(32);for(var n=Ue.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),s=Ve.root,a="/",o=0;o40)throw new Ve.ErrnoError(32)}}return{path:a,node:s}},getPath:function(e){for(var t;;){if(Ve.isRoot(e)){var i=e.mount.mountpoint;return t?"/"!==i[i.length-1]?i+"/"+t:i+t:i}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var i=0,r=0;r>>0)%Ve.nameTable.length},hashAddNode:function(e){var t=Ve.hashName(e.parent.id,e.name);e.name_next=Ve.nameTable[t],Ve.nameTable[t]=e},hashRemoveNode:function(e){var t=Ve.hashName(e.parent.id,e.name);if(Ve.nameTable[t]===e)Ve.nameTable[t]=e.name_next;else for(var i=Ve.nameTable[t];i;){if(i.name_next===e){i.name_next=e.name_next;break}i=i.name_next}},lookupNode:function(e,t){var i=Ve.mayLookup(e);if(i)throw new Ve.ErrnoError(i,e);for(var r=Ve.hashName(e.id,t),n=Ve.nameTable[r];n;n=n.name_next){var s=n.name;if(n.parent.id===e.id&&s===t)return n}return Ve.lookup(e,t)},createNode:function(e,t,i,r){var n=new Ve.FSNode(e,t,i,r);return Ve.hashAddNode(n),n},destroyNode:function(e){Ve.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(e){var t=Ve.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return Ve.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){return Ve.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{return Ve.lookupNode(e,t),20}catch(e){}return Ve.nodePermissions(e,"wx")},mayDelete:function(e,t,i){var r;try{r=Ve.lookupNode(e,t)}catch(e){return e.errno}var n=Ve.nodePermissions(e,"wx");if(n)return n;if(i){if(!Ve.isDir(r.mode))return 54;if(Ve.isRoot(r)||Ve.getPath(r)===Ve.cwd())return 10}else if(Ve.isDir(r.mode))return 31;return 0},mayOpen:function(e,t){return e?Ve.isLink(e.mode)?32:Ve.isDir(e.mode)&&("r"!==Ve.flagsToPermissionString(t)||512&t)?31:Ve.nodePermissions(e,Ve.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Ve.MAX_OPEN_FDS;for(var i=e;i<=t;i++)if(!Ve.streams[i])return i;throw new Ve.ErrnoError(33)},getStream:function(e){return Ve.streams[e]},createStream:function(e,t,i){Ve.FSStream||(Ve.FSStream=function(){},Ve.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var r=new Ve.FSStream;for(var n in e)r[n]=e[n];e=r;var s=Ve.nextfd(t,i);return e.fd=s,Ve.streams[s]=e,e},closeStream:function(e){Ve.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Ve.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Ve.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){Ve.devices[e]={stream_ops:t}},getDevice:function(e){return Ve.devices[e]},getMounts:function(e){for(var t=[],i=[e];i.length;){var r=i.pop();t.push(r),i.push.apply(i,r.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),Ve.syncFSRequests++,Ve.syncFSRequests>1&&b("warning: "+Ve.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var i=Ve.getMounts(Ve.root.mount),r=0;function n(e){return Ve.syncFSRequests--,t(e)}function s(e){if(e)return s.errored?void 0:(s.errored=!0,n(e));++r>=i.length&&n(null)}i.forEach((function(t){if(!t.type.syncfs)return s(null);t.type.syncfs(t,e,s)}))},mount:function(e,t,i){var r,n="/"===i,s=!i;if(n&&Ve.root)throw new Ve.ErrnoError(10);if(!n&&!s){var a=Ve.lookupPath(i,{follow_mount:!1});if(i=a.path,r=a.node,Ve.isMountpoint(r))throw new Ve.ErrnoError(10);if(!Ve.isDir(r.mode))throw new Ve.ErrnoError(54)}var o={type:e,opts:t,mountpoint:i,mounts:[]},l=e.mount(o);return l.mount=o,o.root=l,n?Ve.root=l:r&&(r.mounted=o,r.mount&&r.mount.mounts.push(o)),l},unmount:function(e){var t=Ve.lookupPath(e,{follow_mount:!1});if(!Ve.isMountpoint(t.node))throw new Ve.ErrnoError(28);var i=t.node,r=i.mounted,n=Ve.getMounts(r);Object.keys(Ve.nameTable).forEach((function(e){for(var t=Ve.nameTable[e];t;){var i=t.name_next;-1!==n.indexOf(t.mount)&&Ve.destroyNode(t),t=i}})),i.mounted=null;var s=i.mount.mounts.indexOf(r);i.mount.mounts.splice(s,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,i){var r=Ve.lookupPath(e,{parent:!0}).node,n=Ue.basename(e);if(!n||"."===n||".."===n)throw new Ve.ErrnoError(28);var s=Ve.mayCreate(r,n);if(s)throw new Ve.ErrnoError(s);if(!r.node_ops.mknod)throw new Ve.ErrnoError(63);return r.node_ops.mknod(r,n,t,i)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,Ve.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Ve.mknod(e,t,0)},mkdirTree:function(e,t){for(var i=e.split("/"),r="",n=0;n>>=0,r<0||n<0)throw new Ve.ErrnoError(28);if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(1==(2097155&e.flags))throw new Ve.ErrnoError(8);if(Ve.isDir(e.node.mode))throw new Ve.ErrnoError(31);if(!e.stream_ops.read)throw new Ve.ErrnoError(28);var s=void 0!==n;if(s){if(!e.seekable)throw new Ve.ErrnoError(70)}else n=e.position;var a=e.stream_ops.read(e,t,i,r,n);return s||(e.position+=a),a},write:function(e,t,i,r,n,s){if(i>>>=0,r<0||n<0)throw new Ve.ErrnoError(28);if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(!(2097155&e.flags))throw new Ve.ErrnoError(8);if(Ve.isDir(e.node.mode))throw new Ve.ErrnoError(31);if(!e.stream_ops.write)throw new Ve.ErrnoError(28);e.seekable&&1024&e.flags&&Ve.llseek(e,0,2);var a=void 0!==n;if(a){if(!e.seekable)throw new Ve.ErrnoError(70)}else n=e.position;var o=e.stream_ops.write(e,t,i,r,n,s);a||(e.position+=o);try{e.path&&Ve.trackingDelegate.onWriteToFile&&Ve.trackingDelegate.onWriteToFile(e.path)}catch(t){b("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return o},allocate:function(e,t,i){if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(t<0||i<=0)throw new Ve.ErrnoError(28);if(!(2097155&e.flags))throw new Ve.ErrnoError(8);if(!Ve.isFile(e.node.mode)&&!Ve.isDir(e.node.mode))throw new Ve.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ve.ErrnoError(138);e.stream_ops.allocate(e,t,i)},mmap:function(e,t,i,r,n,s){if(t>>>=0,2&n&&!(2&s)&&2!=(2097155&e.flags))throw new Ve.ErrnoError(2);if(1==(2097155&e.flags))throw new Ve.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ve.ErrnoError(43);return e.stream_ops.mmap(e,t,i,r,n,s)},msync:function(e,t,i,r,n){return i>>>=0,e&&e.stream_ops.msync?e.stream_ops.msync(e,t,i,r,n):0},munmap:function(e){return 0},ioctl:function(e,t,i){if(!e.stream_ops.ioctl)throw new Ve.ErrnoError(59);return e.stream_ops.ioctl(e,t,i)},readFile:function(e,t){if((t=t||{}).flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var i,r=Ve.open(e,t.flags),n=Ve.stat(e).size,s=new Uint8Array(n);return Ve.read(r,s,0,n,0),"utf8"===t.encoding?i=R(s,0):"binary"===t.encoding&&(i=s),Ve.close(r),i},writeFile:function(e,t,i){(i=i||{}).flags=i.flags||577;var r=Ve.open(e,i.flags,i.mode);if("string"==typeof t){var n=new Uint8Array(L(t)+1),s=N(t,n,0,n.length);Ve.write(r,n,0,s,void 0,i.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ve.write(r,t,0,t.byteLength,void 0,i.canOwn)}Ve.close(r)},cwd:function(){return Ve.currentPath},chdir:function(e){var t=Ve.lookupPath(e,{follow:!0});if(null===t.node)throw new Ve.ErrnoError(44);if(!Ve.isDir(t.node.mode))throw new Ve.ErrnoError(54);var i=Ve.nodePermissions(t.node,"x");if(i)throw new Ve.ErrnoError(i);Ve.currentPath=t.path},createDefaultDirectories:function(){Ve.mkdir("/tmp"),Ve.mkdir("/home"),Ve.mkdir("/home/web_user")},createDefaultDevices:function(){Ve.mkdir("/dev"),Ve.registerDevice(Ve.makedev(1,3),{read:function(){return 0},write:function(e,t,i,r,n){return r}}),Ve.mkdev("/dev/null",Ve.makedev(1,3)),He.register(Ve.makedev(5,0),He.default_tty_ops),He.register(Ve.makedev(6,0),He.default_tty1_ops),Ve.mkdev("/dev/tty",Ve.makedev(5,0)),Ve.mkdev("/dev/tty1",Ve.makedev(6,0));var e=ke();Ve.createDevice("/dev","random",e),Ve.createDevice("/dev","urandom",e),Ve.mkdir("/dev/shm"),Ve.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Ve.mkdir("/proc"),Ve.mkdir("/proc/self"),Ve.mkdir("/proc/self/fd"),Ve.mount({mount:function(){var e=Ve.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var i=+t,r=Ve.getStream(i);if(!r)throw new Ve.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return r.path}}};return n.parent=n,n}},e}},{},"/proc/self/fd")},createStandardStreams:function(){n.stdin?Ve.createDevice("/dev","stdin",n.stdin):Ve.symlink("/dev/tty","/dev/stdin"),n.stdout?Ve.createDevice("/dev","stdout",null,n.stdout):Ve.symlink("/dev/tty","/dev/stdout"),n.stderr?Ve.createDevice("/dev","stderr",null,n.stderr):Ve.symlink("/dev/tty1","/dev/stderr"),Ve.open("/dev/stdin",0),Ve.open("/dev/stdout",1),Ve.open("/dev/stderr",1)},ensureErrnoError:function(){Ve.ErrnoError||(Ve.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},Ve.ErrnoError.prototype=new Error,Ve.ErrnoError.prototype.constructor=Ve.ErrnoError,[44].forEach((function(e){Ve.genericErrors[e]=new Ve.ErrnoError(e),Ve.genericErrors[e].stack=""})))},staticInit:function(){Ve.ensureErrnoError(),Ve.nameTable=new Array(4096),Ve.mount(ze,{},"/"),Ve.createDefaultDirectories(),Ve.createDefaultDevices(),Ve.createSpecialDirectories(),Ve.filesystems={MEMFS:ze}},init:function(e,t,i){Ve.init.initialized=!0,Ve.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=i||n.stderr,Ve.createStandardStreams()},quit:function(){Ve.init.initialized=!1;var e=n._fflush;e&&e(0);for(var t=0;tthis.length-1||e<0)){var t=e%this.chunkSize,i=e/this.chunkSize|0;return this.getter(i)[t]}},s.prototype.setDataGetter=function(e){this.getter=e},s.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",i,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+i+". Status: "+e.status);var t,r=Number(e.getResponseHeader("Content-length")),n=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,s=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;n||(a=r);var o=this;o.setDataGetter((function(e){var t=e*a,n=(e+1)*a-1;if(n=Math.min(n,r-1),void 0===o.chunks[e]&&(o.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>r-1)throw new Error("only "+r+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",i,!1),r!==a&&n.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+i+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):Cr(n.responseText||"",!0)}(t,n)),void 0===o.chunks[e])throw new Error("doXHR failed!");return o.chunks[e]})),(s||!r)&&(a=r=1,r=this.getter(0).length,a=r,x("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=r,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!c)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new s;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var o={isDevice:!1,contents:a}}else o={isDevice:!1,url:i};var l=Ve.createFile(e,t,o,r,n);o.contents?l.contents=o.contents:o.url&&(l.contents=null,l.url=o.url),Object.defineProperties(l,{usedBytes:{get:function(){return this.contents.length}}});var h={};return Object.keys(l.stream_ops).forEach((function(e){var t=l.stream_ops[e];h[e]=function(){return Ve.forceLoadFile(l),t.apply(null,arguments)}})),h.read=function(e,t,i,r,n){Ve.forceLoadFile(l);var s=e.node.contents;if(n>=s.length)return 0;var a=Math.min(s.length-n,r);if(s.slice)for(var o=0;o>>2]=r.dev,G[i+4>>>2]=0,G[i+8>>>2]=r.ino,G[i+12>>>2]=r.mode,G[i+16>>>2]=r.nlink,G[i+20>>>2]=r.uid,G[i+24>>>2]=r.gid,G[i+28>>>2]=r.rdev,G[i+32>>>2]=0,Me=[r.size>>>0,(Ie=r.size,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],G[i+40>>>2]=Me[0],G[i+44>>>2]=Me[1],G[i+48>>>2]=4096,G[i+52>>>2]=r.blocks,G[i+56>>>2]=r.atime.getTime()/1e3|0,G[i+60>>>2]=0,G[i+64>>>2]=r.mtime.getTime()/1e3|0,G[i+68>>>2]=0,G[i+72>>>2]=r.ctime.getTime()/1e3|0,G[i+76>>>2]=0,Me=[r.ino>>>0,(Ie=r.ino,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],G[i+80>>>2]=Me[0],G[i+84>>>2]=Me[1],0},doMsync:function(e,t,i,r,n){var s=k.slice(e,e+i);Ve.msync(t,s,n,i,r)},doMkdir:function(e,t){return"/"===(e=Ue.normalize(e))[e.length-1]&&(e=e.slice(0,e.length-1)),Ve.mkdir(e,t,0),0},doMknod:function(e,t,i){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Ve.mknod(e,t,i),0},doReadlink:function(e,t,i){if(i<=0)return-28;var r=Ve.readlink(e),n=Math.min(i,L(r)),s=U[t+n>>>0];return P(r,t,i+1),U[t+n>>>0]=s,n},doAccess:function(e,t){if(-8&t)return-28;var i;if(!(i=Ve.lookupPath(e,{follow:!0}).node))return-44;var r="";return 4&t&&(r+="r"),2&t&&(r+="w"),1&t&&(r+="x"),r&&Ve.nodePermissions(i,r)?-2:0},doDup:function(e,t,i){var r=Ve.getStream(i);return r&&Ve.close(r),Ve.open(e,t,0,i,i).fd},doReadv:function(e,t,i,r){for(var n=0,s=0;s>>2],o=G[t+(8*s+4)>>>2],l=Ve.read(e,U,a,o,r);if(l<0)return-1;if(n+=l,l>>2],o=G[t+(8*s+4)>>>2],l=Ve.write(e,U,a,o,r);if(l<0)return-1;n+=l}return n},varargs:void 0,get:function(){return je.varargs+=4,G[je.varargs-4>>>2]},getStr:function(e){return C(e)},getStreamFromFD:function(e){var t=Ve.getStream(e);if(!t)throw new Ve.ErrnoError(8);return t},get64:function(e,t){return e}};function We(e,t,i){je.varargs=i;try{var r=je.getStreamFromFD(e);switch(t){case 0:return(n=je.get())<0?-28:Ve.open(r.path,r.flags,0,n).fd;case 1:case 2:case 13:case 14:return 0;case 3:return r.flags;case 4:var n=je.get();return r.flags|=n,0;case 12:return n=je.get(),B[n+0>>>1]=2,0;case 16:case 8:default:return-28;case 9:return Fe(28),-1}}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),-e.errno}}function Ye(e,t,i){je.varargs=i;try{var r=je.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return r.tty?0:-59;case 21519:if(!r.tty)return-59;var n=je.get();return G[n>>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:return n=je.get(),Ve.ioctl(r,t,n);default:xe("bad ioctl syscall "+t)}}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),-e.errno}}function Xe(e,t,i){je.varargs=i;try{var r=je.getStr(e),n=je.get();return Ve.open(r,t,n).fd}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),-e.errno}}var qe={};function Ze(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Ke(e){return this.fromWireType(z[e>>>2])}var Je={},$e={},Qe={},et=48,tt=57;function it(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=et&&t<=tt?"_"+e:e}function rt(e,t){return e=it(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function nt(e,t){var i=rt(t,(function(e){this.name=t,this.message=e;var i=new Error(e).stack;void 0!==i&&(this.stack=this.toString()+"\n"+i.replace(/^Error(:[^\n]*)?\n/,""))}));return i.prototype=Object.create(e.prototype),i.prototype.constructor=i,i.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},i}var st=void 0;function at(e){throw new st(e)}function ot(e,t,i){function r(t){var r=i(t);r.length!==e.length&&at("Mismatched type converter count");for(var n=0;n>>0];)t+=dt[k[i++>>>0]];return t}var mt=void 0;function gt(e){throw new mt(e)}function yt(e,t,i){if(i=i||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=t.name;if(e||gt('type "'+r+'" must have a positive integer typeid pointer'),$e.hasOwnProperty(e)){if(i.ignoreDuplicateRegistrations)return;gt("Cannot register type '"+r+"' twice")}if($e[e]=t,delete Qe[e],Je.hasOwnProperty(e)){var n=Je[e];delete Je[e],n.forEach((function(e){e()}))}}function vt(e,t,i,r,n){var s=ct(i);yt(e,{name:t=ft(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:n},argPackAdvance:8,readValueFromPointer:function(e){var r;if(1===i)r=U;else if(2===i)r=B;else{if(4!==i)throw new TypeError("Unknown boolean type size: "+t);r=G}return this.fromWireType(r[e>>>s])},destructorFunction:null})}function Tt(e){if(!(this instanceof Lt&&e instanceof Lt))return!1;for(var t=this.$$.ptrType.registeredClass,i=this.$$.ptr,r=e.$$.ptrType.registeredClass,n=e.$$.ptr;t.baseClass;)i=t.upcast(i),t=t.baseClass;for(;r.baseClass;)n=r.upcast(n),r=r.baseClass;return t===r&&i===n}function xt(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function bt(e){gt(e.$$.ptrType.registeredClass.name+" instance already deleted")}var _t=!1;function Et(e){}function wt(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function St(e){e.count.value-=1,0===e.count.value&&wt(e)}function It(e){return"undefined"==typeof FinalizationGroup?(It=function(e){return e},e):(_t=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var i=t.value;i.ptr?St(i):console.warn("object already deleted: "+i.ptr)}})),Et=function(e){_t.unregister(e.$$)},(It=function(e){return _t.register(e,e.$$,e.$$),e})(e))}function Mt(){if(this.$$.ptr||bt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=It(Object.create(Object.getPrototypeOf(this),{$$:{value:xt(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function At(){this.$$.ptr||bt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&>("Object already scheduled for deletion"),Et(this),St(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Dt(){return!this.$$.ptr}var Ot=void 0,Rt=[];function Ct(){for(;Rt.length;){var e=Rt.pop();e.$$.deleteScheduled=!1,e.delete()}}function Nt(){return this.$$.ptr||bt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&>("Object already scheduled for deletion"),Rt.push(this),1===Rt.length&&Ot&&Ot(Ct),this.$$.deleteScheduled=!0,this}function Pt(){Lt.prototype.isAliasOf=Tt,Lt.prototype.clone=Mt,Lt.prototype.delete=At,Lt.prototype.isDeleted=Dt,Lt.prototype.deleteLater=Nt}function Lt(){}var Ft={};function Ut(e,t,i){if(void 0===e[t].overloadTable){var r=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||gt("Function '"+i+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}}function kt(e,t,i){n.hasOwnProperty(e)?((void 0===i||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[i])&>("Cannot register public name '"+e+"' twice"),Ut(n,e,e),n.hasOwnProperty(i)&>("Cannot register multiple overloads of a function with the same number of arguments ("+i+")!"),n[e].overloadTable[i]=t):(n[e]=t,void 0!==i&&(n[e].numArguments=i))}function Bt(e,t,i,r,n,s,a,o){this.name=e,this.constructor=t,this.instancePrototype=i,this.rawDestructor=r,this.baseClass=n,this.getActualType=s,this.upcast=a,this.downcast=o,this.pureVirtualFunctions=[]}function Ht(e,t,i){for(;t!==i;)t.upcast||gt("Expected null or instance of "+i.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Gt(e,t){if(null===t)return this.isReference&>("null is not a valid "+this.name),0;t.$$||gt('Cannot pass "'+Si(t)+'" as a '+this.name),t.$$.ptr||gt("Cannot pass deleted object as a pointer of type "+this.name);var i=t.$$.ptrType.registeredClass;return Ht(t.$$.ptr,i,this.registeredClass)}function zt(e,t){var i;if(null===t)return this.isReference&>("null is not a valid "+this.name),this.isSmartPointer?(i=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,i),i):0;t.$$||gt('Cannot pass "'+Si(t)+'" as a '+this.name),t.$$.ptr||gt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&>("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;if(i=Ht(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&>("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?i=t.$$.smartPtr:gt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:i=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)i=t.$$.smartPtr;else{var n=t.clone();i=this.rawShare(i,Ei((function(){n.delete()}))),null!==e&&e.push(this.rawDestructor,i)}break;default:gt("Unsupporting sharing policy")}return i}function Vt(e,t){if(null===t)return this.isReference&>("null is not a valid "+this.name),0;t.$$||gt('Cannot pass "'+Si(t)+'" as a '+this.name),t.$$.ptr||gt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&>("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var i=t.$$.ptrType.registeredClass;return Ht(t.$$.ptr,i,this.registeredClass)}function jt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Wt(e){this.rawDestructor&&this.rawDestructor(e)}function Yt(e){null!==e&&e.delete()}function Xt(e,t,i){if(t===i)return e;if(void 0===i.baseClass)return null;var r=Xt(e,t,i.baseClass);return null===r?null:i.downcast(r)}function qt(){return Object.keys($t).length}function Zt(){var e=[];for(var t in $t)$t.hasOwnProperty(t)&&e.push($t[t]);return e}function Kt(e){Ot=e,Rt.length&&Ot&&Ot(Ct)}function Jt(){n.getInheritedInstanceCount=qt,n.getLiveInheritedInstances=Zt,n.flushPendingDeletes=Ct,n.setDelayFunction=Kt}var $t={};function Qt(e,t){for(void 0===t&>("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function ei(e,t){return t=Qt(e,t),$t[t]}function ti(e,t){return(!t.ptrType||!t.ptr)&&at("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&at("Both smartPtrType and smartPtr must be specified"),t.count={value:1},It(Object.create(e,{$$:{value:t}}))}function ii(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var i=ei(this.registeredClass,t);if(void 0!==i){if(0===i.$$.count.value)return i.$$.ptr=t,i.$$.smartPtr=e,i.clone();var r=i.clone();return this.destructor(e),r}function n(){return this.isSmartPointer?ti(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ti(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var s,a=this.registeredClass.getActualType(t),o=Ft[a];if(!o)return n.call(this);s=this.isConst?o.constPointerType:o.pointerType;var l=Xt(t,this.registeredClass,s.registeredClass);return null===l?n.call(this):this.isSmartPointer?ti(s.registeredClass.instancePrototype,{ptrType:s,ptr:l,smartPtrType:this,smartPtr:e}):ti(s.registeredClass.instancePrototype,{ptrType:s,ptr:l})}function ri(){ni.prototype.getPointee=jt,ni.prototype.destructor=Wt,ni.prototype.argPackAdvance=8,ni.prototype.readValueFromPointer=Ke,ni.prototype.deleteObject=Yt,ni.prototype.fromWireType=ii}function ni(e,t,i,r,n,s,a,o,l,h,u){this.name=e,this.registeredClass=t,this.isReference=i,this.isConst=r,this.isSmartPointer=n,this.pointeeType=s,this.sharingPolicy=a,this.rawGetPointee=o,this.rawConstructor=l,this.rawShare=h,this.rawDestructor=u,n||void 0!==t.baseClass?this.toWireType=zt:r?(this.toWireType=Gt,this.destructorFunction=null):(this.toWireType=Vt,this.destructorFunction=null)}function si(e,t,i){n.hasOwnProperty(e)||at("Replacing nonexistant public symbol"),void 0!==n[e].overloadTable&&void 0!==i?n[e].overloadTable[i]=t:(n[e]=t,n[e].argCount=i)}function ai(e,t){D(e.indexOf("j")>=0,"getDynCaller should only be called with i64 sigs");var i=[];return function(){i.length=arguments.length;for(var r=0;r>2)+r>>>0]);return i}function di(e,t,i,r,n,s){D(t>0);var a=pi(t,i);n=oi(r,n);var o=[s],l=[];ot([],[e],(function(e){var i="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new mt("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){ui("Cannot construct "+e.name+" due to unbound types",a)},ot([],a,(function(r){return e.registeredClass.constructor_body[t-1]=function(){arguments.length!==t-1&>(i+" called with "+arguments.length+" arguments, expected "+(t-1)),l.length=0,o.length=t;for(var e=1;e0?", ":"")+c),p+=(h?"var rv = ":"")+"invoker(fn"+(c.length>0?", ":"")+c+");\n",o)p+="runDestructors(destructors);\n";else for(l=a?1:2;l4&&0==--vi[e].refcount&&(vi[e]=void 0,yi.push(e))}function xi(){for(var e=0,t=5;t>>2])};case 3:return function(e){return this.fromWireType(j[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Mi(e,t,i){var r=ct(i);yt(e,{name:t=ft(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+Si(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Ii(t,r),destructorFunction:null})}function Ai(e,t,i,r,n,s){var a=pi(t,i);e=ft(e),n=oi(r,n),kt(e,(function(){ui("Cannot call "+e+" due to unbound types",a)}),t-1),ot([],a,(function(i){var r=[i[0],null].concat(i.slice(1));return si(e,mi(e,r,null,n,s),t-1),[]}))}function Di(e,t,i){switch(t){case 0:return i?function(e){return U[e>>>0]}:function(e){return k[e>>>0]};case 1:return i?function(e){return B[e>>>1]}:function(e){return H[e>>>1]};case 2:return i?function(e){return G[e>>>2]}:function(e){return z[e>>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function Oi(e,t,i,r,n){t=ft(t),-1===n&&(n=4294967295);var s=ct(i),a=function(e){return e};if(0===r){var o=32-8*i;a=function(e){return e<>>o}}var l=-1!=t.indexOf("unsigned");yt(e,{name:t,fromWireType:a,toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+Si(i)+'" to '+this.name);if(in)throw new TypeError('Passing a number "'+Si(i)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+r+", "+n+"]!");return l?i>>>0:0|i},argPackAdvance:8,readValueFromPointer:Di(t,s,0!==r),destructorFunction:null})}function Ri(e,t,i){var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function n(e){var t=z,i=t[(e>>=2)>>>0],n=t[e+1>>>0];return new r(F,n,i)}yt(e,{name:i=ft(i),fromWireType:n,argPackAdvance:8,readValueFromPointer:n},{ignoreDuplicateRegistrations:!0})}function Ci(e,t){var i="std::string"===(t=ft(t));yt(e,{name:t,fromWireType:function(e){var t,r=z[e>>>2];if(i)for(var n=e+4,s=0;s<=r;++s){var a=e+4+s;if(s==r||0==k[a>>>0]){var o=C(n,a-n);void 0===t?t=o:(t+=String.fromCharCode(0),t+=o),n=a+1}}else{var l=new Array(r);for(s=0;s>>0]);t=l.join("")}return Br(e),t},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r="string"==typeof t;r||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||gt("Cannot pass non-string to std::string");var n=(i&&r?function(){return L(t)}:function(){return t.length})(),s=Fr(4+n+1);if(z[(s>>>=0)>>>2]=n,i&&r)P(t,s+4,n+1);else if(r)for(var a=0;a255&&(Br(s),gt("String has UTF-16 code units that do not fit in 8 bits")),k[s+4+a>>>0]=o}else for(a=0;a>>0]=t[a];return null!==e&&e.push(Br,s),s},argPackAdvance:8,readValueFromPointer:Ke,destructorFunction:function(e){Br(e)}})}function Ni(e,t,i){var r,n,s,a,o;i=ft(i),2===t?(r=Y,n=X,a=q,s=function(){return H},o=1):4===t&&(r=Z,n=K,a=J,s=function(){return z},o=2),yt(e,{name:i,fromWireType:function(e){for(var i,n=z[e>>>2],a=s(),l=e+4,h=0;h<=n;++h){var u=e+4+h*t;if(h==n||0==a[u>>>o]){var c=r(l,u-l);void 0===i?i=c:(i+=String.fromCharCode(0),i+=c),l=u+t}}return Br(e),i},toWireType:function(e,r){"string"!=typeof r&>("Cannot pass non-string to C++ string type "+i);var s=a(r),l=Fr(4+s+t);return z[(l>>>=0)>>>2]=s>>o,n(r,l+4,s+t),null!==e&&e.push(Br,l),l},argPackAdvance:8,readValueFromPointer:Ke,destructorFunction:function(e){Br(e)}})}function Pi(e,t,i,r,n,s){qe[e]={name:ft(t),rawConstructor:oi(i,r),rawDestructor:oi(n,s),elements:[]}}function Li(e,t,i,r,n,s,a,o,l){qe[e].elements.push({getterReturnType:t,getter:oi(i,r),getterContext:n,setterArgumentType:s,setter:oi(a,o),setterContext:l})}function Fi(e,t,i,r,n,s){ht[e]={name:ft(t),rawConstructor:oi(i,r),rawDestructor:oi(n,s),fields:[]}}function Ui(e,t,i,r,n,s,a,o,l,h){ht[e].fields.push({fieldName:ft(t),getterReturnType:i,getter:oi(r,n),getterContext:s,setterArgumentType:a,setter:oi(o,l),setterContext:h})}function ki(e,t){yt(e,{isVoid:!0,name:t=ft(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})}function Bi(e){return e||gt("Cannot use deleted val. handle = "+e),vi[e].value}function Hi(e,t){var i=$e[e];return void 0===i&>(t+" has unknown type "+hi(e)),i}function Gi(e,t,i){e=Bi(e),t=Hi(t,"emval::as");var r=[],n=Ei(r);return G[i>>>2]=n,t.toWireType(r,e)}function zi(e,t){for(var i=new Array(e),r=0;r>2)+r>>>0],"parameter "+r);return i}function Vi(e,t,i,r){e=Bi(e);for(var n=zi(t,i),s=new Array(t),a=0;a4&&(vi[e].refcount+=1)}function Ji(e,t){return(e=Bi(e))instanceof(t=Bi(t))}function $i(e){return"number"==typeof(e=Bi(e))}function Qi(){return Ei([])}function er(e){return Ei(Yi(e))}function tr(){return Ei({})}function ir(e){Ze(vi[e].value),Ti(e)}function rr(e,t,i){e=Bi(e),t=Bi(t),i=Bi(i),e[t]=i}function nr(e,t){return Ei((e=Hi(e,"_emval_take_value")).readValueFromPointer(t))}function sr(){xe()}ji=p?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var ar=!0;function or(e,t){var i;if(0===e)i=Date.now();else{if(1!==e&&4!==e||!ar)return Fe(28),-1;i=ji()}return G[t>>>2]=i/1e3|0,G[t+4>>>2]=i%1e3*1e3*1e3|0,0}function lr(e,t,i){k.copyWithin(e>>>0,t>>>0,t+i>>>0)}function hr(){return k.length}function ur(e){try{return M.grow(e-F.byteLength+65535>>>16),te(M.buffer),1}catch(e){}}function cr(e){e>>>=0;var t=hr(),i=4294967296;if(e>i)return!1;for(var r=1;r<=4;r*=2){var n=t*(1+.2/r);if(n=Math.min(n,e+100663296),ur(Math.min(i,ee(Math.max(16777216,e,n),65536))))return!0}return!1}var pr={};function dr(){return l||"./this.program"}function fr(){if(!fr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:dr()};for(var t in pr)e[t]=pr[t];var i=[];for(var t in e)i.push(t+"="+e[t]);fr.strings=i}return fr.strings}function mr(e,t){try{var i=0;return fr().forEach((function(r,n){var s=t+i;G[e+4*n>>>2]=s,Q(r,s),i+=r.length+1})),0}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),e.errno}}function gr(e,t){try{var i=fr();G[e>>>2]=i.length;var r=0;return i.forEach((function(e){r+=e.length+1})),G[t>>>2]=r,0}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),e.errno}}function yr(e){try{var t=je.getStreamFromFD(e);return Ve.close(t),0}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),e.errno}}function vr(e,t,i,r){try{var n=je.getStreamFromFD(e),s=je.doReadv(n,t,i);return G[r>>>2]=s,0}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),e.errno}}function Tr(e,t,i,r,n){try{var s=je.getStreamFromFD(e),a=4294967296*i+(t>>>0),o=9007199254740992;return a<=-o||a>=o?-61:(Ve.llseek(s,a,r),Me=[s.position>>>0,(Ie=s.position,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],G[n>>>2]=Me[0],G[n+4>>>2]=Me[1],s.getdents&&0===a&&0===r&&(s.getdents=null),0)}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),e.errno}}function xr(e,t,i,r){try{var n=je.getStreamFromFD(e),s=je.doWritev(n,t,i);return G[r>>>2]=s,0}catch(e){return(void 0===Ve||!(e instanceof Ve.ErrnoError))&&xe(e),e.errno}}function br(e){I(0|e)}function _r(e){return e%4==0&&(e%100!=0||e%400==0)}function Er(e,t){for(var i=0,r=0;r<=t;i+=e[r++]);return i}var wr=[31,29,31,30,31,30,31,31,30,31,30,31],Sr=[31,28,31,30,31,30,31,31,30,31,30,31];function Ir(e,t){for(var i=new Date(e.getTime());t>0;){var r=_r(i.getFullYear()),n=i.getMonth(),s=(r?wr:Sr)[n];if(!(t>s-i.getDate()))return i.setDate(i.getDate()+t),i;t-=s-i.getDate()+1,i.setDate(1),n<11?i.setMonth(n+1):(i.setMonth(0),i.setFullYear(i.getFullYear()+1))}return i}function Mr(e,t,i,r){var n=G[r+40>>>2],s={tm_sec:G[r>>>2],tm_min:G[r+4>>>2],tm_hour:G[r+8>>>2],tm_mday:G[r+12>>>2],tm_mon:G[r+16>>>2],tm_year:G[r+20>>>2],tm_wday:G[r+24>>>2],tm_yday:G[r+28>>>2],tm_isdst:G[r+32>>>2],tm_gmtoff:G[r+36>>>2],tm_zone:n?C(n):""},a=C(i),o={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var l in o)a=a.replace(new RegExp(l,"g"),o[l]);var h=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function c(e,t,i){for(var r="number"==typeof e?e.toString():e||"";r.length0?1:0}var r;return 0===(r=i(e.getFullYear()-t.getFullYear()))&&0===(r=i(e.getMonth()-t.getMonth()))&&(r=i(e.getDate()-t.getDate())),r}function f(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function m(e){var t=Ir(new Date(e.tm_year+1900,0,1),e.tm_yday),i=new Date(t.getFullYear(),0,4),r=new Date(t.getFullYear()+1,0,4),n=f(i),s=f(r);return d(n,t)<=0?d(s,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var g={"%a":function(e){return h[e.tm_wday].substring(0,3)},"%A":function(e){return h[e.tm_wday]},"%b":function(e){return u[e.tm_mon].substring(0,3)},"%B":function(e){return u[e.tm_mon]},"%C":function(e){return p((e.tm_year+1900)/100|0,2)},"%d":function(e){return p(e.tm_mday,2)},"%e":function(e){return c(e.tm_mday,2," ")},"%g":function(e){return m(e).toString().substring(2)},"%G":function(e){return m(e)},"%H":function(e){return p(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),p(t,2)},"%j":function(e){return p(e.tm_mday+Er(_r(e.tm_year+1900)?wr:Sr,e.tm_mon-1),3)},"%m":function(e){return p(e.tm_mon+1,2)},"%M":function(e){return p(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return p(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=new Date(e.tm_year+1900,0,1),i=0===t.getDay()?t:Ir(t,7-t.getDay()),r=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(d(i,r)<0){var n=Er(_r(r.getFullYear())?wr:Sr,r.getMonth()-1)-31,s=31-i.getDate()+n+r.getDate();return p(Math.ceil(s/7),2)}return 0===d(i,t)?"01":"00"},"%V":function(e){var t,i=new Date(e.tm_year+1900,0,4),r=new Date(e.tm_year+1901,0,4),n=f(i),s=f(r),a=Ir(new Date(e.tm_year+1900,0,1),e.tm_yday);return d(a,n)<0?"53":d(s,a)<=0?"01":(t=n.getFullYear()=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(i?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var l in g)a.indexOf(l)>=0&&(a=a.replace(new RegExp(l,"g"),g[l](s)));var y=Cr(a,!1);return y.length>t?0:($(y,e),y.length-1)}function Ar(e,t,i,r){return Mr(e,t,i,r)}var Dr=function(e,t,i,r){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ve.nextInode++,this.name=t,this.mode=i,this.node_ops={},this.stream_ops={},this.rdev=r},Or=365,Rr=146;function Cr(e,t,i){var r=i>0?i:L(e)+1,n=new Array(r),s=N(e,n,0,n.length);return t&&(n.length=s),n}Object.defineProperties(Dr.prototype,{read:{get:function(){return(this.mode&Or)===Or},set:function(e){e?this.mode|=Or:this.mode&=~Or}},write:{get:function(){return(this.mode&Rr)===Rr},set:function(e){e?this.mode|=Rr:this.mode&=~Rr}},isFolder:{get:function(){return Ve.isDir(this.mode)}},isDevice:{get:function(){return Ve.isChrdev(this.mode)}}}),Ve.FSNode=Dr,Ve.staticInit(),n.FS_createPath=Ve.createPath,n.FS_createDataFile=Ve.createDataFile,n.FS_createPreloadedFile=Ve.createPreloadedFile,n.FS_createLazyFile=Ve.createLazyFile,n.FS_createDevice=Ve.createDevice,n.FS_unlink=Ve.unlink,st=n.InternalError=nt(Error,"InternalError"),pt(),mt=n.BindingError=nt(Error,"BindingError"),Pt(),ri(),Jt(),li=n.UnboundTypeError=nt(Error,"UnboundTypeError"),_i(),se.push({func:function(){Lr()}});var Nr,Pr={x:Le,A:We,P:Ye,Q:Xe,U:lt,s:ut,S:vt,v:ci,u:di,d:gi,R:wi,C:Mi,h:Ai,m:Oi,k:Ri,D:Ci,w:Ni,V:Pi,g:Li,t:Fi,j:Ui,T:ki,q:Gi,W:Vi,b:Ti,F:qi,n:Zi,l:Ki,N:Ji,E:$i,y:Qi,f:er,r:tr,p:ir,i:rr,e:nr,c:sr,M:or,I:lr,o:cr,K:mr,L:gr,B:yr,O:vr,G:Tr,z:xr,a:M,H:br,J:Ar},Lr=(Re(),n.___wasm_call_ctors=function(){return(Lr=n.___wasm_call_ctors=n.asm.Y).apply(null,arguments)}),Fr=(n._main=function(){return(n._main=n.asm.Z).apply(null,arguments)},n._malloc=function(){return(Fr=n._malloc=n.asm._).apply(null,arguments)}),Ur=n.___getTypeName=function(){return(Ur=n.___getTypeName=n.asm.$).apply(null,arguments)},kr=(n.___embind_register_native_and_builtin_types=function(){return(n.___embind_register_native_and_builtin_types=n.asm.aa).apply(null,arguments)},n.___errno_location=function(){return(kr=n.___errno_location=n.asm.ba).apply(null,arguments)}),Br=n._free=function(){return(Br=n._free=n.asm.ca).apply(null,arguments)};function Hr(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Gr(e){var t=n._main;try{Vr(t(0,0),!0)}catch(e){if(e instanceof Hr)return;if("unwind"==e)return void(S=!0);var i=e;e&&"object"==typeof e&&e.stack&&(i=[e,e.stack]),b("exception thrown: "+i),h(1,e)}}function zr(e){function i(){Nr||(Nr=!0,n.calledRun=!0,!A&&(he(),ue(),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),jr&&Gr(),pe()))}e=e||o,me>0||(le(),me>0)||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),i()}),1)):i())}function Vr(e,t){t&&S&&0===e||(S||(ce(),n.onExit&&n.onExit(e),A=!0),h(e,new Hr(e)))}if(n.dynCall_jiji=function(){return(n.dynCall_jiji=n.asm.da).apply(null,arguments)},n.dynCall_viijii=function(){return(n.dynCall_viijii=n.asm.ea).apply(null,arguments)},n.dynCall_iiiiiijj=function(){return(n.dynCall_iiiiiijj=n.asm.fa).apply(null,arguments)},n.dynCall_iiiiij=function(){return(n.dynCall_iiiiij=n.asm.ga).apply(null,arguments)},n.dynCall_iiiiijj=function(){return(n.dynCall_iiiiijj=n.asm.ha).apply(null,arguments)},n.addRunDependency=ve,n.removeRunDependency=Te,n.FS_createPath=Ve.createPath,n.FS_createDataFile=Ve.createDataFile,n.FS_createPreloadedFile=Ve.createPreloadedFile,n.FS_createLazyFile=Ve.createLazyFile,n.FS_createDevice=Ve.createDevice,n.FS_unlink=Ve.unlink,n.FS=Ve,ye=function e(){Nr||zr(),Nr||(ye=e)},n.run=zr,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();var jr=!0;return n.noInitialRun&&(jr=!1),S=!0,zr(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=r:"function"==typeof define&&define.amd?define([],(function(){return r})):"object"==typeof e&&(e.WebIFCWasm=r)}}),iEt=3821786052,nEt=2296667514,sEt=3630933823,aEt=4288193352,oEt=2874132201,lEt=618182010,cEt=1635779807,uEt=2603310189,hEt=3406155212,pEt=1634111441,dEt=177149247,fEt=1411407467,mEt=3352864051,gEt=2056796094,vEt=1871374353,yEt=3087945054,TEt=3001207471,EEt=325726236,bEt=749761778,xEt=3199563722,IEt=2483840362,_Et=3379348081,SEt=3239324667,wEt=4263986512,REt=53199957,MEt=2029264950,DEt=3512275521,CEt=1674181508,AEt=669184980,OEt=639542469,PEt=411424972,NEt=130549933,LEt=3869604511,FEt=3798115385,HEt=1310608509,UEt=2705031697,BEt=3460190687,kEt=3207858831,GEt=277319702,VEt=1532957894,zEt=4261334040,jEt=3125803723,WEt=2740243338,qEt=1967976161,YEt=2461110595,XEt=2887950389,$Et=167062518,KEt=753842376,ZEt=2906023776,JEt=819618141,QEt=4196446775,e1t=3649138523,t1t=616511568,r1t=1334484129,i1t=32344328,n1t=231477066,s1t=3649129432,a1t=2736907675,o1t=4037036970,l1t=1136057603,c1t=1560379544,u1t=3367102660,h1t=1387855156,p1t=2069777674,d1t=1260505505,f1t=4182860854,m1t=2581212453,g1t=2713105998,v1t=644574406,y1t=963979645,T1t=4031249490,E1t=3299480353,b1t=2979338954,x1t=39481116,I1t=1095909175,_1t=1909888760,S1t=1950629157,w1t=3124254112,R1t=1177604601,M1t=2938176219,D1t=2188180465,C1t=2898889636,A1t=635142910,O1t=395041908,P1t=3758799889,N1t=3293546465,L1t=1051757585,F1t=2674252688,H1t=4217484030,U1t=1285652485,B1t=3999819293,k1t=3203706013,G1t=1123145078,V1t=574549367,z1t=1675464909,j1t=2059837836,W1t=59481748,q1t=3749851601,Y1t=3486308946,X1t=3331915920,$1t=1416205885,K1t=3150382593,Z1t=3902619387,J1t=2951183804,Q1t=3296154744,ebt=2197970202,tbt=2611217952,rbt=2937912522,ibt=1383045692,nbt=1062206242,sbt=1677625105,abt=3893394355,obt=747523909,lbt=647927063,cbt=2205249479,ubt=639361253,hbt=2301859152,pbt=776857604,dbt=3285139300,fbt=3264961684,mbt=843113511,gbt=905975707,vbt=300633059,ybt=3221913625,Tbt=400855858,Ebt=2542286263,bbt=3875453745,xbt=3732776249,Ibt=15328376,_bt=2485617015,Sbt=1485152156,wbt=3571504051,Rbt=3850581409,Mbt=2272882330,Dbt=2816379211,Cbt=2510884976,Abt=370225590,Obt=1981873012,Pbt=2859738748,Nbt=45288368,Lbt=2614616156,Fbt=2732653382,Hbt=775493141,Ubt=1959218052,Bbt=3898045240,kbt=2185764099,Gbt=1060000209,Vbt=4105962743,zbt=488727124,jbt=1525564444,Wbt=2559216714,qbt=2574617495,Ybt=3419103109,Xbt=3050246964,$bt=3293443760,Kbt=25142252,Zbt=578613899,Jbt=2889183280,Qbt=2713554722,ext=4136498852,txt=335055490,rxt=3640358203,ixt=2954562838,nxt=1785450214,sxt=1466758467,axt=3895139033,oxt=1419761937,lxt=602808272,cxt=1973544240,uxt=1916426348,hxt=3295246426,pxt=1815067380,dxt=2506170314,fxt=2147822146,mxt=539742890,gxt=3495092785,vxt=1457835157,yxt=2601014836,Txt=2827736869,Ext=2629017746,bxt=1186437898,xxt=3800577675,Ixt=1105321065,_xt=2367409068,Sxt=3510044353,wxt=1213902940,Rxt=4074379575,Mxt=3961806047,Dxt=3426335179,Cxt=1306400036,Axt=3632507154,Oxt=1765591967,Pxt=1045800335,Nxt=2949456006,Lxt=32440307,Fxt=1335981549,Hxt=2635815018,Uxt=1945343521,Bxt=1052013943,kxt=1599208980,Gxt=562808652,Vxt=1062813311,zxt=2063403501,jxt=1945004755,Wxt=3256556792,qxt=3040386961,Yxt=3849074793,Xxt=3041715199,$xt=3205830791,Kxt=1154170062,Zxt=770865208,Jxt=3732053477,Qxt=395920057,eIt=2963535650,tIt=1714330368,rIt=3242481149,iIt=526551008,nIt=2323601079,sIt=445594917,aIt=4006246654,oIt=342316401,lIt=869906466,cIt=3518393246,uIt=3760055223,hIt=1360408905,pIt=2030761528,dIt=3900360178,fIt=476780140,mIt=1472233963,gIt=1904799276,vIt=663422040,yIt=862014818,TIt=2417008758,EIt=3310460725,bIt=3277789161,xIt=264262732,IIt=1534661035,_It=402227799,SIt=1217240411,wIt=1003880860,RIt=712377611,MIt=1758889154,DIt=4123344466,CIt=2397081782,AIt=1623761950,OIt=2590856083,PIt=1883228015,NIt=339256511,LIt=2777663545,FIt=1704287377,HIt=2835456948,UIt=1658829314,BIt=2107101300,kIt=2814081492,GIt=132023988,VIt=3747195512,zIt=3174744832,jIt=484807127,WIt=3390157468,qIt=4148101412,YIt=211053100,XIt=4024345920,$It=297599258,KIt=4294318154,ZIt=3200245327,JIt=1437805879,QIt=1209101575,e_t=2853485674,t_t=2242383968,r_t=1040185647,i_t=3548104201,n_t=477187591,s_t=2804161546,a_t=2556980723,o_t=2047409740,l_t=1809719519,c_t=803316827,u_t=3008276851,h_t=807026263,p_t=3737207727,d_t=24185140,f_t=1310830890,m_t=4219587988,g_t=3415622556,v_t=346874300,y_t=647756555,T_t=2489546625,E_t=2827207264,b_t=2143335405,x_t=1287392070,I_t=738692330,__t=374418227,S_t=315944413,w_t=819412036,R_t=1810631287,M_t=1426591983,D_t=4222183408,C_t=2652556860,A_t=2058353004,O_t=3907093117,P_t=4278956645,N_t=3198132628,L_t=182646315,F_t=4037862832,H_t=2188021234,U_t=3815607619,B_t=3132237377,k_t=1482959167,G_t=987401354,V_t=1834744321,z_t=707683696,j_t=1339347760,W_t=2223149337,q_t=2297155007,Y_t=3508470533,X_t=3009222698,$_t=900683007,K_t=1893162501,Z_t=263784265,J_t=4238390223,Q_t=1509553395,eSt=1268542332,tSt=3493046030,rSt=4095422895,iSt=987898635,nSt=3448662350,sSt=2453401579,aSt=4142052618,oSt=3590301190,lSt=3009204131,cSt=852622518,uSt=178086475,hSt=2706460486,pSt=812098782,dSt=3319311131,fSt=1251058090,mSt=2068733104,gSt=1806887404,vSt=1484403080,ySt=3905492369,TSt=3570813810,ESt=2571569899,bSt=178912537,xSt=2294589976,ISt=1437953363,_St=2133299955,SSt=4175244083,wSt=3946677679,RSt=3113134337,MSt=2391368822,DSt=3741457305,CSt=3020489413,ASt=2176052936,OSt=4288270099,PSt=572779678,NSt=3827777499,LSt=428585644,FSt=1585845231,HSt=76236018,USt=1051575348,BSt=2655187982,kSt=3452421091,GSt=4162380809,VSt=629592764,zSt=1161773419,jSt=1566485204,WSt=1402838566,qSt=125510826,YSt=2604431987,XSt=4266656042,$St=1520743889,KSt=3422422726,ZSt=1281925730,JSt=3092502836,QSt=388784114,ewt=1154579445,twt=2624227202,rwt=1008929658,iwt=1425443689,nwt=3057273783,swt=2347385850,awt=1838606355,owt=1847130766,lwt=3708119e3,cwt=2852063980,uwt=760658860,hwt=2022407955,pwt=248100487,dwt=3303938423,fwt=1303795690,mwt=1847252529,gwt=2199411900,vwt=2235152071,ywt=164193824,Twt=3079605661,Ewt=3404854881,bwt=552965576,xwt=3265635763,Iwt=853536259,_wt=1507914824,Swt=2597039031,wwt=377706215,Rwt=2108223431,Mwt=1437502449,Dwt=1114901282,Cwt=1073191201,Awt=1911478936,Owt=3181161470,Pwt=3368373690,Nwt=2998442950,Lwt=2706619895,Fwt=2474470126,Hwt=977012517,Uwt=1918398963,Bwt=3888040117,kwt=219451334,Gwt=3701648758,Vwt=2251480897,zwt=4143007308,jwt=590820931,Wwt=3388369263,qwt=3505215534,Ywt=2485787929,Xwt=2665983363,$wt=3588315303,Kwt=3079942009,Zwt=4251960020,Jwt=1411181986,Qwt=643959842,eRt=1029017970,tRt=144952367,rRt=3694346114,iRt=2837617999,nRt=1207048766,sRt=2529465313,aRt=2519244187,oRt=1682466193,lRt=2382730787,cRt=3566463478,uRt=3327091369,hRt=2077209135,pRt=101040310,dRt=3021840470,fRt=2483315170,mRt=2226359599,gRt=1687234759,vRt=1158309216,yRt=310824031,TRt=804291784,ERt=3612865200,bRt=4231323485,xRt=597895409,IRt=2004835150,_Rt=603570806,SRt=1663979128,wRt=220341763,RRt=3171933400,MRt=1156407060,DRt=4017108033,CRt=2067069095,ARt=4022376103,ORt=1423911732,PRt=2924175390,NRt=2775532180,LRt=2839578677,FRt=3724593414,HRt=3740093272,URt=1946335990,BRt=3355820592,kRt=759155922,GRt=2559016684,VRt=3727388367,zRt=3778827333,jRt=3967405729,WRt=1775413392,qRt=677532197,YRt=2022622350,XRt=1304840413,$Rt=3119450353,KRt=2417041796,ZRt=2744685151,JRt=569719735,QRt=2945172077,eMt=4208778838,tMt=673634403,rMt=2095639259,iMt=3958567839,nMt=2802850158,pA=103090709,sMt=653396225,aMt=2904328755,oMt=3843373140,lMt=3651124850,cMt=2598011224,uMt=986844984,hMt=871118103,pMt=1680319473,dMt=148025276,fMt=4166981789,mMt=3710013099,gMt=2752243245,vMt=941946838,yMt=1451395588,TMt=3357820518,EMt=492091185,bMt=3650150729,xMt=110355661,IMt=3521284610,_Mt=1482703590,SMt=738039164,wMt=2295281155,RMt=655969474,MMt=1842657554,DMt=3219374653,CMt=90941305,AMt=2250791053,OMt=2044713172,PMt=2093928680,NMt=931644368,LMt=2090586900,FMt=3252649465,HMt=2405470396,UMt=825690147,BMt=2262370178,kMt=2893384427,GMt=3024970846,VMt=3283111854,zMt=2324767716,jMt=1469900589,WMt=1232101972,qMt=683857671,YMt=2770003689,XMt=3615266464,$Mt=2798486643,KMt=3454111270,ZMt=3915482550,JMt=2433181523,QMt=4021432810,eDt=3413951693,tDt=1580146022,rDt=3765753017,iDt=979691226,nDt=2572171363,sDt=3027567501,aDt=964333572,oDt=2320036040,lDt=2310774935,zk=160246688,cDt=3939117080,uDt=1683148259,hDt=2495723537,pDt=1307041759,dDt=1027710054,fDt=4278684876,mDt=2857406711,gDt=205026976,vDt=1865459582,yDt=4095574036,TDt=919958153,EDt=2728634034,bDt=982818633,xDt=3840914261,jk=2655215786,IDt=826625072,_Dt=1204542856,SDt=3945020480,wDt=4201705270,RDt=3190031847,MDt=2127690289,DDt=1638771189,CDt=504942748,ADt=3678494232,Wk=3242617779,ODt=886880790,PDt=2802773753,NDt=2565941209,LDt=2551354335,FDt=693640335,HDt=1462361463,qk=4186316022,UDt=307848117,Yk=781010003,BDt=3940055652,kDt=279856033,GDt=427948657,VDt=3268803585,zDt=1441486842,jDt=750771296,WDt=1245217292,qDt=4122056220,YDt=366585022,XDt=3451746338,$Dt=3523091289,KDt=1521410863,ZDt=1401173127,JDt=478536968,QDt=816062949,eCt=1076942058,tCt=3377609919,rCt=3008791417,iCt=1660063152,nCt=2914609552,sCt=2943643501,aCt=1608871552,oCt=2439245199,lCt=1042787934,cCt=1856042241,uCt=3243963512,hCt=4158566097,pCt=3626867408,dCt=2016517767,fCt=2781568857,mCt=2341007311,gCt=2778083089,vCt=448429030,yCt=3053780830,TCt=1768891740,ECt=1054537805,bCt=2157484638,xCt=2042790032,ICt=4165799628,_Ct=1862484736,SCt=1290935644,wCt=1509187699,RCt=4086658281,MCt=1783015770,DCt=1329646415,CCt=4074543187,ACt=867548509,OCt=3982875396,PCt=4240577450,NCt=4124623270,LCt=3692461612,FCt=3663146110,HCt=4097777520,UCt=1529196076,BCt=3127900445,kCt=3027962421,GCt=2533589738,VCt=2609359061,zCt=3420628829,jCt=1072016465,WCt=723233188,qCt=3856911033,YCt=1999602285,XCt=1305183839,$Ct=3812236995,KCt=1412071761,ZCt=710998568,JCt=2706606064,QCt=3893378262,eAt=463610769,tAt=2481509218,rAt=451544542,iAt=4015995234,nAt=1404847402,sAt=3112655638,aAt=331165859,oAt=4252922144,lAt=1039846685,cAt=338393293,uAt=682877961,hAt=3544373492,pAt=2515109513,dAt=1179482911,fAt=2273995522,mAt=1004757350,gAt=4243806635,vAt=214636428,yAt=2445595289,TAt=2757150158,EAt=3136571912,bAt=1807405624,xAt=2162789131,IAt=385403989,_At=3478079324,SAt=1252848954,wAt=1595516126,RAt=609421318,MAt=2668620305,DAt=2473145415,CAt=1973038258,AAt=1597423693,OAt=1190533807,PAt=2525727697,NAt=3408363356,LAt=530289379,FAt=1621171031,HAt=2082059205,UAt=734778138,BAt=1235345126,kAt=3689010777,GAt=2986769608,VAt=3657597509,zAt=1975003073,jAt=3979015343,WAt=2218152070,qAt=603775116,YAt=2830218821,XAt=3958052878,$At=3049322572,KAt=148013059,ZAt=4095615324,JAt=2233826070,QAt=2513912981,eOt=699246055,tOt=2028607225,rOt=3101698114,iOt=2809605785,nOt=4124788165,sOt=2934153892,aOt=1300840506,oOt=3303107099,lOt=1607154358,cOt=1878645084,uOt=846575682,hOt=1351298697,pOt=626085974,dOt=2247615214,fOt=1260650574,mOt=1096409881,gOt=230924584,vOt=1162798199,yOt=2315554128,TOt=2254336722,EOt=413509423,bOt=1580310250,xOt=3071757647,IOt=985171141,_Ot=2043862942,SOt=531007025,wOt=812556717,ROt=5716631,MOt=3473067441,DOt=1549132990,COt=2771591690,AOt=3206491090,OOt=912023232,POt=3824725483,NOt=2347447852,LOt=3081323446,FOt=3663046924,HOt=2281632017,UOt=2415094496,BOt=2387106220,kOt=901063453,GOt=4282788508,VOt=3124975700,zOt=1447204868,jOt=1983826977,WOt=2636378356,qOt=1640371178,YOt=280115917,XOt=1742049831,$Ot=2552916305,KOt=1210645708,ZOt=3611470254,JOt=1199560280,QOt=3101149627,e3t=581633288,t3t=1377556343,r3t=1735638870,i3t=1935646853,n3t=3825984169,s3t=1692211062,a3t=2595432518,o3t=1620046519,l3t=2097647324,c3t=2715220739,u3t=2916149573,h3t=1229763772,p3t=3593883385,d3t=3026737570,f3t=1600972822,m3t=1628702193,g3t=3736923433,v3t=2347495698,y3t=3698973494,T3t=427810014,E3t=180925521,b3t=630975310,x3t=3179687236,I3t=4292641817,_3t=1911125066,S3t=4207607924,w3t=728799441,R3t=1417489154,M3t=2799835756,D3t=2759199220,C3t=1907098498,A3t=1530820697,O3t=3956297820,P3t=2391383451,N3t=3313531582,L3t=2769231204,F3t=891718957,H3t=926996030,U3t=2391406946,B3t=4156078855,k3t=3512223829,G3t=1898987631,V3t=4237592921,z3t=1133259667,j3t=3304561284,W3t=336235671,q3t=512836454,Y3t=486154966,X3t=1299126871,$3t=4009809668,K3t=4088093105,Z3t=1028945134,J3t=4218914973,Q3t=3342526732,ePt=1236880293,tPt=2543172580,rPt=1033361043,O={};O[iEt]=e=>rfe.FromTape(e.ID,e.type,e.arguments),O[nEt]=e=>ife.FromTape(e.ID,e.type,e.arguments),O[sEt]=e=>nfe.FromTape(e.ID,e.type,e.arguments),O[aEt]=e=>sfe.FromTape(e.ID,e.type,e.arguments),O[oEt]=e=>afe.FromTape(e.ID,e.type,e.arguments),O[lEt]=e=>ofe.FromTape(e.ID,e.type,e.arguments),O[cEt]=e=>lfe.FromTape(e.ID,e.type,e.arguments),O[uEt]=e=>cfe.FromTape(e.ID,e.type,e.arguments),O[hEt]=e=>ufe.FromTape(e.ID,e.type,e.arguments),O[pEt]=e=>hfe.FromTape(e.ID,e.type,e.arguments),O[dEt]=e=>pfe.FromTape(e.ID,e.type,e.arguments),O[fEt]=e=>dfe.FromTape(e.ID,e.type,e.arguments),O[mEt]=e=>ffe.FromTape(e.ID,e.type,e.arguments),O[gEt]=e=>mfe.FromTape(e.ID,e.type,e.arguments),O[vEt]=e=>gfe.FromTape(e.ID,e.type,e.arguments),O[yEt]=e=>vfe.FromTape(e.ID,e.type,e.arguments),O[TEt]=e=>yfe.FromTape(e.ID,e.type,e.arguments),O[EEt]=e=>Tfe.FromTape(e.ID,e.type,e.arguments),O[bEt]=e=>Efe.FromTape(e.ID,e.type,e.arguments),O[xEt]=e=>bfe.FromTape(e.ID,e.type,e.arguments),O[IEt]=e=>xfe.FromTape(e.ID,e.type,e.arguments),O[_Et]=e=>Ife.FromTape(e.ID,e.type,e.arguments),O[SEt]=e=>_fe.FromTape(e.ID,e.type,e.arguments),O[wEt]=e=>Sfe.FromTape(e.ID,e.type,e.arguments),O[REt]=e=>wfe.FromTape(e.ID,e.type,e.arguments),O[MEt]=e=>Rfe.FromTape(e.ID,e.type,e.arguments),O[DEt]=e=>Mfe.FromTape(e.ID,e.type,e.arguments),O[CEt]=e=>Dfe.FromTape(e.ID,e.type,e.arguments),O[AEt]=e=>Cfe.FromTape(e.ID,e.type,e.arguments),O[OEt]=e=>Afe.FromTape(e.ID,e.type,e.arguments),O[PEt]=e=>Ofe.FromTape(e.ID,e.type,e.arguments),O[NEt]=e=>Pfe.FromTape(e.ID,e.type,e.arguments),O[LEt]=e=>Nfe.FromTape(e.ID,e.type,e.arguments),O[FEt]=e=>Lfe.FromTape(e.ID,e.type,e.arguments),O[HEt]=e=>Ffe.FromTape(e.ID,e.type,e.arguments),O[UEt]=e=>Hfe.FromTape(e.ID,e.type,e.arguments),O[BEt]=e=>Ufe.FromTape(e.ID,e.type,e.arguments),O[kEt]=e=>Bfe.FromTape(e.ID,e.type,e.arguments),O[GEt]=e=>kfe.FromTape(e.ID,e.type,e.arguments),O[VEt]=e=>Gfe.FromTape(e.ID,e.type,e.arguments),O[zEt]=e=>Vfe.FromTape(e.ID,e.type,e.arguments),O[jEt]=e=>zfe.FromTape(e.ID,e.type,e.arguments),O[WEt]=e=>jfe.FromTape(e.ID,e.type,e.arguments),O[qEt]=e=>Wfe.FromTape(e.ID,e.type,e.arguments),O[YEt]=e=>qfe.FromTape(e.ID,e.type,e.arguments),O[XEt]=e=>Yfe.FromTape(e.ID,e.type,e.arguments),O[$Et]=e=>Xfe.FromTape(e.ID,e.type,e.arguments),O[KEt]=e=>$fe.FromTape(e.ID,e.type,e.arguments),O[ZEt]=e=>Kfe.FromTape(e.ID,e.type,e.arguments),O[JEt]=e=>Zfe.FromTape(e.ID,e.type,e.arguments),O[QEt]=e=>Jfe.FromTape(e.ID,e.type,e.arguments),O[e1t]=e=>Qfe.FromTape(e.ID,e.type,e.arguments),O[t1t]=e=>eme.FromTape(e.ID,e.type,e.arguments),O[r1t]=e=>tme.FromTape(e.ID,e.type,e.arguments),O[i1t]=e=>rme.FromTape(e.ID,e.type,e.arguments),O[n1t]=e=>ime.FromTape(e.ID,e.type,e.arguments),O[s1t]=e=>nme.FromTape(e.ID,e.type,e.arguments),O[a1t]=e=>sme.FromTape(e.ID,e.type,e.arguments),O[o1t]=e=>ame.FromTape(e.ID,e.type,e.arguments),O[l1t]=e=>ome.FromTape(e.ID,e.type,e.arguments),O[c1t]=e=>lme.FromTape(e.ID,e.type,e.arguments),O[u1t]=e=>cme.FromTape(e.ID,e.type,e.arguments),O[h1t]=e=>ume.FromTape(e.ID,e.type,e.arguments),O[p1t]=e=>hme.FromTape(e.ID,e.type,e.arguments),O[d1t]=e=>pme.FromTape(e.ID,e.type,e.arguments),O[f1t]=e=>dme.FromTape(e.ID,e.type,e.arguments),O[m1t]=e=>fme.FromTape(e.ID,e.type,e.arguments),O[g1t]=e=>mme.FromTape(e.ID,e.type,e.arguments),O[v1t]=e=>gme.FromTape(e.ID,e.type,e.arguments),O[y1t]=e=>vme.FromTape(e.ID,e.type,e.arguments),O[T1t]=e=>yme.FromTape(e.ID,e.type,e.arguments),O[E1t]=e=>Tme.FromTape(e.ID,e.type,e.arguments),O[b1t]=e=>Eme.FromTape(e.ID,e.type,e.arguments),O[x1t]=e=>bme.FromTape(e.ID,e.type,e.arguments),O[I1t]=e=>xme.FromTape(e.ID,e.type,e.arguments),O[_1t]=e=>Ime.FromTape(e.ID,e.type,e.arguments),O[S1t]=e=>_me.FromTape(e.ID,e.type,e.arguments),O[w1t]=e=>Sme.FromTape(e.ID,e.type,e.arguments),O[R1t]=e=>wme.FromTape(e.ID,e.type,e.arguments),O[M1t]=e=>Rme.FromTape(e.ID,e.type,e.arguments),O[D1t]=e=>Mme.FromTape(e.ID,e.type,e.arguments),O[C1t]=e=>Dme.FromTape(e.ID,e.type,e.arguments),O[A1t]=e=>Cme.FromTape(e.ID,e.type,e.arguments),O[O1t]=e=>Ame.FromTape(e.ID,e.type,e.arguments),O[P1t]=e=>Ome.FromTape(e.ID,e.type,e.arguments),O[N1t]=e=>Pme.FromTape(e.ID,e.type,e.arguments),O[L1t]=e=>Nme.FromTape(e.ID,e.type,e.arguments),O[F1t]=e=>Lme.FromTape(e.ID,e.type,e.arguments),O[H1t]=e=>Fme.FromTape(e.ID,e.type,e.arguments),O[U1t]=e=>Hme.FromTape(e.ID,e.type,e.arguments),O[B1t]=e=>Ume.FromTape(e.ID,e.type,e.arguments),O[k1t]=e=>Bme.FromTape(e.ID,e.type,e.arguments),O[G1t]=e=>kme.FromTape(e.ID,e.type,e.arguments),O[V1t]=e=>Gme.FromTape(e.ID,e.type,e.arguments),O[z1t]=e=>Vme.FromTape(e.ID,e.type,e.arguments),O[j1t]=e=>zme.FromTape(e.ID,e.type,e.arguments),O[W1t]=e=>jme.FromTape(e.ID,e.type,e.arguments),O[q1t]=e=>Wme.FromTape(e.ID,e.type,e.arguments),O[Y1t]=e=>qme.FromTape(e.ID,e.type,e.arguments),O[X1t]=e=>Yme.FromTape(e.ID,e.type,e.arguments),O[$1t]=e=>Xme.FromTape(e.ID,e.type,e.arguments),O[K1t]=e=>$me.FromTape(e.ID,e.type,e.arguments),O[Z1t]=e=>Kme.FromTape(e.ID,e.type,e.arguments),O[J1t]=e=>Zme.FromTape(e.ID,e.type,e.arguments),O[Q1t]=e=>Jme.FromTape(e.ID,e.type,e.arguments),O[ebt]=e=>Qme.FromTape(e.ID,e.type,e.arguments),O[tbt]=e=>ege.FromTape(e.ID,e.type,e.arguments),O[rbt]=e=>tge.FromTape(e.ID,e.type,e.arguments),O[ibt]=e=>rge.FromTape(e.ID,e.type,e.arguments),O[nbt]=e=>ige.FromTape(e.ID,e.type,e.arguments),O[sbt]=e=>nge.FromTape(e.ID,e.type,e.arguments),O[abt]=e=>sge.FromTape(e.ID,e.type,e.arguments),O[obt]=e=>age.FromTape(e.ID,e.type,e.arguments),O[lbt]=e=>oge.FromTape(e.ID,e.type,e.arguments),O[cbt]=e=>lge.FromTape(e.ID,e.type,e.arguments),O[ubt]=e=>cge.FromTape(e.ID,e.type,e.arguments),O[hbt]=e=>uge.FromTape(e.ID,e.type,e.arguments),O[pbt]=e=>hge.FromTape(e.ID,e.type,e.arguments),O[dbt]=e=>pge.FromTape(e.ID,e.type,e.arguments),O[fbt]=e=>dge.FromTape(e.ID,e.type,e.arguments),O[mbt]=e=>fge.FromTape(e.ID,e.type,e.arguments),O[gbt]=e=>mge.FromTape(e.ID,e.type,e.arguments),O[vbt]=e=>gge.FromTape(e.ID,e.type,e.arguments),O[ybt]=e=>vge.FromTape(e.ID,e.type,e.arguments),O[Tbt]=e=>yge.FromTape(e.ID,e.type,e.arguments),O[Ebt]=e=>Tge.FromTape(e.ID,e.type,e.arguments),O[bbt]=e=>Ege.FromTape(e.ID,e.type,e.arguments),O[xbt]=e=>bge.FromTape(e.ID,e.type,e.arguments),O[Ibt]=e=>xge.FromTape(e.ID,e.type,e.arguments),O[_bt]=e=>Ige.FromTape(e.ID,e.type,e.arguments),O[Sbt]=e=>_ge.FromTape(e.ID,e.type,e.arguments),O[wbt]=e=>Sge.FromTape(e.ID,e.type,e.arguments),O[Rbt]=e=>wge.FromTape(e.ID,e.type,e.arguments),O[Mbt]=e=>Rge.FromTape(e.ID,e.type,e.arguments),O[Dbt]=e=>Mge.FromTape(e.ID,e.type,e.arguments),O[Cbt]=e=>Dge.FromTape(e.ID,e.type,e.arguments),O[Abt]=e=>Cge.FromTape(e.ID,e.type,e.arguments),O[Obt]=e=>Age.FromTape(e.ID,e.type,e.arguments),O[Pbt]=e=>Oge.FromTape(e.ID,e.type,e.arguments),O[Nbt]=e=>Pge.FromTape(e.ID,e.type,e.arguments),O[Lbt]=e=>Nge.FromTape(e.ID,e.type,e.arguments),O[Fbt]=e=>Lge.FromTape(e.ID,e.type,e.arguments),O[Hbt]=e=>Fge.FromTape(e.ID,e.type,e.arguments),O[Ubt]=e=>Hge.FromTape(e.ID,e.type,e.arguments),O[Bbt]=e=>Uge.FromTape(e.ID,e.type,e.arguments),O[kbt]=e=>Bge.FromTape(e.ID,e.type,e.arguments),O[Gbt]=e=>kge.FromTape(e.ID,e.type,e.arguments),O[Vbt]=e=>Gge.FromTape(e.ID,e.type,e.arguments),O[zbt]=e=>Vge.FromTape(e.ID,e.type,e.arguments),O[jbt]=e=>zge.FromTape(e.ID,e.type,e.arguments),O[Wbt]=e=>jge.FromTape(e.ID,e.type,e.arguments),O[qbt]=e=>Wge.FromTape(e.ID,e.type,e.arguments),O[Ybt]=e=>qge.FromTape(e.ID,e.type,e.arguments),O[Xbt]=e=>Yge.FromTape(e.ID,e.type,e.arguments),O[$bt]=e=>Xge.FromTape(e.ID,e.type,e.arguments),O[Kbt]=e=>$ge.FromTape(e.ID,e.type,e.arguments),O[Zbt]=e=>Kge.FromTape(e.ID,e.type,e.arguments),O[Jbt]=e=>Zge.FromTape(e.ID,e.type,e.arguments),O[Qbt]=e=>Jge.FromTape(e.ID,e.type,e.arguments),O[ext]=e=>Qge.FromTape(e.ID,e.type,e.arguments),O[txt]=e=>e0e.FromTape(e.ID,e.type,e.arguments),O[rxt]=e=>t0e.FromTape(e.ID,e.type,e.arguments),O[ixt]=e=>r0e.FromTape(e.ID,e.type,e.arguments),O[nxt]=e=>i0e.FromTape(e.ID,e.type,e.arguments),O[sxt]=e=>n0e.FromTape(e.ID,e.type,e.arguments),O[axt]=e=>s0e.FromTape(e.ID,e.type,e.arguments),O[oxt]=e=>a0e.FromTape(e.ID,e.type,e.arguments),O[lxt]=e=>o0e.FromTape(e.ID,e.type,e.arguments),O[cxt]=e=>l0e.FromTape(e.ID,e.type,e.arguments),O[uxt]=e=>c0e.FromTape(e.ID,e.type,e.arguments),O[hxt]=e=>u0e.FromTape(e.ID,e.type,e.arguments),O[pxt]=e=>h0e.FromTape(e.ID,e.type,e.arguments),O[dxt]=e=>p0e.FromTape(e.ID,e.type,e.arguments),O[fxt]=e=>d0e.FromTape(e.ID,e.type,e.arguments),O[mxt]=e=>f0e.FromTape(e.ID,e.type,e.arguments),O[gxt]=e=>m0e.FromTape(e.ID,e.type,e.arguments),O[vxt]=e=>g0e.FromTape(e.ID,e.type,e.arguments),O[yxt]=e=>v0e.FromTape(e.ID,e.type,e.arguments),O[Txt]=e=>y0e.FromTape(e.ID,e.type,e.arguments),O[Ext]=e=>T0e.FromTape(e.ID,e.type,e.arguments),O[bxt]=e=>E0e.FromTape(e.ID,e.type,e.arguments),O[xxt]=e=>b0e.FromTape(e.ID,e.type,e.arguments),O[Ixt]=e=>x0e.FromTape(e.ID,e.type,e.arguments),O[_xt]=e=>I0e.FromTape(e.ID,e.type,e.arguments),O[Sxt]=e=>_0e.FromTape(e.ID,e.type,e.arguments),O[wxt]=e=>S0e.FromTape(e.ID,e.type,e.arguments),O[Rxt]=e=>w0e.FromTape(e.ID,e.type,e.arguments),O[Mxt]=e=>R0e.FromTape(e.ID,e.type,e.arguments),O[Dxt]=e=>M0e.FromTape(e.ID,e.type,e.arguments),O[Cxt]=e=>D0e.FromTape(e.ID,e.type,e.arguments),O[Axt]=e=>C0e.FromTape(e.ID,e.type,e.arguments),O[Oxt]=e=>A0e.FromTape(e.ID,e.type,e.arguments),O[Pxt]=e=>O0e.FromTape(e.ID,e.type,e.arguments),O[Nxt]=e=>P0e.FromTape(e.ID,e.type,e.arguments),O[Lxt]=e=>N0e.FromTape(e.ID,e.type,e.arguments),O[Fxt]=e=>L0e.FromTape(e.ID,e.type,e.arguments),O[Hxt]=e=>F0e.FromTape(e.ID,e.type,e.arguments),O[Uxt]=e=>H0e.FromTape(e.ID,e.type,e.arguments),O[Bxt]=e=>U0e.FromTape(e.ID,e.type,e.arguments),O[kxt]=e=>B0e.FromTape(e.ID,e.type,e.arguments),O[Gxt]=e=>k0e.FromTape(e.ID,e.type,e.arguments),O[Vxt]=e=>G0e.FromTape(e.ID,e.type,e.arguments),O[zxt]=e=>V0e.FromTape(e.ID,e.type,e.arguments),O[jxt]=e=>z0e.FromTape(e.ID,e.type,e.arguments),O[Wxt]=e=>j0e.FromTape(e.ID,e.type,e.arguments),O[qxt]=e=>W0e.FromTape(e.ID,e.type,e.arguments),O[Yxt]=e=>q0e.FromTape(e.ID,e.type,e.arguments),O[Xxt]=e=>Y0e.FromTape(e.ID,e.type,e.arguments),O[$xt]=e=>X0e.FromTape(e.ID,e.type,e.arguments),O[Kxt]=e=>$0e.FromTape(e.ID,e.type,e.arguments),O[Zxt]=e=>K0e.FromTape(e.ID,e.type,e.arguments),O[Jxt]=e=>Z0e.FromTape(e.ID,e.type,e.arguments),O[Qxt]=e=>J0e.FromTape(e.ID,e.type,e.arguments),O[eIt]=e=>Q0e.FromTape(e.ID,e.type,e.arguments),O[tIt]=e=>eve.FromTape(e.ID,e.type,e.arguments),O[rIt]=e=>tve.FromTape(e.ID,e.type,e.arguments),O[iIt]=e=>rve.FromTape(e.ID,e.type,e.arguments),O[nIt]=e=>ive.FromTape(e.ID,e.type,e.arguments),O[sIt]=e=>nve.FromTape(e.ID,e.type,e.arguments),O[aIt]=e=>sve.FromTape(e.ID,e.type,e.arguments),O[oIt]=e=>ave.FromTape(e.ID,e.type,e.arguments),O[lIt]=e=>ove.FromTape(e.ID,e.type,e.arguments),O[cIt]=e=>lve.FromTape(e.ID,e.type,e.arguments),O[uIt]=e=>cve.FromTape(e.ID,e.type,e.arguments),O[hIt]=e=>uve.FromTape(e.ID,e.type,e.arguments),O[pIt]=e=>hve.FromTape(e.ID,e.type,e.arguments),O[dIt]=e=>pve.FromTape(e.ID,e.type,e.arguments),O[fIt]=e=>dve.FromTape(e.ID,e.type,e.arguments),O[mIt]=e=>fve.FromTape(e.ID,e.type,e.arguments),O[gIt]=e=>mve.FromTape(e.ID,e.type,e.arguments),O[vIt]=e=>gve.FromTape(e.ID,e.type,e.arguments),O[yIt]=e=>vve.FromTape(e.ID,e.type,e.arguments),O[TIt]=e=>yve.FromTape(e.ID,e.type,e.arguments),O[EIt]=e=>Tve.FromTape(e.ID,e.type,e.arguments),O[bIt]=e=>Eve.FromTape(e.ID,e.type,e.arguments),O[xIt]=e=>bve.FromTape(e.ID,e.type,e.arguments),O[IIt]=e=>xve.FromTape(e.ID,e.type,e.arguments),O[_It]=e=>Ive.FromTape(e.ID,e.type,e.arguments),O[SIt]=e=>_ve.FromTape(e.ID,e.type,e.arguments),O[wIt]=e=>Sve.FromTape(e.ID,e.type,e.arguments),O[RIt]=e=>wve.FromTape(e.ID,e.type,e.arguments),O[MIt]=e=>Rve.FromTape(e.ID,e.type,e.arguments),O[DIt]=e=>Mve.FromTape(e.ID,e.type,e.arguments),O[CIt]=e=>Dve.FromTape(e.ID,e.type,e.arguments),O[AIt]=e=>Cve.FromTape(e.ID,e.type,e.arguments),O[OIt]=e=>Ave.FromTape(e.ID,e.type,e.arguments),O[PIt]=e=>Ove.FromTape(e.ID,e.type,e.arguments),O[NIt]=e=>Pve.FromTape(e.ID,e.type,e.arguments),O[LIt]=e=>Nve.FromTape(e.ID,e.type,e.arguments),O[FIt]=e=>Lve.FromTape(e.ID,e.type,e.arguments),O[HIt]=e=>Fve.FromTape(e.ID,e.type,e.arguments),O[UIt]=e=>Hve.FromTape(e.ID,e.type,e.arguments),O[BIt]=e=>Uve.FromTape(e.ID,e.type,e.arguments),O[kIt]=e=>Bve.FromTape(e.ID,e.type,e.arguments),O[GIt]=e=>kve.FromTape(e.ID,e.type,e.arguments),O[VIt]=e=>Gve.FromTape(e.ID,e.type,e.arguments),O[zIt]=e=>Vve.FromTape(e.ID,e.type,e.arguments),O[jIt]=e=>zve.FromTape(e.ID,e.type,e.arguments),O[WIt]=e=>jve.FromTape(e.ID,e.type,e.arguments),O[qIt]=e=>Wve.FromTape(e.ID,e.type,e.arguments),O[YIt]=e=>qve.FromTape(e.ID,e.type,e.arguments),O[XIt]=e=>Yve.FromTape(e.ID,e.type,e.arguments),O[$It]=e=>Xve.FromTape(e.ID,e.type,e.arguments),O[KIt]=e=>$ve.FromTape(e.ID,e.type,e.arguments),O[ZIt]=e=>Kve.FromTape(e.ID,e.type,e.arguments),O[JIt]=e=>Zve.FromTape(e.ID,e.type,e.arguments),O[QIt]=e=>Jve.FromTape(e.ID,e.type,e.arguments),O[e_t]=e=>Qve.FromTape(e.ID,e.type,e.arguments),O[t_t]=e=>eye.FromTape(e.ID,e.type,e.arguments),O[r_t]=e=>tye.FromTape(e.ID,e.type,e.arguments),O[i_t]=e=>rye.FromTape(e.ID,e.type,e.arguments),O[n_t]=e=>iye.FromTape(e.ID,e.type,e.arguments),O[s_t]=e=>nye.FromTape(e.ID,e.type,e.arguments),O[a_t]=e=>sye.FromTape(e.ID,e.type,e.arguments),O[o_t]=e=>aye.FromTape(e.ID,e.type,e.arguments),O[l_t]=e=>oye.FromTape(e.ID,e.type,e.arguments),O[c_t]=e=>lye.FromTape(e.ID,e.type,e.arguments),O[u_t]=e=>cye.FromTape(e.ID,e.type,e.arguments),O[h_t]=e=>uye.FromTape(e.ID,e.type,e.arguments),O[p_t]=e=>hye.FromTape(e.ID,e.type,e.arguments),O[d_t]=e=>pye.FromTape(e.ID,e.type,e.arguments),O[f_t]=e=>dye.FromTape(e.ID,e.type,e.arguments),O[m_t]=e=>fye.FromTape(e.ID,e.type,e.arguments),O[g_t]=e=>mye.FromTape(e.ID,e.type,e.arguments),O[v_t]=e=>gye.FromTape(e.ID,e.type,e.arguments),O[y_t]=e=>vye.FromTape(e.ID,e.type,e.arguments),O[T_t]=e=>yye.FromTape(e.ID,e.type,e.arguments),O[E_t]=e=>Tye.FromTape(e.ID,e.type,e.arguments),O[b_t]=e=>Eye.FromTape(e.ID,e.type,e.arguments),O[x_t]=e=>bye.FromTape(e.ID,e.type,e.arguments),O[I_t]=e=>xye.FromTape(e.ID,e.type,e.arguments),O[__t]=e=>Iye.FromTape(e.ID,e.type,e.arguments),O[S_t]=e=>_ye.FromTape(e.ID,e.type,e.arguments),O[w_t]=e=>Sye.FromTape(e.ID,e.type,e.arguments),O[R_t]=e=>wye.FromTape(e.ID,e.type,e.arguments),O[M_t]=e=>Rye.FromTape(e.ID,e.type,e.arguments),O[D_t]=e=>Mye.FromTape(e.ID,e.type,e.arguments),O[C_t]=e=>Dye.FromTape(e.ID,e.type,e.arguments),O[A_t]=e=>Cye.FromTape(e.ID,e.type,e.arguments),O[O_t]=e=>Aye.FromTape(e.ID,e.type,e.arguments),O[P_t]=e=>Oye.FromTape(e.ID,e.type,e.arguments),O[N_t]=e=>Pye.FromTape(e.ID,e.type,e.arguments),O[L_t]=e=>Nye.FromTape(e.ID,e.type,e.arguments),O[F_t]=e=>Lye.FromTape(e.ID,e.type,e.arguments),O[H_t]=e=>Fye.FromTape(e.ID,e.type,e.arguments),O[U_t]=e=>Hye.FromTape(e.ID,e.type,e.arguments),O[B_t]=e=>Uye.FromTape(e.ID,e.type,e.arguments),O[k_t]=e=>Bye.FromTape(e.ID,e.type,e.arguments),O[G_t]=e=>kye.FromTape(e.ID,e.type,e.arguments),O[V_t]=e=>Gye.FromTape(e.ID,e.type,e.arguments),O[z_t]=e=>Vye.FromTape(e.ID,e.type,e.arguments),O[j_t]=e=>zye.FromTape(e.ID,e.type,e.arguments),O[W_t]=e=>jye.FromTape(e.ID,e.type,e.arguments),O[q_t]=e=>Wye.FromTape(e.ID,e.type,e.arguments),O[Y_t]=e=>qye.FromTape(e.ID,e.type,e.arguments),O[X_t]=e=>Yye.FromTape(e.ID,e.type,e.arguments),O[$_t]=e=>Xye.FromTape(e.ID,e.type,e.arguments),O[K_t]=e=>$ye.FromTape(e.ID,e.type,e.arguments),O[Z_t]=e=>Kye.FromTape(e.ID,e.type,e.arguments),O[J_t]=e=>Zye.FromTape(e.ID,e.type,e.arguments),O[Q_t]=e=>Jye.FromTape(e.ID,e.type,e.arguments),O[eSt]=e=>Qye.FromTape(e.ID,e.type,e.arguments),O[tSt]=e=>eTe.FromTape(e.ID,e.type,e.arguments),O[rSt]=e=>tTe.FromTape(e.ID,e.type,e.arguments),O[iSt]=e=>rTe.FromTape(e.ID,e.type,e.arguments),O[nSt]=e=>iTe.FromTape(e.ID,e.type,e.arguments),O[sSt]=e=>nTe.FromTape(e.ID,e.type,e.arguments),O[aSt]=e=>sTe.FromTape(e.ID,e.type,e.arguments),O[oSt]=e=>aTe.FromTape(e.ID,e.type,e.arguments),O[lSt]=e=>oTe.FromTape(e.ID,e.type,e.arguments),O[cSt]=e=>lTe.FromTape(e.ID,e.type,e.arguments),O[uSt]=e=>cTe.FromTape(e.ID,e.type,e.arguments),O[hSt]=e=>uTe.FromTape(e.ID,e.type,e.arguments),O[pSt]=e=>hTe.FromTape(e.ID,e.type,e.arguments),O[dSt]=e=>pTe.FromTape(e.ID,e.type,e.arguments),O[fSt]=e=>dTe.FromTape(e.ID,e.type,e.arguments),O[mSt]=e=>fTe.FromTape(e.ID,e.type,e.arguments),O[gSt]=e=>mTe.FromTape(e.ID,e.type,e.arguments),O[vSt]=e=>gTe.FromTape(e.ID,e.type,e.arguments),O[ySt]=e=>vTe.FromTape(e.ID,e.type,e.arguments),O[TSt]=e=>yTe.FromTape(e.ID,e.type,e.arguments),O[ESt]=e=>TTe.FromTape(e.ID,e.type,e.arguments),O[bSt]=e=>ETe.FromTape(e.ID,e.type,e.arguments),O[xSt]=e=>bTe.FromTape(e.ID,e.type,e.arguments),O[ISt]=e=>xTe.FromTape(e.ID,e.type,e.arguments),O[_St]=e=>ITe.FromTape(e.ID,e.type,e.arguments),O[SSt]=e=>_Te.FromTape(e.ID,e.type,e.arguments),O[wSt]=e=>STe.FromTape(e.ID,e.type,e.arguments),O[RSt]=e=>wTe.FromTape(e.ID,e.type,e.arguments),O[MSt]=e=>RTe.FromTape(e.ID,e.type,e.arguments),O[DSt]=e=>MTe.FromTape(e.ID,e.type,e.arguments),O[CSt]=e=>DTe.FromTape(e.ID,e.type,e.arguments),O[ASt]=e=>CTe.FromTape(e.ID,e.type,e.arguments),O[OSt]=e=>ATe.FromTape(e.ID,e.type,e.arguments),O[PSt]=e=>OTe.FromTape(e.ID,e.type,e.arguments),O[NSt]=e=>PTe.FromTape(e.ID,e.type,e.arguments),O[LSt]=e=>NTe.FromTape(e.ID,e.type,e.arguments),O[FSt]=e=>LTe.FromTape(e.ID,e.type,e.arguments),O[HSt]=e=>FTe.FromTape(e.ID,e.type,e.arguments),O[USt]=e=>HTe.FromTape(e.ID,e.type,e.arguments),O[BSt]=e=>UTe.FromTape(e.ID,e.type,e.arguments),O[kSt]=e=>BTe.FromTape(e.ID,e.type,e.arguments),O[GSt]=e=>kTe.FromTape(e.ID,e.type,e.arguments),O[VSt]=e=>GTe.FromTape(e.ID,e.type,e.arguments),O[zSt]=e=>VTe.FromTape(e.ID,e.type,e.arguments),O[jSt]=e=>zTe.FromTape(e.ID,e.type,e.arguments),O[WSt]=e=>jTe.FromTape(e.ID,e.type,e.arguments),O[qSt]=e=>WTe.FromTape(e.ID,e.type,e.arguments),O[YSt]=e=>qTe.FromTape(e.ID,e.type,e.arguments),O[XSt]=e=>YTe.FromTape(e.ID,e.type,e.arguments),O[$St]=e=>XTe.FromTape(e.ID,e.type,e.arguments),O[KSt]=e=>$Te.FromTape(e.ID,e.type,e.arguments),O[ZSt]=e=>KTe.FromTape(e.ID,e.type,e.arguments),O[JSt]=e=>ZTe.FromTape(e.ID,e.type,e.arguments),O[QSt]=e=>JTe.FromTape(e.ID,e.type,e.arguments),O[ewt]=e=>QTe.FromTape(e.ID,e.type,e.arguments),O[twt]=e=>eEe.FromTape(e.ID,e.type,e.arguments),O[rwt]=e=>tEe.FromTape(e.ID,e.type,e.arguments),O[iwt]=e=>rEe.FromTape(e.ID,e.type,e.arguments),O[nwt]=e=>iEe.FromTape(e.ID,e.type,e.arguments),O[swt]=e=>nEe.FromTape(e.ID,e.type,e.arguments),O[awt]=e=>sEe.FromTape(e.ID,e.type,e.arguments),O[owt]=e=>aEe.FromTape(e.ID,e.type,e.arguments),O[lwt]=e=>oEe.FromTape(e.ID,e.type,e.arguments),O[cwt]=e=>lEe.FromTape(e.ID,e.type,e.arguments),O[uwt]=e=>cEe.FromTape(e.ID,e.type,e.arguments),O[hwt]=e=>uEe.FromTape(e.ID,e.type,e.arguments),O[pwt]=e=>hEe.FromTape(e.ID,e.type,e.arguments),O[dwt]=e=>pEe.FromTape(e.ID,e.type,e.arguments),O[fwt]=e=>dEe.FromTape(e.ID,e.type,e.arguments),O[mwt]=e=>fEe.FromTape(e.ID,e.type,e.arguments),O[gwt]=e=>mEe.FromTape(e.ID,e.type,e.arguments),O[vwt]=e=>gEe.FromTape(e.ID,e.type,e.arguments),O[ywt]=e=>vEe.FromTape(e.ID,e.type,e.arguments),O[Twt]=e=>yEe.FromTape(e.ID,e.type,e.arguments),O[Ewt]=e=>TEe.FromTape(e.ID,e.type,e.arguments),O[bwt]=e=>EEe.FromTape(e.ID,e.type,e.arguments),O[xwt]=e=>bEe.FromTape(e.ID,e.type,e.arguments),O[Iwt]=e=>xEe.FromTape(e.ID,e.type,e.arguments),O[_wt]=e=>IEe.FromTape(e.ID,e.type,e.arguments),O[Swt]=e=>_Ee.FromTape(e.ID,e.type,e.arguments),O[wwt]=e=>SEe.FromTape(e.ID,e.type,e.arguments),O[Rwt]=e=>wEe.FromTape(e.ID,e.type,e.arguments),O[Mwt]=e=>REe.FromTape(e.ID,e.type,e.arguments),O[Dwt]=e=>MEe.FromTape(e.ID,e.type,e.arguments),O[Cwt]=e=>DEe.FromTape(e.ID,e.type,e.arguments),O[Awt]=e=>CEe.FromTape(e.ID,e.type,e.arguments),O[Owt]=e=>AEe.FromTape(e.ID,e.type,e.arguments),O[Pwt]=e=>OEe.FromTape(e.ID,e.type,e.arguments),O[Nwt]=e=>PEe.FromTape(e.ID,e.type,e.arguments),O[Lwt]=e=>NEe.FromTape(e.ID,e.type,e.arguments),O[Fwt]=e=>LEe.FromTape(e.ID,e.type,e.arguments),O[Hwt]=e=>FEe.FromTape(e.ID,e.type,e.arguments),O[Uwt]=e=>HEe.FromTape(e.ID,e.type,e.arguments),O[Bwt]=e=>UEe.FromTape(e.ID,e.type,e.arguments),O[kwt]=e=>BEe.FromTape(e.ID,e.type,e.arguments),O[Gwt]=e=>kEe.FromTape(e.ID,e.type,e.arguments),O[Vwt]=e=>GEe.FromTape(e.ID,e.type,e.arguments),O[zwt]=e=>VEe.FromTape(e.ID,e.type,e.arguments),O[jwt]=e=>zEe.FromTape(e.ID,e.type,e.arguments),O[Wwt]=e=>jEe.FromTape(e.ID,e.type,e.arguments),O[qwt]=e=>WEe.FromTape(e.ID,e.type,e.arguments),O[Ywt]=e=>qEe.FromTape(e.ID,e.type,e.arguments),O[Xwt]=e=>YEe.FromTape(e.ID,e.type,e.arguments),O[$wt]=e=>XEe.FromTape(e.ID,e.type,e.arguments),O[Kwt]=e=>$Ee.FromTape(e.ID,e.type,e.arguments),O[Zwt]=e=>KEe.FromTape(e.ID,e.type,e.arguments),O[Jwt]=e=>ZEe.FromTape(e.ID,e.type,e.arguments),O[Qwt]=e=>JEe.FromTape(e.ID,e.type,e.arguments),O[eRt]=e=>QEe.FromTape(e.ID,e.type,e.arguments),O[tRt]=e=>e1e.FromTape(e.ID,e.type,e.arguments),O[rRt]=e=>t1e.FromTape(e.ID,e.type,e.arguments),O[iRt]=e=>r1e.FromTape(e.ID,e.type,e.arguments),O[nRt]=e=>i1e.FromTape(e.ID,e.type,e.arguments),O[sRt]=e=>n1e.FromTape(e.ID,e.type,e.arguments),O[aRt]=e=>s1e.FromTape(e.ID,e.type,e.arguments),O[oRt]=e=>a1e.FromTape(e.ID,e.type,e.arguments),O[lRt]=e=>o1e.FromTape(e.ID,e.type,e.arguments),O[cRt]=e=>l1e.FromTape(e.ID,e.type,e.arguments),O[uRt]=e=>c1e.FromTape(e.ID,e.type,e.arguments),O[hRt]=e=>u1e.FromTape(e.ID,e.type,e.arguments),O[pRt]=e=>h1e.FromTape(e.ID,e.type,e.arguments),O[dRt]=e=>p1e.FromTape(e.ID,e.type,e.arguments),O[fRt]=e=>d1e.FromTape(e.ID,e.type,e.arguments),O[mRt]=e=>f1e.FromTape(e.ID,e.type,e.arguments),O[gRt]=e=>m1e.FromTape(e.ID,e.type,e.arguments),O[vRt]=e=>g1e.FromTape(e.ID,e.type,e.arguments),O[yRt]=e=>v1e.FromTape(e.ID,e.type,e.arguments),O[TRt]=e=>y1e.FromTape(e.ID,e.type,e.arguments),O[ERt]=e=>T1e.FromTape(e.ID,e.type,e.arguments),O[bRt]=e=>E1e.FromTape(e.ID,e.type,e.arguments),O[xRt]=e=>b1e.FromTape(e.ID,e.type,e.arguments),O[IRt]=e=>x1e.FromTape(e.ID,e.type,e.arguments),O[_Rt]=e=>I1e.FromTape(e.ID,e.type,e.arguments),O[SRt]=e=>_1e.FromTape(e.ID,e.type,e.arguments),O[wRt]=e=>S1e.FromTape(e.ID,e.type,e.arguments),O[RRt]=e=>w1e.FromTape(e.ID,e.type,e.arguments),O[MRt]=e=>R1e.FromTape(e.ID,e.type,e.arguments),O[DRt]=e=>M1e.FromTape(e.ID,e.type,e.arguments),O[CRt]=e=>D1e.FromTape(e.ID,e.type,e.arguments),O[ARt]=e=>C1e.FromTape(e.ID,e.type,e.arguments),O[ORt]=e=>A1e.FromTape(e.ID,e.type,e.arguments),O[PRt]=e=>O1e.FromTape(e.ID,e.type,e.arguments),O[NRt]=e=>P1e.FromTape(e.ID,e.type,e.arguments),O[LRt]=e=>N1e.FromTape(e.ID,e.type,e.arguments),O[FRt]=e=>L1e.FromTape(e.ID,e.type,e.arguments),O[HRt]=e=>F1e.FromTape(e.ID,e.type,e.arguments),O[URt]=e=>H1e.FromTape(e.ID,e.type,e.arguments),O[BRt]=e=>U1e.FromTape(e.ID,e.type,e.arguments),O[kRt]=e=>B1e.FromTape(e.ID,e.type,e.arguments),O[GRt]=e=>k1e.FromTape(e.ID,e.type,e.arguments),O[VRt]=e=>G1e.FromTape(e.ID,e.type,e.arguments),O[zRt]=e=>V1e.FromTape(e.ID,e.type,e.arguments),O[jRt]=e=>z1e.FromTape(e.ID,e.type,e.arguments),O[WRt]=e=>j1e.FromTape(e.ID,e.type,e.arguments),O[qRt]=e=>W1e.FromTape(e.ID,e.type,e.arguments),O[YRt]=e=>q1e.FromTape(e.ID,e.type,e.arguments),O[XRt]=e=>Y1e.FromTape(e.ID,e.type,e.arguments),O[$Rt]=e=>X1e.FromTape(e.ID,e.type,e.arguments),O[KRt]=e=>$1e.FromTape(e.ID,e.type,e.arguments),O[ZRt]=e=>K1e.FromTape(e.ID,e.type,e.arguments),O[JRt]=e=>Z1e.FromTape(e.ID,e.type,e.arguments),O[QRt]=e=>J1e.FromTape(e.ID,e.type,e.arguments),O[eMt]=e=>Q1e.FromTape(e.ID,e.type,e.arguments),O[tMt]=e=>ebe.FromTape(e.ID,e.type,e.arguments),O[rMt]=e=>tbe.FromTape(e.ID,e.type,e.arguments),O[iMt]=e=>rbe.FromTape(e.ID,e.type,e.arguments),O[nMt]=e=>ibe.FromTape(e.ID,e.type,e.arguments),O[pA]=e=>nbe.FromTape(e.ID,e.type,e.arguments),O[sMt]=e=>sbe.FromTape(e.ID,e.type,e.arguments),O[aMt]=e=>abe.FromTape(e.ID,e.type,e.arguments),O[oMt]=e=>obe.FromTape(e.ID,e.type,e.arguments),O[lMt]=e=>lbe.FromTape(e.ID,e.type,e.arguments),O[cMt]=e=>cbe.FromTape(e.ID,e.type,e.arguments),O[uMt]=e=>ube.FromTape(e.ID,e.type,e.arguments),O[hMt]=e=>hbe.FromTape(e.ID,e.type,e.arguments),O[pMt]=e=>pbe.FromTape(e.ID,e.type,e.arguments),O[dMt]=e=>dbe.FromTape(e.ID,e.type,e.arguments),O[fMt]=e=>fbe.FromTape(e.ID,e.type,e.arguments),O[mMt]=e=>mbe.FromTape(e.ID,e.type,e.arguments),O[gMt]=e=>gbe.FromTape(e.ID,e.type,e.arguments),O[vMt]=e=>vbe.FromTape(e.ID,e.type,e.arguments),O[yMt]=e=>ybe.FromTape(e.ID,e.type,e.arguments),O[TMt]=e=>Tbe.FromTape(e.ID,e.type,e.arguments),O[EMt]=e=>Ebe.FromTape(e.ID,e.type,e.arguments),O[bMt]=e=>bbe.FromTape(e.ID,e.type,e.arguments),O[xMt]=e=>xbe.FromTape(e.ID,e.type,e.arguments),O[IMt]=e=>Ibe.FromTape(e.ID,e.type,e.arguments),O[_Mt]=e=>_be.FromTape(e.ID,e.type,e.arguments),O[SMt]=e=>Sbe.FromTape(e.ID,e.type,e.arguments),O[wMt]=e=>wbe.FromTape(e.ID,e.type,e.arguments),O[RMt]=e=>Rbe.FromTape(e.ID,e.type,e.arguments),O[MMt]=e=>Mbe.FromTape(e.ID,e.type,e.arguments),O[DMt]=e=>Dbe.FromTape(e.ID,e.type,e.arguments),O[CMt]=e=>Cbe.FromTape(e.ID,e.type,e.arguments),O[AMt]=e=>Abe.FromTape(e.ID,e.type,e.arguments),O[OMt]=e=>Obe.FromTape(e.ID,e.type,e.arguments),O[PMt]=e=>Pbe.FromTape(e.ID,e.type,e.arguments),O[NMt]=e=>Nbe.FromTape(e.ID,e.type,e.arguments),O[LMt]=e=>Lbe.FromTape(e.ID,e.type,e.arguments),O[FMt]=e=>Fbe.FromTape(e.ID,e.type,e.arguments),O[HMt]=e=>Hbe.FromTape(e.ID,e.type,e.arguments),O[UMt]=e=>Ube.FromTape(e.ID,e.type,e.arguments),O[BMt]=e=>Bbe.FromTape(e.ID,e.type,e.arguments),O[kMt]=e=>kbe.FromTape(e.ID,e.type,e.arguments),O[GMt]=e=>Gbe.FromTape(e.ID,e.type,e.arguments),O[VMt]=e=>Vbe.FromTape(e.ID,e.type,e.arguments),O[zMt]=e=>zbe.FromTape(e.ID,e.type,e.arguments),O[jMt]=e=>jbe.FromTape(e.ID,e.type,e.arguments),O[WMt]=e=>Wbe.FromTape(e.ID,e.type,e.arguments),O[qMt]=e=>qbe.FromTape(e.ID,e.type,e.arguments),O[YMt]=e=>Ybe.FromTape(e.ID,e.type,e.arguments),O[XMt]=e=>Xbe.FromTape(e.ID,e.type,e.arguments),O[$Mt]=e=>$be.FromTape(e.ID,e.type,e.arguments),O[KMt]=e=>Kbe.FromTape(e.ID,e.type,e.arguments),O[ZMt]=e=>Zbe.FromTape(e.ID,e.type,e.arguments),O[JMt]=e=>Jbe.FromTape(e.ID,e.type,e.arguments),O[QMt]=e=>Qbe.FromTape(e.ID,e.type,e.arguments),O[eDt]=e=>exe.FromTape(e.ID,e.type,e.arguments),O[tDt]=e=>txe.FromTape(e.ID,e.type,e.arguments),O[rDt]=e=>rxe.FromTape(e.ID,e.type,e.arguments),O[iDt]=e=>ixe.FromTape(e.ID,e.type,e.arguments),O[nDt]=e=>nxe.FromTape(e.ID,e.type,e.arguments),O[sDt]=e=>sxe.FromTape(e.ID,e.type,e.arguments),O[aDt]=e=>axe.FromTape(e.ID,e.type,e.arguments),O[oDt]=e=>oxe.FromTape(e.ID,e.type,e.arguments),O[lDt]=e=>lxe.FromTape(e.ID,e.type,e.arguments),O[zk]=e=>cxe.FromTape(e.ID,e.type,e.arguments),O[cDt]=e=>uxe.FromTape(e.ID,e.type,e.arguments),O[uDt]=e=>hxe.FromTape(e.ID,e.type,e.arguments),O[hDt]=e=>pxe.FromTape(e.ID,e.type,e.arguments),O[pDt]=e=>dxe.FromTape(e.ID,e.type,e.arguments),O[dDt]=e=>fxe.FromTape(e.ID,e.type,e.arguments),O[fDt]=e=>mxe.FromTape(e.ID,e.type,e.arguments),O[mDt]=e=>gxe.FromTape(e.ID,e.type,e.arguments),O[gDt]=e=>vxe.FromTape(e.ID,e.type,e.arguments),O[vDt]=e=>yxe.FromTape(e.ID,e.type,e.arguments),O[yDt]=e=>Txe.FromTape(e.ID,e.type,e.arguments),O[TDt]=e=>Exe.FromTape(e.ID,e.type,e.arguments),O[EDt]=e=>bxe.FromTape(e.ID,e.type,e.arguments),O[bDt]=e=>xxe.FromTape(e.ID,e.type,e.arguments),O[xDt]=e=>Ixe.FromTape(e.ID,e.type,e.arguments),O[jk]=e=>_xe.FromTape(e.ID,e.type,e.arguments),O[IDt]=e=>Sxe.FromTape(e.ID,e.type,e.arguments),O[_Dt]=e=>wxe.FromTape(e.ID,e.type,e.arguments),O[SDt]=e=>Rxe.FromTape(e.ID,e.type,e.arguments),O[wDt]=e=>Mxe.FromTape(e.ID,e.type,e.arguments),O[RDt]=e=>Dxe.FromTape(e.ID,e.type,e.arguments),O[MDt]=e=>Cxe.FromTape(e.ID,e.type,e.arguments),O[DDt]=e=>Axe.FromTape(e.ID,e.type,e.arguments),O[CDt]=e=>Oxe.FromTape(e.ID,e.type,e.arguments),O[ADt]=e=>Pxe.FromTape(e.ID,e.type,e.arguments),O[Wk]=e=>Nxe.FromTape(e.ID,e.type,e.arguments),O[ODt]=e=>Lxe.FromTape(e.ID,e.type,e.arguments),O[PDt]=e=>Fxe.FromTape(e.ID,e.type,e.arguments),O[NDt]=e=>Hxe.FromTape(e.ID,e.type,e.arguments),O[LDt]=e=>Uxe.FromTape(e.ID,e.type,e.arguments),O[FDt]=e=>Bxe.FromTape(e.ID,e.type,e.arguments),O[HDt]=e=>kxe.FromTape(e.ID,e.type,e.arguments),O[qk]=e=>Gxe.FromTape(e.ID,e.type,e.arguments),O[UDt]=e=>Vxe.FromTape(e.ID,e.type,e.arguments),O[Yk]=e=>zxe.FromTape(e.ID,e.type,e.arguments),O[BDt]=e=>jxe.FromTape(e.ID,e.type,e.arguments),O[kDt]=e=>Wxe.FromTape(e.ID,e.type,e.arguments),O[GDt]=e=>qxe.FromTape(e.ID,e.type,e.arguments),O[VDt]=e=>Yxe.FromTape(e.ID,e.type,e.arguments),O[zDt]=e=>Xxe.FromTape(e.ID,e.type,e.arguments),O[jDt]=e=>$xe.FromTape(e.ID,e.type,e.arguments),O[WDt]=e=>Kxe.FromTape(e.ID,e.type,e.arguments),O[qDt]=e=>Zxe.FromTape(e.ID,e.type,e.arguments),O[YDt]=e=>Jxe.FromTape(e.ID,e.type,e.arguments),O[XDt]=e=>Qxe.FromTape(e.ID,e.type,e.arguments),O[$Dt]=e=>eIe.FromTape(e.ID,e.type,e.arguments),O[KDt]=e=>tIe.FromTape(e.ID,e.type,e.arguments),O[ZDt]=e=>rIe.FromTape(e.ID,e.type,e.arguments),O[JDt]=e=>iIe.FromTape(e.ID,e.type,e.arguments),O[QDt]=e=>nIe.FromTape(e.ID,e.type,e.arguments),O[eCt]=e=>sIe.FromTape(e.ID,e.type,e.arguments),O[tCt]=e=>aIe.FromTape(e.ID,e.type,e.arguments),O[rCt]=e=>oIe.FromTape(e.ID,e.type,e.arguments),O[iCt]=e=>lIe.FromTape(e.ID,e.type,e.arguments),O[nCt]=e=>cIe.FromTape(e.ID,e.type,e.arguments),O[sCt]=e=>uIe.FromTape(e.ID,e.type,e.arguments),O[aCt]=e=>hIe.FromTape(e.ID,e.type,e.arguments),O[oCt]=e=>pIe.FromTape(e.ID,e.type,e.arguments),O[lCt]=e=>dIe.FromTape(e.ID,e.type,e.arguments),O[cCt]=e=>fIe.FromTape(e.ID,e.type,e.arguments),O[uCt]=e=>mIe.FromTape(e.ID,e.type,e.arguments),O[hCt]=e=>gIe.FromTape(e.ID,e.type,e.arguments),O[pCt]=e=>vIe.FromTape(e.ID,e.type,e.arguments),O[dCt]=e=>yIe.FromTape(e.ID,e.type,e.arguments),O[fCt]=e=>TIe.FromTape(e.ID,e.type,e.arguments),O[mCt]=e=>EIe.FromTape(e.ID,e.type,e.arguments),O[gCt]=e=>bIe.FromTape(e.ID,e.type,e.arguments),O[vCt]=e=>xIe.FromTape(e.ID,e.type,e.arguments),O[yCt]=e=>IIe.FromTape(e.ID,e.type,e.arguments),O[TCt]=e=>_Ie.FromTape(e.ID,e.type,e.arguments),O[ECt]=e=>SIe.FromTape(e.ID,e.type,e.arguments),O[bCt]=e=>wIe.FromTape(e.ID,e.type,e.arguments),O[xCt]=e=>RIe.FromTape(e.ID,e.type,e.arguments),O[ICt]=e=>MIe.FromTape(e.ID,e.type,e.arguments),O[_Ct]=e=>DIe.FromTape(e.ID,e.type,e.arguments),O[SCt]=e=>CIe.FromTape(e.ID,e.type,e.arguments),O[wCt]=e=>AIe.FromTape(e.ID,e.type,e.arguments),O[RCt]=e=>OIe.FromTape(e.ID,e.type,e.arguments),O[MCt]=e=>PIe.FromTape(e.ID,e.type,e.arguments),O[DCt]=e=>NIe.FromTape(e.ID,e.type,e.arguments),O[CCt]=e=>LIe.FromTape(e.ID,e.type,e.arguments),O[ACt]=e=>FIe.FromTape(e.ID,e.type,e.arguments),O[OCt]=e=>HIe.FromTape(e.ID,e.type,e.arguments),O[PCt]=e=>UIe.FromTape(e.ID,e.type,e.arguments),O[NCt]=e=>BIe.FromTape(e.ID,e.type,e.arguments),O[LCt]=e=>kIe.FromTape(e.ID,e.type,e.arguments),O[FCt]=e=>GIe.FromTape(e.ID,e.type,e.arguments),O[HCt]=e=>VIe.FromTape(e.ID,e.type,e.arguments),O[UCt]=e=>zIe.FromTape(e.ID,e.type,e.arguments),O[BCt]=e=>jIe.FromTape(e.ID,e.type,e.arguments),O[kCt]=e=>WIe.FromTape(e.ID,e.type,e.arguments),O[GCt]=e=>qIe.FromTape(e.ID,e.type,e.arguments),O[VCt]=e=>YIe.FromTape(e.ID,e.type,e.arguments),O[zCt]=e=>XIe.FromTape(e.ID,e.type,e.arguments),O[jCt]=e=>$Ie.FromTape(e.ID,e.type,e.arguments),O[WCt]=e=>KIe.FromTape(e.ID,e.type,e.arguments),O[qCt]=e=>ZIe.FromTape(e.ID,e.type,e.arguments),O[YCt]=e=>JIe.FromTape(e.ID,e.type,e.arguments),O[XCt]=e=>QIe.FromTape(e.ID,e.type,e.arguments),O[$Ct]=e=>e_e.FromTape(e.ID,e.type,e.arguments),O[KCt]=e=>t_e.FromTape(e.ID,e.type,e.arguments),O[ZCt]=e=>r_e.FromTape(e.ID,e.type,e.arguments),O[JCt]=e=>i_e.FromTape(e.ID,e.type,e.arguments),O[QCt]=e=>n_e.FromTape(e.ID,e.type,e.arguments),O[eAt]=e=>s_e.FromTape(e.ID,e.type,e.arguments),O[tAt]=e=>a_e.FromTape(e.ID,e.type,e.arguments),O[rAt]=e=>o_e.FromTape(e.ID,e.type,e.arguments),O[iAt]=e=>l_e.FromTape(e.ID,e.type,e.arguments),O[nAt]=e=>c_e.FromTape(e.ID,e.type,e.arguments),O[sAt]=e=>u_e.FromTape(e.ID,e.type,e.arguments),O[aAt]=e=>h_e.FromTape(e.ID,e.type,e.arguments),O[oAt]=e=>p_e.FromTape(e.ID,e.type,e.arguments),O[lAt]=e=>d_e.FromTape(e.ID,e.type,e.arguments),O[cAt]=e=>f_e.FromTape(e.ID,e.type,e.arguments),O[uAt]=e=>m_e.FromTape(e.ID,e.type,e.arguments),O[hAt]=e=>g_e.FromTape(e.ID,e.type,e.arguments),O[pAt]=e=>v_e.FromTape(e.ID,e.type,e.arguments),O[dAt]=e=>y_e.FromTape(e.ID,e.type,e.arguments),O[fAt]=e=>T_e.FromTape(e.ID,e.type,e.arguments),O[mAt]=e=>E_e.FromTape(e.ID,e.type,e.arguments),O[gAt]=e=>b_e.FromTape(e.ID,e.type,e.arguments),O[vAt]=e=>x_e.FromTape(e.ID,e.type,e.arguments),O[yAt]=e=>I_e.FromTape(e.ID,e.type,e.arguments),O[TAt]=e=>__e.FromTape(e.ID,e.type,e.arguments),O[EAt]=e=>S_e.FromTape(e.ID,e.type,e.arguments),O[bAt]=e=>w_e.FromTape(e.ID,e.type,e.arguments),O[xAt]=e=>R_e.FromTape(e.ID,e.type,e.arguments),O[IAt]=e=>M_e.FromTape(e.ID,e.type,e.arguments),O[_At]=e=>D_e.FromTape(e.ID,e.type,e.arguments),O[SAt]=e=>C_e.FromTape(e.ID,e.type,e.arguments),O[wAt]=e=>A_e.FromTape(e.ID,e.type,e.arguments),O[RAt]=e=>O_e.FromTape(e.ID,e.type,e.arguments),O[MAt]=e=>P_e.FromTape(e.ID,e.type,e.arguments),O[DAt]=e=>N_e.FromTape(e.ID,e.type,e.arguments),O[CAt]=e=>L_e.FromTape(e.ID,e.type,e.arguments),O[AAt]=e=>F_e.FromTape(e.ID,e.type,e.arguments),O[OAt]=e=>H_e.FromTape(e.ID,e.type,e.arguments),O[PAt]=e=>U_e.FromTape(e.ID,e.type,e.arguments),O[NAt]=e=>B_e.FromTape(e.ID,e.type,e.arguments),O[LAt]=e=>k_e.FromTape(e.ID,e.type,e.arguments),O[FAt]=e=>G_e.FromTape(e.ID,e.type,e.arguments),O[HAt]=e=>V_e.FromTape(e.ID,e.type,e.arguments),O[UAt]=e=>z_e.FromTape(e.ID,e.type,e.arguments),O[BAt]=e=>j_e.FromTape(e.ID,e.type,e.arguments),O[kAt]=e=>W_e.FromTape(e.ID,e.type,e.arguments),O[GAt]=e=>q_e.FromTape(e.ID,e.type,e.arguments),O[VAt]=e=>Y_e.FromTape(e.ID,e.type,e.arguments),O[zAt]=e=>X_e.FromTape(e.ID,e.type,e.arguments),O[jAt]=e=>$_e.FromTape(e.ID,e.type,e.arguments),O[WAt]=e=>K_e.FromTape(e.ID,e.type,e.arguments),O[qAt]=e=>Z_e.FromTape(e.ID,e.type,e.arguments),O[YAt]=e=>J_e.FromTape(e.ID,e.type,e.arguments),O[XAt]=e=>Q_e.FromTape(e.ID,e.type,e.arguments),O[$At]=e=>eSe.FromTape(e.ID,e.type,e.arguments),O[KAt]=e=>tSe.FromTape(e.ID,e.type,e.arguments),O[ZAt]=e=>rSe.FromTape(e.ID,e.type,e.arguments),O[JAt]=e=>iSe.FromTape(e.ID,e.type,e.arguments),O[QAt]=e=>nSe.FromTape(e.ID,e.type,e.arguments),O[eOt]=e=>sSe.FromTape(e.ID,e.type,e.arguments),O[tOt]=e=>aSe.FromTape(e.ID,e.type,e.arguments),O[rOt]=e=>oSe.FromTape(e.ID,e.type,e.arguments),O[iOt]=e=>lSe.FromTape(e.ID,e.type,e.arguments),O[nOt]=e=>cSe.FromTape(e.ID,e.type,e.arguments),O[sOt]=e=>uSe.FromTape(e.ID,e.type,e.arguments),O[aOt]=e=>hSe.FromTape(e.ID,e.type,e.arguments),O[oOt]=e=>pSe.FromTape(e.ID,e.type,e.arguments),O[lOt]=e=>dSe.FromTape(e.ID,e.type,e.arguments),O[cOt]=e=>fSe.FromTape(e.ID,e.type,e.arguments),O[uOt]=e=>mSe.FromTape(e.ID,e.type,e.arguments),O[hOt]=e=>gSe.FromTape(e.ID,e.type,e.arguments),O[pOt]=e=>vSe.FromTape(e.ID,e.type,e.arguments),O[dOt]=e=>ySe.FromTape(e.ID,e.type,e.arguments),O[fOt]=e=>TSe.FromTape(e.ID,e.type,e.arguments),O[mOt]=e=>ESe.FromTape(e.ID,e.type,e.arguments),O[gOt]=e=>bSe.FromTape(e.ID,e.type,e.arguments),O[vOt]=e=>xSe.FromTape(e.ID,e.type,e.arguments),O[yOt]=e=>ISe.FromTape(e.ID,e.type,e.arguments),O[TOt]=e=>_Se.FromTape(e.ID,e.type,e.arguments),O[EOt]=e=>SSe.FromTape(e.ID,e.type,e.arguments),O[bOt]=e=>wSe.FromTape(e.ID,e.type,e.arguments),O[xOt]=e=>RSe.FromTape(e.ID,e.type,e.arguments),O[IOt]=e=>MSe.FromTape(e.ID,e.type,e.arguments),O[_Ot]=e=>DSe.FromTape(e.ID,e.type,e.arguments),O[SOt]=e=>CSe.FromTape(e.ID,e.type,e.arguments),O[wOt]=e=>ASe.FromTape(e.ID,e.type,e.arguments),O[ROt]=e=>OSe.FromTape(e.ID,e.type,e.arguments),O[MOt]=e=>PSe.FromTape(e.ID,e.type,e.arguments),O[DOt]=e=>NSe.FromTape(e.ID,e.type,e.arguments),O[COt]=e=>LSe.FromTape(e.ID,e.type,e.arguments),O[AOt]=e=>FSe.FromTape(e.ID,e.type,e.arguments),O[OOt]=e=>HSe.FromTape(e.ID,e.type,e.arguments),O[POt]=e=>USe.FromTape(e.ID,e.type,e.arguments),O[NOt]=e=>BSe.FromTape(e.ID,e.type,e.arguments),O[LOt]=e=>kSe.FromTape(e.ID,e.type,e.arguments),O[FOt]=e=>GSe.FromTape(e.ID,e.type,e.arguments),O[HOt]=e=>VSe.FromTape(e.ID,e.type,e.arguments),O[UOt]=e=>zSe.FromTape(e.ID,e.type,e.arguments),O[BOt]=e=>jSe.FromTape(e.ID,e.type,e.arguments),O[kOt]=e=>WSe.FromTape(e.ID,e.type,e.arguments),O[GOt]=e=>qSe.FromTape(e.ID,e.type,e.arguments),O[VOt]=e=>YSe.FromTape(e.ID,e.type,e.arguments),O[zOt]=e=>XSe.FromTape(e.ID,e.type,e.arguments),O[jOt]=e=>$Se.FromTape(e.ID,e.type,e.arguments),O[WOt]=e=>KSe.FromTape(e.ID,e.type,e.arguments),O[qOt]=e=>ZSe.FromTape(e.ID,e.type,e.arguments),O[YOt]=e=>JSe.FromTape(e.ID,e.type,e.arguments),O[XOt]=e=>QSe.FromTape(e.ID,e.type,e.arguments),O[$Ot]=e=>ewe.FromTape(e.ID,e.type,e.arguments),O[KOt]=e=>twe.FromTape(e.ID,e.type,e.arguments),O[ZOt]=e=>rwe.FromTape(e.ID,e.type,e.arguments),O[JOt]=e=>iwe.FromTape(e.ID,e.type,e.arguments),O[QOt]=e=>nwe.FromTape(e.ID,e.type,e.arguments),O[e3t]=e=>swe.FromTape(e.ID,e.type,e.arguments),O[t3t]=e=>awe.FromTape(e.ID,e.type,e.arguments),O[r3t]=e=>owe.FromTape(e.ID,e.type,e.arguments),O[i3t]=e=>lwe.FromTape(e.ID,e.type,e.arguments),O[n3t]=e=>cwe.FromTape(e.ID,e.type,e.arguments),O[s3t]=e=>uwe.FromTape(e.ID,e.type,e.arguments),O[a3t]=e=>hwe.FromTape(e.ID,e.type,e.arguments),O[o3t]=e=>pwe.FromTape(e.ID,e.type,e.arguments),O[l3t]=e=>dwe.FromTape(e.ID,e.type,e.arguments),O[c3t]=e=>fwe.FromTape(e.ID,e.type,e.arguments),O[u3t]=e=>mwe.FromTape(e.ID,e.type,e.arguments),O[h3t]=e=>gwe.FromTape(e.ID,e.type,e.arguments),O[p3t]=e=>vwe.FromTape(e.ID,e.type,e.arguments),O[d3t]=e=>ywe.FromTape(e.ID,e.type,e.arguments),O[f3t]=e=>Twe.FromTape(e.ID,e.type,e.arguments),O[m3t]=e=>Ewe.FromTape(e.ID,e.type,e.arguments),O[g3t]=e=>bwe.FromTape(e.ID,e.type,e.arguments),O[v3t]=e=>xwe.FromTape(e.ID,e.type,e.arguments),O[y3t]=e=>Iwe.FromTape(e.ID,e.type,e.arguments),O[T3t]=e=>_we.FromTape(e.ID,e.type,e.arguments),O[E3t]=e=>Swe.FromTape(e.ID,e.type,e.arguments),O[b3t]=e=>wwe.FromTape(e.ID,e.type,e.arguments),O[x3t]=e=>Rwe.FromTape(e.ID,e.type,e.arguments),O[I3t]=e=>Mwe.FromTape(e.ID,e.type,e.arguments),O[_3t]=e=>Dwe.FromTape(e.ID,e.type,e.arguments),O[S3t]=e=>Cwe.FromTape(e.ID,e.type,e.arguments),O[w3t]=e=>Awe.FromTape(e.ID,e.type,e.arguments),O[R3t]=e=>Owe.FromTape(e.ID,e.type,e.arguments),O[M3t]=e=>Pwe.FromTape(e.ID,e.type,e.arguments),O[D3t]=e=>Nwe.FromTape(e.ID,e.type,e.arguments),O[C3t]=e=>Lwe.FromTape(e.ID,e.type,e.arguments),O[A3t]=e=>Fwe.FromTape(e.ID,e.type,e.arguments),O[O3t]=e=>Hwe.FromTape(e.ID,e.type,e.arguments),O[P3t]=e=>Uwe.FromTape(e.ID,e.type,e.arguments),O[N3t]=e=>Bwe.FromTape(e.ID,e.type,e.arguments),O[L3t]=e=>kwe.FromTape(e.ID,e.type,e.arguments),O[F3t]=e=>Gwe.FromTape(e.ID,e.type,e.arguments),O[H3t]=e=>Vwe.FromTape(e.ID,e.type,e.arguments),O[U3t]=e=>zwe.FromTape(e.ID,e.type,e.arguments),O[B3t]=e=>jwe.FromTape(e.ID,e.type,e.arguments),O[k3t]=e=>Wwe.FromTape(e.ID,e.type,e.arguments);O[G3t]=e=>qwe.FromTape(e.ID,e.type,e.arguments),O[V3t]=e=>Ywe.FromTape(e.ID,e.type,e.arguments),O[z3t]=e=>Xwe.FromTape(e.ID,e.type,e.arguments),O[j3t]=e=>$we.FromTape(e.ID,e.type,e.arguments),O[W3t]=e=>Kwe.FromTape(e.ID,e.type,e.arguments),O[q3t]=e=>Zwe.FromTape(e.ID,e.type,e.arguments),O[Y3t]=e=>Jwe.FromTape(e.ID,e.type,e.arguments),O[X3t]=e=>Qwe.FromTape(e.ID,e.type,e.arguments),O[$3t]=e=>eRe.FromTape(e.ID,e.type,e.arguments),O[K3t]=e=>tRe.FromTape(e.ID,e.type,e.arguments),O[Z3t]=e=>rRe.FromTape(e.ID,e.type,e.arguments),O[J3t]=e=>iRe.FromTape(e.ID,e.type,e.arguments),O[Q3t]=e=>nRe.FromTape(e.ID,e.type,e.arguments),O[ePt]=e=>sRe.FromTape(e.ID,e.type,e.arguments),O[tPt]=e=>aRe.FromTape(e.ID,e.type,e.arguments),O[rPt]=e=>oRe.FromTape(e.ID,e.type,e.arguments);var Jg=class{constructor(e){this.value=e}};Jg.EMAIL="EMAIL",Jg.FAX="FAX",Jg.PHONE="PHONE",Jg.POST="POST",Jg.VERBAL="VERBAL",Jg.USERDEFINED="USERDEFINED",Jg.NOTDEFINED="NOTDEFINED";var dn=class{constructor(e){this.value=e}};dn.DEAD_LOAD_G="DEAD_LOAD_G",dn.COMPLETION_G1="COMPLETION_G1",dn.LIVE_LOAD_Q="LIVE_LOAD_Q",dn.SNOW_S="SNOW_S",dn.WIND_W="WIND_W",dn.PRESTRESSING_P="PRESTRESSING_P",dn.SETTLEMENT_U="SETTLEMENT_U",dn.TEMPERATURE_T="TEMPERATURE_T",dn.EARTHQUAKE_E="EARTHQUAKE_E",dn.FIRE="FIRE",dn.IMPULSE="IMPULSE",dn.IMPACT="IMPACT",dn.TRANSPORT="TRANSPORT",dn.ERECTION="ERECTION",dn.PROPPING="PROPPING",dn.SYSTEM_IMPERFECTION="SYSTEM_IMPERFECTION",dn.SHRINKAGE="SHRINKAGE",dn.CREEP="CREEP",dn.LACK_OF_FIT="LACK_OF_FIT",dn.BUOYANCY="BUOYANCY",dn.ICE="ICE",dn.CURRENT="CURRENT",dn.WAVE="WAVE",dn.RAIN="RAIN",dn.BRAKES="BRAKES",dn.USERDEFINED="USERDEFINED",dn.NOTDEFINED="NOTDEFINED";var sI=class{constructor(e){this.value=e}};sI.PERMANENT_G="PERMANENT_G",sI.VARIABLE_Q="VARIABLE_Q",sI.EXTRAORDINARY_A="EXTRAORDINARY_A",sI.USERDEFINED="USERDEFINED",sI.NOTDEFINED="NOTDEFINED";var Qg=class{constructor(e){this.value=e}};Qg.ELECTRICACTUATOR="ELECTRICACTUATOR",Qg.HANDOPERATEDACTUATOR="HANDOPERATEDACTUATOR",Qg.HYDRAULICACTUATOR="HYDRAULICACTUATOR",Qg.PNEUMATICACTUATOR="PNEUMATICACTUATOR",Qg.THERMOSTATICACTUATOR="THERMOSTATICACTUATOR",Qg.USERDEFINED="USERDEFINED",Qg.NOTDEFINED="NOTDEFINED";var aI=class{constructor(e){this.value=e}};aI.OFFICE="OFFICE",aI.SITE="SITE",aI.HOME="HOME",aI.DISTRIBUTIONPOINT="DISTRIBUTIONPOINT",aI.USERDEFINED="USERDEFINED";var oI=class{constructor(e){this.value=e}};oI.CONSTANTFLOW="CONSTANTFLOW",oI.VARIABLEFLOWPRESSUREDEPENDANT="VARIABLEFLOWPRESSUREDEPENDANT",oI.VARIABLEFLOWPRESSUREINDEPENDANT="VARIABLEFLOWPRESSUREINDEPENDANT",oI.USERDEFINED="USERDEFINED",oI.NOTDEFINED="NOTDEFINED";var vT=class{constructor(e){this.value=e}};vT.DIFFUSER="DIFFUSER",vT.GRILLE="GRILLE",vT.LOUVRE="LOUVRE",vT.REGISTER="REGISTER",vT.USERDEFINED="USERDEFINED",vT.NOTDEFINED="NOTDEFINED";var Fc=class{constructor(e){this.value=e}};Fc.FIXEDPLATECOUNTERFLOWEXCHANGER="FIXEDPLATECOUNTERFLOWEXCHANGER",Fc.FIXEDPLATECROSSFLOWEXCHANGER="FIXEDPLATECROSSFLOWEXCHANGER",Fc.FIXEDPLATEPARALLELFLOWEXCHANGER="FIXEDPLATEPARALLELFLOWEXCHANGER",Fc.ROTARYWHEEL="ROTARYWHEEL",Fc.RUNAROUNDCOILLOOP="RUNAROUNDCOILLOOP",Fc.HEATPIPE="HEATPIPE",Fc.TWINTOWERENTHALPYRECOVERYLOOPS="TWINTOWERENTHALPYRECOVERYLOOPS",Fc.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS="THERMOSIPHONSEALEDTUBEHEATEXCHANGERS",Fc.THERMOSIPHONCOILTYPEHEATEXCHANGERS="THERMOSIPHONCOILTYPEHEATEXCHANGERS",Fc.USERDEFINED="USERDEFINED",Fc.NOTDEFINED="NOTDEFINED";var Lf=class{constructor(e){this.value=e}};Lf.BELL="BELL",Lf.BREAKGLASSBUTTON="BREAKGLASSBUTTON",Lf.LIGHT="LIGHT",Lf.MANUALPULLBOX="MANUALPULLBOX",Lf.SIREN="SIREN",Lf.WHISTLE="WHISTLE",Lf.USERDEFINED="USERDEFINED",Lf.NOTDEFINED="NOTDEFINED";var Vde=class{constructor(e){this.value=e}};Vde.USERDEFINED="USERDEFINED",Vde.NOTDEFINED="NOTDEFINED";var lI=class{constructor(e){this.value=e}};lI.IN_PLANE_LOADING_2D="IN_PLANE_LOADING_2D",lI.OUT_PLANE_LOADING_2D="OUT_PLANE_LOADING_2D",lI.LOADING_3D="LOADING_3D",lI.USERDEFINED="USERDEFINED",lI.NOTDEFINED="NOTDEFINED";var yT=class{constructor(e){this.value=e}};yT.FIRST_ORDER_THEORY="FIRST_ORDER_THEORY",yT.SECOND_ORDER_THEORY="SECOND_ORDER_THEORY",yT.THIRD_ORDER_THEORY="THIRD_ORDER_THEORY",yT.FULL_NONLINEAR_THEORY="FULL_NONLINEAR_THEORY",yT.USERDEFINED="USERDEFINED",yT.NOTDEFINED="NOTDEFINED";var dA=class{constructor(e){this.value=e}};dA.ADD="ADD",dA.DIVIDE="DIVIDE",dA.MULTIPLY="MULTIPLY",dA.SUBTRACT="SUBTRACT";var Xk=class{constructor(e){this.value=e}};Xk.SITE="SITE",Xk.FACTORY="FACTORY",Xk.NOTDEFINED="NOTDEFINED";var Xo=class{constructor(e){this.value=e}};Xo.AMPLIFIER="AMPLIFIER",Xo.CAMERA="CAMERA",Xo.DISPLAY="DISPLAY",Xo.MICROPHONE="MICROPHONE",Xo.PLAYER="PLAYER",Xo.PROJECTOR="PROJECTOR",Xo.RECEIVER="RECEIVER",Xo.SPEAKER="SPEAKER",Xo.SWITCHER="SWITCHER",Xo.TELEPHONE="TELEPHONE",Xo.TUNER="TUNER",Xo.USERDEFINED="USERDEFINED",Xo.NOTDEFINED="NOTDEFINED";var TT=class{constructor(e){this.value=e}};TT.POLYLINE_FORM="POLYLINE_FORM",TT.CIRCULAR_ARC="CIRCULAR_ARC",TT.ELLIPTIC_ARC="ELLIPTIC_ARC",TT.PARABOLIC_ARC="PARABOLIC_ARC",TT.HYPERBOLIC_ARC="HYPERBOLIC_ARC",TT.UNSPECIFIED="UNSPECIFIED";var Hc=class{constructor(e){this.value=e}};Hc.PLANE_SURF="PLANE_SURF",Hc.CYLINDRICAL_SURF="CYLINDRICAL_SURF",Hc.CONICAL_SURF="CONICAL_SURF",Hc.SPHERICAL_SURF="SPHERICAL_SURF",Hc.TOROIDAL_SURF="TOROIDAL_SURF",Hc.SURF_OF_REVOLUTION="SURF_OF_REVOLUTION",Hc.RULED_SURF="RULED_SURF",Hc.GENERALISED_CONE="GENERALISED_CONE",Hc.QUADRIC_SURF="QUADRIC_SURF",Hc.SURF_OF_LINEAR_EXTRUSION="SURF_OF_LINEAR_EXTRUSION",Hc.UNSPECIFIED="UNSPECIFIED";var po=class{constructor(e){this.value=e}};po.BEAM="BEAM",po.JOIST="JOIST",po.HOLLOWCORE="HOLLOWCORE",po.LINTEL="LINTEL",po.SPANDREL="SPANDREL",po.T_BEAM="T_BEAM",po.GIRDER_SEGMENT="GIRDER_SEGMENT",po.DIAPHRAGM="DIAPHRAGM",po.PIERCAP="PIERCAP",po.HATSTONE="HATSTONE",po.CORNICE="CORNICE",po.EDGEBEAM="EDGEBEAM",po.USERDEFINED="USERDEFINED",po.NOTDEFINED="NOTDEFINED";var cI=class{constructor(e){this.value=e}};cI.FIXED_MOVEMENT="FIXED_MOVEMENT",cI.GUIDED_LONGITUDINAL="GUIDED_LONGITUDINAL",cI.GUIDED_TRANSVERSAL="GUIDED_TRANSVERSAL",cI.FREE_MOVEMENT="FREE_MOVEMENT",cI.NOTDEFINED="NOTDEFINED";var Ku=class{constructor(e){this.value=e}};Ku.CYLINDRICAL="CYLINDRICAL",Ku.SPHERICAL="SPHERICAL",Ku.ELASTOMERIC="ELASTOMERIC",Ku.POT="POT",Ku.GUIDE="GUIDE",Ku.ROCKER="ROCKER",Ku.ROLLER="ROLLER",Ku.DISK="DISK",Ku.USERDEFINED="USERDEFINED",Ku.NOTDEFINED="NOTDEFINED";var Zu=class{constructor(e){this.value=e}};Zu.GREATERTHAN="GREATERTHAN",Zu.GREATERTHANOREQUALTO="GREATERTHANOREQUALTO",Zu.LESSTHAN="LESSTHAN",Zu.LESSTHANOREQUALTO="LESSTHANOREQUALTO",Zu.EQUALTO="EQUALTO",Zu.NOTEQUALTO="NOTEQUALTO",Zu.INCLUDES="INCLUDES",Zu.NOTINCLUDES="NOTINCLUDES",Zu.INCLUDEDIN="INCLUDEDIN",Zu.NOTINCLUDEDIN="NOTINCLUDEDIN";var fA=class{constructor(e){this.value=e}};fA.WATER="WATER",fA.STEAM="STEAM",fA.USERDEFINED="USERDEFINED",fA.NOTDEFINED="NOTDEFINED";var $k=class{constructor(e){this.value=e}};$k.UNION="UNION",$k.INTERSECTION="INTERSECTION",$k.DIFFERENCE="DIFFERENCE";var Bl=class{constructor(e){this.value=e}};Bl.ABUTMENT="ABUTMENT",Bl.DECK="DECK",Bl.DECK_SEGMENT="DECK_SEGMENT",Bl.FOUNDATION="FOUNDATION",Bl.PIER="PIER",Bl.PIER_SEGMENT="PIER_SEGMENT",Bl.PYLON="PYLON",Bl.SUBSTRUCTURE="SUBSTRUCTURE",Bl.SUPERSTRUCTURE="SUPERSTRUCTURE",Bl.SURFACESTRUCTURE="SURFACESTRUCTURE",Bl.USERDEFINED="USERDEFINED",Bl.NOTDEFINED="NOTDEFINED";var Ju=class{constructor(e){this.value=e}};Ju.ARCHED="ARCHED",Ju.CABLE_STAYED="CABLE_STAYED",Ju.CANTILEVER="CANTILEVER",Ju.CULVERT="CULVERT",Ju.FRAMEWORK="FRAMEWORK",Ju.GIRDER="GIRDER",Ju.SUSPENSION="SUSPENSION",Ju.TRUSS="TRUSS",Ju.USERDEFINED="USERDEFINED",Ju.NOTDEFINED="NOTDEFINED";var uI=class{constructor(e){this.value=e}};uI.INSULATION="INSULATION",uI.PRECASTPANEL="PRECASTPANEL",uI.APRON="APRON",uI.USERDEFINED="USERDEFINED",uI.NOTDEFINED="NOTDEFINED";var e0=class{constructor(e){this.value=e}};e0.COMPLEX="COMPLEX",e0.ELEMENT="ELEMENT",e0.PARTIAL="PARTIAL",e0.PROVISIONFORVOID="PROVISIONFORVOID",e0.PROVISIONFORSPACE="PROVISIONFORSPACE",e0.USERDEFINED="USERDEFINED",e0.NOTDEFINED="NOTDEFINED";var Qu=class{constructor(e){this.value=e}};Qu.FENESTRATION="FENESTRATION",Qu.FOUNDATION="FOUNDATION",Qu.LOADBEARING="LOADBEARING",Qu.OUTERSHELL="OUTERSHELL",Qu.SHADING="SHADING",Qu.TRANSPORT="TRANSPORT",Qu.REINFORCING="REINFORCING",Qu.PRESTRESSING="PRESTRESSING",Qu.USERDEFINED="USERDEFINED",Qu.NOTDEFINED="NOTDEFINED";var zde=class{constructor(e){this.value=e}};zde.USERDEFINED="USERDEFINED",zde.NOTDEFINED="NOTDEFINED";var ET=class{constructor(e){this.value=e}};ET.BEND="BEND",ET.CROSS="CROSS",ET.REDUCER="REDUCER",ET.TEE="TEE",ET.USERDEFINED="USERDEFINED",ET.NOTDEFINED="NOTDEFINED";var bT=class{constructor(e){this.value=e}};bT.CABLELADDERSEGMENT="CABLELADDERSEGMENT",bT.CABLETRAYSEGMENT="CABLETRAYSEGMENT",bT.CABLETRUNKINGSEGMENT="CABLETRUNKINGSEGMENT",bT.CONDUITSEGMENT="CONDUITSEGMENT",bT.USERDEFINED="USERDEFINED",bT.NOTDEFINED="NOTDEFINED";var t0=class{constructor(e){this.value=e}};t0.CONNECTOR="CONNECTOR",t0.ENTRY="ENTRY",t0.EXIT="EXIT",t0.JUNCTION="JUNCTION",t0.TRANSITION="TRANSITION",t0.USERDEFINED="USERDEFINED",t0.NOTDEFINED="NOTDEFINED";var xT=class{constructor(e){this.value=e}};xT.BUSBARSEGMENT="BUSBARSEGMENT",xT.CABLESEGMENT="CABLESEGMENT",xT.CONDUCTORSEGMENT="CONDUCTORSEGMENT",xT.CORESEGMENT="CORESEGMENT",xT.USERDEFINED="USERDEFINED",xT.NOTDEFINED="NOTDEFINED";var mA=class{constructor(e){this.value=e}};mA.WELL="WELL",mA.CAISSON="CAISSON",mA.USERDEFINED="USERDEFINED",mA.NOTDEFINED="NOTDEFINED";var hI=class{constructor(e){this.value=e}};hI.NOCHANGE="NOCHANGE",hI.MODIFIED="MODIFIED",hI.ADDED="ADDED",hI.DELETED="DELETED",hI.NOTDEFINED="NOTDEFINED";var pI=class{constructor(e){this.value=e}};pI.AIRCOOLED="AIRCOOLED",pI.WATERCOOLED="WATERCOOLED",pI.HEATRECOVERY="HEATRECOVERY",pI.USERDEFINED="USERDEFINED",pI.NOTDEFINED="NOTDEFINED";var jde=class{constructor(e){this.value=e}};jde.USERDEFINED="USERDEFINED",jde.NOTDEFINED="NOTDEFINED";var Vp=class{constructor(e){this.value=e}};Vp.DXCOOLINGCOIL="DXCOOLINGCOIL",Vp.ELECTRICHEATINGCOIL="ELECTRICHEATINGCOIL",Vp.GASHEATINGCOIL="GASHEATINGCOIL",Vp.HYDRONICCOIL="HYDRONICCOIL",Vp.STEAMHEATINGCOIL="STEAMHEATINGCOIL",Vp.WATERCOOLINGCOIL="WATERCOOLINGCOIL",Vp.WATERHEATINGCOIL="WATERHEATINGCOIL",Vp.USERDEFINED="USERDEFINED",Vp.NOTDEFINED="NOTDEFINED";var r0=class{constructor(e){this.value=e}};r0.COLUMN="COLUMN",r0.PILASTER="PILASTER",r0.PIERSTEM="PIERSTEM",r0.PIERSTEM_SEGMENT="PIERSTEM_SEGMENT",r0.STANDCOLUMN="STANDCOLUMN",r0.USERDEFINED="USERDEFINED",r0.NOTDEFINED="NOTDEFINED";var fo=class{constructor(e){this.value=e}};fo.ANTENNA="ANTENNA",fo.COMPUTER="COMPUTER",fo.FAX="FAX",fo.GATEWAY="GATEWAY",fo.MODEM="MODEM",fo.NETWORKAPPLIANCE="NETWORKAPPLIANCE",fo.NETWORKBRIDGE="NETWORKBRIDGE",fo.NETWORKHUB="NETWORKHUB",fo.PRINTER="PRINTER",fo.REPEATER="REPEATER",fo.ROUTER="ROUTER",fo.SCANNER="SCANNER",fo.USERDEFINED="USERDEFINED",fo.NOTDEFINED="NOTDEFINED";var Wde=class{constructor(e){this.value=e}};Wde.P_COMPLEX="P_COMPLEX",Wde.Q_COMPLEX="Q_COMPLEX";var ks=class{constructor(e){this.value=e}};ks.DYNAMIC="DYNAMIC",ks.RECIPROCATING="RECIPROCATING",ks.ROTARY="ROTARY",ks.SCROLL="SCROLL",ks.TROCHOIDAL="TROCHOIDAL",ks.SINGLESTAGE="SINGLESTAGE",ks.BOOSTER="BOOSTER",ks.OPENTYPE="OPENTYPE",ks.HERMETIC="HERMETIC",ks.SEMIHERMETIC="SEMIHERMETIC",ks.WELDEDSHELLHERMETIC="WELDEDSHELLHERMETIC",ks.ROLLINGPISTON="ROLLINGPISTON",ks.ROTARYVANE="ROTARYVANE",ks.SINGLESCREW="SINGLESCREW",ks.TWINSCREW="TWINSCREW",ks.USERDEFINED="USERDEFINED",ks.NOTDEFINED="NOTDEFINED";var zp=class{constructor(e){this.value=e}};zp.AIRCOOLED="AIRCOOLED",zp.EVAPORATIVECOOLED="EVAPORATIVECOOLED",zp.WATERCOOLED="WATERCOOLED",zp.WATERCOOLEDBRAZEDPLATE="WATERCOOLEDBRAZEDPLATE",zp.WATERCOOLEDSHELLCOIL="WATERCOOLEDSHELLCOIL",zp.WATERCOOLEDSHELLTUBE="WATERCOOLEDSHELLTUBE",zp.WATERCOOLEDTUBEINTUBE="WATERCOOLEDTUBEINTUBE",zp.USERDEFINED="USERDEFINED",zp.NOTDEFINED="NOTDEFINED";var gA=class{constructor(e){this.value=e}};gA.ATPATH="ATPATH",gA.ATSTART="ATSTART",gA.ATEND="ATEND",gA.NOTDEFINED="NOTDEFINED";var dI=class{constructor(e){this.value=e}};dI.HARD="HARD",dI.SOFT="SOFT",dI.ADVISORY="ADVISORY",dI.USERDEFINED="USERDEFINED",dI.NOTDEFINED="NOTDEFINED";var eh=class{constructor(e){this.value=e}};eh.DEMOLISHING="DEMOLISHING",eh.EARTHMOVING="EARTHMOVING",eh.ERECTING="ERECTING",eh.HEATING="HEATING",eh.LIGHTING="LIGHTING",eh.PAVING="PAVING",eh.PUMPING="PUMPING",eh.TRANSPORTING="TRANSPORTING",eh.USERDEFINED="USERDEFINED",eh.NOTDEFINED="NOTDEFINED";var Uc=class{constructor(e){this.value=e}};Uc.AGGREGATES="AGGREGATES",Uc.CONCRETE="CONCRETE",Uc.DRYWALL="DRYWALL",Uc.FUEL="FUEL",Uc.GYPSUM="GYPSUM",Uc.MASONRY="MASONRY",Uc.METAL="METAL",Uc.PLASTIC="PLASTIC",Uc.WOOD="WOOD",Uc.NOTDEFINED="NOTDEFINED",Uc.USERDEFINED="USERDEFINED";var vA=class{constructor(e){this.value=e}};vA.ASSEMBLY="ASSEMBLY",vA.FORMWORK="FORMWORK",vA.USERDEFINED="USERDEFINED",vA.NOTDEFINED="NOTDEFINED";var i0=class{constructor(e){this.value=e}};i0.FLOATING="FLOATING",i0.PROGRAMMABLE="PROGRAMMABLE",i0.PROPORTIONAL="PROPORTIONAL",i0.MULTIPOSITION="MULTIPOSITION",i0.TWOPOSITION="TWOPOSITION",i0.USERDEFINED="USERDEFINED",i0.NOTDEFINED="NOTDEFINED";var yA=class{constructor(e){this.value=e}};yA.ACTIVE="ACTIVE",yA.PASSIVE="PASSIVE",yA.USERDEFINED="USERDEFINED",yA.NOTDEFINED="NOTDEFINED";var fI=class{constructor(e){this.value=e}};fI.NATURALDRAFT="NATURALDRAFT",fI.MECHANICALINDUCEDDRAFT="MECHANICALINDUCEDDRAFT",fI.MECHANICALFORCEDDRAFT="MECHANICALFORCEDDRAFT",fI.USERDEFINED="USERDEFINED",fI.NOTDEFINED="NOTDEFINED";var qde=class{constructor(e){this.value=e}};qde.USERDEFINED="USERDEFINED",qde.NOTDEFINED="NOTDEFINED";var jp=class{constructor(e){this.value=e}};jp.BUDGET="BUDGET",jp.COSTPLAN="COSTPLAN",jp.ESTIMATE="ESTIMATE",jp.TENDER="TENDER",jp.PRICEDBILLOFQUANTITIES="PRICEDBILLOFQUANTITIES",jp.UNPRICEDBILLOFQUANTITIES="UNPRICEDBILLOFQUANTITIES",jp.SCHEDULEOFRATES="SCHEDULEOFRATES",jp.USERDEFINED="USERDEFINED",jp.NOTDEFINED="NOTDEFINED";var $o=class{constructor(e){this.value=e}};$o.CEILING="CEILING",$o.FLOORING="FLOORING",$o.CLADDING="CLADDING",$o.ROOFING="ROOFING",$o.MOLDING="MOLDING",$o.SKIRTINGBOARD="SKIRTINGBOARD",$o.INSULATION="INSULATION",$o.MEMBRANE="MEMBRANE",$o.SLEEVING="SLEEVING",$o.WRAPPING="WRAPPING",$o.COPING="COPING",$o.USERDEFINED="USERDEFINED",$o.NOTDEFINED="NOTDEFINED";var TA=class{constructor(e){this.value=e}};TA.OFFICE="OFFICE",TA.SITE="SITE",TA.USERDEFINED="USERDEFINED",TA.NOTDEFINED="NOTDEFINED";var Yde=class{constructor(e){this.value=e}};Yde.USERDEFINED="USERDEFINED",Yde.NOTDEFINED="NOTDEFINED";var EA=class{constructor(e){this.value=e}};EA.LINEAR="LINEAR",EA.LOG_LINEAR="LOG_LINEAR",EA.LOG_LOG="LOG_LOG",EA.NOTDEFINED="NOTDEFINED";var Ko=class{constructor(e){this.value=e}};Ko.BACKDRAFTDAMPER="BACKDRAFTDAMPER",Ko.BALANCINGDAMPER="BALANCINGDAMPER",Ko.BLASTDAMPER="BLASTDAMPER",Ko.CONTROLDAMPER="CONTROLDAMPER",Ko.FIREDAMPER="FIREDAMPER",Ko.FIRESMOKEDAMPER="FIRESMOKEDAMPER",Ko.FUMEHOODEXHAUST="FUMEHOODEXHAUST",Ko.GRAVITYDAMPER="GRAVITYDAMPER",Ko.GRAVITYRELIEFDAMPER="GRAVITYRELIEFDAMPER",Ko.RELIEFDAMPER="RELIEFDAMPER",Ko.SMOKEDAMPER="SMOKEDAMPER",Ko.USERDEFINED="USERDEFINED",Ko.NOTDEFINED="NOTDEFINED";var mI=class{constructor(e){this.value=e}};mI.MEASURED="MEASURED",mI.PREDICTED="PREDICTED",mI.SIMULATED="SIMULATED",mI.USERDEFINED="USERDEFINED",mI.NOTDEFINED="NOTDEFINED";var dr=class{constructor(e){this.value=e}};dr.ANGULARVELOCITYUNIT="ANGULARVELOCITYUNIT",dr.AREADENSITYUNIT="AREADENSITYUNIT",dr.COMPOUNDPLANEANGLEUNIT="COMPOUNDPLANEANGLEUNIT",dr.DYNAMICVISCOSITYUNIT="DYNAMICVISCOSITYUNIT",dr.HEATFLUXDENSITYUNIT="HEATFLUXDENSITYUNIT",dr.INTEGERCOUNTRATEUNIT="INTEGERCOUNTRATEUNIT",dr.ISOTHERMALMOISTURECAPACITYUNIT="ISOTHERMALMOISTURECAPACITYUNIT",dr.KINEMATICVISCOSITYUNIT="KINEMATICVISCOSITYUNIT",dr.LINEARVELOCITYUNIT="LINEARVELOCITYUNIT",dr.MASSDENSITYUNIT="MASSDENSITYUNIT",dr.MASSFLOWRATEUNIT="MASSFLOWRATEUNIT",dr.MOISTUREDIFFUSIVITYUNIT="MOISTUREDIFFUSIVITYUNIT",dr.MOLECULARWEIGHTUNIT="MOLECULARWEIGHTUNIT",dr.SPECIFICHEATCAPACITYUNIT="SPECIFICHEATCAPACITYUNIT",dr.THERMALADMITTANCEUNIT="THERMALADMITTANCEUNIT",dr.THERMALCONDUCTANCEUNIT="THERMALCONDUCTANCEUNIT",dr.THERMALRESISTANCEUNIT="THERMALRESISTANCEUNIT",dr.THERMALTRANSMITTANCEUNIT="THERMALTRANSMITTANCEUNIT",dr.VAPORPERMEABILITYUNIT="VAPORPERMEABILITYUNIT",dr.VOLUMETRICFLOWRATEUNIT="VOLUMETRICFLOWRATEUNIT",dr.ROTATIONALFREQUENCYUNIT="ROTATIONALFREQUENCYUNIT",dr.TORQUEUNIT="TORQUEUNIT",dr.MOMENTOFINERTIAUNIT="MOMENTOFINERTIAUNIT",dr.LINEARMOMENTUNIT="LINEARMOMENTUNIT",dr.LINEARFORCEUNIT="LINEARFORCEUNIT",dr.PLANARFORCEUNIT="PLANARFORCEUNIT",dr.MODULUSOFELASTICITYUNIT="MODULUSOFELASTICITYUNIT",dr.SHEARMODULUSUNIT="SHEARMODULUSUNIT",dr.LINEARSTIFFNESSUNIT="LINEARSTIFFNESSUNIT",dr.ROTATIONALSTIFFNESSUNIT="ROTATIONALSTIFFNESSUNIT",dr.MODULUSOFSUBGRADEREACTIONUNIT="MODULUSOFSUBGRADEREACTIONUNIT",dr.ACCELERATIONUNIT="ACCELERATIONUNIT",dr.CURVATUREUNIT="CURVATUREUNIT",dr.HEATINGVALUEUNIT="HEATINGVALUEUNIT",dr.IONCONCENTRATIONUNIT="IONCONCENTRATIONUNIT",dr.LUMINOUSINTENSITYDISTRIBUTIONUNIT="LUMINOUSINTENSITYDISTRIBUTIONUNIT",dr.MASSPERLENGTHUNIT="MASSPERLENGTHUNIT",dr.MODULUSOFLINEARSUBGRADEREACTIONUNIT="MODULUSOFLINEARSUBGRADEREACTIONUNIT",dr.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT="MODULUSOFROTATIONALSUBGRADEREACTIONUNIT",dr.PHUNIT="PHUNIT",dr.ROTATIONALMASSUNIT="ROTATIONALMASSUNIT",dr.SECTIONAREAINTEGRALUNIT="SECTIONAREAINTEGRALUNIT",dr.SECTIONMODULUSUNIT="SECTIONMODULUSUNIT",dr.SOUNDPOWERLEVELUNIT="SOUNDPOWERLEVELUNIT",dr.SOUNDPOWERUNIT="SOUNDPOWERUNIT",dr.SOUNDPRESSURELEVELUNIT="SOUNDPRESSURELEVELUNIT",dr.SOUNDPRESSUREUNIT="SOUNDPRESSUREUNIT",dr.TEMPERATUREGRADIENTUNIT="TEMPERATUREGRADIENTUNIT",dr.TEMPERATURERATEOFCHANGEUNIT="TEMPERATURERATEOFCHANGEUNIT",dr.THERMALEXPANSIONCOEFFICIENTUNIT="THERMALEXPANSIONCOEFFICIENTUNIT",dr.WARPINGCONSTANTUNIT="WARPINGCONSTANTUNIT",dr.WARPINGMOMENTUNIT="WARPINGMOMENTUNIT",dr.USERDEFINED="USERDEFINED";var Xde=class{constructor(e){this.value=e}};Xde.POSITIVE="POSITIVE",Xde.NEGATIVE="NEGATIVE";var IT=class{constructor(e){this.value=e}};IT.ANCHORPLATE="ANCHORPLATE",IT.BRACKET="BRACKET",IT.SHOE="SHOE",IT.EXPANSION_JOINT_DEVICE="EXPANSION_JOINT_DEVICE",IT.USERDEFINED="USERDEFINED",IT.NOTDEFINED="NOTDEFINED";var th=class{constructor(e){this.value=e}};th.FORMEDDUCT="FORMEDDUCT",th.INSPECTIONCHAMBER="INSPECTIONCHAMBER",th.INSPECTIONPIT="INSPECTIONPIT",th.MANHOLE="MANHOLE",th.METERCHAMBER="METERCHAMBER",th.SUMP="SUMP",th.TRENCH="TRENCH",th.VALVECHAMBER="VALVECHAMBER",th.USERDEFINED="USERDEFINED",th.NOTDEFINED="NOTDEFINED";var _T=class{constructor(e){this.value=e}};_T.CABLE="CABLE",_T.CABLECARRIER="CABLECARRIER",_T.DUCT="DUCT",_T.PIPE="PIPE",_T.USERDEFINED="USERDEFINED",_T.NOTDEFINED="NOTDEFINED";var Pr=class{constructor(e){this.value=e}};Pr.AIRCONDITIONING="AIRCONDITIONING",Pr.AUDIOVISUAL="AUDIOVISUAL",Pr.CHEMICAL="CHEMICAL",Pr.CHILLEDWATER="CHILLEDWATER",Pr.COMMUNICATION="COMMUNICATION",Pr.COMPRESSEDAIR="COMPRESSEDAIR",Pr.CONDENSERWATER="CONDENSERWATER",Pr.CONTROL="CONTROL",Pr.CONVEYING="CONVEYING",Pr.DATA="DATA",Pr.DISPOSAL="DISPOSAL",Pr.DOMESTICCOLDWATER="DOMESTICCOLDWATER",Pr.DOMESTICHOTWATER="DOMESTICHOTWATER",Pr.DRAINAGE="DRAINAGE",Pr.EARTHING="EARTHING",Pr.ELECTRICAL="ELECTRICAL",Pr.ELECTROACOUSTIC="ELECTROACOUSTIC",Pr.EXHAUST="EXHAUST",Pr.FIREPROTECTION="FIREPROTECTION",Pr.FUEL="FUEL",Pr.GAS="GAS",Pr.HAZARDOUS="HAZARDOUS",Pr.HEATING="HEATING",Pr.LIGHTING="LIGHTING",Pr.LIGHTNINGPROTECTION="LIGHTNINGPROTECTION",Pr.MUNICIPALSOLIDWASTE="MUNICIPALSOLIDWASTE",Pr.OIL="OIL",Pr.OPERATIONAL="OPERATIONAL",Pr.POWERGENERATION="POWERGENERATION",Pr.RAINWATER="RAINWATER",Pr.REFRIGERATION="REFRIGERATION",Pr.SECURITY="SECURITY",Pr.SEWAGE="SEWAGE",Pr.SIGNAL="SIGNAL",Pr.STORMWATER="STORMWATER",Pr.TELEPHONE="TELEPHONE",Pr.TV="TV",Pr.VACUUM="VACUUM",Pr.VENT="VENT",Pr.VENTILATION="VENTILATION",Pr.WASTEWATER="WASTEWATER",Pr.WATERSUPPLY="WATERSUPPLY",Pr.USERDEFINED="USERDEFINED",Pr.NOTDEFINED="NOTDEFINED";var ST=class{constructor(e){this.value=e}};ST.PUBLIC="PUBLIC",ST.RESTRICTED="RESTRICTED",ST.CONFIDENTIAL="CONFIDENTIAL",ST.PERSONAL="PERSONAL",ST.USERDEFINED="USERDEFINED",ST.NOTDEFINED="NOTDEFINED";var gI=class{constructor(e){this.value=e}};gI.DRAFT="DRAFT",gI.FINALDRAFT="FINALDRAFT",gI.FINAL="FINAL",gI.REVISION="REVISION",gI.NOTDEFINED="NOTDEFINED";var Wp=class{constructor(e){this.value=e}};Wp.SWINGING="SWINGING",Wp.DOUBLE_ACTING="DOUBLE_ACTING",Wp.SLIDING="SLIDING",Wp.FOLDING="FOLDING",Wp.REVOLVING="REVOLVING",Wp.ROLLINGUP="ROLLINGUP",Wp.FIXEDPANEL="FIXEDPANEL",Wp.USERDEFINED="USERDEFINED",Wp.NOTDEFINED="NOTDEFINED";var bA=class{constructor(e){this.value=e}};bA.LEFT="LEFT",bA.MIDDLE="MIDDLE",bA.RIGHT="RIGHT",bA.NOTDEFINED="NOTDEFINED";var qp=class{constructor(e){this.value=e}};qp.ALUMINIUM="ALUMINIUM",qp.HIGH_GRADE_STEEL="HIGH_GRADE_STEEL",qp.STEEL="STEEL",qp.WOOD="WOOD",qp.ALUMINIUM_WOOD="ALUMINIUM_WOOD",qp.ALUMINIUM_PLASTIC="ALUMINIUM_PLASTIC",qp.PLASTIC="PLASTIC",qp.USERDEFINED="USERDEFINED",qp.NOTDEFINED="NOTDEFINED";var As=class{constructor(e){this.value=e}};As.SINGLE_SWING_LEFT="SINGLE_SWING_LEFT",As.SINGLE_SWING_RIGHT="SINGLE_SWING_RIGHT",As.DOUBLE_DOOR_SINGLE_SWING="DOUBLE_DOOR_SINGLE_SWING",As.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT",As.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT",As.DOUBLE_SWING_LEFT="DOUBLE_SWING_LEFT",As.DOUBLE_SWING_RIGHT="DOUBLE_SWING_RIGHT",As.DOUBLE_DOOR_DOUBLE_SWING="DOUBLE_DOOR_DOUBLE_SWING",As.SLIDING_TO_LEFT="SLIDING_TO_LEFT",As.SLIDING_TO_RIGHT="SLIDING_TO_RIGHT",As.DOUBLE_DOOR_SLIDING="DOUBLE_DOOR_SLIDING",As.FOLDING_TO_LEFT="FOLDING_TO_LEFT",As.FOLDING_TO_RIGHT="FOLDING_TO_RIGHT",As.DOUBLE_DOOR_FOLDING="DOUBLE_DOOR_FOLDING",As.REVOLVING="REVOLVING",As.ROLLINGUP="ROLLINGUP",As.USERDEFINED="USERDEFINED",As.NOTDEFINED="NOTDEFINED";var vI=class{constructor(e){this.value=e}};vI.DOOR="DOOR",vI.GATE="GATE",vI.TRAPDOOR="TRAPDOOR",vI.USERDEFINED="USERDEFINED",vI.NOTDEFINED="NOTDEFINED";var ps=class{constructor(e){this.value=e}};ps.SINGLE_SWING_LEFT="SINGLE_SWING_LEFT",ps.SINGLE_SWING_RIGHT="SINGLE_SWING_RIGHT",ps.DOUBLE_DOOR_SINGLE_SWING="DOUBLE_DOOR_SINGLE_SWING",ps.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT",ps.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT",ps.DOUBLE_SWING_LEFT="DOUBLE_SWING_LEFT",ps.DOUBLE_SWING_RIGHT="DOUBLE_SWING_RIGHT",ps.DOUBLE_DOOR_DOUBLE_SWING="DOUBLE_DOOR_DOUBLE_SWING",ps.SLIDING_TO_LEFT="SLIDING_TO_LEFT",ps.SLIDING_TO_RIGHT="SLIDING_TO_RIGHT",ps.DOUBLE_DOOR_SLIDING="DOUBLE_DOOR_SLIDING",ps.FOLDING_TO_LEFT="FOLDING_TO_LEFT",ps.FOLDING_TO_RIGHT="FOLDING_TO_RIGHT",ps.DOUBLE_DOOR_FOLDING="DOUBLE_DOOR_FOLDING",ps.REVOLVING="REVOLVING",ps.ROLLINGUP="ROLLINGUP",ps.SWING_FIXED_LEFT="SWING_FIXED_LEFT",ps.SWING_FIXED_RIGHT="SWING_FIXED_RIGHT",ps.USERDEFINED="USERDEFINED",ps.NOTDEFINED="NOTDEFINED";var Yp=class{constructor(e){this.value=e}};Yp.BEND="BEND",Yp.CONNECTOR="CONNECTOR",Yp.ENTRY="ENTRY",Yp.EXIT="EXIT",Yp.JUNCTION="JUNCTION",Yp.OBSTRUCTION="OBSTRUCTION",Yp.TRANSITION="TRANSITION",Yp.USERDEFINED="USERDEFINED",Yp.NOTDEFINED="NOTDEFINED";var xA=class{constructor(e){this.value=e}};xA.RIGIDSEGMENT="RIGIDSEGMENT",xA.FLEXIBLESEGMENT="FLEXIBLESEGMENT",xA.USERDEFINED="USERDEFINED",xA.NOTDEFINED="NOTDEFINED";var yI=class{constructor(e){this.value=e}};yI.FLATOVAL="FLATOVAL",yI.RECTANGULAR="RECTANGULAR",yI.ROUND="ROUND",yI.USERDEFINED="USERDEFINED",yI.NOTDEFINED="NOTDEFINED";var Os=class{constructor(e){this.value=e}};Os.DISHWASHER="DISHWASHER",Os.ELECTRICCOOKER="ELECTRICCOOKER",Os.FREESTANDINGELECTRICHEATER="FREESTANDINGELECTRICHEATER",Os.FREESTANDINGFAN="FREESTANDINGFAN",Os.FREESTANDINGWATERHEATER="FREESTANDINGWATERHEATER",Os.FREESTANDINGWATERCOOLER="FREESTANDINGWATERCOOLER",Os.FREEZER="FREEZER",Os.FRIDGE_FREEZER="FRIDGE_FREEZER",Os.HANDDRYER="HANDDRYER",Os.KITCHENMACHINE="KITCHENMACHINE",Os.MICROWAVE="MICROWAVE",Os.PHOTOCOPIER="PHOTOCOPIER",Os.REFRIGERATOR="REFRIGERATOR",Os.TUMBLEDRYER="TUMBLEDRYER",Os.VENDINGMACHINE="VENDINGMACHINE",Os.WASHINGMACHINE="WASHINGMACHINE",Os.USERDEFINED="USERDEFINED",Os.NOTDEFINED="NOTDEFINED";var wT=class{constructor(e){this.value=e}};wT.CONSUMERUNIT="CONSUMERUNIT",wT.DISTRIBUTIONBOARD="DISTRIBUTIONBOARD",wT.MOTORCONTROLCENTRE="MOTORCONTROLCENTRE",wT.SWITCHBOARD="SWITCHBOARD",wT.USERDEFINED="USERDEFINED",wT.NOTDEFINED="NOTDEFINED";var n0=class{constructor(e){this.value=e}};n0.BATTERY="BATTERY",n0.CAPACITORBANK="CAPACITORBANK",n0.HARMONICFILTER="HARMONICFILTER",n0.INDUCTORBANK="INDUCTORBANK",n0.UPS="UPS",n0.USERDEFINED="USERDEFINED",n0.NOTDEFINED="NOTDEFINED";var TI=class{constructor(e){this.value=e}};TI.CHP="CHP",TI.ENGINEGENERATOR="ENGINEGENERATOR",TI.STANDALONE="STANDALONE",TI.USERDEFINED="USERDEFINED",TI.NOTDEFINED="NOTDEFINED";var s0=class{constructor(e){this.value=e}};s0.DC="DC",s0.INDUCTION="INDUCTION",s0.POLYPHASE="POLYPHASE",s0.RELUCTANCESYNCHRONOUS="RELUCTANCESYNCHRONOUS",s0.SYNCHRONOUS="SYNCHRONOUS",s0.USERDEFINED="USERDEFINED",s0.NOTDEFINED="NOTDEFINED";var EI=class{constructor(e){this.value=e}};EI.TIMECLOCK="TIMECLOCK",EI.TIMEDELAY="TIMEDELAY",EI.RELAY="RELAY",EI.USERDEFINED="USERDEFINED",EI.NOTDEFINED="NOTDEFINED";var Qs=class{constructor(e){this.value=e}};Qs.ACCESSORY_ASSEMBLY="ACCESSORY_ASSEMBLY",Qs.ARCH="ARCH",Qs.BEAM_GRID="BEAM_GRID",Qs.BRACED_FRAME="BRACED_FRAME",Qs.GIRDER="GIRDER",Qs.REINFORCEMENT_UNIT="REINFORCEMENT_UNIT",Qs.RIGID_FRAME="RIGID_FRAME",Qs.SLAB_FIELD="SLAB_FIELD",Qs.TRUSS="TRUSS",Qs.ABUTMENT="ABUTMENT",Qs.PIER="PIER",Qs.PYLON="PYLON",Qs.CROSS_BRACING="CROSS_BRACING",Qs.DECK="DECK",Qs.USERDEFINED="USERDEFINED",Qs.NOTDEFINED="NOTDEFINED";var Kk=class{constructor(e){this.value=e}};Kk.COMPLEX="COMPLEX",Kk.ELEMENT="ELEMENT",Kk.PARTIAL="PARTIAL";var IA=class{constructor(e){this.value=e}};IA.EXTERNALCOMBUSTION="EXTERNALCOMBUSTION",IA.INTERNALCOMBUSTION="INTERNALCOMBUSTION",IA.USERDEFINED="USERDEFINED",IA.NOTDEFINED="NOTDEFINED";var Bc=class{constructor(e){this.value=e}};Bc.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER="DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER",Bc.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER="DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER",Bc.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER="DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER",Bc.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER="DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER",Bc.DIRECTEVAPORATIVEAIRWASHER="DIRECTEVAPORATIVEAIRWASHER",Bc.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER="INDIRECTEVAPORATIVEPACKAGEAIRCOOLER",Bc.INDIRECTEVAPORATIVEWETCOIL="INDIRECTEVAPORATIVEWETCOIL",Bc.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER="INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER",Bc.INDIRECTDIRECTCOMBINATION="INDIRECTDIRECTCOMBINATION",Bc.USERDEFINED="USERDEFINED",Bc.NOTDEFINED="NOTDEFINED";var Ff=class{constructor(e){this.value=e}};Ff.DIRECTEXPANSION="DIRECTEXPANSION",Ff.DIRECTEXPANSIONSHELLANDTUBE="DIRECTEXPANSIONSHELLANDTUBE",Ff.DIRECTEXPANSIONTUBEINTUBE="DIRECTEXPANSIONTUBEINTUBE",Ff.DIRECTEXPANSIONBRAZEDPLATE="DIRECTEXPANSIONBRAZEDPLATE",Ff.FLOODEDSHELLANDTUBE="FLOODEDSHELLANDTUBE",Ff.SHELLANDCOIL="SHELLANDCOIL",Ff.USERDEFINED="USERDEFINED",Ff.NOTDEFINED="NOTDEFINED";var RT=class{constructor(e){this.value=e}};RT.EVENTRULE="EVENTRULE",RT.EVENTMESSAGE="EVENTMESSAGE",RT.EVENTTIME="EVENTTIME",RT.EVENTCOMPLEX="EVENTCOMPLEX",RT.USERDEFINED="USERDEFINED",RT.NOTDEFINED="NOTDEFINED";var bI=class{constructor(e){this.value=e}};bI.STARTEVENT="STARTEVENT",bI.ENDEVENT="ENDEVENT",bI.INTERMEDIATEEVENT="INTERMEDIATEEVENT",bI.USERDEFINED="USERDEFINED",bI.NOTDEFINED="NOTDEFINED";var MT=class{constructor(e){this.value=e}};MT.EXTERNAL="EXTERNAL",MT.EXTERNAL_EARTH="EXTERNAL_EARTH",MT.EXTERNAL_WATER="EXTERNAL_WATER",MT.EXTERNAL_FIRE="EXTERNAL_FIRE",MT.USERDEFINED="USERDEFINED",MT.NOTDEFINED="NOTDEFINED";var Xp=class{constructor(e){this.value=e}};Xp.CENTRIFUGALFORWARDCURVED="CENTRIFUGALFORWARDCURVED",Xp.CENTRIFUGALRADIAL="CENTRIFUGALRADIAL",Xp.CENTRIFUGALBACKWARDINCLINEDCURVED="CENTRIFUGALBACKWARDINCLINEDCURVED",Xp.CENTRIFUGALAIRFOIL="CENTRIFUGALAIRFOIL",Xp.TUBEAXIAL="TUBEAXIAL",Xp.VANEAXIAL="VANEAXIAL",Xp.PROPELLORAXIAL="PROPELLORAXIAL",Xp.USERDEFINED="USERDEFINED",Xp.NOTDEFINED="NOTDEFINED";var xI=class{constructor(e){this.value=e}};xI.GLUE="GLUE",xI.MORTAR="MORTAR",xI.WELD="WELD",xI.USERDEFINED="USERDEFINED",xI.NOTDEFINED="NOTDEFINED";var Hf=class{constructor(e){this.value=e}};Hf.AIRPARTICLEFILTER="AIRPARTICLEFILTER",Hf.COMPRESSEDAIRFILTER="COMPRESSEDAIRFILTER",Hf.ODORFILTER="ODORFILTER",Hf.OILFILTER="OILFILTER",Hf.STRAINER="STRAINER",Hf.WATERFILTER="WATERFILTER",Hf.USERDEFINED="USERDEFINED",Hf.NOTDEFINED="NOTDEFINED";var a0=class{constructor(e){this.value=e}};a0.BREECHINGINLET="BREECHINGINLET",a0.FIREHYDRANT="FIREHYDRANT",a0.HOSEREEL="HOSEREEL",a0.SPRINKLER="SPRINKLER",a0.SPRINKLERDEFLECTOR="SPRINKLERDEFLECTOR",a0.USERDEFINED="USERDEFINED",a0.NOTDEFINED="NOTDEFINED";var _A=class{constructor(e){this.value=e}};_A.SOURCE="SOURCE",_A.SINK="SINK",_A.SOURCEANDSINK="SOURCEANDSINK",_A.NOTDEFINED="NOTDEFINED";var rh=class{constructor(e){this.value=e}};rh.PRESSUREGAUGE="PRESSUREGAUGE",rh.THERMOMETER="THERMOMETER",rh.AMMETER="AMMETER",rh.FREQUENCYMETER="FREQUENCYMETER",rh.POWERFACTORMETER="POWERFACTORMETER",rh.PHASEANGLEMETER="PHASEANGLEMETER",rh.VOLTMETER_PEAK="VOLTMETER_PEAK",rh.VOLTMETER_RMS="VOLTMETER_RMS",rh.USERDEFINED="USERDEFINED",rh.NOTDEFINED="NOTDEFINED";var DT=class{constructor(e){this.value=e}};DT.ENERGYMETER="ENERGYMETER",DT.GASMETER="GASMETER",DT.OILMETER="OILMETER",DT.WATERMETER="WATERMETER",DT.USERDEFINED="USERDEFINED",DT.NOTDEFINED="NOTDEFINED";var o0=class{constructor(e){this.value=e}};o0.CAISSON_FOUNDATION="CAISSON_FOUNDATION",o0.FOOTING_BEAM="FOOTING_BEAM",o0.PAD_FOOTING="PAD_FOOTING",o0.PILE_CAP="PILE_CAP",o0.STRIP_FOOTING="STRIP_FOOTING",o0.USERDEFINED="USERDEFINED",o0.NOTDEFINED="NOTDEFINED";var $p=class{constructor(e){this.value=e}};$p.CHAIR="CHAIR",$p.TABLE="TABLE",$p.DESK="DESK",$p.BED="BED",$p.FILECABINET="FILECABINET",$p.SHELF="SHELF",$p.SOFA="SOFA",$p.USERDEFINED="USERDEFINED",$p.NOTDEFINED="NOTDEFINED";var SA=class{constructor(e){this.value=e}};SA.TERRAIN="TERRAIN",SA.SOIL_BORING_POINT="SOIL_BORING_POINT",SA.USERDEFINED="USERDEFINED",SA.NOTDEFINED="NOTDEFINED";var Kp=class{constructor(e){this.value=e}};Kp.GRAPH_VIEW="GRAPH_VIEW",Kp.SKETCH_VIEW="SKETCH_VIEW",Kp.MODEL_VIEW="MODEL_VIEW",Kp.PLAN_VIEW="PLAN_VIEW",Kp.REFLECTED_PLAN_VIEW="REFLECTED_PLAN_VIEW",Kp.SECTION_VIEW="SECTION_VIEW",Kp.ELEVATION_VIEW="ELEVATION_VIEW",Kp.USERDEFINED="USERDEFINED",Kp.NOTDEFINED="NOTDEFINED";var $de=class{constructor(e){this.value=e}};$de.GLOBAL_COORDS="GLOBAL_COORDS",$de.LOCAL_COORDS="LOCAL_COORDS";var CT=class{constructor(e){this.value=e}};CT.RECTANGULAR="RECTANGULAR",CT.RADIAL="RADIAL",CT.TRIANGULAR="TRIANGULAR",CT.IRREGULAR="IRREGULAR",CT.USERDEFINED="USERDEFINED",CT.NOTDEFINED="NOTDEFINED";var wA=class{constructor(e){this.value=e}};wA.PLATE="PLATE",wA.SHELLANDTUBE="SHELLANDTUBE",wA.USERDEFINED="USERDEFINED",wA.NOTDEFINED="NOTDEFINED";var Oa=class{constructor(e){this.value=e}};Oa.STEAMINJECTION="STEAMINJECTION",Oa.ADIABATICAIRWASHER="ADIABATICAIRWASHER",Oa.ADIABATICPAN="ADIABATICPAN",Oa.ADIABATICWETTEDELEMENT="ADIABATICWETTEDELEMENT",Oa.ADIABATICATOMIZING="ADIABATICATOMIZING",Oa.ADIABATICULTRASONIC="ADIABATICULTRASONIC",Oa.ADIABATICRIGIDMEDIA="ADIABATICRIGIDMEDIA",Oa.ADIABATICCOMPRESSEDAIRNOZZLE="ADIABATICCOMPRESSEDAIRNOZZLE",Oa.ASSISTEDELECTRIC="ASSISTEDELECTRIC",Oa.ASSISTEDNATURALGAS="ASSISTEDNATURALGAS",Oa.ASSISTEDPROPANE="ASSISTEDPROPANE",Oa.ASSISTEDBUTANE="ASSISTEDBUTANE",Oa.ASSISTEDSTEAM="ASSISTEDSTEAM",Oa.USERDEFINED="USERDEFINED",Oa.NOTDEFINED="NOTDEFINED";var AT=class{constructor(e){this.value=e}};AT.CYCLONIC="CYCLONIC",AT.GREASE="GREASE",AT.OIL="OIL",AT.PETROL="PETROL",AT.USERDEFINED="USERDEFINED",AT.NOTDEFINED="NOTDEFINED";var OT=class{constructor(e){this.value=e}};OT.INTERNAL="INTERNAL",OT.EXTERNAL="EXTERNAL",OT.EXTERNAL_EARTH="EXTERNAL_EARTH",OT.EXTERNAL_WATER="EXTERNAL_WATER",OT.EXTERNAL_FIRE="EXTERNAL_FIRE",OT.NOTDEFINED="NOTDEFINED";var II=class{constructor(e){this.value=e}};II.ASSETINVENTORY="ASSETINVENTORY",II.SPACEINVENTORY="SPACEINVENTORY",II.FURNITUREINVENTORY="FURNITUREINVENTORY",II.USERDEFINED="USERDEFINED",II.NOTDEFINED="NOTDEFINED";var RA=class{constructor(e){this.value=e}};RA.DATA="DATA",RA.POWER="POWER",RA.USERDEFINED="USERDEFINED",RA.NOTDEFINED="NOTDEFINED";var MA=class{constructor(e){this.value=e}};MA.UNIFORM_KNOTS="UNIFORM_KNOTS",MA.QUASI_UNIFORM_KNOTS="QUASI_UNIFORM_KNOTS",MA.PIECEWISE_BEZIER_KNOTS="PIECEWISE_BEZIER_KNOTS",MA.UNSPECIFIED="UNSPECIFIED";var ns=class{constructor(e){this.value=e}};ns.ADMINISTRATION="ADMINISTRATION",ns.CARPENTRY="CARPENTRY",ns.CLEANING="CLEANING",ns.CONCRETE="CONCRETE",ns.DRYWALL="DRYWALL",ns.ELECTRIC="ELECTRIC",ns.FINISHING="FINISHING",ns.FLOORING="FLOORING",ns.GENERAL="GENERAL",ns.HVAC="HVAC",ns.LANDSCAPING="LANDSCAPING",ns.MASONRY="MASONRY",ns.PAINTING="PAINTING",ns.PAVING="PAVING",ns.PLUMBING="PLUMBING",ns.ROOFING="ROOFING",ns.SITEGRADING="SITEGRADING",ns.STEELWORK="STEELWORK",ns.SURVEYING="SURVEYING",ns.USERDEFINED="USERDEFINED",ns.NOTDEFINED="NOTDEFINED";var kc=class{constructor(e){this.value=e}};kc.COMPACTFLUORESCENT="COMPACTFLUORESCENT",kc.FLUORESCENT="FLUORESCENT",kc.HALOGEN="HALOGEN",kc.HIGHPRESSUREMERCURY="HIGHPRESSUREMERCURY",kc.HIGHPRESSURESODIUM="HIGHPRESSURESODIUM",kc.LED="LED",kc.METALHALIDE="METALHALIDE",kc.OLED="OLED",kc.TUNGSTENFILAMENT="TUNGSTENFILAMENT",kc.USERDEFINED="USERDEFINED",kc.NOTDEFINED="NOTDEFINED";var Zk=class{constructor(e){this.value=e}};Zk.AXIS1="AXIS1",Zk.AXIS2="AXIS2",Zk.AXIS3="AXIS3";var DA=class{constructor(e){this.value=e}};DA.TYPE_A="TYPE_A",DA.TYPE_B="TYPE_B",DA.TYPE_C="TYPE_C",DA.NOTDEFINED="NOTDEFINED";var Gc=class{constructor(e){this.value=e}};Gc.COMPACTFLUORESCENT="COMPACTFLUORESCENT",Gc.FLUORESCENT="FLUORESCENT",Gc.HIGHPRESSUREMERCURY="HIGHPRESSUREMERCURY",Gc.HIGHPRESSURESODIUM="HIGHPRESSURESODIUM",Gc.LIGHTEMITTINGDIODE="LIGHTEMITTINGDIODE",Gc.LOWPRESSURESODIUM="LOWPRESSURESODIUM",Gc.LOWVOLTAGEHALOGEN="LOWVOLTAGEHALOGEN",Gc.MAINVOLTAGEHALOGEN="MAINVOLTAGEHALOGEN",Gc.METALHALIDE="METALHALIDE",Gc.TUNGSTENFILAMENT="TUNGSTENFILAMENT",Gc.NOTDEFINED="NOTDEFINED";var _I=class{constructor(e){this.value=e}};_I.POINTSOURCE="POINTSOURCE",_I.DIRECTIONSOURCE="DIRECTIONSOURCE",_I.SECURITYLIGHTING="SECURITYLIGHTING",_I.USERDEFINED="USERDEFINED",_I.NOTDEFINED="NOTDEFINED";var SI=class{constructor(e){this.value=e}};SI.LOAD_GROUP="LOAD_GROUP",SI.LOAD_CASE="LOAD_CASE",SI.LOAD_COMBINATION="LOAD_COMBINATION",SI.USERDEFINED="USERDEFINED",SI.NOTDEFINED="NOTDEFINED";var wI=class{constructor(e){this.value=e}};wI.LOGICALAND="LOGICALAND",wI.LOGICALOR="LOGICALOR",wI.LOGICALXOR="LOGICALXOR",wI.LOGICALNOTAND="LOGICALNOTAND",wI.LOGICALNOTOR="LOGICALNOTOR";var Zo=class{constructor(e){this.value=e}};Zo.ANCHORBOLT="ANCHORBOLT",Zo.BOLT="BOLT",Zo.DOWEL="DOWEL",Zo.NAIL="NAIL",Zo.NAILPLATE="NAILPLATE",Zo.RIVET="RIVET",Zo.SCREW="SCREW",Zo.SHEARCONNECTOR="SHEARCONNECTOR",Zo.STAPLE="STAPLE",Zo.STUDSHEARCONNECTOR="STUDSHEARCONNECTOR",Zo.COUPLER="COUPLER",Zo.USERDEFINED="USERDEFINED",Zo.NOTDEFINED="NOTDEFINED";var l0=class{constructor(e){this.value=e}};l0.AIRSTATION="AIRSTATION",l0.FEEDAIRUNIT="FEEDAIRUNIT",l0.OXYGENGENERATOR="OXYGENGENERATOR",l0.OXYGENPLANT="OXYGENPLANT",l0.VACUUMSTATION="VACUUMSTATION",l0.USERDEFINED="USERDEFINED",l0.NOTDEFINED="NOTDEFINED";var Is=class{constructor(e){this.value=e}};Is.BRACE="BRACE",Is.CHORD="CHORD",Is.COLLAR="COLLAR",Is.MEMBER="MEMBER",Is.MULLION="MULLION",Is.PLATE="PLATE",Is.POST="POST",Is.PURLIN="PURLIN",Is.RAFTER="RAFTER",Is.STRINGER="STRINGER",Is.STRUT="STRUT",Is.STUD="STUD",Is.STIFFENING_RIB="STIFFENING_RIB",Is.ARCH_SEGMENT="ARCH_SEGMENT",Is.SUSPENSION_CABLE="SUSPENSION_CABLE",Is.SUSPENDER="SUSPENDER",Is.STAY_CABLE="STAY_CABLE",Is.USERDEFINED="USERDEFINED",Is.NOTDEFINED="NOTDEFINED";var RI=class{constructor(e){this.value=e}};RI.BELTDRIVE="BELTDRIVE",RI.COUPLING="COUPLING",RI.DIRECTDRIVE="DIRECTDRIVE",RI.USERDEFINED="USERDEFINED",RI.NOTDEFINED="NOTDEFINED";var iPt=class{constructor(e){this.value=e}};iPt.NULL="NULL";var Uf=class{constructor(e){this.value=e}};Uf.PRODUCT="PRODUCT",Uf.PROCESS="PROCESS",Uf.CONTROL="CONTROL",Uf.RESOURCE="RESOURCE",Uf.ACTOR="ACTOR",Uf.GROUP="GROUP",Uf.PROJECT="PROJECT",Uf.NOTDEFINED="NOTDEFINED";var Jo=class{constructor(e){this.value=e}};Jo.CODECOMPLIANCE="CODECOMPLIANCE",Jo.CODEWAIVER="CODEWAIVER",Jo.DESIGNINTENT="DESIGNINTENT",Jo.EXTERNAL="EXTERNAL",Jo.HEALTHANDSAFETY="HEALTHANDSAFETY",Jo.MERGECONFLICT="MERGECONFLICT",Jo.MODELVIEW="MODELVIEW",Jo.PARAMETER="PARAMETER",Jo.REQUIREMENT="REQUIREMENT",Jo.SPECIFICATION="SPECIFICATION",Jo.TRIGGERCONDITION="TRIGGERCONDITION",Jo.USERDEFINED="USERDEFINED",Jo.NOTDEFINED="NOTDEFINED";var Zp=class{constructor(e){this.value=e}};Zp.ASSIGNEE="ASSIGNEE",Zp.ASSIGNOR="ASSIGNOR",Zp.LESSEE="LESSEE",Zp.LESSOR="LESSOR",Zp.LETTINGAGENT="LETTINGAGENT",Zp.OWNER="OWNER",Zp.TENANT="TENANT",Zp.USERDEFINED="USERDEFINED",Zp.NOTDEFINED="NOTDEFINED";var CA=class{constructor(e){this.value=e}};CA.OPENING="OPENING",CA.RECESS="RECESS",CA.USERDEFINED="USERDEFINED",CA.NOTDEFINED="NOTDEFINED";var c0=class{constructor(e){this.value=e}};c0.AUDIOVISUALOUTLET="AUDIOVISUALOUTLET",c0.COMMUNICATIONSOUTLET="COMMUNICATIONSOUTLET",c0.POWEROUTLET="POWEROUTLET",c0.DATAOUTLET="DATAOUTLET",c0.TELEPHONEOUTLET="TELEPHONEOUTLET",c0.USERDEFINED="USERDEFINED",c0.NOTDEFINED="NOTDEFINED";var Kde=class{constructor(e){this.value=e}};Kde.USERDEFINED="USERDEFINED",Kde.NOTDEFINED="NOTDEFINED";var MI=class{constructor(e){this.value=e}};MI.GRILL="GRILL",MI.LOUVER="LOUVER",MI.SCREEN="SCREEN",MI.USERDEFINED="USERDEFINED",MI.NOTDEFINED="NOTDEFINED";var DI=class{constructor(e){this.value=e}};DI.ACCESS="ACCESS",DI.BUILDING="BUILDING",DI.WORK="WORK",DI.USERDEFINED="USERDEFINED",DI.NOTDEFINED="NOTDEFINED";var Jk=class{constructor(e){this.value=e}};Jk.PHYSICAL="PHYSICAL",Jk.VIRTUAL="VIRTUAL",Jk.NOTDEFINED="NOTDEFINED";var PT=class{constructor(e){this.value=e}};PT.CAST_IN_PLACE="CAST_IN_PLACE",PT.COMPOSITE="COMPOSITE",PT.PRECAST_CONCRETE="PRECAST_CONCRETE",PT.PREFAB_STEEL="PREFAB_STEEL",PT.USERDEFINED="USERDEFINED",PT.NOTDEFINED="NOTDEFINED";var Bf=class{constructor(e){this.value=e}};Bf.BORED="BORED",Bf.DRIVEN="DRIVEN",Bf.JETGROUTING="JETGROUTING",Bf.COHESION="COHESION",Bf.FRICTION="FRICTION",Bf.SUPPORT="SUPPORT",Bf.USERDEFINED="USERDEFINED",Bf.NOTDEFINED="NOTDEFINED";var Jp=class{constructor(e){this.value=e}};Jp.BEND="BEND",Jp.CONNECTOR="CONNECTOR",Jp.ENTRY="ENTRY",Jp.EXIT="EXIT",Jp.JUNCTION="JUNCTION",Jp.OBSTRUCTION="OBSTRUCTION",Jp.TRANSITION="TRANSITION",Jp.USERDEFINED="USERDEFINED",Jp.NOTDEFINED="NOTDEFINED";var u0=class{constructor(e){this.value=e}};u0.CULVERT="CULVERT",u0.FLEXIBLESEGMENT="FLEXIBLESEGMENT",u0.RIGIDSEGMENT="RIGIDSEGMENT",u0.GUTTER="GUTTER",u0.SPOOL="SPOOL",u0.USERDEFINED="USERDEFINED",u0.NOTDEFINED="NOTDEFINED";var Vc=class{constructor(e){this.value=e}};Vc.CURTAIN_PANEL="CURTAIN_PANEL",Vc.SHEET="SHEET",Vc.FLANGE_PLATE="FLANGE_PLATE",Vc.WEB_PLATE="WEB_PLATE",Vc.STIFFENER_PLATE="STIFFENER_PLATE",Vc.GUSSET_PLATE="GUSSET_PLATE",Vc.COVER_PLATE="COVER_PLATE",Vc.SPLICE_PLATE="SPLICE_PLATE",Vc.BASE_PLATE="BASE_PLATE",Vc.USERDEFINED="USERDEFINED",Vc.NOTDEFINED="NOTDEFINED";var Qk=class{constructor(e){this.value=e}};Qk.CURVE3D="CURVE3D",Qk.PCURVE_S1="PCURVE_S1",Qk.PCURVE_S2="PCURVE_S2";var Qp=class{constructor(e){this.value=e}};Qp.ADVICE_CAUTION="ADVICE_CAUTION",Qp.ADVICE_NOTE="ADVICE_NOTE",Qp.ADVICE_WARNING="ADVICE_WARNING",Qp.CALIBRATION="CALIBRATION",Qp.DIAGNOSTIC="DIAGNOSTIC",Qp.SHUTDOWN="SHUTDOWN",Qp.STARTUP="STARTUP",Qp.USERDEFINED="USERDEFINED",Qp.NOTDEFINED="NOTDEFINED";var Zde=class{constructor(e){this.value=e}};Zde.CURVE="CURVE",Zde.AREA="AREA";var h0=class{constructor(e){this.value=e}};h0.CHANGEORDER="CHANGEORDER",h0.MAINTENANCEWORKORDER="MAINTENANCEWORKORDER",h0.MOVEORDER="MOVEORDER",h0.PURCHASEORDER="PURCHASEORDER",h0.WORKORDER="WORKORDER",h0.USERDEFINED="USERDEFINED",h0.NOTDEFINED="NOTDEFINED";var Jde=class{constructor(e){this.value=e}};Jde.PROJECTED_LENGTH="PROJECTED_LENGTH",Jde.TRUE_LENGTH="TRUE_LENGTH";var AA=class{constructor(e){this.value=e}};AA.BLISTER="BLISTER",AA.DEVIATOR="DEVIATOR",AA.USERDEFINED="USERDEFINED",AA.NOTDEFINED="NOTDEFINED";var kf=class{constructor(e){this.value=e}};kf.PSET_TYPEDRIVENONLY="PSET_TYPEDRIVENONLY",kf.PSET_TYPEDRIVENOVERRIDE="PSET_TYPEDRIVENOVERRIDE",kf.PSET_OCCURRENCEDRIVEN="PSET_OCCURRENCEDRIVEN",kf.PSET_PERFORMANCEDRIVEN="PSET_PERFORMANCEDRIVEN",kf.QTO_TYPEDRIVENONLY="QTO_TYPEDRIVENONLY",kf.QTO_TYPEDRIVENOVERRIDE="QTO_TYPEDRIVENOVERRIDE",kf.QTO_OCCURRENCEDRIVEN="QTO_OCCURRENCEDRIVEN",kf.NOTDEFINED="NOTDEFINED";var NT=class{constructor(e){this.value=e}};NT.ELECTRONIC="ELECTRONIC",NT.ELECTROMAGNETIC="ELECTROMAGNETIC",NT.RESIDUALCURRENT="RESIDUALCURRENT",NT.THERMAL="THERMAL",NT.USERDEFINED="USERDEFINED",NT.NOTDEFINED="NOTDEFINED";var ed=class{constructor(e){this.value=e}};ed.CIRCUITBREAKER="CIRCUITBREAKER",ed.EARTHLEAKAGECIRCUITBREAKER="EARTHLEAKAGECIRCUITBREAKER",ed.EARTHINGSWITCH="EARTHINGSWITCH",ed.FUSEDISCONNECTOR="FUSEDISCONNECTOR",ed.RESIDUALCURRENTCIRCUITBREAKER="RESIDUALCURRENTCIRCUITBREAKER",ed.RESIDUALCURRENTSWITCH="RESIDUALCURRENTSWITCH",ed.VARISTOR="VARISTOR",ed.USERDEFINED="USERDEFINED",ed.NOTDEFINED="NOTDEFINED";var td=class{constructor(e){this.value=e}};td.CIRCULATOR="CIRCULATOR",td.ENDSUCTION="ENDSUCTION",td.SPLITCASE="SPLITCASE",td.SUBMERSIBLEPUMP="SUBMERSIBLEPUMP",td.SUMPPUMP="SUMPPUMP",td.VERTICALINLINE="VERTICALINLINE",td.VERTICALTURBINE="VERTICALTURBINE",td.USERDEFINED="USERDEFINED",td.NOTDEFINED="NOTDEFINED";var CI=class{constructor(e){this.value=e}};CI.HANDRAIL="HANDRAIL",CI.GUARDRAIL="GUARDRAIL",CI.BALUSTRADE="BALUSTRADE",CI.USERDEFINED="USERDEFINED",CI.NOTDEFINED="NOTDEFINED";var OA=class{constructor(e){this.value=e}};OA.STRAIGHT="STRAIGHT",OA.SPIRAL="SPIRAL",OA.USERDEFINED="USERDEFINED",OA.NOTDEFINED="NOTDEFINED";var Gf=class{constructor(e){this.value=e}};Gf.STRAIGHT_RUN_RAMP="STRAIGHT_RUN_RAMP",Gf.TWO_STRAIGHT_RUN_RAMP="TWO_STRAIGHT_RUN_RAMP",Gf.QUARTER_TURN_RAMP="QUARTER_TURN_RAMP",Gf.TWO_QUARTER_TURN_RAMP="TWO_QUARTER_TURN_RAMP",Gf.HALF_TURN_RAMP="HALF_TURN_RAMP",Gf.SPIRAL_RAMP="SPIRAL_RAMP",Gf.USERDEFINED="USERDEFINED",Gf.NOTDEFINED="NOTDEFINED";var Vf=class{constructor(e){this.value=e}};Vf.DAILY="DAILY",Vf.WEEKLY="WEEKLY",Vf.MONTHLY_BY_DAY_OF_MONTH="MONTHLY_BY_DAY_OF_MONTH",Vf.MONTHLY_BY_POSITION="MONTHLY_BY_POSITION",Vf.BY_DAY_COUNT="BY_DAY_COUNT",Vf.BY_WEEKDAY_COUNT="BY_WEEKDAY_COUNT",Vf.YEARLY_BY_DAY_OF_MONTH="YEARLY_BY_DAY_OF_MONTH",Vf.YEARLY_BY_POSITION="YEARLY_BY_POSITION";var AI=class{constructor(e){this.value=e}};AI.KILOPOINT="KILOPOINT",AI.MILEPOINT="MILEPOINT",AI.STATION="STATION",AI.USERDEFINED="USERDEFINED",AI.NOTDEFINED="NOTDEFINED";var ih=class{constructor(e){this.value=e}};ih.BLINN="BLINN",ih.FLAT="FLAT",ih.GLASS="GLASS",ih.MATT="MATT",ih.METAL="METAL",ih.MIRROR="MIRROR",ih.PHONG="PHONG",ih.PLASTIC="PLASTIC",ih.STRAUSS="STRAUSS",ih.NOTDEFINED="NOTDEFINED";var nh=class{constructor(e){this.value=e}};nh.MAIN="MAIN",nh.SHEAR="SHEAR",nh.LIGATURE="LIGATURE",nh.STUD="STUD",nh.PUNCHING="PUNCHING",nh.EDGE="EDGE",nh.RING="RING",nh.ANCHORING="ANCHORING",nh.USERDEFINED="USERDEFINED",nh.NOTDEFINED="NOTDEFINED";var Qde=class{constructor(e){this.value=e}};Qde.PLAIN="PLAIN",Qde.TEXTURED="TEXTURED";var zc=class{constructor(e){this.value=e}};zc.ANCHORING="ANCHORING",zc.EDGE="EDGE",zc.LIGATURE="LIGATURE",zc.MAIN="MAIN",zc.PUNCHING="PUNCHING",zc.RING="RING",zc.SHEAR="SHEAR",zc.STUD="STUD",zc.SPACEBAR="SPACEBAR",zc.USERDEFINED="USERDEFINED",zc.NOTDEFINED="NOTDEFINED";var efe=class{constructor(e){this.value=e}};efe.USERDEFINED="USERDEFINED",efe.NOTDEFINED="NOTDEFINED";var Fn=class{constructor(e){this.value=e}};Fn.SUPPLIER="SUPPLIER",Fn.MANUFACTURER="MANUFACTURER",Fn.CONTRACTOR="CONTRACTOR",Fn.SUBCONTRACTOR="SUBCONTRACTOR",Fn.ARCHITECT="ARCHITECT",Fn.STRUCTURALENGINEER="STRUCTURALENGINEER",Fn.COSTENGINEER="COSTENGINEER",Fn.CLIENT="CLIENT",Fn.BUILDINGOWNER="BUILDINGOWNER",Fn.BUILDINGOPERATOR="BUILDINGOPERATOR",Fn.MECHANICALENGINEER="MECHANICALENGINEER",Fn.ELECTRICALENGINEER="ELECTRICALENGINEER",Fn.PROJECTMANAGER="PROJECTMANAGER",Fn.FACILITIESMANAGER="FACILITIESMANAGER",Fn.CIVILENGINEER="CIVILENGINEER",Fn.COMMISSIONINGENGINEER="COMMISSIONINGENGINEER",Fn.ENGINEER="ENGINEER",Fn.OWNER="OWNER",Fn.CONSULTANT="CONSULTANT",Fn.CONSTRUCTIONMANAGER="CONSTRUCTIONMANAGER",Fn.FIELDCONSTRUCTIONMANAGER="FIELDCONSTRUCTIONMANAGER",Fn.RESELLER="RESELLER",Fn.USERDEFINED="USERDEFINED";var Pa=class{constructor(e){this.value=e}};Pa.FLAT_ROOF="FLAT_ROOF",Pa.SHED_ROOF="SHED_ROOF",Pa.GABLE_ROOF="GABLE_ROOF",Pa.HIP_ROOF="HIP_ROOF",Pa.HIPPED_GABLE_ROOF="HIPPED_GABLE_ROOF",Pa.GAMBREL_ROOF="GAMBREL_ROOF",Pa.MANSARD_ROOF="MANSARD_ROOF",Pa.BARREL_ROOF="BARREL_ROOF",Pa.RAINBOW_ROOF="RAINBOW_ROOF",Pa.BUTTERFLY_ROOF="BUTTERFLY_ROOF",Pa.PAVILION_ROOF="PAVILION_ROOF",Pa.DOME_ROOF="DOME_ROOF",Pa.FREEFORM="FREEFORM",Pa.USERDEFINED="USERDEFINED",Pa.NOTDEFINED="NOTDEFINED";var ea=class{constructor(e){this.value=e}};ea.EXA="EXA",ea.PETA="PETA",ea.TERA="TERA",ea.GIGA="GIGA",ea.MEGA="MEGA",ea.KILO="KILO",ea.HECTO="HECTO",ea.DECA="DECA",ea.DECI="DECI",ea.CENTI="CENTI",ea.MILLI="MILLI",ea.MICRO="MICRO",ea.NANO="NANO",ea.PICO="PICO",ea.FEMTO="FEMTO",ea.ATTO="ATTO";var Yi=class{constructor(e){this.value=e}};Yi.AMPERE="AMPERE",Yi.BECQUEREL="BECQUEREL",Yi.CANDELA="CANDELA",Yi.COULOMB="COULOMB",Yi.CUBIC_METRE="CUBIC_METRE",Yi.DEGREE_CELSIUS="DEGREE_CELSIUS",Yi.FARAD="FARAD",Yi.GRAM="GRAM",Yi.GRAY="GRAY",Yi.HENRY="HENRY",Yi.HERTZ="HERTZ",Yi.JOULE="JOULE",Yi.KELVIN="KELVIN",Yi.LUMEN="LUMEN",Yi.LUX="LUX",Yi.METRE="METRE",Yi.MOLE="MOLE",Yi.NEWTON="NEWTON",Yi.OHM="OHM",Yi.PASCAL="PASCAL",Yi.RADIAN="RADIAN",Yi.SECOND="SECOND",Yi.SIEMENS="SIEMENS",Yi.SIEVERT="SIEVERT",Yi.SQUARE_METRE="SQUARE_METRE",Yi.STERADIAN="STERADIAN",Yi.TESLA="TESLA",Yi.VOLT="VOLT",Yi.WATT="WATT",Yi.WEBER="WEBER";var kl=class{constructor(e){this.value=e}};kl.BATH="BATH",kl.BIDET="BIDET",kl.CISTERN="CISTERN",kl.SHOWER="SHOWER",kl.SINK="SINK",kl.SANITARYFOUNTAIN="SANITARYFOUNTAIN",kl.TOILETPAN="TOILETPAN",kl.URINAL="URINAL",kl.WASHHANDBASIN="WASHHANDBASIN",kl.WCSEAT="WCSEAT",kl.USERDEFINED="USERDEFINED",kl.NOTDEFINED="NOTDEFINED";var tfe=class{constructor(e){this.value=e}};tfe.UNIFORM="UNIFORM",tfe.TAPERED="TAPERED";var En=class{constructor(e){this.value=e}};En.COSENSOR="COSENSOR",En.CO2SENSOR="CO2SENSOR",En.CONDUCTANCESENSOR="CONDUCTANCESENSOR",En.CONTACTSENSOR="CONTACTSENSOR",En.FIRESENSOR="FIRESENSOR",En.FLOWSENSOR="FLOWSENSOR",En.FROSTSENSOR="FROSTSENSOR",En.GASSENSOR="GASSENSOR",En.HEATSENSOR="HEATSENSOR",En.HUMIDITYSENSOR="HUMIDITYSENSOR",En.IDENTIFIERSENSOR="IDENTIFIERSENSOR",En.IONCONCENTRATIONSENSOR="IONCONCENTRATIONSENSOR",En.LEVELSENSOR="LEVELSENSOR",En.LIGHTSENSOR="LIGHTSENSOR",En.MOISTURESENSOR="MOISTURESENSOR",En.MOVEMENTSENSOR="MOVEMENTSENSOR",En.PHSENSOR="PHSENSOR",En.PRESSURESENSOR="PRESSURESENSOR",En.RADIATIONSENSOR="RADIATIONSENSOR",En.RADIOACTIVITYSENSOR="RADIOACTIVITYSENSOR",En.SMOKESENSOR="SMOKESENSOR",En.SOUNDSENSOR="SOUNDSENSOR",En.TEMPERATURESENSOR="TEMPERATURESENSOR",En.WINDSENSOR="WINDSENSOR",En.USERDEFINED="USERDEFINED",En.NOTDEFINED="NOTDEFINED";var LT=class{constructor(e){this.value=e}};LT.START_START="START_START",LT.START_FINISH="START_FINISH",LT.FINISH_START="FINISH_START",LT.FINISH_FINISH="FINISH_FINISH",LT.USERDEFINED="USERDEFINED",LT.NOTDEFINED="NOTDEFINED";var OI=class{constructor(e){this.value=e}};OI.JALOUSIE="JALOUSIE",OI.SHUTTER="SHUTTER",OI.AWNING="AWNING",OI.USERDEFINED="USERDEFINED",OI.NOTDEFINED="NOTDEFINED";var Gl=class{constructor(e){this.value=e}};Gl.P_SINGLEVALUE="P_SINGLEVALUE",Gl.P_ENUMERATEDVALUE="P_ENUMERATEDVALUE",Gl.P_BOUNDEDVALUE="P_BOUNDEDVALUE",Gl.P_LISTVALUE="P_LISTVALUE",Gl.P_TABLEVALUE="P_TABLEVALUE",Gl.P_REFERENCEVALUE="P_REFERENCEVALUE",Gl.Q_LENGTH="Q_LENGTH",Gl.Q_AREA="Q_AREA",Gl.Q_VOLUME="Q_VOLUME",Gl.Q_COUNT="Q_COUNT",Gl.Q_WEIGHT="Q_WEIGHT",Gl.Q_TIME="Q_TIME";var sh=class{constructor(e){this.value=e}};sh.FLOOR="FLOOR",sh.ROOF="ROOF",sh.LANDING="LANDING",sh.BASESLAB="BASESLAB",sh.APPROACH_SLAB="APPROACH_SLAB",sh.PAVING="PAVING",sh.WEARING="WEARING",sh.SIDEWALK="SIDEWALK",sh.USERDEFINED="USERDEFINED",sh.NOTDEFINED="NOTDEFINED";var PA=class{constructor(e){this.value=e}};PA.SOLARCOLLECTOR="SOLARCOLLECTOR",PA.SOLARPANEL="SOLARPANEL",PA.USERDEFINED="USERDEFINED",PA.NOTDEFINED="NOTDEFINED";var NA=class{constructor(e){this.value=e}};NA.CONVECTOR="CONVECTOR",NA.RADIATOR="RADIATOR",NA.USERDEFINED="USERDEFINED",NA.NOTDEFINED="NOTDEFINED";var p0=class{constructor(e){this.value=e}};p0.SPACE="SPACE",p0.PARKING="PARKING",p0.GFA="GFA",p0.INTERNAL="INTERNAL",p0.EXTERNAL="EXTERNAL",p0.USERDEFINED="USERDEFINED",p0.NOTDEFINED="NOTDEFINED";var ah=class{constructor(e){this.value=e}};ah.CONSTRUCTION="CONSTRUCTION",ah.FIRESAFETY="FIRESAFETY",ah.LIGHTING="LIGHTING",ah.OCCUPANCY="OCCUPANCY",ah.SECURITY="SECURITY",ah.THERMAL="THERMAL",ah.TRANSPORT="TRANSPORT",ah.VENTILATION="VENTILATION",ah.USERDEFINED="USERDEFINED",ah.NOTDEFINED="NOTDEFINED";var PI=class{constructor(e){this.value=e}};PI.BIRDCAGE="BIRDCAGE",PI.COWL="COWL",PI.RAINWATERHOPPER="RAINWATERHOPPER",PI.USERDEFINED="USERDEFINED",PI.NOTDEFINED="NOTDEFINED";var d0=class{constructor(e){this.value=e}};d0.STRAIGHT="STRAIGHT",d0.WINDER="WINDER",d0.SPIRAL="SPIRAL",d0.CURVED="CURVED",d0.FREEFORM="FREEFORM",d0.USERDEFINED="USERDEFINED",d0.NOTDEFINED="NOTDEFINED";var ta=class{constructor(e){this.value=e}};ta.STRAIGHT_RUN_STAIR="STRAIGHT_RUN_STAIR",ta.TWO_STRAIGHT_RUN_STAIR="TWO_STRAIGHT_RUN_STAIR",ta.QUARTER_WINDING_STAIR="QUARTER_WINDING_STAIR",ta.QUARTER_TURN_STAIR="QUARTER_TURN_STAIR",ta.HALF_WINDING_STAIR="HALF_WINDING_STAIR",ta.HALF_TURN_STAIR="HALF_TURN_STAIR",ta.TWO_QUARTER_WINDING_STAIR="TWO_QUARTER_WINDING_STAIR",ta.TWO_QUARTER_TURN_STAIR="TWO_QUARTER_TURN_STAIR",ta.THREE_QUARTER_WINDING_STAIR="THREE_QUARTER_WINDING_STAIR",ta.THREE_QUARTER_TURN_STAIR="THREE_QUARTER_TURN_STAIR",ta.SPIRAL_STAIR="SPIRAL_STAIR",ta.DOUBLE_RETURN_STAIR="DOUBLE_RETURN_STAIR",ta.CURVED_RUN_STAIR="CURVED_RUN_STAIR",ta.TWO_CURVED_RUN_STAIR="TWO_CURVED_RUN_STAIR",ta.USERDEFINED="USERDEFINED",ta.NOTDEFINED="NOTDEFINED";var NI=class{constructor(e){this.value=e}};NI.READWRITE="READWRITE",NI.READONLY="READONLY",NI.LOCKED="LOCKED",NI.READWRITELOCKED="READWRITELOCKED",NI.READONLYLOCKED="READONLYLOCKED";var rd=class{constructor(e){this.value=e}};rd.CONST="CONST",rd.LINEAR="LINEAR",rd.POLYGONAL="POLYGONAL",rd.EQUIDISTANT="EQUIDISTANT",rd.SINUS="SINUS",rd.PARABOLA="PARABOLA",rd.DISCRETE="DISCRETE",rd.USERDEFINED="USERDEFINED",rd.NOTDEFINED="NOTDEFINED";var f0=class{constructor(e){this.value=e}};f0.RIGID_JOINED_MEMBER="RIGID_JOINED_MEMBER",f0.PIN_JOINED_MEMBER="PIN_JOINED_MEMBER",f0.CABLE="CABLE",f0.TENSION_MEMBER="TENSION_MEMBER",f0.COMPRESSION_MEMBER="COMPRESSION_MEMBER",f0.USERDEFINED="USERDEFINED",f0.NOTDEFINED="NOTDEFINED";var FT=class{constructor(e){this.value=e}};FT.CONST="CONST",FT.BILINEAR="BILINEAR",FT.DISCRETE="DISCRETE",FT.ISOCONTOUR="ISOCONTOUR",FT.USERDEFINED="USERDEFINED",FT.NOTDEFINED="NOTDEFINED";var LI=class{constructor(e){this.value=e}};LI.BENDING_ELEMENT="BENDING_ELEMENT",LI.MEMBRANE_ELEMENT="MEMBRANE_ELEMENT",LI.SHELL="SHELL",LI.USERDEFINED="USERDEFINED",LI.NOTDEFINED="NOTDEFINED";var LA=class{constructor(e){this.value=e}};LA.PURCHASE="PURCHASE",LA.WORK="WORK",LA.USERDEFINED="USERDEFINED",LA.NOTDEFINED="NOTDEFINED";var HT=class{constructor(e){this.value=e}};HT.MARK="MARK",HT.TAG="TAG",HT.TREATMENT="TREATMENT",HT.DEFECT="DEFECT",HT.USERDEFINED="USERDEFINED",HT.NOTDEFINED="NOTDEFINED";var e8=class{constructor(e){this.value=e}};e8.POSITIVE="POSITIVE",e8.NEGATIVE="NEGATIVE",e8.BOTH="BOTH";var jc=class{constructor(e){this.value=e}};jc.CONTACTOR="CONTACTOR",jc.DIMMERSWITCH="DIMMERSWITCH",jc.EMERGENCYSTOP="EMERGENCYSTOP",jc.KEYPAD="KEYPAD",jc.MOMENTARYSWITCH="MOMENTARYSWITCH",jc.SELECTORSWITCH="SELECTORSWITCH",jc.STARTER="STARTER",jc.SWITCHDISCONNECTOR="SWITCHDISCONNECTOR",jc.TOGGLESWITCH="TOGGLESWITCH",jc.USERDEFINED="USERDEFINED",jc.NOTDEFINED="NOTDEFINED";var FA=class{constructor(e){this.value=e}};FA.PANEL="PANEL",FA.WORKSURFACE="WORKSURFACE",FA.USERDEFINED="USERDEFINED",FA.NOTDEFINED="NOTDEFINED";var id=class{constructor(e){this.value=e}};id.BASIN="BASIN",id.BREAKPRESSURE="BREAKPRESSURE",id.EXPANSION="EXPANSION",id.FEEDANDEXPANSION="FEEDANDEXPANSION",id.PRESSUREVESSEL="PRESSUREVESSEL",id.STORAGE="STORAGE",id.VESSEL="VESSEL",id.USERDEFINED="USERDEFINED",id.NOTDEFINED="NOTDEFINED";var t8=class{constructor(e){this.value=e}};t8.ELAPSEDTIME="ELAPSEDTIME",t8.WORKTIME="WORKTIME",t8.NOTDEFINED="NOTDEFINED";var mo=class{constructor(e){this.value=e}};mo.ATTENDANCE="ATTENDANCE",mo.CONSTRUCTION="CONSTRUCTION",mo.DEMOLITION="DEMOLITION",mo.DISMANTLE="DISMANTLE",mo.DISPOSAL="DISPOSAL",mo.INSTALLATION="INSTALLATION",mo.LOGISTIC="LOGISTIC",mo.MAINTENANCE="MAINTENANCE",mo.MOVE="MOVE",mo.OPERATION="OPERATION",mo.REMOVAL="REMOVAL",mo.RENOVATION="RENOVATION",mo.USERDEFINED="USERDEFINED",mo.NOTDEFINED="NOTDEFINED";var FI=class{constructor(e){this.value=e}};FI.COUPLER="COUPLER",FI.FIXED_END="FIXED_END",FI.TENSIONING_END="TENSIONING_END",FI.USERDEFINED="USERDEFINED",FI.NOTDEFINED="NOTDEFINED";var m0=class{constructor(e){this.value=e}};m0.DUCT="DUCT",m0.COUPLER="COUPLER",m0.GROUTING_DUCT="GROUTING_DUCT",m0.TRUMPET="TRUMPET",m0.DIABOLO="DIABOLO",m0.USERDEFINED="USERDEFINED",m0.NOTDEFINED="NOTDEFINED";var UT=class{constructor(e){this.value=e}};UT.BAR="BAR",UT.COATED="COATED",UT.STRAND="STRAND",UT.WIRE="WIRE",UT.USERDEFINED="USERDEFINED",UT.NOTDEFINED="NOTDEFINED";var HA=class{constructor(e){this.value=e}};HA.LEFT="LEFT",HA.RIGHT="RIGHT",HA.UP="UP",HA.DOWN="DOWN";var g0=class{constructor(e){this.value=e}};g0.CONTINUOUS="CONTINUOUS",g0.DISCRETE="DISCRETE",g0.DISCRETEBINARY="DISCRETEBINARY",g0.PIECEWISEBINARY="PIECEWISEBINARY",g0.PIECEWISECONSTANT="PIECEWISECONSTANT",g0.PIECEWISECONTINUOUS="PIECEWISECONTINUOUS",g0.NOTDEFINED="NOTDEFINED";var v0=class{constructor(e){this.value=e}};v0.CURRENT="CURRENT",v0.FREQUENCY="FREQUENCY",v0.INVERTER="INVERTER",v0.RECTIFIER="RECTIFIER",v0.VOLTAGE="VOLTAGE",v0.USERDEFINED="USERDEFINED",v0.NOTDEFINED="NOTDEFINED";var UA=class{constructor(e){this.value=e}};UA.DISCONTINUOUS="DISCONTINUOUS",UA.CONTINUOUS="CONTINUOUS",UA.CONTSAMEGRADIENT="CONTSAMEGRADIENT",UA.CONTSAMEGRADIENTSAMECURVATURE="CONTSAMEGRADIENTSAMECURVATURE";var BT=class{constructor(e){this.value=e}};BT.BIQUADRATICPARABOLA="BIQUADRATICPARABOLA",BT.BLOSSCURVE="BLOSSCURVE",BT.CLOTHOIDCURVE="CLOTHOIDCURVE",BT.COSINECURVE="COSINECURVE",BT.CUBICPARABOLA="CUBICPARABOLA",BT.SINECURVE="SINECURVE";var y0=class{constructor(e){this.value=e}};y0.ELEVATOR="ELEVATOR",y0.ESCALATOR="ESCALATOR",y0.MOVINGWALKWAY="MOVINGWALKWAY",y0.CRANEWAY="CRANEWAY",y0.LIFTINGGEAR="LIFTINGGEAR",y0.USERDEFINED="USERDEFINED",y0.NOTDEFINED="NOTDEFINED";var r8=class{constructor(e){this.value=e}};r8.CARTESIAN="CARTESIAN",r8.PARAMETER="PARAMETER",r8.UNSPECIFIED="UNSPECIFIED";var i8=class{constructor(e){this.value=e}};i8.FINNED="FINNED",i8.USERDEFINED="USERDEFINED",i8.NOTDEFINED="NOTDEFINED";var Xi=class{constructor(e){this.value=e}};Xi.ABSORBEDDOSEUNIT="ABSORBEDDOSEUNIT",Xi.AMOUNTOFSUBSTANCEUNIT="AMOUNTOFSUBSTANCEUNIT",Xi.AREAUNIT="AREAUNIT",Xi.DOSEEQUIVALENTUNIT="DOSEEQUIVALENTUNIT",Xi.ELECTRICCAPACITANCEUNIT="ELECTRICCAPACITANCEUNIT",Xi.ELECTRICCHARGEUNIT="ELECTRICCHARGEUNIT",Xi.ELECTRICCONDUCTANCEUNIT="ELECTRICCONDUCTANCEUNIT",Xi.ELECTRICCURRENTUNIT="ELECTRICCURRENTUNIT",Xi.ELECTRICRESISTANCEUNIT="ELECTRICRESISTANCEUNIT",Xi.ELECTRICVOLTAGEUNIT="ELECTRICVOLTAGEUNIT",Xi.ENERGYUNIT="ENERGYUNIT",Xi.FORCEUNIT="FORCEUNIT",Xi.FREQUENCYUNIT="FREQUENCYUNIT",Xi.ILLUMINANCEUNIT="ILLUMINANCEUNIT",Xi.INDUCTANCEUNIT="INDUCTANCEUNIT",Xi.LENGTHUNIT="LENGTHUNIT",Xi.LUMINOUSFLUXUNIT="LUMINOUSFLUXUNIT",Xi.LUMINOUSINTENSITYUNIT="LUMINOUSINTENSITYUNIT",Xi.MAGNETICFLUXDENSITYUNIT="MAGNETICFLUXDENSITYUNIT",Xi.MAGNETICFLUXUNIT="MAGNETICFLUXUNIT",Xi.MASSUNIT="MASSUNIT",Xi.PLANEANGLEUNIT="PLANEANGLEUNIT",Xi.POWERUNIT="POWERUNIT",Xi.PRESSUREUNIT="PRESSUREUNIT",Xi.RADIOACTIVITYUNIT="RADIOACTIVITYUNIT",Xi.SOLIDANGLEUNIT="SOLIDANGLEUNIT",Xi.THERMODYNAMICTEMPERATUREUNIT="THERMODYNAMICTEMPERATUREUNIT",Xi.TIMEUNIT="TIMEUNIT",Xi.VOLUMEUNIT="VOLUMEUNIT",Xi.USERDEFINED="USERDEFINED";var oh=class{constructor(e){this.value=e}};oh.ALARMPANEL="ALARMPANEL",oh.CONTROLPANEL="CONTROLPANEL",oh.GASDETECTIONPANEL="GASDETECTIONPANEL",oh.INDICATORPANEL="INDICATORPANEL",oh.MIMICPANEL="MIMICPANEL",oh.HUMIDISTAT="HUMIDISTAT",oh.THERMOSTAT="THERMOSTAT",oh.WEATHERSTATION="WEATHERSTATION",oh.USERDEFINED="USERDEFINED",oh.NOTDEFINED="NOTDEFINED";var T0=class{constructor(e){this.value=e}};T0.AIRHANDLER="AIRHANDLER",T0.AIRCONDITIONINGUNIT="AIRCONDITIONINGUNIT",T0.DEHUMIDIFIER="DEHUMIDIFIER",T0.SPLITSYSTEM="SPLITSYSTEM",T0.ROOFTOPUNIT="ROOFTOPUNIT",T0.USERDEFINED="USERDEFINED",T0.NOTDEFINED="NOTDEFINED";var Hn=class{constructor(e){this.value=e}};Hn.AIRRELEASE="AIRRELEASE",Hn.ANTIVACUUM="ANTIVACUUM",Hn.CHANGEOVER="CHANGEOVER",Hn.CHECK="CHECK",Hn.COMMISSIONING="COMMISSIONING",Hn.DIVERTING="DIVERTING",Hn.DRAWOFFCOCK="DRAWOFFCOCK",Hn.DOUBLECHECK="DOUBLECHECK",Hn.DOUBLEREGULATING="DOUBLEREGULATING",Hn.FAUCET="FAUCET",Hn.FLUSHING="FLUSHING",Hn.GASCOCK="GASCOCK",Hn.GASTAP="GASTAP",Hn.ISOLATING="ISOLATING",Hn.MIXING="MIXING",Hn.PRESSUREREDUCING="PRESSUREREDUCING",Hn.PRESSURERELIEF="PRESSURERELIEF",Hn.REGULATING="REGULATING",Hn.SAFETYCUTOFF="SAFETYCUTOFF",Hn.STEAMTRAP="STEAMTRAP",Hn.STOPCOCK="STOPCOCK",Hn.USERDEFINED="USERDEFINED",Hn.NOTDEFINED="NOTDEFINED";var zf=class{constructor(e){this.value=e}};zf.BENDING_YIELD="BENDING_YIELD",zf.SHEAR_YIELD="SHEAR_YIELD",zf.AXIAL_YIELD="AXIAL_YIELD",zf.FRICTION="FRICTION",zf.VISCOUS="VISCOUS",zf.RUBBER="RUBBER",zf.USERDEFINED="USERDEFINED",zf.NOTDEFINED="NOTDEFINED";var HI=class{constructor(e){this.value=e}};HI.COMPRESSION="COMPRESSION",HI.SPRING="SPRING",HI.BASE="BASE",HI.USERDEFINED="USERDEFINED",HI.NOTDEFINED="NOTDEFINED";var jf=class{constructor(e){this.value=e}};jf.CUTOUT="CUTOUT",jf.NOTCH="NOTCH",jf.HOLE="HOLE",jf.MITER="MITER",jf.CHAMFER="CHAMFER",jf.EDGE="EDGE",jf.USERDEFINED="USERDEFINED",jf.NOTDEFINED="NOTDEFINED";var Vl=class{constructor(e){this.value=e}};Vl.MOVABLE="MOVABLE",Vl.PARAPET="PARAPET",Vl.PARTITIONING="PARTITIONING",Vl.PLUMBINGWALL="PLUMBINGWALL",Vl.SHEAR="SHEAR",Vl.SOLIDWALL="SOLIDWALL",Vl.STANDARD="STANDARD",Vl.POLYGONAL="POLYGONAL",Vl.ELEMENTEDWALL="ELEMENTEDWALL",Vl.RETAININGWALL="RETAININGWALL",Vl.USERDEFINED="USERDEFINED",Vl.NOTDEFINED="NOTDEFINED";var nd=class{constructor(e){this.value=e}};nd.FLOORTRAP="FLOORTRAP",nd.FLOORWASTE="FLOORWASTE",nd.GULLYSUMP="GULLYSUMP",nd.GULLYTRAP="GULLYTRAP",nd.ROOFDRAIN="ROOFDRAIN",nd.WASTEDISPOSALUNIT="WASTEDISPOSALUNIT",nd.WASTETRAP="WASTETRAP",nd.USERDEFINED="USERDEFINED",nd.NOTDEFINED="NOTDEFINED";var go=class{constructor(e){this.value=e}};go.SIDEHUNGRIGHTHAND="SIDEHUNGRIGHTHAND",go.SIDEHUNGLEFTHAND="SIDEHUNGLEFTHAND",go.TILTANDTURNRIGHTHAND="TILTANDTURNRIGHTHAND",go.TILTANDTURNLEFTHAND="TILTANDTURNLEFTHAND",go.TOPHUNG="TOPHUNG",go.BOTTOMHUNG="BOTTOMHUNG",go.PIVOTHORIZONTAL="PIVOTHORIZONTAL",go.PIVOTVERTICAL="PIVOTVERTICAL",go.SLIDINGHORIZONTAL="SLIDINGHORIZONTAL",go.SLIDINGVERTICAL="SLIDINGVERTICAL",go.REMOVABLECASEMENT="REMOVABLECASEMENT",go.FIXEDCASEMENT="FIXEDCASEMENT",go.OTHEROPERATION="OTHEROPERATION",go.NOTDEFINED="NOTDEFINED";var kT=class{constructor(e){this.value=e}};kT.LEFT="LEFT",kT.MIDDLE="MIDDLE",kT.RIGHT="RIGHT",kT.BOTTOM="BOTTOM",kT.TOP="TOP",kT.NOTDEFINED="NOTDEFINED";var Wf=class{constructor(e){this.value=e}};Wf.ALUMINIUM="ALUMINIUM",Wf.HIGH_GRADE_STEEL="HIGH_GRADE_STEEL",Wf.STEEL="STEEL",Wf.WOOD="WOOD",Wf.ALUMINIUM_WOOD="ALUMINIUM_WOOD",Wf.PLASTIC="PLASTIC",Wf.OTHER_CONSTRUCTION="OTHER_CONSTRUCTION",Wf.NOTDEFINED="NOTDEFINED";var Wc=class{constructor(e){this.value=e}};Wc.SINGLE_PANEL="SINGLE_PANEL",Wc.DOUBLE_PANEL_VERTICAL="DOUBLE_PANEL_VERTICAL",Wc.DOUBLE_PANEL_HORIZONTAL="DOUBLE_PANEL_HORIZONTAL",Wc.TRIPLE_PANEL_VERTICAL="TRIPLE_PANEL_VERTICAL",Wc.TRIPLE_PANEL_BOTTOM="TRIPLE_PANEL_BOTTOM",Wc.TRIPLE_PANEL_TOP="TRIPLE_PANEL_TOP",Wc.TRIPLE_PANEL_LEFT="TRIPLE_PANEL_LEFT",Wc.TRIPLE_PANEL_RIGHT="TRIPLE_PANEL_RIGHT",Wc.TRIPLE_PANEL_HORIZONTAL="TRIPLE_PANEL_HORIZONTAL",Wc.USERDEFINED="USERDEFINED",Wc.NOTDEFINED="NOTDEFINED";var UI=class{constructor(e){this.value=e}};UI.WINDOW="WINDOW",UI.SKYLIGHT="SKYLIGHT",UI.LIGHTDOME="LIGHTDOME",UI.USERDEFINED="USERDEFINED",UI.NOTDEFINED="NOTDEFINED";var qc=class{constructor(e){this.value=e}};qc.SINGLE_PANEL="SINGLE_PANEL",qc.DOUBLE_PANEL_VERTICAL="DOUBLE_PANEL_VERTICAL",qc.DOUBLE_PANEL_HORIZONTAL="DOUBLE_PANEL_HORIZONTAL",qc.TRIPLE_PANEL_VERTICAL="TRIPLE_PANEL_VERTICAL",qc.TRIPLE_PANEL_BOTTOM="TRIPLE_PANEL_BOTTOM",qc.TRIPLE_PANEL_TOP="TRIPLE_PANEL_TOP",qc.TRIPLE_PANEL_LEFT="TRIPLE_PANEL_LEFT",qc.TRIPLE_PANEL_RIGHT="TRIPLE_PANEL_RIGHT",qc.TRIPLE_PANEL_HORIZONTAL="TRIPLE_PANEL_HORIZONTAL",qc.USERDEFINED="USERDEFINED",qc.NOTDEFINED="NOTDEFINED";var BI=class{constructor(e){this.value=e}};BI.FIRSTSHIFT="FIRSTSHIFT",BI.SECONDSHIFT="SECONDSHIFT",BI.THIRDSHIFT="THIRDSHIFT",BI.USERDEFINED="USERDEFINED",BI.NOTDEFINED="NOTDEFINED";var kI=class{constructor(e){this.value=e}};kI.ACTUAL="ACTUAL",kI.BASELINE="BASELINE",kI.PLANNED="PLANNED",kI.USERDEFINED="USERDEFINED",kI.NOTDEFINED="NOTDEFINED";var GI=class{constructor(e){this.value=e}};GI.ACTUAL="ACTUAL",GI.BASELINE="BASELINE",GI.PLANNED="PLANNED",GI.USERDEFINED="USERDEFINED",GI.NOTDEFINED="NOTDEFINED";var rfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=h,this.LongDescription=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new rfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.PredefinedType),e.push(this.Status),e.push(this.LongDescription),e}},ife=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.TheActor=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new ife(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.TheActor),e}},nfe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Role=i,this.UserDefinedRole=r,this.Description=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new nfe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Role),e.push(this.UserDefinedRole),e.push(this.Description),e}},sfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new sfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},afe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new afe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},ofe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Purpose=i,this.Description=r,this.UserDefinedPurpose=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new ofe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Purpose),e.push(this.Description),e.push(this.UserDefinedPurpose),e}},lfe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Outer=i}static FromTape(e,t,i){let r=0,n=i[r++];return new lfe(e,t,n)}ToTape(){let e=[];return e.push(this.Outer),e}},cfe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Outer=i,this.Voids=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new cfe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Outer),e.push(this.Voids),e}},ufe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Bounds=i,this.FaceSurface=r,this.SameSense=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new ufe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Bounds),e.push(this.FaceSurface),e.push(this.SameSense),e}},hfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new hfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},pfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new pfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},dfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new dfe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},ffe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new ffe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},mfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new mfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},gfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new gfe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},vfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new vfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},yfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new yfe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Tfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Axis=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Tfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Axis),e.push(this.PredefinedType),e}},Efe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.StartDistAlong=i,this.Segments=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Efe(e,t,n,s)}ToTape(){let e=[];return e.push(this.StartDistAlong),e.push(this.Segments),e}},bfe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.TangentialContinuity=i,this.StartTag=r,this.EndTag=n,this.CurveGeometry=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new bfe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.TangentialContinuity),e.push(this.StartTag),e.push(this.EndTag),e.push(this.CurveGeometry),e}},xfe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.TangentialContinuity=i,this.StartTag=r,this.EndTag=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new xfe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.TangentialContinuity),e.push(this.StartTag),e.push(this.EndTag),e}},Ife=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.TangentialContinuity=i,this.StartTag=r,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l,this.Radius=h,this.IsConvex=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Ife(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.TangentialContinuity),e.push(this.StartTag),e.push(this.EndTag),e.push(this.StartDistAlong),e.push(this.HorizontalLength),e.push(this.StartHeight),e.push(this.StartGradient),e.push(this.Radius),e.push(this.IsConvex),e}},_fe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.TangentialContinuity=i,this.StartTag=r,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new _fe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.TangentialContinuity),e.push(this.StartTag),e.push(this.EndTag),e.push(this.StartDistAlong),e.push(this.HorizontalLength),e.push(this.StartHeight),e.push(this.StartGradient),e}},Sfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.TangentialContinuity=i,this.StartTag=r,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l,this.ParabolaConstant=h,this.IsConvex=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Sfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.TangentialContinuity),e.push(this.StartTag),e.push(this.EndTag),e.push(this.StartDistAlong),e.push(this.HorizontalLength),e.push(this.StartHeight),e.push(this.StartGradient),e.push(this.ParabolaConstant),e.push(this.IsConvex),e}},wfe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Segments=i}static FromTape(e,t,i){let r=0,n=i[r++];return new wfe(e,t,n)}ToTape(){let e=[];return e.push(this.Segments),e}},Rfe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.TangentialContinuity=i,this.StartTag=r,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Rfe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.TangentialContinuity),e.push(this.StartTag),e.push(this.EndTag),e.push(this.StartDistAlong),e.push(this.HorizontalLength),e.push(this.StartHeight),e.push(this.StartGradient),e}},Mfe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Horizontal=i,this.Vertical=r,this.Tag=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Mfe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Horizontal),e.push(this.Vertical),e.push(this.Tag),e}},Dfe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Dfe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e}},Cfe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.OuterBoundary=i,this.InnerBoundaries=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Cfe(e,t,n,s)}ToTape(){let e=[];return e.push(this.OuterBoundary),e.push(this.InnerBoundaries),e}},Afe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ApplicationDeveloper=i,this.Version=r,this.ApplicationFullName=n,this.ApplicationIdentifier=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Afe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ApplicationDeveloper),e.push(this.Version),e.push(this.ApplicationFullName),e.push(this.ApplicationIdentifier),e}},Ofe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.AppliedValue=n,this.UnitBasis=s,this.ApplicableDate=a,this.FixedUntilDate=o,this.Category=l,this.Condition=h,this.ArithmeticOperator=u,this.Components=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Ofe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.AppliedValue),e.push(this.UnitBasis),e.push(this.ApplicableDate),e.push(this.FixedUntilDate),e.push(this.Category),e.push(this.Condition),e.push(this.ArithmeticOperator),e.push(this.Components),e}},Pfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.Identifier=i,this.Name=r,this.Description=n,this.TimeOfApproval=s,this.Status=a,this.Level=o,this.Qualifier=l,this.RequestingApproval=h,this.GivingApproval=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Pfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.Identifier),e.push(this.Name),e.push(this.Description),e.push(this.TimeOfApproval),e.push(this.Status),e.push(this.Level),e.push(this.Qualifier),e.push(this.RequestingApproval),e.push(this.GivingApproval),e}},Nfe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatingApproval=n,this.RelatedApprovals=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Nfe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatingApproval),e.push(this.RelatedApprovals),e}},Lfe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.OuterCurve=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Lfe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.OuterCurve),e}},Ffe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Curve=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Ffe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Curve),e}},Hfe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.OuterCurve=n,this.InnerCurves=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Hfe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.OuterCurve),e.push(this.InnerCurves),e}},Ufe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.OriginalValue=l,this.CurrentValue=h,this.TotalReplacementCost=u,this.Owner=c,this.User=p,this.ResponsiblePerson=d,this.IncorporationDate=f,this.DepreciatedValue=m}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++];return new Ufe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.OriginalValue),e.push(this.CurrentValue),e.push(this.TotalReplacementCost),e.push(this.Owner),e.push(this.User),e.push(this.ResponsiblePerson),e.push(this.IncorporationDate),e.push(this.DepreciatedValue),e}},Bfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.BottomFlangeWidth=s,this.OverallDepth=a,this.WebThickness=o,this.BottomFlangeThickness=l,this.BottomFlangeFilletRadius=h,this.TopFlangeWidth=u,this.TopFlangeThickness=c,this.TopFlangeFilletRadius=p,this.BottomFlangeEdgeRadius=d,this.BottomFlangeSlope=f,this.TopFlangeEdgeRadius=m,this.TopFlangeSlope=g}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++];return new Bfe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.BottomFlangeWidth),e.push(this.OverallDepth),e.push(this.WebThickness),e.push(this.BottomFlangeThickness),e.push(this.BottomFlangeFilletRadius),e.push(this.TopFlangeWidth),e.push(this.TopFlangeThickness),e.push(this.TopFlangeFilletRadius),e.push(this.BottomFlangeEdgeRadius),e.push(this.BottomFlangeSlope),e.push(this.TopFlangeEdgeRadius),e.push(this.TopFlangeSlope),e}},kfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new kfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Gfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Gfe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Vfe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Location=i,this.Axis=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Vfe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Axis),e}},zfe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Location=i,this.RefDirection=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new zfe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Location),e.push(this.RefDirection),e}},jfe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Location=i,this.Axis=r,this.RefDirection=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new jfe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Axis),e.push(this.RefDirection),e}},Wfe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Degree=i,this.ControlPointsList=r,this.CurveForm=n,this.ClosedCurve=s,this.SelfIntersect=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Wfe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Degree),e.push(this.ControlPointsList),e.push(this.CurveForm),e.push(this.ClosedCurve),e.push(this.SelfIntersect),e}},qfe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Degree=i,this.ControlPointsList=r,this.CurveForm=n,this.ClosedCurve=s,this.SelfIntersect=a,this.KnotMultiplicities=o,this.Knots=l,this.KnotSpec=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new qfe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Degree),e.push(this.ControlPointsList),e.push(this.CurveForm),e.push(this.ClosedCurve),e.push(this.SelfIntersect),e.push(this.KnotMultiplicities),e.push(this.Knots),e.push(this.KnotSpec),e}},Yfe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.UDegree=i,this.VDegree=r,this.ControlPointsList=n,this.SurfaceForm=s,this.UClosed=a,this.VClosed=o,this.SelfIntersect=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Yfe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.UDegree),e.push(this.VDegree),e.push(this.ControlPointsList),e.push(this.SurfaceForm),e.push(this.UClosed),e.push(this.VClosed),e.push(this.SelfIntersect),e}},Xfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.UDegree=i,this.VDegree=r,this.ControlPointsList=n,this.SurfaceForm=s,this.UClosed=a,this.VClosed=o,this.SelfIntersect=l,this.UMultiplicities=h,this.VMultiplicities=u,this.UKnots=c,this.VKnots=p,this.KnotSpec=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new Xfe(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.UDegree),e.push(this.VDegree),e.push(this.ControlPointsList),e.push(this.SurfaceForm),e.push(this.UClosed),e.push(this.VClosed),e.push(this.SelfIntersect),e.push(this.UMultiplicities),e.push(this.VMultiplicities),e.push(this.UKnots),e.push(this.VKnots),e.push(this.KnotSpec),e}},$fe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new $fe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Kfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Kfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Zfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Zfe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Jfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Jfe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Qfe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Qfe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},eme=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.RepeatS=i,this.RepeatT=r,this.Mode=n,this.TextureTransform=s,this.Parameter=a,this.RasterFormat=o,this.RasterCode=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new eme(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.RepeatS),e.push(this.RepeatT),e.push(this.Mode),e.push(this.TextureTransform),e.push(this.Parameter),e.push(this.RasterFormat),e.push(this.RasterCode),e}},tme=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Position=i,this.XLength=r,this.YLength=n,this.ZLength=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new tme(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Position),e.push(this.XLength),e.push(this.YLength),e.push(this.ZLength),e}},rme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new rme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},ime=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new ime(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},nme=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Operator=i,this.FirstOperand=r,this.SecondOperand=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new nme(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Operator),e.push(this.FirstOperand),e.push(this.SecondOperand),e}},sme=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Operator=i,this.FirstOperand=r,this.SecondOperand=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new sme(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Operator),e.push(this.FirstOperand),e.push(this.SecondOperand),e}},ame=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new ame(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},ome=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Segments=i,this.SelfIntersect=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new ome(e,t,n,s)}ToTape(){let e=[];return e.push(this.Segments),e.push(this.SelfIntersect),e}},lme=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.TranslationalStiffnessByLengthX=r,this.TranslationalStiffnessByLengthY=n,this.TranslationalStiffnessByLengthZ=s,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=o,this.RotationalStiffnessByLengthZ=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new lme(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.TranslationalStiffnessByLengthX),e.push(this.TranslationalStiffnessByLengthY),e.push(this.TranslationalStiffnessByLengthZ),e.push(this.RotationalStiffnessByLengthX),e.push(this.RotationalStiffnessByLengthY),e.push(this.RotationalStiffnessByLengthZ),e}},cme=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.TranslationalStiffnessByAreaX=r,this.TranslationalStiffnessByAreaY=n,this.TranslationalStiffnessByAreaZ=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new cme(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.TranslationalStiffnessByAreaX),e.push(this.TranslationalStiffnessByAreaY),e.push(this.TranslationalStiffnessByAreaZ),e}},ume=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.TranslationalStiffnessX=r,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=s,this.RotationalStiffnessX=a,this.RotationalStiffnessY=o,this.RotationalStiffnessZ=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new ume(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.TranslationalStiffnessX),e.push(this.TranslationalStiffnessY),e.push(this.TranslationalStiffnessZ),e.push(this.RotationalStiffnessX),e.push(this.RotationalStiffnessY),e.push(this.RotationalStiffnessZ),e}},hme=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Name=i,this.TranslationalStiffnessX=r,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=s,this.RotationalStiffnessX=a,this.RotationalStiffnessY=o,this.RotationalStiffnessZ=l,this.WarpingStiffness=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new hme(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Name),e.push(this.TranslationalStiffnessX),e.push(this.TranslationalStiffnessY),e.push(this.TranslationalStiffnessZ),e.push(this.RotationalStiffnessX),e.push(this.RotationalStiffnessY),e.push(this.RotationalStiffnessZ),e.push(this.WarpingStiffness),e}},pme=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new pme(e,t)}ToTape(){return[]}},dme=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new dme(e,t)}ToTape(){return[]}},fme=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Corner=i,this.XDim=r,this.YDim=n,this.ZDim=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new fme(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Corner),e.push(this.XDim),e.push(this.YDim),e.push(this.ZDim),e}},mme=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.BaseSurface=i,this.AgreementFlag=r,this.Enclosure=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new mme(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.BaseSurface),e.push(this.AgreementFlag),e.push(this.Enclosure),e}},gme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new gme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e.push(this.PredefinedType),e}},vme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new vme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e.push(this.PredefinedType),e}},yme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u,this.ElevationOfRefHeight=c,this.ElevationOfTerrain=p,this.BuildingAddress=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new yme(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e.push(this.ElevationOfRefHeight),e.push(this.ElevationOfTerrain),e.push(this.BuildingAddress),e}},Tme=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Tme(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Eme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Eme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},bme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new bme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},xme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new xme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Ime=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Ime(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},_me=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new _me(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Sme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u,this.Elevation=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Sme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e.push(this.Elevation),e}},wme=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.LongName=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new wme(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.PredefinedType),e.push(this.LongName),e}},Rme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Rme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Mme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Mme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Dme=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.Depth=s,this.Width=a,this.WallThickness=o,this.Girth=l,this.InternalFilletRadius=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Dme(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.Depth),e.push(this.Width),e.push(this.WallThickness),e.push(this.Girth),e.push(this.InternalFilletRadius),e}},Cme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Cme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Ame=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Ame(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Ome=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Ome(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Pme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Pme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Nme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Nme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Lme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Lme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Fme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Fme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Hme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Hme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Ume=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Ume(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Bme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Bme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},kme=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Coordinates=i}static FromTape(e,t,i){let r=0,n=i[r++];return new kme(e,t,n)}ToTape(){let e=[];return e.push(this.Coordinates),e}},Gme=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new Gme(e,t)}ToTape(){return[]}},Vme=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.CoordList=i,this.TagList=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Vme(e,t,n,s)}ToTape(){let e=[];return e.push(this.CoordList),e.push(this.TagList),e}},zme=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.CoordList=i,this.TagList=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new zme(e,t,n,s)}ToTape(){let e=[];return e.push(this.CoordList),e.push(this.TagList),e}},jme=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Axis1=i,this.Axis2=r,this.LocalOrigin=n,this.Scale=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new jme(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Axis1),e.push(this.Axis2),e.push(this.LocalOrigin),e.push(this.Scale),e}},Wme=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Axis1=i,this.Axis2=r,this.LocalOrigin=n,this.Scale=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Wme(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Axis1),e.push(this.Axis2),e.push(this.LocalOrigin),e.push(this.Scale),e}},qme=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Axis1=i,this.Axis2=r,this.LocalOrigin=n,this.Scale=s,this.Scale2=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new qme(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Axis1),e.push(this.Axis2),e.push(this.LocalOrigin),e.push(this.Scale),e.push(this.Scale2),e}},Yme=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Axis1=i,this.Axis2=r,this.LocalOrigin=n,this.Scale=s,this.Axis3=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Yme(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Axis1),e.push(this.Axis2),e.push(this.LocalOrigin),e.push(this.Scale),e.push(this.Axis3),e}},Xme=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Axis1=i,this.Axis2=r,this.LocalOrigin=n,this.Scale=s,this.Axis3=a,this.Scale2=o,this.Scale3=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Xme(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Axis1),e.push(this.Axis2),e.push(this.LocalOrigin),e.push(this.Scale),e.push(this.Axis3),e.push(this.Scale2),e.push(this.Scale3),e}},$me=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Curve=n,this.Thickness=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new $me(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Curve),e.push(this.Thickness),e}},Kme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Kme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Zme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Zme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Jme=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Jme(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Qme=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Qme(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},ege=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Position=i,this.Radius=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new ege(e,t,n,s)}ToTape(){let e=[];return e.push(this.Position),e.push(this.Radius),e}},tge=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.Radius=s,this.WallThickness=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new tge(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.Radius),e.push(this.WallThickness),e}},rge=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.Radius=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new rge(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.Radius),e}},ige=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.StartPoint=i,this.StartDirection=r,this.SegmentLength=n,this.Radius=s,this.IsCCW=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new ige(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.StartPoint),e.push(this.StartDirection),e.push(this.SegmentLength),e.push(this.Radius),e.push(this.IsCCW),e}},nge=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new nge(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},sge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new sge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},age=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Source=i,this.Edition=r,this.EditionDate=n,this.Name=s,this.Description=a,this.Location=o,this.ReferenceTokens=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new age(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Source),e.push(this.Edition),e.push(this.EditionDate),e.push(this.Name),e.push(this.Description),e.push(this.Location),e.push(this.ReferenceTokens),e}},oge=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Location=i,this.Identification=r,this.Name=n,this.ReferencedSource=s,this.Description=a,this.Sort=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new oge(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Identification),e.push(this.Name),e.push(this.ReferencedSource),e.push(this.Description),e.push(this.Sort),e}},lge=class{constructor(e,t,i){this.expressID=e,this.type=t,this.CfsFaces=i}static FromTape(e,t,i){let r=0,n=i[r++];return new lge(e,t,n)}ToTape(){let e=[];return e.push(this.CfsFaces),e}},cge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new cge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},uge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new uge(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},hge=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Red=r,this.Green=n,this.Blue=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new hge(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Red),e.push(this.Green),e.push(this.Blue),e}},pge=class{constructor(e,t,i){this.expressID=e,this.type=t,this.ColourList=i}static FromTape(e,t,i){let r=0,n=i[r++];return new pge(e,t,n)}ToTape(){let e=[];return e.push(this.ColourList),e}},dge=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new dge(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},fge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new fge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},mge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new mge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},gge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new gge(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},vge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new vge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},yge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new yge(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Tge=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.UsageName=n,this.HasProperties=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Tge(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.UsageName),e.push(this.HasProperties),e}},Ege=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.UsageName=a,this.TemplateType=o,this.HasPropertyTemplates=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Ege(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.UsageName),e.push(this.TemplateType),e.push(this.HasPropertyTemplates),e}},bge=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Segments=i,this.SelfIntersect=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new bge(e,t,n,s)}ToTape(){let e=[];return e.push(this.Segments),e.push(this.SelfIntersect),e}},xge=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Segments=i,this.SelfIntersect=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new xge(e,t,n,s)}ToTape(){let e=[];return e.push(this.Segments),e.push(this.SelfIntersect),e}},Ige=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Transition=i,this.SameSense=r,this.ParentCurve=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Ige(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Transition),e.push(this.SameSense),e.push(this.ParentCurve),e}},_ge=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Profiles=n,this.Label=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new _ge(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Profiles),e.push(this.Label),e}},Sge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Sge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},wge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new wge(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Rge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Rge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Mge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Mge(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Dge=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Position=i}static FromTape(e,t,i){let r=0,n=i[r++];return new Dge(e,t,n)}ToTape(){let e=[];return e.push(this.Position),e}},Cge=class{constructor(e,t,i){this.expressID=e,this.type=t,this.CfsFaces=i}static FromTape(e,t,i){let r=0,n=i[r++];return new Cge(e,t,n)}ToTape(){let e=[];return e.push(this.CfsFaces),e}},Age=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.CurveOnRelatingElement=i,this.CurveOnRelatedElement=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Age(e,t,n,s)}ToTape(){let e=[];return e.push(this.CurveOnRelatingElement),e.push(this.CurveOnRelatedElement),e}},Oge=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new Oge(e,t)}ToTape(){return[]}},Pge=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.PointOnRelatingElement=i,this.PointOnRelatedElement=r,this.EccentricityInX=n,this.EccentricityInY=s,this.EccentricityInZ=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Pge(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.PointOnRelatingElement),e.push(this.PointOnRelatedElement),e.push(this.EccentricityInX),e.push(this.EccentricityInY),e.push(this.EccentricityInZ),e}},Nge=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.PointOnRelatingElement=i,this.PointOnRelatedElement=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Nge(e,t,n,s)}ToTape(){let e=[];return e.push(this.PointOnRelatingElement),e.push(this.PointOnRelatedElement),e}},Lge=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.SurfaceOnRelatingElement=i,this.SurfaceOnRelatedElement=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Lge(e,t,n,s)}ToTape(){let e=[];return e.push(this.SurfaceOnRelatingElement),e.push(this.SurfaceOnRelatedElement),e}},Fge=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.VolumeOnRelatingElement=i,this.VolumeOnRelatedElement=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Fge(e,t,n,s)}ToTape(){let e=[];return e.push(this.VolumeOnRelatingElement),e.push(this.VolumeOnRelatedElement),e}},Hge=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.ConstraintGrade=n,this.ConstraintSource=s,this.CreatingActor=a,this.CreationTime=o,this.UserDefinedGrade=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Hge(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.ConstraintGrade),e.push(this.ConstraintSource),e.push(this.CreatingActor),e.push(this.CreationTime),e.push(this.UserDefinedGrade),e}},Uge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=h,this.BaseCosts=u,this.BaseQuantity=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new Uge(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Usage),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},Bge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u,this.BaseCosts=c,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new Bge(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},kge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=h,this.BaseCosts=u,this.BaseQuantity=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new kge(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Usage),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},Gge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u,this.BaseCosts=c,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new Gge(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},Vge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=h,this.BaseCosts=u,this.BaseQuantity=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new Vge(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Usage),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},zge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u,this.BaseCosts=c,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new zge(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},jge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=h,this.BaseCosts=u,this.BaseQuantity=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new jge(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Usage),e.push(this.BaseCosts),e.push(this.BaseQuantity),e}},Wge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u,this.BaseCosts=c,this.BaseQuantity=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new Wge(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e}},qge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.Phase=l,this.RepresentationContexts=h,this.UnitsInContext=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new qge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.LongName),e.push(this.Phase),e.push(this.RepresentationContexts),e.push(this.UnitsInContext),e}},Yge=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Dimensions=i,this.UnitType=r,this.Name=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Yge(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Dimensions),e.push(this.UnitType),e.push(this.Name),e}},Xge=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Xge(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e}},$ge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new $ge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Kge=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Kge(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Zge=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Dimensions=i,this.UnitType=r,this.Name=n,this.ConversionFactor=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Zge(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Dimensions),e.push(this.UnitType),e.push(this.Name),e.push(this.ConversionFactor),e}},Jge=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Dimensions=i,this.UnitType=r,this.Name=n,this.ConversionFactor=s,this.ConversionOffset=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Jge(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Dimensions),e.push(this.UnitType),e.push(this.Name),e.push(this.ConversionFactor),e.push(this.ConversionOffset),e}},Qge=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Qge(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},e0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new e0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},t0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new t0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},r0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new r0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},i0e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.SourceCRS=i,this.TargetCRS=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new i0e(e,t,n,s)}ToTape(){let e=[];return e.push(this.SourceCRS),e.push(this.TargetCRS),e}},n0e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.GeodeticDatum=n,this.VerticalDatum=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new n0e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.GeodeticDatum),e.push(this.VerticalDatum),e}},s0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.CostValues=h,this.CostQuantities=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new s0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.PredefinedType),e.push(this.CostValues),e.push(this.CostQuantities),e}},a0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=h,this.SubmittedOn=u,this.UpdateDate=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new a0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.PredefinedType),e.push(this.Status),e.push(this.SubmittedOn),e.push(this.UpdateDate),e}},o0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.AppliedValue=n,this.UnitBasis=s,this.ApplicableDate=a,this.FixedUntilDate=o,this.Category=l,this.Condition=h,this.ArithmeticOperator=u,this.Components=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new o0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.AppliedValue),e.push(this.UnitBasis),e.push(this.ApplicableDate),e.push(this.FixedUntilDate),e.push(this.Category),e.push(this.Condition),e.push(this.ArithmeticOperator),e.push(this.Components),e}},l0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new l0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},c0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new c0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},u0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=h,this.BaseCosts=u,this.BaseQuantity=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new u0e(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Usage),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},h0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u,this.BaseCosts=c,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new h0e(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},p0e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Position=i}static FromTape(e,t,i){let r=0,n=i[r++];return new p0e(e,t,n)}ToTape(){let e=[];return e.push(this.Position),e}},d0e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.TreeRootExpression=i}static FromTape(e,t,i){let r=0,n=i[r++];return new d0e(e,t,n)}ToTape(){let e=[];return e.push(this.TreeRootExpression),e}},f0e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatingMonetaryUnit=n,this.RelatedMonetaryUnit=s,this.ExchangeRate=a,this.RateDateTime=o,this.RateSource=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new f0e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatingMonetaryUnit),e.push(this.RelatedMonetaryUnit),e.push(this.ExchangeRate),e.push(this.RateDateTime),e.push(this.RateSource),e}},m0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new m0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},g0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new g0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},v0e=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new v0e(e,t)}ToTape(){return[]}},y0e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.BasisSurface=i,this.OuterBoundary=r,this.InnerBoundaries=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new y0e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.BasisSurface),e.push(this.OuterBoundary),e.push(this.InnerBoundaries),e}},T0e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.BasisSurface=i,this.Boundaries=r,this.ImplicitOuter=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new T0e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.BasisSurface),e.push(this.Boundaries),e.push(this.ImplicitOuter),e}},E0e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.StartPoint=i,this.StartDirection=r,this.SegmentLength=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new E0e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.StartPoint),e.push(this.StartDirection),e.push(this.SegmentLength),e}},b0e=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.CurveFont=r,this.CurveWidth=n,this.CurveColour=s,this.ModelOrDraughting=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new b0e(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.CurveFont),e.push(this.CurveWidth),e.push(this.CurveColour),e.push(this.ModelOrDraughting),e}},x0e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Name=i,this.PatternList=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new x0e(e,t,n,s)}ToTape(){let e=[];return e.push(this.Name),e.push(this.PatternList),e}},I0e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.CurveFont=r,this.CurveFontScaling=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new I0e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.CurveFont),e.push(this.CurveFontScaling),e}},_0e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.VisibleSegmentLength=i,this.InvisibleSegmentLength=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new _0e(e,t,n,s)}ToTape(){let e=[];return e.push(this.VisibleSegmentLength),e.push(this.InvisibleSegmentLength),e}},S0e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Position=i,this.Radius=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new S0e(e,t,n,s)}ToTape(){let e=[];return e.push(this.Position),e.push(this.Radius),e}},w0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new w0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},R0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new R0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},M0e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new M0e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},D0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new D0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},C0e=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.ParentProfile=n,this.Operator=s,this.Label=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new C0e(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.ParentProfile),e.push(this.Operator),e.push(this.Label),e}},A0e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Elements=i,this.UnitType=r,this.UserDefinedType=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new A0e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Elements),e.push(this.UnitType),e.push(this.UserDefinedType),e}},O0e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Unit=i,this.Exponent=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new O0e(e,t,n,s)}ToTape(){let e=[];return e.push(this.Unit),e.push(this.Exponent),e}},P0e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.LengthExponent=i,this.MassExponent=r,this.TimeExponent=n,this.ElectricCurrentExponent=s,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=o,this.LuminousIntensityExponent=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new P0e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.LengthExponent),e.push(this.MassExponent),e.push(this.TimeExponent),e.push(this.ElectricCurrentExponent),e.push(this.ThermodynamicTemperatureExponent),e.push(this.AmountOfSubstanceExponent),e.push(this.LuminousIntensityExponent),e}},N0e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.DirectionRatios=i}static FromTape(e,t,i){let r=0,n=i[r++];return new N0e(e,t,n)}ToTape(){let e=[];return e.push(this.DirectionRatios),e}},L0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new L0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},F0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new F0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},H0e=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.DistanceAlong=i,this.OffsetLateral=r,this.OffsetVertical=n,this.OffsetLongitudinal=s,this.AlongHorizontal=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new H0e(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.DistanceAlong),e.push(this.OffsetLateral),e.push(this.OffsetVertical),e.push(this.OffsetLongitudinal),e.push(this.AlongHorizontal),e}},U0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new U0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},B0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new B0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},k0e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.PredefinedType=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new k0e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.LongName),e.push(this.PredefinedType),e}},G0e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new G0e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},V0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new V0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},z0e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new z0e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},j0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new j0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},W0e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new W0e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},q0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new q0e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Y0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.FlowDirection=h,this.PredefinedType=u,this.SystemType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Y0e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.FlowDirection),e.push(this.PredefinedType),e.push(this.SystemType),e}},X0e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.PredefinedType=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new X0e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.LongName),e.push(this.PredefinedType),e}},$0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v){this.expressID=e,this.type=t,this.Identification=i,this.Name=r,this.Description=n,this.Location=s,this.Purpose=a,this.IntendedUse=o,this.Scope=l,this.Revision=h,this.DocumentOwner=u,this.Editors=c,this.CreationTime=p,this.LastRevisionTime=d,this.ElectronicFormat=f,this.ValidFrom=m,this.ValidUntil=g,this.Confidentiality=y,this.Status=v}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++];return new $0e(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x)}ToTape(){let e=[];return e.push(this.Identification),e.push(this.Name),e.push(this.Description),e.push(this.Location),e.push(this.Purpose),e.push(this.IntendedUse),e.push(this.Scope),e.push(this.Revision),e.push(this.DocumentOwner),e.push(this.Editors),e.push(this.CreationTime),e.push(this.LastRevisionTime),e.push(this.ElectronicFormat),e.push(this.ValidFrom),e.push(this.ValidUntil),e.push(this.Confidentiality),e.push(this.Status),e}},K0e=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatingDocument=n,this.RelatedDocuments=s,this.RelationshipType=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new K0e(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatingDocument),e.push(this.RelatedDocuments),e.push(this.RelationshipType),e}},Z0e=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Location=i,this.Identification=r,this.Name=n,this.Description=s,this.ReferencedDocument=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Z0e(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Identification),e.push(this.Name),e.push(this.Description),e.push(this.ReferencedDocument),e}},J0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.OverallHeight=u,this.OverallWidth=c,this.PredefinedType=p,this.OperationType=d,this.UserDefinedOperationType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new J0e(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.OverallHeight),e.push(this.OverallWidth),e.push(this.PredefinedType),e.push(this.OperationType),e.push(this.UserDefinedOperationType),e}},Q0e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.LiningDepth=a,this.LiningThickness=o,this.ThresholdDepth=l,this.ThresholdThickness=h,this.TransomThickness=u,this.TransomOffset=c,this.LiningOffset=p,this.ThresholdOffset=d,this.CasingThickness=f,this.CasingDepth=m,this.ShapeAspectStyle=g,this.LiningToPanelOffsetX=y,this.LiningToPanelOffsetY=v}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++];return new Q0e(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.LiningDepth),e.push(this.LiningThickness),e.push(this.ThresholdDepth),e.push(this.ThresholdThickness),e.push(this.TransomThickness),e.push(this.TransomOffset),e.push(this.LiningOffset),e.push(this.ThresholdOffset),e.push(this.CasingThickness),e.push(this.CasingDepth),e.push(this.ShapeAspectStyle),e.push(this.LiningToPanelOffsetX),e.push(this.LiningToPanelOffsetY),e}},eve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.PanelDepth=a,this.PanelOperation=o,this.PanelWidth=l,this.PanelPosition=h,this.ShapeAspectStyle=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new eve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.PanelDepth),e.push(this.PanelOperation),e.push(this.PanelWidth),e.push(this.PanelPosition),e.push(this.ShapeAspectStyle),e}},tve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.OverallHeight=u,this.OverallWidth=c,this.PredefinedType=p,this.OperationType=d,this.UserDefinedOperationType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new tve(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.OverallHeight),e.push(this.OverallWidth),e.push(this.PredefinedType),e.push(this.OperationType),e.push(this.UserDefinedOperationType),e}},rve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.OperationType=u,this.ConstructionType=c,this.ParameterTakesPrecedence=p,this.Sizeable=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new rve(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.OperationType),e.push(this.ConstructionType),e.push(this.ParameterTakesPrecedence),e.push(this.Sizeable),e}},ive=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.OperationType=p,this.ParameterTakesPrecedence=d,this.UserDefinedOperationType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new ive(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.OperationType),e.push(this.ParameterTakesPrecedence),e.push(this.UserDefinedOperationType),e}},nve=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new nve(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},sve=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new sve(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},ave=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new ave(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},ove=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new ove(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},lve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new lve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},cve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new cve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},uve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new uve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},hve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new hve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},pve=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.EdgeStart=i,this.EdgeEnd=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new pve(e,t,n,s)}ToTape(){let e=[];return e.push(this.EdgeStart),e.push(this.EdgeEnd),e}},dve=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.EdgeStart=i,this.EdgeEnd=r,this.EdgeGeometry=n,this.SameSense=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new dve(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.EdgeStart),e.push(this.EdgeEnd),e.push(this.EdgeGeometry),e.push(this.SameSense),e}},fve=class{constructor(e,t,i){this.expressID=e,this.type=t,this.EdgeList=i}static FromTape(e,t,i){let r=0,n=i[r++];return new fve(e,t,n)}ToTape(){let e=[];return e.push(this.EdgeList),e}},mve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new mve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},gve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new gve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},vve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new vve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},yve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new yve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Tve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Tve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Eve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Eve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},bve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new bve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},xve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new xve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Ive=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Ive(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},_ve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new _ve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Sve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Sve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},wve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new wve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Rve=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Rve(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Mve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.AssemblyPlace=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Mve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.AssemblyPlace),e.push(this.PredefinedType),e}},Dve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Dve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Cve=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Cve(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Ave=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Ave(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Ove=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.MethodOfMeasurement=a,this.Quantities=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Ove(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.MethodOfMeasurement),e.push(this.Quantities),e}},Pve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Pve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Nve=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Position=i}static FromTape(e,t,i){let r=0,n=i[r++];return new Nve(e,t,n)}ToTape(){let e=[];return e.push(this.Position),e}},Lve=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Position=i,this.SemiAxis1=r,this.SemiAxis2=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Lve(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Position),e.push(this.SemiAxis1),e.push(this.SemiAxis2),e}},Fve=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.SemiAxis1=s,this.SemiAxis2=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Fve(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.SemiAxis1),e.push(this.SemiAxis2),e}},Hve=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Hve(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Uve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Uve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Bve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Bve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},kve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new kve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Gve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Gve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Vve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Vve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},zve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new zve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},jve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new jve(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Wve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.PredefinedType=h,this.EventTriggerType=u,this.UserDefinedEventTriggerType=c,this.EventOccurenceTime=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new Wve(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.PredefinedType),e.push(this.EventTriggerType),e.push(this.UserDefinedEventTriggerType),e.push(this.EventOccurenceTime),e}},qve=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.DataOrigin=r,this.UserDefinedDataOrigin=n,this.ActualDate=s,this.EarlyDate=a,this.LateDate=o,this.ScheduleDate=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new qve(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.ActualDate),e.push(this.EarlyDate),e.push(this.LateDate),e.push(this.ScheduleDate),e}},Yve=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ProcessType=u,this.PredefinedType=c,this.EventTriggerType=p,this.UserDefinedEventTriggerType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new Yve(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ProcessType),e.push(this.PredefinedType),e.push(this.EventTriggerType),e.push(this.UserDefinedEventTriggerType),e}},Xve=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Properties=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Xve(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Properties),e}},$ve=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new $ve(e,t)}ToTape(){return[]}},Kve=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Location=i,this.Identification=r,this.Name=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Kve(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Identification),e.push(this.Name),e}},Zve=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatingReference=n,this.RelatedResourceObjects=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Zve(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatingReference),e.push(this.RelatedResourceObjects),e}},Jve=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Jve(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.PredefinedType),e}},Qve=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Qve(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e}},eye=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Location=i,this.Identification=r,this.Name=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new eye(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Identification),e.push(this.Name),e}},tye=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Location=i,this.Identification=r,this.Name=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new tye(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Identification),e.push(this.Name),e}},rye=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Location=i,this.Identification=r,this.Name=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new rye(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Identification),e.push(this.Name),e}},iye=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.SweptArea=i,this.Position=r,this.ExtrudedDirection=n,this.Depth=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new iye(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.SweptArea),e.push(this.Position),e.push(this.ExtrudedDirection),e.push(this.Depth),e}},nye=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.SweptArea=i,this.Position=r,this.ExtrudedDirection=n,this.Depth=s,this.EndSweptArea=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new nye(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.SweptArea),e.push(this.Position),e.push(this.ExtrudedDirection),e.push(this.Depth),e.push(this.EndSweptArea),e}},sye=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Bounds=i}static FromTape(e,t,i){let r=0,n=i[r++];return new sye(e,t,n)}ToTape(){let e=[];return e.push(this.Bounds),e}},aye=class{constructor(e,t,i){this.expressID=e,this.type=t,this.FbsmFaces=i}static FromTape(e,t,i){let r=0,n=i[r++];return new aye(e,t,n)}ToTape(){let e=[];return e.push(this.FbsmFaces),e}},oye=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Bound=i,this.Orientation=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new oye(e,t,n,s)}ToTape(){let e=[];return e.push(this.Bound),e.push(this.Orientation),e}},lye=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Bound=i,this.Orientation=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new lye(e,t,n,s)}ToTape(){let e=[];return e.push(this.Bound),e.push(this.Orientation),e}},cye=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Bounds=i,this.FaceSurface=r,this.SameSense=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new cye(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Bounds),e.push(this.FaceSurface),e.push(this.SameSense),e}},uye=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Outer=i}static FromTape(e,t,i){let r=0,n=i[r++];return new uye(e,t,n)}ToTape(){let e=[];return e.push(this.Outer),e}},hye=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Outer=i,this.Voids=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new hye(e,t,n,s)}ToTape(){let e=[];return e.push(this.Outer),e.push(this.Voids),e}},pye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new pye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e}},dye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new dye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e}},fye=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.TensionFailureX=r,this.TensionFailureY=n,this.TensionFailureZ=s,this.CompressionFailureX=a,this.CompressionFailureY=o,this.CompressionFailureZ=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new fye(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.TensionFailureX),e.push(this.TensionFailureY),e.push(this.TensionFailureZ),e.push(this.CompressionFailureX),e.push(this.CompressionFailureY),e.push(this.CompressionFailureZ),e}},mye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new mye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},gye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new gye(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},vye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new vye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},yye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new yye(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Tye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Tye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Eye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Eye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},bye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new bye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},xye=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.FillStyles=r,this.ModelorDraughting=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new xye(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.FillStyles),e.push(this.ModelorDraughting),e}},Iye=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.HatchLineAppearance=i,this.StartOfNextHatchLine=r,this.PointOfReferenceHatchLine=n,this.PatternStart=s,this.HatchLineAngle=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Iye(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.HatchLineAppearance),e.push(this.StartOfNextHatchLine),e.push(this.PointOfReferenceHatchLine),e.push(this.PatternStart),e.push(this.HatchLineAngle),e}},_ye=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.TilingPattern=i,this.Tiles=r,this.TilingScale=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new _ye(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.TilingPattern),e.push(this.Tiles),e.push(this.TilingScale),e}},Sye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Sye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},wye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new wye(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Rye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Rye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Mye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Mye(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Dye=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.SweptArea=i,this.Position=r,this.Directrix=n,this.StartParam=s,this.EndParam=a,this.FixedReference=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Dye(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.SweptArea),e.push(this.Position),e.push(this.Directrix),e.push(this.StartParam),e.push(this.EndParam),e.push(this.FixedReference),e}},Cye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Cye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Aye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Aye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Oye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Oye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Pye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Pye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Nye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Nye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Lye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Lye(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Fye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Fye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Hye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Hye(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Uye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Uye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Bye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Bye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},kye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new kye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Gye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Gye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Vye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Vye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},zye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new zye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},jye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new jye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Wye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Wye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},qye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new qye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Yye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Yye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Xye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Xye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},$ye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new $ye(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Kye=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Kye(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Zye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Zye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},Jye=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Jye(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Qye=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.AssemblyPlace=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new Qye(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.AssemblyPlace),e.push(this.PredefinedType),e}},eTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new eTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},tTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new tTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},rTe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Elements=i}static FromTape(e,t,i){let r=0,n=i[r++];return new rTe(e,t,n)}ToTape(){let e=[];return e.push(this.Elements),e}},iTe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.ContextIdentifier=i,this.ContextType=r,this.CoordinateSpaceDimension=n,this.Precision=s,this.WorldCoordinateSystem=a,this.TrueNorth=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new iTe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.ContextIdentifier),e.push(this.ContextType),e.push(this.CoordinateSpaceDimension),e.push(this.Precision),e.push(this.WorldCoordinateSystem),e.push(this.TrueNorth),e}},nTe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new nTe(e,t)}ToTape(){return[]}},sTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.ContextIdentifier=i,this.ContextType=r,this.CoordinateSpaceDimension=n,this.Precision=s,this.WorldCoordinateSystem=a,this.TrueNorth=o,this.ParentContext=l,this.TargetScale=h,this.TargetView=u,this.UserDefinedTargetView=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new sTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.ContextIdentifier),e.push(this.ContextType),e.push(this.CoordinateSpaceDimension),e.push(this.Precision),e.push(this.WorldCoordinateSystem),e.push(this.TrueNorth),e.push(this.ParentContext),e.push(this.TargetScale),e.push(this.TargetView),e.push(this.UserDefinedTargetView),e}},aTe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Elements=i}static FromTape(e,t,i){let r=0,n=i[r++];return new aTe(e,t,n)}ToTape(){let e=[];return e.push(this.Elements),e}},oTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.UAxes=h,this.VAxes=u,this.WAxes=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new oTe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.UAxes),e.push(this.VAxes),e.push(this.WAxes),e.push(this.PredefinedType),e}},lTe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.AxisTag=i,this.AxisCurve=r,this.SameSense=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new lTe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.AxisTag),e.push(this.AxisCurve),e.push(this.SameSense),e}},cTe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.PlacementRelTo=i,this.PlacementLocation=r,this.PlacementRefDirection=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new cTe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.PlacementRelTo),e.push(this.PlacementLocation),e.push(this.PlacementRefDirection),e}},uTe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new uTe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e}},hTe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.BaseSurface=i,this.AgreementFlag=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new hTe(e,t,n,s)}ToTape(){let e=[];return e.push(this.BaseSurface),e.push(this.AgreementFlag),e}},pTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new pTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},dTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new dTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},fTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new fTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},mTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new mTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},gTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.OverallWidth=s,this.OverallDepth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=h,this.FlangeEdgeRadius=u,this.FlangeSlope=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new gTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.OverallWidth),e.push(this.OverallDepth),e.push(this.WebThickness),e.push(this.FlangeThickness),e.push(this.FilletRadius),e.push(this.FlangeEdgeRadius),e.push(this.FlangeSlope),e}},vTe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.RepeatS=i,this.RepeatT=r,this.Mode=n,this.TextureTransform=s,this.Parameter=a,this.URLReference=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new vTe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.RepeatS),e.push(this.RepeatT),e.push(this.Mode),e.push(this.TextureTransform),e.push(this.Parameter),e.push(this.URLReference),e}},yTe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.MappedTo=i,this.Opacity=r,this.Colours=n,this.ColourIndex=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new yTe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.MappedTo),e.push(this.Opacity),e.push(this.Colours),e.push(this.ColourIndex),e}},TTe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Points=i,this.Segments=r,this.SelfIntersect=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new TTe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Points),e.push(this.Segments),e.push(this.SelfIntersect),e}},ETe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.CoordIndex=i}static FromTape(e,t,i){let r=0,n=i[r++];return new ETe(e,t,n)}ToTape(){let e=[];return e.push(this.CoordIndex),e}},bTe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.CoordIndex=i,this.InnerCoordIndices=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new bTe(e,t,n,s)}ToTape(){let e=[];return e.push(this.CoordIndex),e.push(this.InnerCoordIndices),e}},xTe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Maps=i,this.MappedTo=r,this.TexCoords=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new xTe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Maps),e.push(this.MappedTo),e.push(this.TexCoords),e}},ITe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Maps=i,this.MappedTo=r,this.TexCoords=n,this.TexCoordIndex=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new ITe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Maps),e.push(this.MappedTo),e.push(this.TexCoords),e.push(this.TexCoordIndex),e}},_Te=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new _Te(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},STe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new STe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},wTe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Curve3D=i,this.AssociatedGeometry=r,this.MasterRepresentation=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new wTe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Curve3D),e.push(this.AssociatedGeometry),e.push(this.MasterRepresentation),e}},RTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.Jurisdiction=l,this.ResponsiblePersons=h,this.LastUpdateDate=u,this.CurrentValue=c,this.OriginalValue=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new RTe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.PredefinedType),e.push(this.Jurisdiction),e.push(this.ResponsiblePersons),e.push(this.LastUpdateDate),e.push(this.CurrentValue),e.push(this.OriginalValue),e}},MTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.StartTime=n,this.EndTime=s,this.TimeSeriesDataType=a,this.DataOrigin=o,this.UserDefinedDataOrigin=l,this.Unit=h,this.Values=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new MTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.StartTime),e.push(this.EndTime),e.push(this.TimeSeriesDataType),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.Unit),e.push(this.Values),e}},DTe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.TimeStamp=i,this.ListValues=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new DTe(e,t,n,s)}ToTape(){let e=[];return e.push(this.TimeStamp),e.push(this.ListValues),e}},CTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new CTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},ATe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new ATe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},OTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.Depth=s,this.Width=a,this.Thickness=o,this.FilletRadius=l,this.EdgeRadius=h,this.LegSlope=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new OTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.Depth),e.push(this.Width),e.push(this.Thickness),e.push(this.FilletRadius),e.push(this.EdgeRadius),e.push(this.LegSlope),e}},PTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=h,this.BaseCosts=u,this.BaseQuantity=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new PTe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Usage),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},NTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u,this.BaseCosts=c,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new NTe(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},LTe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.DataOrigin=r,this.UserDefinedDataOrigin=n,this.LagValue=s,this.DurationType=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new LTe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.LagValue),e.push(this.DurationType),e}},FTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new FTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},HTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new HTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},UTe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Name=i,this.Version=r,this.Publisher=n,this.VersionDate=s,this.Location=a,this.Description=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new UTe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Version),e.push(this.Publisher),e.push(this.VersionDate),e.push(this.Location),e.push(this.Description),e}},BTe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Location=i,this.Identification=r,this.Name=n,this.Description=s,this.Language=a,this.ReferencedLibrary=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new BTe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Location),e.push(this.Identification),e.push(this.Name),e.push(this.Description),e.push(this.Language),e.push(this.ReferencedLibrary),e}},kTe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.MainPlaneAngle=i,this.SecondaryPlaneAngle=r,this.LuminousIntensity=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new kTe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.MainPlaneAngle),e.push(this.SecondaryPlaneAngle),e.push(this.LuminousIntensity),e}},GTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new GTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},VTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new VTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},zTe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.LightDistributionCurve=i,this.DistributionData=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new zTe(e,t,n,s)}ToTape(){let e=[];return e.push(this.LightDistributionCurve),e.push(this.DistributionData),e}},jTe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.LightColour=r,this.AmbientIntensity=n,this.Intensity=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new jTe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.LightColour),e.push(this.AmbientIntensity),e.push(this.Intensity),e}},WTe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.LightColour=r,this.AmbientIntensity=n,this.Intensity=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new WTe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.LightColour),e.push(this.AmbientIntensity),e.push(this.Intensity),e}},qTe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.LightColour=r,this.AmbientIntensity=n,this.Intensity=s,this.Orientation=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new qTe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.LightColour),e.push(this.AmbientIntensity),e.push(this.Intensity),e.push(this.Orientation),e}},YTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.Name=i,this.LightColour=r,this.AmbientIntensity=n,this.Intensity=s,this.Position=a,this.ColourAppearance=o,this.ColourTemperature=l,this.LuminousFlux=h,this.LightEmissionSource=u,this.LightDistributionDataSource=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new YTe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.Name),e.push(this.LightColour),e.push(this.AmbientIntensity),e.push(this.Intensity),e.push(this.Position),e.push(this.ColourAppearance),e.push(this.ColourTemperature),e.push(this.LuminousFlux),e.push(this.LightEmissionSource),e.push(this.LightDistributionDataSource),e}},XTe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.Name=i,this.LightColour=r,this.AmbientIntensity=n,this.Intensity=s,this.Position=a,this.Radius=o,this.ConstantAttenuation=l,this.DistanceAttenuation=h,this.QuadricAttenuation=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new XTe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.Name),e.push(this.LightColour),e.push(this.AmbientIntensity),e.push(this.Intensity),e.push(this.Position),e.push(this.Radius),e.push(this.ConstantAttenuation),e.push(this.DistanceAttenuation),e.push(this.QuadricAttenuation),e}},$Te=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.Name=i,this.LightColour=r,this.AmbientIntensity=n,this.Intensity=s,this.Position=a,this.Radius=o,this.ConstantAttenuation=l,this.DistanceAttenuation=h,this.QuadricAttenuation=u,this.Orientation=c,this.ConcentrationExponent=p,this.SpreadAngle=d,this.BeamWidthAngle=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new $Te(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.Name),e.push(this.LightColour),e.push(this.AmbientIntensity),e.push(this.Intensity),e.push(this.Position),e.push(this.Radius),e.push(this.ConstantAttenuation),e.push(this.DistanceAttenuation),e.push(this.QuadricAttenuation),e.push(this.Orientation),e.push(this.ConcentrationExponent),e.push(this.SpreadAngle),e.push(this.BeamWidthAngle),e}},KTe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Pnt=i,this.Dir=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new KTe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Pnt),e.push(this.Dir),e}},ZTe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.StartPoint=i,this.StartDirection=r,this.SegmentLength=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new ZTe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.StartPoint),e.push(this.StartDirection),e.push(this.SegmentLength),e}},JTe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.PlacementRelTo=i,this.PlacementMeasuredAlong=r,this.Distance=n,this.Orientation=s,this.CartesianPosition=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new JTe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.PlacementRelTo),e.push(this.PlacementMeasuredAlong),e.push(this.Distance),e.push(this.Orientation),e.push(this.CartesianPosition),e}},QTe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Axis=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new QTe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Axis),e}},eEe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.PlacementRelTo=i,this.RelativePlacement=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new eEe(e,t,n,s)}ToTape(){let e=[];return e.push(this.PlacementRelTo),e.push(this.RelativePlacement),e}},tEe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new tEe(e,t)}ToTape(){return[]}},rEe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Outer=i}static FromTape(e,t,i){let r=0,n=i[r++];return new rEe(e,t,n)}ToTape(){let e=[];return e.push(this.Outer),e}},iEe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.SourceCRS=i,this.TargetCRS=r,this.Eastings=n,this.Northings=s,this.OrthogonalHeight=a,this.XAxisAbscissa=o,this.XAxisOrdinate=l,this.Scale=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new iEe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.SourceCRS),e.push(this.TargetCRS),e.push(this.Eastings),e.push(this.Northings),e.push(this.OrthogonalHeight),e.push(this.XAxisAbscissa),e.push(this.XAxisOrdinate),e.push(this.Scale),e}},nEe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.MappingSource=i,this.MappingTarget=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new nEe(e,t,n,s)}ToTape(){let e=[];return e.push(this.MappingSource),e.push(this.MappingTarget),e}},sEe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Category=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new sEe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Category),e}},aEe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.MaterialClassifications=i,this.ClassifiedMaterial=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new aEe(e,t,n,s)}ToTape(){let e=[];return e.push(this.MaterialClassifications),e.push(this.ClassifiedMaterial),e}},oEe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Material=n,this.Fraction=s,this.Category=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new oEe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Material),e.push(this.Fraction),e.push(this.Category),e}},lEe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.MaterialConstituents=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new lEe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.MaterialConstituents),e}},cEe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new cEe(e,t)}ToTape(){return[]}},uEe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Representations=n,this.RepresentedMaterial=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new uEe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Representations),e.push(this.RepresentedMaterial),e}},hEe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Material=i,this.LayerThickness=r,this.IsVentilated=n,this.Name=s,this.Description=a,this.Category=o,this.Priority=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new hEe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Material),e.push(this.LayerThickness),e.push(this.IsVentilated),e.push(this.Name),e.push(this.Description),e.push(this.Category),e.push(this.Priority),e}},pEe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.MaterialLayers=i,this.LayerSetName=r,this.Description=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new pEe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.MaterialLayers),e.push(this.LayerSetName),e.push(this.Description),e}},dEe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ForLayerSet=i,this.LayerSetDirection=r,this.DirectionSense=n,this.OffsetFromReferenceLine=s,this.ReferenceExtent=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new dEe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ForLayerSet),e.push(this.LayerSetDirection),e.push(this.DirectionSense),e.push(this.OffsetFromReferenceLine),e.push(this.ReferenceExtent),e}},fEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.Material=i,this.LayerThickness=r,this.IsVentilated=n,this.Name=s,this.Description=a,this.Category=o,this.Priority=l,this.OffsetDirection=h,this.OffsetValues=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new fEe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.Material),e.push(this.LayerThickness),e.push(this.IsVentilated),e.push(this.Name),e.push(this.Description),e.push(this.Category),e.push(this.Priority),e.push(this.OffsetDirection),e.push(this.OffsetValues),e}},mEe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Materials=i}static FromTape(e,t,i){let r=0,n=i[r++];return new mEe(e,t,n)}ToTape(){let e=[];return e.push(this.Materials),e}},gEe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Material=n,this.Profile=s,this.Priority=a,this.Category=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new gEe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Material),e.push(this.Profile),e.push(this.Priority),e.push(this.Category),e}},vEe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.MaterialProfiles=n,this.CompositeProfile=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new vEe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.MaterialProfiles),e.push(this.CompositeProfile),e}},yEe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.ForProfileSet=i,this.CardinalPoint=r,this.ReferenceExtent=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new yEe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.ForProfileSet),e.push(this.CardinalPoint),e.push(this.ReferenceExtent),e}},TEe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ForProfileSet=i,this.CardinalPoint=r,this.ReferenceExtent=n,this.ForProfileEndSet=s,this.CardinalEndPoint=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new TEe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ForProfileSet),e.push(this.CardinalPoint),e.push(this.ReferenceExtent),e.push(this.ForProfileEndSet),e.push(this.CardinalEndPoint),e}},EEe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Material=n,this.Profile=s,this.Priority=a,this.Category=o,this.OffsetValues=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new EEe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Material),e.push(this.Profile),e.push(this.Priority),e.push(this.Category),e.push(this.OffsetValues),e}},bEe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Properties=n,this.Material=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new bEe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Properties),e.push(this.Material),e}},xEe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatingMaterial=n,this.RelatedMaterials=s,this.Expression=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new xEe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatingMaterial),e.push(this.RelatedMaterials),e.push(this.Expression),e}},IEe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new IEe(e,t)}ToTape(){return[]}},_Ee=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.ValueComponent=i,this.UnitComponent=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new _Ee(e,t,n,s)}ToTape(){let e=[];return e.push(this.ValueComponent),e.push(this.UnitComponent),e}},SEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.NominalDiameter=u,this.NominalLength=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new SEe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.NominalDiameter),e.push(this.NominalLength),e.push(this.PredefinedType),e}},wEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.NominalDiameter=p,this.NominalLength=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new wEe(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.NominalDiameter),e.push(this.NominalLength),e}},REe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new REe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},MEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new MEe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},DEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new DEe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},CEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new CEe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},AEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new AEe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},OEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.ConstraintGrade=n,this.ConstraintSource=s,this.CreatingActor=a,this.CreationTime=o,this.UserDefinedGrade=l,this.Benchmark=h,this.ValueSource=u,this.DataValue=c,this.ReferencePath=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new OEe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.ConstraintGrade),e.push(this.ConstraintSource),e.push(this.CreatingActor),e.push(this.CreationTime),e.push(this.UserDefinedGrade),e.push(this.Benchmark),e.push(this.ValueSource),e.push(this.DataValue),e.push(this.ReferencePath),e}},PEe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.ParentProfile=n,this.Operator=s,this.Label=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new PEe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.ParentProfile),e.push(this.Operator),e.push(this.Label),e}},NEe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Currency=i}static FromTape(e,t,i){let r=0,n=i[r++];return new NEe(e,t,n)}ToTape(){let e=[];return e.push(this.Currency),e}},LEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new LEe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},FEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new FEe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},HEe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Dimensions=i,this.UnitType=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new HEe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Dimensions),e.push(this.UnitType),e}},UEe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new UEe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e}},BEe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new BEe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},kEe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.PlacementRelTo=i}static FromTape(e,t,i){let r=0,n=i[r++];return new kEe(e,t,n)}ToTape(){let e=[];return e.push(this.PlacementRelTo),e}},GEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.ConstraintGrade=n,this.ConstraintSource=s,this.CreatingActor=a,this.CreationTime=o,this.UserDefinedGrade=l,this.BenchmarkValues=h,this.LogicalAggregator=u,this.ObjectiveQualifier=c,this.UserDefinedQualifier=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new GEe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.ConstraintGrade),e.push(this.ConstraintSource),e.push(this.CreatingActor),e.push(this.CreationTime),e.push(this.UserDefinedGrade),e.push(this.BenchmarkValues),e.push(this.LogicalAggregator),e.push(this.ObjectiveQualifier),e.push(this.UserDefinedQualifier),e}},VEe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.TheActor=o,this.PredefinedType=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new VEe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.TheActor),e.push(this.PredefinedType),e}},zEe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.BasisCurve=i}static FromTape(e,t,i){let r=0,n=i[r++];return new zEe(e,t,n)}ToTape(){let e=[];return e.push(this.BasisCurve),e}},jEe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.BasisCurve=i,this.Distance=r,this.SelfIntersect=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new jEe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.BasisCurve),e.push(this.Distance),e.push(this.SelfIntersect),e}},WEe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.BasisCurve=i,this.Distance=r,this.SelfIntersect=n,this.RefDirection=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new WEe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.BasisCurve),e.push(this.Distance),e.push(this.SelfIntersect),e.push(this.RefDirection),e}},qEe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.BasisCurve=i,this.OffsetValues=r,this.Tag=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new qEe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.BasisCurve),e.push(this.OffsetValues),e.push(this.Tag),e}},YEe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.CfsFaces=i}static FromTape(e,t,i){let r=0,n=i[r++];return new YEe(e,t,n)}ToTape(){let e=[];return e.push(this.CfsFaces),e}},XEe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new XEe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},$Ee=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new $Ee(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},KEe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Identification=i,this.Name=r,this.Description=n,this.Roles=s,this.Addresses=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new KEe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Identification),e.push(this.Name),e.push(this.Description),e.push(this.Roles),e.push(this.Addresses),e}},ZEe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatingOrganization=n,this.RelatedOrganizations=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new ZEe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatingOrganization),e.push(this.RelatedOrganizations),e}},JEe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.LateralAxisDirection=i,this.VerticalAxisDirection=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new JEe(e,t,n,s)}ToTape(){let e=[];return e.push(this.LateralAxisDirection),e.push(this.VerticalAxisDirection),e}},QEe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.EdgeStart=i,this.EdgeEnd=r,this.EdgeElement=n,this.Orientation=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new QEe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.EdgeStart),e.push(this.EdgeEnd),e.push(this.EdgeElement),e.push(this.Orientation),e}},e1e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Segments=i,this.SelfIntersect=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new e1e(e,t,n,s)}ToTape(){let e=[];return e.push(this.Segments),e.push(this.SelfIntersect),e}},t1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new t1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},r1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new r1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},i1e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.OwningUser=i,this.OwningApplication=r,this.State=n,this.ChangeAction=s,this.LastModifiedDate=a,this.LastModifyingUser=o,this.LastModifyingApplication=l,this.CreationDate=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new i1e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.OwningUser),e.push(this.OwningApplication),e.push(this.State),e.push(this.ChangeAction),e.push(this.LastModifiedDate),e.push(this.LastModifyingUser),e.push(this.LastModifyingApplication),e.push(this.CreationDate),e}},n1e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new n1e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e}},s1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.EdgeList=i}static FromTape(e,t,i){let r=0,n=i[r++];return new s1e(e,t,n)}ToTape(){let e=[];return e.push(this.EdgeList),e}},a1e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.BasisSurface=i,this.ReferenceCurve=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new a1e(e,t,n,s)}ToTape(){let e=[];return e.push(this.BasisSurface),e.push(this.ReferenceCurve),e}},o1e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LifeCyclePhase=l,this.PredefinedType=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new o1e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LifeCyclePhase),e.push(this.PredefinedType),e}},l1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.OperationType=a,this.PanelPosition=o,this.FrameDepth=l,this.FrameThickness=h,this.ShapeAspectStyle=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new l1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.OperationType),e.push(this.PanelPosition),e.push(this.FrameDepth),e.push(this.FrameThickness),e.push(this.ShapeAspectStyle),e}},c1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=h,this.LongDescription=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new c1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.PredefinedType),e.push(this.Status),e.push(this.LongDescription),e}},u1e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Identification=i,this.FamilyName=r,this.GivenName=n,this.MiddleNames=s,this.PrefixTitles=a,this.SuffixTitles=o,this.Roles=l,this.Addresses=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new u1e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Identification),e.push(this.FamilyName),e.push(this.GivenName),e.push(this.MiddleNames),e.push(this.PrefixTitles),e.push(this.SuffixTitles),e.push(this.Roles),e.push(this.Addresses),e}},h1e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.ThePerson=i,this.TheOrganization=r,this.Roles=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new h1e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.ThePerson),e.push(this.TheOrganization),e.push(this.Roles),e}},p1e=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.HasQuantities=n,this.Discrimination=s,this.Quality=a,this.Usage=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new p1e(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.HasQuantities),e.push(this.Discrimination),e.push(this.Quality),e.push(this.Usage),e}},d1e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Name=i,this.Description=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new d1e(e,t,n,s)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e}},f1e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Unit=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new f1e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Unit),e}},m1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u,this.ConstructionType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new m1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e.push(this.ConstructionType),e}},g1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new g1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},v1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new v1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},y1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new y1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},T1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new T1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},E1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new E1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},b1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.RepeatS=i,this.RepeatT=r,this.Mode=n,this.TextureTransform=s,this.Parameter=a,this.Width=o,this.Height=l,this.ColourComponents=h,this.Pixel=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new b1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.RepeatS),e.push(this.RepeatT),e.push(this.Mode),e.push(this.TextureTransform),e.push(this.Parameter),e.push(this.Width),e.push(this.Height),e.push(this.ColourComponents),e.push(this.Pixel),e}},x1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Location=i}static FromTape(e,t,i){let r=0,n=i[r++];return new x1e(e,t,n)}ToTape(){let e=[];return e.push(this.Location),e}},I1e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.SizeInX=i,this.SizeInY=r,this.Placement=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new I1e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.SizeInX),e.push(this.SizeInY),e.push(this.Placement),e}},_1e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.SizeInX=i,this.SizeInY=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new _1e(e,t,n,s)}ToTape(){let e=[];return e.push(this.SizeInX),e.push(this.SizeInY),e}},S1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Position=i}static FromTape(e,t,i){let r=0,n=i[r++];return new S1e(e,t,n)}ToTape(){let e=[];return e.push(this.Position),e}},w1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new w1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},R1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new R1e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},M1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new M1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},D1e=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new D1e(e,t)}ToTape(){return[]}},C1e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.BasisCurve=i,this.PointParameter=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new C1e(e,t,n,s)}ToTape(){let e=[];return e.push(this.BasisCurve),e.push(this.PointParameter),e}},A1e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.BasisSurface=i,this.PointParameterU=r,this.PointParameterV=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new A1e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.BasisSurface),e.push(this.PointParameterU),e.push(this.PointParameterV),e}},O1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Polygon=i}static FromTape(e,t,i){let r=0,n=i[r++];return new O1e(e,t,n)}ToTape(){let e=[];return e.push(this.Polygon),e}},P1e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.BaseSurface=i,this.AgreementFlag=r,this.Position=n,this.PolygonalBoundary=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new P1e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.BaseSurface),e.push(this.AgreementFlag),e.push(this.Position),e.push(this.PolygonalBoundary),e}},N1e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Coordinates=i,this.Closed=r,this.Faces=n,this.PnIndex=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new N1e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Coordinates),e.push(this.Closed),e.push(this.Faces),e.push(this.PnIndex),e}},L1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Points=i}static FromTape(e,t,i){let r=0,n=i[r++];return new L1e(e,t,n)}ToTape(){let e=[];return e.push(this.Points),e}},F1e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new F1e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e}},H1e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new H1e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e}},U1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.Purpose=i,this.Description=r,this.UserDefinedPurpose=n,this.InternalLocation=s,this.AddressLines=a,this.PostalBox=o,this.Town=l,this.Region=h,this.PostalCode=u,this.Country=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new U1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.Purpose),e.push(this.Description),e.push(this.UserDefinedPurpose),e.push(this.InternalLocation),e.push(this.AddressLines),e.push(this.PostalBox),e.push(this.Town),e.push(this.Region),e.push(this.PostalCode),e.push(this.Country),e}},B1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new B1e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},k1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new k1e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},G1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new G1e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},V1e=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new V1e(e,t)}ToTape(){return[]}},z1e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new z1e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},j1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new j1e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},W1e=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new W1e(e,t)}ToTape(){return[]}},q1e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.AssignedItems=n,this.Identifier=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new q1e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.AssignedItems),e.push(this.Identifier),e}},Y1e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.AssignedItems=n,this.Identifier=s,this.LayerOn=a,this.LayerFrozen=o,this.LayerBlocked=l,this.LayerStyles=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Y1e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.AssignedItems),e.push(this.Identifier),e.push(this.LayerOn),e.push(this.LayerFrozen),e.push(this.LayerBlocked),e.push(this.LayerStyles),e}},X1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new X1e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},$1e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Styles=i}static FromTape(e,t,i){let r=0,n=i[r++];return new $1e(e,t,n)}ToTape(){let e=[];return e.push(this.Styles),e}},K1e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.PredefinedType=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new K1e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.PredefinedType),e}},Z1e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ProcessType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Z1e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ProcessType),e.push(this.PredefinedType),e}},J1e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new J1e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e}},Q1e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Q1e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e}},ebe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Representations=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new ebe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Representations),e}},tbe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Representations=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new tbe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Representations),e}},rbe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new rbe(e,t,n,s)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e}},ibe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Properties=n,this.ProfileDefinition=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new ibe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Properties),e.push(this.ProfileDefinition),e}},nbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.Phase=l,this.RepresentationContexts=h,this.UnitsInContext=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new nbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.LongName),e.push(this.Phase),e.push(this.RepresentationContexts),e.push(this.UnitsInContext),e}},sbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.Phase=l,this.RepresentationContexts=h,this.UnitsInContext=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new sbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.LongName),e.push(this.Phase),e.push(this.RepresentationContexts),e.push(this.UnitsInContext),e}},abe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=h,this.LongDescription=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new abe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.PredefinedType),e.push(this.Status),e.push(this.LongDescription),e}},obe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.GeodeticDatum=n,this.VerticalDatum=s,this.MapProjection=a,this.MapZone=o,this.MapUnit=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new obe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.GeodeticDatum),e.push(this.VerticalDatum),e.push(this.MapProjection),e.push(this.MapZone),e.push(this.MapUnit),e}},lbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new lbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},cbe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Name=i,this.Description=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new cbe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e}},ube=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new ube(e,t)}ToTape(){return[]}},hbe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.UpperBoundValue=n,this.LowerBoundValue=s,this.Unit=a,this.SetPointValue=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new hbe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.UpperBoundValue),e.push(this.LowerBoundValue),e.push(this.Unit),e.push(this.SetPointValue),e}},pbe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new pbe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},dbe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.DependingProperty=n,this.DependantProperty=s,this.Expression=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new dbe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.DependingProperty),e.push(this.DependantProperty),e.push(this.Expression),e}},fbe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.EnumerationValues=n,this.EnumerationReference=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new fbe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.EnumerationValues),e.push(this.EnumerationReference),e}},mbe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.EnumerationValues=r,this.Unit=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new mbe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.EnumerationValues),e.push(this.Unit),e}},gbe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.ListValues=n,this.Unit=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new gbe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.ListValues),e.push(this.Unit),e}},vbe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.UsageName=n,this.PropertyReference=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new vbe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.UsageName),e.push(this.PropertyReference),e}},ybe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.HasProperties=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new ybe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.HasProperties),e}},Tbe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Tbe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},Ebe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.TemplateType=a,this.ApplicableEntity=o,this.HasPropertyTemplates=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Ebe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.TemplateType),e.push(this.ApplicableEntity),e.push(this.HasPropertyTemplates),e}},bbe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.NominalValue=n,this.Unit=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new bbe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.NominalValue),e.push(this.Unit),e}},xbe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.DefiningValues=n,this.DefinedValues=s,this.Expression=a,this.DefiningUnit=o,this.DefinedUnit=l,this.CurveInterpolation=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new xbe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.DefiningValues),e.push(this.DefinedValues),e.push(this.Expression),e.push(this.DefiningUnit),e.push(this.DefinedUnit),e.push(this.CurveInterpolation),e}},Ibe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Ibe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},_be=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new _be(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},Sbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Sbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},wbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new wbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Rbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Rbe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Mbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Mbe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Dbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.ProxyType=h,this.Tag=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Dbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.ProxyType),e.push(this.Tag),e}},Cbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Cbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Abe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Abe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Obe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Unit=n,this.AreaValue=s,this.Formula=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Obe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Unit),e.push(this.AreaValue),e.push(this.Formula),e}},Pbe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Unit=n,this.CountValue=s,this.Formula=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Pbe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Unit),e.push(this.CountValue),e.push(this.Formula),e}},Nbe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Unit=n,this.LengthValue=s,this.Formula=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Nbe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Unit),e.push(this.LengthValue),e.push(this.Formula),e}},Lbe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Lbe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},Fbe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Unit=n,this.TimeValue=s,this.Formula=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Fbe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Unit),e.push(this.TimeValue),e.push(this.Formula),e}},Hbe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Unit=n,this.VolumeValue=s,this.Formula=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Hbe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Unit),e.push(this.VolumeValue),e.push(this.Formula),e}},Ube=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.Unit=n,this.WeightValue=s,this.Formula=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Ube(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.Unit),e.push(this.WeightValue),e.push(this.Formula),e}},Bbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Bbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},kbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new kbe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Gbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Gbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Vbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Vbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},zbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new zbe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},jbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new jbe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Wbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.Degree=i,this.ControlPointsList=r,this.CurveForm=n,this.ClosedCurve=s,this.SelfIntersect=a,this.KnotMultiplicities=o,this.Knots=l,this.KnotSpec=h,this.WeightsData=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Wbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.Degree),e.push(this.ControlPointsList),e.push(this.CurveForm),e.push(this.ClosedCurve),e.push(this.SelfIntersect),e.push(this.KnotMultiplicities),e.push(this.Knots),e.push(this.KnotSpec),e.push(this.WeightsData),e}},qbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.UDegree=i,this.VDegree=r,this.ControlPointsList=n,this.SurfaceForm=s,this.UClosed=a,this.VClosed=o,this.SelfIntersect=l,this.UMultiplicities=h,this.VMultiplicities=u,this.UKnots=c,this.VKnots=p,this.KnotSpec=d,this.WeightsData=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new qbe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.UDegree),e.push(this.VDegree),e.push(this.ControlPointsList),e.push(this.SurfaceForm),e.push(this.UClosed),e.push(this.VClosed),e.push(this.SelfIntersect),e.push(this.UMultiplicities),e.push(this.VMultiplicities),e.push(this.UKnots),e.push(this.VKnots),e.push(this.KnotSpec),e.push(this.WeightsData),e}},Ybe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.XDim=s,this.YDim=a,this.WallThickness=o,this.InnerFilletRadius=l,this.OuterFilletRadius=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Ybe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.XDim),e.push(this.YDim),e.push(this.WallThickness),e.push(this.InnerFilletRadius),e.push(this.OuterFilletRadius),e}},Xbe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.XDim=s,this.YDim=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Xbe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.XDim),e.push(this.YDim),e}},$be=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Position=i,this.XLength=r,this.YLength=n,this.Height=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new $be(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Position),e.push(this.XLength),e.push(this.YLength),e.push(this.Height),e}},Kbe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.BasisSurface=i,this.U1=r,this.V1=n,this.U2=s,this.V2=a,this.Usense=o,this.Vsense=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Kbe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.BasisSurface),e.push(this.U1),e.push(this.V1),e.push(this.U2),e.push(this.V2),e.push(this.Usense),e.push(this.Vsense),e}},Zbe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.RecurrenceType=i,this.DayComponent=r,this.WeekdayComponent=n,this.MonthComponent=s,this.Position=a,this.Interval=o,this.Occurrences=l,this.TimePeriods=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new Zbe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.RecurrenceType),e.push(this.DayComponent),e.push(this.WeekdayComponent),e.push(this.MonthComponent),e.push(this.Position),e.push(this.Interval),e.push(this.Occurrences),e.push(this.TimePeriods),e}},Jbe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.TypeIdentifier=i,this.AttributeIdentifier=r,this.InstanceName=n,this.ListPositions=s,this.InnerReference=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new Jbe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.TypeIdentifier),e.push(this.AttributeIdentifier),e.push(this.InstanceName),e.push(this.ListPositions),e.push(this.InnerReference),e}},Qbe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=h,this.RestartDistance=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Qbe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.PredefinedType),e.push(this.RestartDistance),e}},exe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.StartTime=n,this.EndTime=s,this.TimeSeriesDataType=a,this.DataOrigin=o,this.UserDefinedDataOrigin=l,this.Unit=h,this.TimeStep=u,this.Values=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new exe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.StartTime),e.push(this.EndTime),e.push(this.TimeSeriesDataType),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.Unit),e.push(this.TimeStep),e.push(this.Values),e}},txe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.TotalCrossSectionArea=i,this.SteelGrade=r,this.BarSurface=n,this.EffectiveDepth=s,this.NominalBarDiameter=a,this.BarCount=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new txe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.TotalCrossSectionArea),e.push(this.SteelGrade),e.push(this.BarSurface),e.push(this.EffectiveDepth),e.push(this.NominalBarDiameter),e.push(this.BarCount),e}},rxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.DefinitionType=a,this.ReinforcementSectionDefinitions=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new rxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.DefinitionType),e.push(this.ReinforcementSectionDefinitions),e}},ixe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.SteelGrade=u,this.NominalDiameter=c,this.CrossSectionArea=p,this.BarLength=d,this.PredefinedType=f,this.BarSurface=m}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++];return new ixe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.SteelGrade),e.push(this.NominalDiameter),e.push(this.CrossSectionArea),e.push(this.BarLength),e.push(this.PredefinedType),e.push(this.BarSurface),e}},nxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.NominalDiameter=p,this.CrossSectionArea=d,this.BarLength=f,this.BarSurface=m,this.BendingShapeCode=g,this.BendingParameters=y}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++];return new nxe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.NominalDiameter),e.push(this.CrossSectionArea),e.push(this.BarLength),e.push(this.BarSurface),e.push(this.BendingShapeCode),e.push(this.BendingParameters),e}},sxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.SteelGrade=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new sxe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.SteelGrade),e}},axe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new axe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},oxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.SteelGrade=u,this.MeshLength=c,this.MeshWidth=p,this.LongitudinalBarNominalDiameter=d,this.TransverseBarNominalDiameter=f,this.LongitudinalBarCrossSectionArea=m,this.TransverseBarCrossSectionArea=g,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=v,this.PredefinedType=T}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++],b=i[r++];return new oxe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.SteelGrade),e.push(this.MeshLength),e.push(this.MeshWidth),e.push(this.LongitudinalBarNominalDiameter),e.push(this.TransverseBarNominalDiameter),e.push(this.LongitudinalBarCrossSectionArea),e.push(this.TransverseBarCrossSectionArea),e.push(this.LongitudinalBarSpacing),e.push(this.TransverseBarSpacing),e.push(this.PredefinedType),e}},lxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.MeshLength=p,this.MeshWidth=d,this.LongitudinalBarNominalDiameter=f,this.TransverseBarNominalDiameter=m,this.LongitudinalBarCrossSectionArea=g,this.TransverseBarCrossSectionArea=y,this.LongitudinalBarSpacing=v,this.TransverseBarSpacing=T,this.BendingShapeCode=x,this.BendingParameters=b}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++],b=i[r++],_=i[r++],E=i[r++];return new lxe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b,_,E)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.MeshLength),e.push(this.MeshWidth),e.push(this.LongitudinalBarNominalDiameter),e.push(this.TransverseBarNominalDiameter),e.push(this.LongitudinalBarCrossSectionArea),e.push(this.TransverseBarCrossSectionArea),e.push(this.LongitudinalBarSpacing),e.push(this.TransverseBarSpacing),e.push(this.BendingShapeCode),e.push(this.BendingParameters),e}},cxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingObject=a,this.RelatedObjects=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new cxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingObject),e.push(this.RelatedObjects),e}},uxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new uxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e}},hxe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingActor=l,this.ActingRole=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new hxe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e.push(this.RelatingActor),e.push(this.ActingRole),e}},pxe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingControl=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new pxe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e.push(this.RelatingControl),e}},dxe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingGroup=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new dxe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e.push(this.RelatingGroup),e}},fxe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingGroup=l,this.Factor=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new fxe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e.push(this.RelatingGroup),e.push(this.Factor),e}},mxe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingProcess=l,this.QuantityInProcess=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new mxe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e.push(this.RelatingProcess),e.push(this.QuantityInProcess),e}},gxe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingProduct=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new gxe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e.push(this.RelatingProduct),e}},vxe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingResource=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new vxe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatedObjectsType),e.push(this.RelatingResource),e}},yxe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new yxe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e}},Txe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingApproval=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Txe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingApproval),e}},Exe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingClassification=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Exe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingClassification),e}},bxe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.Intent=o,this.RelatingConstraint=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new bxe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.Intent),e.push(this.RelatingConstraint),e}},xxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingDocument=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new xxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingDocument),e}},Ixe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingLibrary=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Ixe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingLibrary),e}},_xe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingMaterial=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new _xe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingMaterial),e}},Sxe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Sxe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},wxe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ConnectionGeometry=a,this.RelatingElement=o,this.RelatedElement=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new wxe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ConnectionGeometry),e.push(this.RelatingElement),e.push(this.RelatedElement),e}},Rxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ConnectionGeometry=a,this.RelatingElement=o,this.RelatedElement=l,this.RelatingPriorities=h,this.RelatedPriorities=u,this.RelatedConnectionType=c,this.RelatingConnectionType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new Rxe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ConnectionGeometry),e.push(this.RelatingElement),e.push(this.RelatedElement),e.push(this.RelatingPriorities),e.push(this.RelatedPriorities),e.push(this.RelatedConnectionType),e.push(this.RelatingConnectionType),e}},Mxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingPort=a,this.RelatedElement=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Mxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingPort),e.push(this.RelatedElement),e}},Dxe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingPort=a,this.RelatedPort=o,this.RealizingElement=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new Dxe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingPort),e.push(this.RelatedPort),e.push(this.RealizingElement),e}},Cxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingElement=a,this.RelatedStructuralActivity=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Cxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingElement),e.push(this.RelatedStructuralActivity),e}},Axe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=o,this.AppliedCondition=l,this.AdditionalConditions=h,this.SupportedLength=u,this.ConditionCoordinateSystem=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Axe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingStructuralMember),e.push(this.RelatedStructuralConnection),e.push(this.AppliedCondition),e.push(this.AdditionalConditions),e.push(this.SupportedLength),e.push(this.ConditionCoordinateSystem),e}},Oxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=o,this.AppliedCondition=l,this.AdditionalConditions=h,this.SupportedLength=u,this.ConditionCoordinateSystem=c,this.ConnectionConstraint=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new Oxe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingStructuralMember),e.push(this.RelatedStructuralConnection),e.push(this.AppliedCondition),e.push(this.AdditionalConditions),e.push(this.SupportedLength),e.push(this.ConditionCoordinateSystem),e.push(this.ConnectionConstraint),e}},Pxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ConnectionGeometry=a,this.RelatingElement=o,this.RelatedElement=l,this.RealizingElements=h,this.ConnectionType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Pxe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ConnectionGeometry),e.push(this.RelatingElement),e.push(this.RelatedElement),e.push(this.RealizingElements),e.push(this.ConnectionType),e}},Nxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedElements=a,this.RelatingStructure=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Nxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedElements),e.push(this.RelatingStructure),e}},Lxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingBuildingElement=a,this.RelatedCoverings=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Lxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingBuildingElement),e.push(this.RelatedCoverings),e}},Fxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedCoverings=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Fxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingSpace),e.push(this.RelatedCoverings),e}},Hxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingContext=a,this.RelatedDefinitions=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Hxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingContext),e.push(this.RelatedDefinitions),e}},Uxe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Uxe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},Bxe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new Bxe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},kxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingObject=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new kxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingObject),e}},Gxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingPropertyDefinition=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Gxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingPropertyDefinition),e}},Vxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedPropertySets=a,this.RelatingTemplate=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Vxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedPropertySets),e.push(this.RelatingTemplate),e}},zxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingType=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new zxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedObjects),e.push(this.RelatingType),e}},jxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingOpeningElement=a,this.RelatedBuildingElement=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new jxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingOpeningElement),e.push(this.RelatedBuildingElement),e}},Wxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedControlElements=a,this.RelatingFlowElement=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Wxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedControlElements),e.push(this.RelatingFlowElement),e}},qxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingElement=a,this.RelatedElement=o,this.InterferenceGeometry=l,this.InterferenceType=h,this.ImpliedOrder=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new qxe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingElement),e.push(this.RelatedElement),e.push(this.InterferenceGeometry),e.push(this.InterferenceType),e.push(this.ImpliedOrder),e}},Yxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingObject=a,this.RelatedObjects=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Yxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingObject),e.push(this.RelatedObjects),e}},Xxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingPositioningElement=a,this.RelatedProducts=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Xxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingPositioningElement),e.push(this.RelatedProducts),e}},$xe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingElement=a,this.RelatedFeatureElement=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new $xe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingElement),e.push(this.RelatedFeatureElement),e}},Kxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatedElements=a,this.RelatingStructure=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Kxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatedElements),e.push(this.RelatingStructure),e}},Zxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingProcess=a,this.RelatedProcess=o,this.TimeLag=l,this.SequenceType=h,this.UserDefinedSequenceType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Zxe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingProcess),e.push(this.RelatedProcess),e.push(this.TimeLag),e.push(this.SequenceType),e.push(this.UserDefinedSequenceType),e}},Jxe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingSystem=a,this.RelatedBuildings=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Jxe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingSystem),e.push(this.RelatedBuildings),e}},Qxe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedBuildingElement=o,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=h,this.InternalOrExternalBoundary=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Qxe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingSpace),e.push(this.RelatedBuildingElement),e.push(this.ConnectionGeometry),e.push(this.PhysicalOrVirtualBoundary),e.push(this.InternalOrExternalBoundary),e}},eIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedBuildingElement=o,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=h,this.InternalOrExternalBoundary=u,this.ParentBoundary=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new eIe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingSpace),e.push(this.RelatedBuildingElement),e.push(this.ConnectionGeometry),e.push(this.PhysicalOrVirtualBoundary),e.push(this.InternalOrExternalBoundary),e.push(this.ParentBoundary),e}},tIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedBuildingElement=o,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=h,this.InternalOrExternalBoundary=u,this.ParentBoundary=c,this.CorrespondingBoundary=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new tIe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingSpace),e.push(this.RelatedBuildingElement),e.push(this.ConnectionGeometry),e.push(this.PhysicalOrVirtualBoundary),e.push(this.InternalOrExternalBoundary),e.push(this.ParentBoundary),e.push(this.CorrespondingBoundary),e}},rIe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.RelatingBuildingElement=a,this.RelatedOpeningElement=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new rIe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.RelatingBuildingElement),e.push(this.RelatedOpeningElement),e}},iIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new iIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},nIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Transition=i,this.SameSense=r,this.ParentCurve=n,this.ParamLength=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new nIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Transition),e.push(this.SameSense),e.push(this.ParentCurve),e.push(this.ParamLength),e}},sIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ContextOfItems=i,this.RepresentationIdentifier=r,this.RepresentationType=n,this.Items=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new sIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ContextOfItems),e.push(this.RepresentationIdentifier),e.push(this.RepresentationType),e.push(this.Items),e}},aIe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.ContextIdentifier=i,this.ContextType=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new aIe(e,t,n,s)}ToTape(){let e=[];return e.push(this.ContextIdentifier),e.push(this.ContextType),e}},oIe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new oIe(e,t)}ToTape(){return[]}},lIe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.MappingOrigin=i,this.MappedRepresentation=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new lIe(e,t,n,s)}ToTape(){let e=[];return e.push(this.MappingOrigin),e.push(this.MappedRepresentation),e}},cIe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new cIe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e}},uIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatedResourceObjects=n,this.RelatingApproval=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new uIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatedResourceObjects),e.push(this.RelatingApproval),e}},hIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.RelatingConstraint=n,this.RelatedResourceObjects=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new hIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.RelatingConstraint),e.push(this.RelatedResourceObjects),e}},pIe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Name=i,this.Description=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new pIe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e}},dIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T){this.expressID=e,this.type=t,this.Name=i,this.DataOrigin=r,this.UserDefinedDataOrigin=n,this.ScheduleWork=s,this.ScheduleUsage=a,this.ScheduleStart=o,this.ScheduleFinish=l,this.ScheduleContour=h,this.LevelingDelay=u,this.IsOverAllocated=c,this.StatusTime=p,this.ActualWork=d,this.ActualUsage=f,this.ActualStart=m,this.ActualFinish=g,this.RemainingWork=y,this.RemainingUsage=v,this.Completion=T}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++],b=i[r++];return new dIe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.ScheduleWork),e.push(this.ScheduleUsage),e.push(this.ScheduleStart),e.push(this.ScheduleFinish),e.push(this.ScheduleContour),e.push(this.LevelingDelay),e.push(this.IsOverAllocated),e.push(this.StatusTime),e.push(this.ActualWork),e.push(this.ActualUsage),e.push(this.ActualStart),e.push(this.ActualFinish),e.push(this.RemainingWork),e.push(this.RemainingUsage),e.push(this.Completion),e}},fIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.SweptArea=i,this.Position=r,this.Axis=n,this.Angle=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new fIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.SweptArea),e.push(this.Position),e.push(this.Axis),e.push(this.Angle),e}},mIe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.SweptArea=i,this.Position=r,this.Axis=n,this.Angle=s,this.EndSweptArea=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new mIe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.SweptArea),e.push(this.Position),e.push(this.Axis),e.push(this.Angle),e.push(this.EndSweptArea),e}},gIe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Position=i,this.Height=r,this.BottomRadius=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new gIe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Position),e.push(this.Height),e.push(this.BottomRadius),e}},vIe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Position=i,this.Height=r,this.Radius=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new vIe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Position),e.push(this.Height),e.push(this.Radius),e}},yIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new yIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},TIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new TIe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},EIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new EIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e}},bIe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.XDim=s,this.YDim=a,this.RoundingRadius=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new bIe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.XDim),e.push(this.YDim),e.push(this.RoundingRadius),e}},xIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Dimensions=i,this.UnitType=r,this.Prefix=n,this.Name=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new xIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Dimensions),e.push(this.UnitType),e.push(this.Prefix),e.push(this.Name),e}},IIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new IIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},_Ie=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new _Ie(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},SIe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.DataOrigin=r,this.UserDefinedDataOrigin=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new SIe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e}},wIe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Curve3D=i,this.AssociatedGeometry=r,this.MasterRepresentation=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new wIe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Curve3D),e.push(this.AssociatedGeometry),e.push(this.MasterRepresentation),e}},RIe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.SectionType=i,this.StartProfile=r,this.EndProfile=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new RIe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.SectionType),e.push(this.StartProfile),e.push(this.EndProfile),e}},MIe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.LongitudinalStartPosition=i,this.LongitudinalEndPosition=r,this.TransversePosition=n,this.ReinforcementRole=s,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new MIe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.LongitudinalStartPosition),e.push(this.LongitudinalEndPosition),e.push(this.TransversePosition),e.push(this.ReinforcementRole),e.push(this.SectionDefinition),e.push(this.CrossSectionReinforcementDefinitions),e}},DIe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Directrix=i,this.CrossSections=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new DIe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Directrix),e.push(this.CrossSections),e}},CIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Directrix=i,this.CrossSections=r,this.CrossSectionPositions=n,this.FixedAxisVertical=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new CIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Directrix),e.push(this.CrossSections),e.push(this.CrossSectionPositions),e.push(this.FixedAxisVertical),e}},AIe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.SpineCurve=i,this.CrossSections=r,this.CrossSectionPositions=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new AIe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.SpineCurve),e.push(this.CrossSections),e.push(this.CrossSectionPositions),e}},OIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new OIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},PIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new PIe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},NIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new NIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},LIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new LIe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},FIe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.ShapeRepresentations=i,this.Name=r,this.Description=n,this.ProductDefinitional=s,this.PartOfProductDefinitionShape=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new FIe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.ShapeRepresentations),e.push(this.Name),e.push(this.Description),e.push(this.ProductDefinitional),e.push(this.PartOfProductDefinitionShape),e}},HIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ContextOfItems=i,this.RepresentationIdentifier=r,this.RepresentationType=n,this.Items=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new HIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ContextOfItems),e.push(this.RepresentationIdentifier),e.push(this.RepresentationType),e.push(this.Items),e}},UIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ContextOfItems=i,this.RepresentationIdentifier=r,this.RepresentationType=n,this.Items=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new UIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ContextOfItems),e.push(this.RepresentationIdentifier),e.push(this.RepresentationType),e.push(this.Items),e}},BIe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.SbsmBoundary=i}static FromTape(e,t,i){let r=0,n=i[r++];return new BIe(e,t,n)}ToTape(){let e=[];return e.push(this.SbsmBoundary),e}},kIe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Name=i,this.Description=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new kIe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e}},GIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.TemplateType=a,this.PrimaryMeasureType=o,this.SecondaryMeasureType=l,this.Enumerators=h,this.PrimaryUnit=u,this.SecondaryUnit=c,this.Expression=p,this.AccessState=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new GIe(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.TemplateType),e.push(this.PrimaryMeasureType),e.push(this.SecondaryMeasureType),e.push(this.Enumerators),e.push(this.PrimaryUnit),e.push(this.SecondaryUnit),e.push(this.Expression),e.push(this.AccessState),e}},VIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u,this.RefLatitude=c,this.RefLongitude=p,this.RefElevation=d,this.LandTitleNumber=f,this.SiteAddress=m}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++];return new VIe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e.push(this.RefLatitude),e.push(this.RefLongitude),e.push(this.RefElevation),e.push(this.LandTitleNumber),e.push(this.SiteAddress),e}},zIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new zIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},jIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new jIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},WIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new WIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},qIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new qIe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},YIe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.SlippageX=r,this.SlippageY=n,this.SlippageZ=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new YIe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.SlippageX),e.push(this.SlippageY),e.push(this.SlippageZ),e}},XIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new XIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},$Ie=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new $Ie(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},KIe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new KIe(e,t)}ToTape(){return[]}},ZIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u,this.PredefinedType=c,this.ElevationWithFlooring=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new ZIe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e.push(this.PredefinedType),e.push(this.ElevationWithFlooring),e}},JIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new JIe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},QIe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new QIe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},e_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.LongName=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new e_e(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.LongName),e}},t_e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new t_e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e}},r_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new r_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},i_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.CompositionType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new i_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.CompositionType),e}},n_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new n_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e}},s_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new s_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.LongName),e.push(this.PredefinedType),e}},a_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.LongName=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new a_e(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.LongName),e}},o_e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Position=i,this.Radius=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new o_e(e,t,n,s)}ToTape(){let e=[];return e.push(this.Position),e.push(this.Radius),e}},l_e=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Position=i,this.Radius=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new l_e(e,t,n,s)}ToTape(){let e=[];return e.push(this.Position),e.push(this.Radius),e}},c_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new c_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},u_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new u_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},h_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new h_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},p_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.NumberOfRisers=u,this.NumberOfTreads=c,this.RiserHeight=p,this.TreadLength=d,this.PredefinedType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new p_e(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.NumberOfRisers),e.push(this.NumberOfTreads),e.push(this.RiserHeight),e.push(this.TreadLength),e.push(this.PredefinedType),e}},d_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new d_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},f_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new f_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},m_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.DestabilizingLoad=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new m_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.DestabilizingLoad),e}},g_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new g_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e}},v_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.OrientationOf2DPlane=l,this.LoadedBy=h,this.HasResults=u,this.SharedPlacement=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new v_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.PredefinedType),e.push(this.OrientationOf2DPlane),e.push(this.LoadedBy),e.push(this.HasResults),e.push(this.SharedPlacement),e}},y_e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new y_e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedCondition),e}},T_e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new T_e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},E_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.DestabilizingLoad=c,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new E_e(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.DestabilizingLoad),e.push(this.ProjectedOrTrue),e.push(this.PredefinedType),e}},b_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=h,this.Axis=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new b_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedCondition),e.push(this.Axis),e}},x_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=h,this.Axis=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new x_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.PredefinedType),e.push(this.Axis),e}},I_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=h,this.Axis=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new I_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.PredefinedType),e.push(this.Axis),e}},__e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new __e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.PredefinedType),e}},S_e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new S_e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e}},w_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.DestabilizingLoad=c,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new w_e(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.DestabilizingLoad),e.push(this.ProjectedOrTrue),e.push(this.PredefinedType),e}},R_e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new R_e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},M_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.ActionType=l,this.ActionSource=h,this.Coefficient=u,this.Purpose=c,this.SelfWeightCoefficients=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new M_e(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.PredefinedType),e.push(this.ActionType),e.push(this.ActionSource),e.push(this.Coefficient),e.push(this.Purpose),e.push(this.SelfWeightCoefficients),e}},D_e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Values=r,this.Locations=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new D_e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Values),e.push(this.Locations),e}},C_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.ActionType=l,this.ActionSource=h,this.Coefficient=u,this.Purpose=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new C_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.PredefinedType),e.push(this.ActionType),e.push(this.ActionSource),e.push(this.Coefficient),e.push(this.Purpose),e}},A_e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.LinearForceX=r,this.LinearForceY=n,this.LinearForceZ=s,this.LinearMomentX=a,this.LinearMomentY=o,this.LinearMomentZ=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new A_e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.LinearForceX),e.push(this.LinearForceY),e.push(this.LinearForceZ),e.push(this.LinearMomentX),e.push(this.LinearMomentY),e.push(this.LinearMomentZ),e}},O_e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new O_e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},P_e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.PlanarForceX=r,this.PlanarForceY=n,this.PlanarForceZ=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new P_e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.PlanarForceX),e.push(this.PlanarForceY),e.push(this.PlanarForceZ),e}},N_e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.DisplacementX=r,this.DisplacementY=n,this.DisplacementZ=s,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=o,this.RotationalDisplacementRZ=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new N_e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DisplacementX),e.push(this.DisplacementY),e.push(this.DisplacementZ),e.push(this.RotationalDisplacementRX),e.push(this.RotationalDisplacementRY),e.push(this.RotationalDisplacementRZ),e}},L_e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Name=i,this.DisplacementX=r,this.DisplacementY=n,this.DisplacementZ=s,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=o,this.RotationalDisplacementRZ=l,this.Distortion=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new L_e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DisplacementX),e.push(this.DisplacementY),e.push(this.DisplacementZ),e.push(this.RotationalDisplacementRX),e.push(this.RotationalDisplacementRY),e.push(this.RotationalDisplacementRZ),e.push(this.Distortion),e}},F_e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.Name=i,this.ForceX=r,this.ForceY=n,this.ForceZ=s,this.MomentX=a,this.MomentY=o,this.MomentZ=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new F_e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.Name),e.push(this.ForceX),e.push(this.ForceY),e.push(this.ForceZ),e.push(this.MomentX),e.push(this.MomentY),e.push(this.MomentZ),e}},H_e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Name=i,this.ForceX=r,this.ForceY=n,this.ForceZ=s,this.MomentX=a,this.MomentY=o,this.MomentZ=l,this.WarpingMoment=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new H_e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Name),e.push(this.ForceX),e.push(this.ForceY),e.push(this.ForceZ),e.push(this.MomentX),e.push(this.MomentY),e.push(this.MomentZ),e.push(this.WarpingMoment),e}},U_e=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Name=i}static FromTape(e,t,i){let r=0,n=i[r++];return new U_e(e,t,n)}ToTape(){let e=[];return e.push(this.Name),e}},B_e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.DeltaTConstant=r,this.DeltaTY=n,this.DeltaTZ=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new B_e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DeltaTConstant),e.push(this.DeltaTY),e.push(this.DeltaTZ),e}},k_e=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new k_e(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e}},G_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.DestabilizingLoad=c,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new G_e(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.DestabilizingLoad),e.push(this.ProjectedOrTrue),e.push(this.PredefinedType),e}},V_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.DestabilizingLoad=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new V_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.DestabilizingLoad),e}},z_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=h,this.ConditionCoordinateSystem=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new z_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedCondition),e.push(this.ConditionCoordinateSystem),e}},j_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new j_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e}},W_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new W_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e}},q_e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.TheoryType=o,this.ResultForLoadGroup=l,this.IsLinear=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new q_e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.TheoryType),e.push(this.ResultForLoadGroup),e.push(this.IsLinear),e}},Y_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.DestabilizingLoad=c,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new Y_e(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.DestabilizingLoad),e.push(this.ProjectedOrTrue),e.push(this.PredefinedType),e}},X_e=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new X_e(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedCondition),e}},$_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=h,this.Thickness=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new $_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.PredefinedType),e.push(this.Thickness),e}},K_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=h,this.Thickness=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new K_e(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.PredefinedType),e.push(this.Thickness),e}},Z_e=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=h,this.GlobalOrLocal=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Z_e(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.AppliedLoad),e.push(this.GlobalOrLocal),e.push(this.PredefinedType),e}},J_e=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ContextOfItems=i,this.RepresentationIdentifier=r,this.RepresentationType=n,this.Items=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new J_e(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ContextOfItems),e.push(this.RepresentationIdentifier),e.push(this.RepresentationType),e.push(this.Items),e}},Q_e=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Item=i,this.Styles=r,this.Name=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new Q_e(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Item),e.push(this.Styles),e.push(this.Name),e}},eSe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ContextOfItems=i,this.RepresentationIdentifier=r,this.RepresentationType=n,this.Items=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new eSe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ContextOfItems),e.push(this.RepresentationIdentifier),e.push(this.RepresentationType),e.push(this.Items),e}},tSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=h,this.BaseCosts=u,this.BaseQuantity=c,this.PredefinedType=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new tSe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Usage),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},rSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u,this.BaseCosts=c,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new rSe(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},iSe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.EdgeStart=i,this.EdgeEnd=r,this.ParentEdge=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new iSe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.EdgeStart),e.push(this.EdgeEnd),e.push(this.ParentEdge),e}},nSe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new nSe(e,t)}ToTape(){return[]}},sSe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Curve3D=i,this.AssociatedGeometry=r,this.MasterRepresentation=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new sSe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Curve3D),e.push(this.AssociatedGeometry),e.push(this.MasterRepresentation),e}},aSe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.SweptArea=i,this.Position=r,this.Directrix=n,this.StartParam=s,this.EndParam=a,this.ReferenceSurface=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new aSe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.SweptArea),e.push(this.Position),e.push(this.Directrix),e.push(this.StartParam),e.push(this.EndParam),e.push(this.ReferenceSurface),e}},oSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new oSe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},lSe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.SweptCurve=i,this.Position=r,this.ExtrudedDirection=n,this.Depth=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new lSe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.SweptCurve),e.push(this.Position),e.push(this.ExtrudedDirection),e.push(this.Depth),e}},cSe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.SweptCurve=i,this.Position=r,this.AxisPosition=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new cSe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.SweptCurve),e.push(this.Position),e.push(this.AxisPosition),e}},uSe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.Name=i,this.SurfaceReinforcement1=r,this.SurfaceReinforcement2=n,this.ShearReinforcement=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new uSe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.Name),e.push(this.SurfaceReinforcement1),e.push(this.SurfaceReinforcement2),e.push(this.ShearReinforcement),e}},hSe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Side=r,this.Styles=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new hSe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Side),e.push(this.Styles),e}},pSe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.DiffuseTransmissionColour=i,this.DiffuseReflectionColour=r,this.TransmissionColour=n,this.ReflectanceColour=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new pSe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.DiffuseTransmissionColour),e.push(this.DiffuseReflectionColour),e.push(this.TransmissionColour),e.push(this.ReflectanceColour),e}},dSe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.RefractionIndex=i,this.DispersionFactor=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new dSe(e,t,n,s)}ToTape(){let e=[];return e.push(this.RefractionIndex),e.push(this.DispersionFactor),e}},fSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.SurfaceColour=i,this.Transparency=r,this.DiffuseColour=n,this.TransmissionColour=s,this.DiffuseTransmissionColour=a,this.ReflectionColour=o,this.SpecularColour=l,this.SpecularHighlight=h,this.ReflectanceMethod=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new fSe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.SurfaceColour),e.push(this.Transparency),e.push(this.DiffuseColour),e.push(this.TransmissionColour),e.push(this.DiffuseTransmissionColour),e.push(this.ReflectionColour),e.push(this.SpecularColour),e.push(this.SpecularHighlight),e.push(this.ReflectanceMethod),e}},mSe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.SurfaceColour=i,this.Transparency=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new mSe(e,t,n,s)}ToTape(){let e=[];return e.push(this.SurfaceColour),e.push(this.Transparency),e}},gSe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Textures=i}static FromTape(e,t,i){let r=0,n=i[r++];return new gSe(e,t,n)}ToTape(){let e=[];return e.push(this.Textures),e}},vSe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.RepeatS=i,this.RepeatT=r,this.Mode=n,this.TextureTransform=s,this.Parameter=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new vSe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.RepeatS),e.push(this.RepeatT),e.push(this.Mode),e.push(this.TextureTransform),e.push(this.Parameter),e}},ySe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.SweptArea=i,this.Position=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new ySe(e,t,n,s)}ToTape(){let e=[];return e.push(this.SweptArea),e.push(this.Position),e}},TSe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Directrix=i,this.Radius=r,this.InnerRadius=n,this.StartParam=s,this.EndParam=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new TSe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Directrix),e.push(this.Radius),e.push(this.InnerRadius),e.push(this.StartParam),e.push(this.EndParam),e}},ESe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Directrix=i,this.Radius=r,this.InnerRadius=n,this.StartParam=s,this.EndParam=a,this.FilletRadius=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new ESe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Directrix),e.push(this.Radius),e.push(this.InnerRadius),e.push(this.StartParam),e.push(this.EndParam),e.push(this.FilletRadius),e}},bSe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.SweptCurve=i,this.Position=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new bSe(e,t,n,s)}ToTape(){let e=[];return e.push(this.SweptCurve),e.push(this.Position),e}},xSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new xSe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},ISe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new ISe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},_Se=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new _Se(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e}},SSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new SSe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},wSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new wSe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},RSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.Depth=s,this.FlangeWidth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=h,this.FlangeEdgeRadius=u,this.WebEdgeRadius=c,this.WebSlope=p,this.FlangeSlope=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new RSe(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.Depth),e.push(this.FlangeWidth),e.push(this.WebThickness),e.push(this.FlangeThickness),e.push(this.FilletRadius),e.push(this.FlangeEdgeRadius),e.push(this.WebEdgeRadius),e.push(this.WebSlope),e.push(this.FlangeSlope),e}},MSe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Name=i,this.Rows=r,this.Columns=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new MSe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Rows),e.push(this.Columns),e}},DSe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Identifier=i,this.Name=r,this.Description=n,this.Unit=s,this.ReferencePath=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new DSe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Identifier),e.push(this.Name),e.push(this.Description),e.push(this.Unit),e.push(this.ReferencePath),e}},CSe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.RowCells=i,this.IsHeading=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new CSe(e,t,n,s)}ToTape(){let e=[];return e.push(this.RowCells),e.push(this.IsHeading),e}},ASe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new ASe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},OSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new OSe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},PSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Status=h,this.WorkMethod=u,this.IsMilestone=c,this.Priority=p,this.TaskTime=d,this.PredefinedType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new PSe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.LongDescription),e.push(this.Status),e.push(this.WorkMethod),e.push(this.IsMilestone),e.push(this.Priority),e.push(this.TaskTime),e.push(this.PredefinedType),e}},NSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b){this.expressID=e,this.type=t,this.Name=i,this.DataOrigin=r,this.UserDefinedDataOrigin=n,this.DurationType=s,this.ScheduleDuration=a,this.ScheduleStart=o,this.ScheduleFinish=l,this.EarlyStart=h,this.EarlyFinish=u,this.LateStart=c,this.LateFinish=p,this.FreeFloat=d,this.TotalFloat=f,this.IsCritical=m,this.StatusTime=g,this.ActualDuration=y,this.ActualStart=v,this.ActualFinish=T,this.RemainingTime=x,this.Completion=b}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++],b=i[r++],_=i[r++],E=i[r++];return new NSe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b,_,E)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.DurationType),e.push(this.ScheduleDuration),e.push(this.ScheduleStart),e.push(this.ScheduleFinish),e.push(this.EarlyStart),e.push(this.EarlyFinish),e.push(this.LateStart),e.push(this.LateFinish),e.push(this.FreeFloat),e.push(this.TotalFloat),e.push(this.IsCritical),e.push(this.StatusTime),e.push(this.ActualDuration),e.push(this.ActualStart),e.push(this.ActualFinish),e.push(this.RemainingTime),e.push(this.Completion),e}},LSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b,_){this.expressID=e,this.type=t,this.Name=i,this.DataOrigin=r,this.UserDefinedDataOrigin=n,this.DurationType=s,this.ScheduleDuration=a,this.ScheduleStart=o,this.ScheduleFinish=l,this.EarlyStart=h,this.EarlyFinish=u,this.LateStart=c,this.LateFinish=p,this.FreeFloat=d,this.TotalFloat=f,this.IsCritical=m,this.StatusTime=g,this.ActualDuration=y,this.ActualStart=v,this.ActualFinish=T,this.RemainingTime=x,this.Completion=b,this.Recurrence=_}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++],b=i[r++],_=i[r++],E=i[r++],w=i[r++];return new LSe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x,b,_,E,w)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.DurationType),e.push(this.ScheduleDuration),e.push(this.ScheduleStart),e.push(this.ScheduleFinish),e.push(this.EarlyStart),e.push(this.EarlyFinish),e.push(this.LateStart),e.push(this.LateFinish),e.push(this.FreeFloat),e.push(this.TotalFloat),e.push(this.IsCritical),e.push(this.StatusTime),e.push(this.ActualDuration),e.push(this.ActualStart),e.push(this.ActualFinish),e.push(this.RemainingTime),e.push(this.Completion),e.push(this.Recurrence),e}},FSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ProcessType=u,this.PredefinedType=c,this.WorkMethod=p}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++];return new FSe(e,t,n,s,a,o,l,h,u,c,p,d,f)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ProcessType),e.push(this.PredefinedType),e.push(this.WorkMethod),e}},HSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.Purpose=i,this.Description=r,this.UserDefinedPurpose=n,this.TelephoneNumbers=s,this.FacsimileNumbers=a,this.PagerNumber=o,this.ElectronicMailAddresses=l,this.WWWHomePageURL=h,this.MessagingIDs=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new HSe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.Purpose),e.push(this.Description),e.push(this.UserDefinedPurpose),e.push(this.TelephoneNumbers),e.push(this.FacsimileNumbers),e.push(this.PagerNumber),e.push(this.ElectronicMailAddresses),e.push(this.WWWHomePageURL),e.push(this.MessagingIDs),e}},USe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.SteelGrade=u,this.PredefinedType=c,this.NominalDiameter=p,this.CrossSectionArea=d,this.TensionForce=f,this.PreStress=m,this.FrictionCoefficient=g,this.AnchorageSlip=y,this.MinCurvatureRadius=v}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++],x=i[r++];return new USe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T,x)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.SteelGrade),e.push(this.PredefinedType),e.push(this.NominalDiameter),e.push(this.CrossSectionArea),e.push(this.TensionForce),e.push(this.PreStress),e.push(this.FrictionCoefficient),e.push(this.AnchorageSlip),e.push(this.MinCurvatureRadius),e}},BSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.SteelGrade=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new BSe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.SteelGrade),e.push(this.PredefinedType),e}},kSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new kSe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},GSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.SteelGrade=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new GSe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.SteelGrade),e.push(this.PredefinedType),e}},VSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new VSe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},zSe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.NominalDiameter=p,this.CrossSectionArea=d,this.SheathDiameter=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new zSe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.NominalDiameter),e.push(this.CrossSectionArea),e.push(this.SheathDiameter),e}},jSe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Coordinates=i}static FromTape(e,t,i){let r=0,n=i[r++];return new jSe(e,t,n)}ToTape(){let e=[];return e.push(this.Coordinates),e}},WSe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new WSe(e,t)}ToTape(){return[]}},qSe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Literal=i,this.Placement=r,this.Path=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new qSe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Literal),e.push(this.Placement),e.push(this.Path),e}},YSe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Literal=i,this.Placement=r,this.Path=n,this.Extent=s,this.BoxAlignment=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new YSe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Literal),e.push(this.Placement),e.push(this.Path),e.push(this.Extent),e.push(this.BoxAlignment),e}},XSe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Name=i,this.TextCharacterAppearance=r,this.TextStyle=n,this.TextFontStyle=s,this.ModelOrDraughting=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new XSe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Name),e.push(this.TextCharacterAppearance),e.push(this.TextStyle),e.push(this.TextFontStyle),e.push(this.ModelOrDraughting),e}},$Se=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Name=i,this.FontFamily=r,this.FontStyle=n,this.FontVariant=s,this.FontWeight=a,this.FontSize=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new $Se(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Name),e.push(this.FontFamily),e.push(this.FontStyle),e.push(this.FontVariant),e.push(this.FontWeight),e.push(this.FontSize),e}},KSe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Colour=i,this.BackgroundColour=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new KSe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Colour),e.push(this.BackgroundColour),e}},ZSe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.TextIndent=i,this.TextAlign=r,this.TextDecoration=n,this.LetterSpacing=s,this.WordSpacing=a,this.TextTransform=o,this.LineHeight=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new ZSe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.TextIndent),e.push(this.TextAlign),e.push(this.TextDecoration),e.push(this.LetterSpacing),e.push(this.WordSpacing),e.push(this.TextTransform),e.push(this.LineHeight),e}},JSe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Maps=i}static FromTape(e,t,i){let r=0,n=i[r++];return new JSe(e,t,n)}ToTape(){let e=[];return e.push(this.Maps),e}},QSe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Maps=i,this.Mode=r,this.Parameter=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new QSe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Maps),e.push(this.Mode),e.push(this.Parameter),e}},ewe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Maps=i,this.Vertices=r,this.MappedTo=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new ewe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Maps),e.push(this.Vertices),e.push(this.MappedTo),e}},twe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Coordinates=i}static FromTape(e,t,i){let r=0,n=i[r++];return new twe(e,t,n)}ToTape(){let e=[];return e.push(this.Coordinates),e}},rwe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.TexCoordsList=i}static FromTape(e,t,i){let r=0,n=i[r++];return new rwe(e,t,n)}ToTape(){let e=[];return e.push(this.TexCoordsList),e}},iwe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.StartTime=i,this.EndTime=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new iwe(e,t,n,s)}ToTape(){let e=[];return e.push(this.StartTime),e.push(this.EndTime),e}},nwe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.Name=i,this.Description=r,this.StartTime=n,this.EndTime=s,this.TimeSeriesDataType=a,this.DataOrigin=o,this.UserDefinedDataOrigin=l,this.Unit=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new nwe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.Name),e.push(this.Description),e.push(this.StartTime),e.push(this.EndTime),e.push(this.TimeSeriesDataType),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.Unit),e}},swe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.ListValues=i}static FromTape(e,t,i){let r=0,n=i[r++];return new swe(e,t,n)}ToTape(){let e=[];return e.push(this.ListValues),e}},awe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new awe(e,t)}ToTape(){return[]}},owe=class{constructor(e,t,i,r,n,s){this.expressID=e,this.type=t,this.ContextOfItems=i,this.RepresentationIdentifier=r,this.RepresentationType=n,this.Items=s}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++];return new owe(e,t,n,s,a,o)}ToTape(){let e=[];return e.push(this.ContextOfItems),e.push(this.RepresentationIdentifier),e.push(this.RepresentationType),e.push(this.Items),e}},lwe=class{constructor(e,t,i,r,n){this.expressID=e,this.type=t,this.Position=i,this.MajorRadius=r,this.MinorRadius=n}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++];return new lwe(e,t,n,s,a)}ToTape(){let e=[];return e.push(this.Position),e.push(this.MajorRadius),e.push(this.MinorRadius),e}},cwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new cwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},uwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new uwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},hwe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.StartPoint=i,this.StartDirection=r,this.SegmentLength=n,this.StartRadius=s,this.EndRadius=a,this.IsStartRadiusCCW=o,this.IsEndRadiusCCW=l,this.TransitionCurveType=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new hwe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.StartPoint),e.push(this.StartDirection),e.push(this.SegmentLength),e.push(this.StartRadius),e.push(this.EndRadius),e.push(this.IsStartRadiusCCW),e.push(this.IsEndRadiusCCW),e.push(this.TransitionCurveType),e}},pwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new pwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},dwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new dwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},fwe=class{constructor(e,t,i,r,n,s,a,o,l){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.BottomXDim=s,this.TopXDim=a,this.YDim=o,this.TopXOffset=l}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++];return new fwe(e,t,n,s,a,o,l,h,u)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.BottomXDim),e.push(this.TopXDim),e.push(this.YDim),e.push(this.TopXOffset),e}},mwe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.Coordinates=i,this.Normals=r,this.Closed=n,this.CoordIndex=s,this.PnIndex=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new mwe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.Coordinates),e.push(this.Normals),e.push(this.Closed),e.push(this.CoordIndex),e.push(this.PnIndex),e}},gwe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Coordinates=i,this.Normals=r,this.Closed=n,this.CoordIndex=s,this.PnIndex=a,this.Flags=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new gwe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Coordinates),e.push(this.Normals),e.push(this.Closed),e.push(this.CoordIndex),e.push(this.PnIndex),e.push(this.Flags),e}},vwe=class{constructor(e,t,i,r,n,s,a){this.expressID=e,this.type=t,this.BasisCurve=i,this.Trim1=r,this.Trim2=n,this.SenseAgreement=s,this.MasterRepresentation=a}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++];return new vwe(e,t,n,s,a,o,l)}ToTape(){let e=[];return e.push(this.BasisCurve),e.push(this.Trim1),e.push(this.Trim2),e.push(this.SenseAgreement),e.push(this.MasterRepresentation),e}},ywe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new ywe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Twe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Twe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Ewe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new Ewe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e}},bwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ProcessType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new bwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ProcessType),e}},xwe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new xwe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e}},Iwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=h,this.ResourceType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Iwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.Identification),e.push(this.LongDescription),e.push(this.ResourceType),e}},_we=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.Depth=s,this.FlangeWidth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=h,this.EdgeRadius=u,this.FlangeSlope=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new _we(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.Depth),e.push(this.FlangeWidth),e.push(this.WebThickness),e.push(this.FlangeThickness),e.push(this.FilletRadius),e.push(this.EdgeRadius),e.push(this.FlangeSlope),e}},Swe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.Units=i}static FromTape(e,t,i){let r=0,n=i[r++];return new Swe(e,t,n)}ToTape(){let e=[];return e.push(this.Units),e}},wwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new wwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Rwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Rwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Mwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Mwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Dwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Dwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Cwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Cwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Awe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Awe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Owe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.Orientation=i,this.Magnitude=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Owe(e,t,n,s)}ToTape(){let e=[];return e.push(this.Orientation),e.push(this.Magnitude),e}},Pwe=class{constructor(e,t){this.expressID=e,this.type=t}static FromTape(e,t,i){return new Pwe(e,t)}ToTape(){return[]}},Nwe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.LoopVertex=i}static FromTape(e,t,i){let r=0,n=i[r++];return new Nwe(e,t,n)}ToTape(){let e=[];return e.push(this.LoopVertex),e}},Lwe=class{constructor(e,t,i){this.expressID=e,this.type=t,this.VertexGeometry=i}static FromTape(e,t,i){let r=0,n=i[r++];return new Lwe(e,t,n)}ToTape(){let e=[];return e.push(this.VertexGeometry),e}},Fwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Fwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Hwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Hwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Uwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Uwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Bwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Bwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},kwe=class{constructor(e,t,i,r,n,s,a,o,l,h){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++];return new kwe(e,t,n,s,a,o,l,h,u,c)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e}},Gwe=class{constructor(e,t,i,r){this.expressID=e,this.type=t,this.IntersectingAxes=i,this.OffsetDistances=r}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++];return new Gwe(e,t,n,s)}ToTape(){let e=[];return e.push(this.IntersectingAxes),e.push(this.OffsetDistances),e}},Vwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Vwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},zwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new zwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},jwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new jwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Wwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Wwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},qwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new qwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},Ywe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Ywe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.PredefinedType),e}},Xwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++];return new Xwe(e,t,n,s,a,o,l,h,u,c,p,d)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e}},$we=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.OverallHeight=u,this.OverallWidth=c,this.PredefinedType=p,this.PartitioningType=d,this.UserDefinedPartitioningType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new $we(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.OverallHeight),e.push(this.OverallWidth),e.push(this.PredefinedType),e.push(this.PartitioningType),e.push(this.UserDefinedPartitioningType),e}},Kwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m,g,y){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.LiningDepth=a,this.LiningThickness=o,this.TransomThickness=l,this.MullionThickness=h,this.FirstTransomOffset=u,this.SecondTransomOffset=c,this.FirstMullionOffset=p,this.SecondMullionOffset=d,this.ShapeAspectStyle=f,this.LiningOffset=m,this.LiningToPanelOffsetX=g,this.LiningToPanelOffsetY=y}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++],v=i[r++],T=i[r++];return new Kwe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y,v,T)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.LiningDepth),e.push(this.LiningThickness),e.push(this.TransomThickness),e.push(this.MullionThickness),e.push(this.FirstTransomOffset),e.push(this.SecondTransomOffset),e.push(this.FirstMullionOffset),e.push(this.SecondMullionOffset),e.push(this.ShapeAspectStyle),e.push(this.LiningOffset),e.push(this.LiningToPanelOffsetX),e.push(this.LiningToPanelOffsetY),e}},Zwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.OperationType=a,this.PanelPosition=o,this.FrameDepth=l,this.FrameThickness=h,this.ShapeAspectStyle=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new Zwe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.OperationType),e.push(this.PanelPosition),e.push(this.FrameDepth),e.push(this.FrameThickness),e.push(this.ShapeAspectStyle),e}},Jwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=h,this.OverallHeight=u,this.OverallWidth=c,this.PredefinedType=p,this.PartitioningType=d,this.UserDefinedPartitioningType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new Jwe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e.push(this.Tag),e.push(this.OverallHeight),e.push(this.OverallWidth),e.push(this.PredefinedType),e.push(this.PartitioningType),e.push(this.UserDefinedPartitioningType),e}},Qwe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ConstructionType=u,this.OperationType=c,this.ParameterTakesPrecedence=p,this.Sizeable=d}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++];return new Qwe(e,t,n,s,a,o,l,h,u,c,p,d,f,m)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ConstructionType),e.push(this.OperationType),e.push(this.ParameterTakesPrecedence),e.push(this.Sizeable),e}},eRe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=h,this.ElementType=u,this.PredefinedType=c,this.PartitioningType=p,this.ParameterTakesPrecedence=d,this.UserDefinedPartitioningType=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new eRe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e.push(this.Tag),e.push(this.ElementType),e.push(this.PredefinedType),e.push(this.PartitioningType),e.push(this.ParameterTakesPrecedence),e.push(this.UserDefinedPartitioningType),e}},tRe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.WorkingTimes=l,this.ExceptionTimes=h,this.PredefinedType=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new tRe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.WorkingTimes),e.push(this.ExceptionTimes),e.push(this.PredefinedType),e}},rRe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.CreationDate=l,this.Creators=h,this.Purpose=u,this.Duration=c,this.TotalFloat=p,this.StartTime=d,this.FinishTime=f}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++];return new rRe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.CreationDate),e.push(this.Creators),e.push(this.Purpose),e.push(this.Duration),e.push(this.TotalFloat),e.push(this.StartTime),e.push(this.FinishTime),e}},iRe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.CreationDate=l,this.Creators=h,this.Purpose=u,this.Duration=c,this.TotalFloat=p,this.StartTime=d,this.FinishTime=f,this.PredefinedType=m}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++];return new iRe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.CreationDate),e.push(this.Creators),e.push(this.Purpose),e.push(this.Duration),e.push(this.TotalFloat),e.push(this.StartTime),e.push(this.FinishTime),e.push(this.PredefinedType),e}},nRe=class{constructor(e,t,i,r,n,s,a,o,l,h,u,c,p,d,f,m){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.CreationDate=l,this.Creators=h,this.Purpose=u,this.Duration=c,this.TotalFloat=p,this.StartTime=d,this.FinishTime=f,this.PredefinedType=m}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++],d=i[r++],f=i[r++],m=i[r++],g=i[r++],y=i[r++];return new nRe(e,t,n,s,a,o,l,h,u,c,p,d,f,m,g,y)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.Identification),e.push(this.CreationDate),e.push(this.Creators),e.push(this.Purpose),e.push(this.Duration),e.push(this.TotalFloat),e.push(this.StartTime),e.push(this.FinishTime),e.push(this.PredefinedType),e}},sRe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.Name=i,this.DataOrigin=r,this.UserDefinedDataOrigin=n,this.RecurrencePattern=s,this.Start=a,this.Finish=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new sRe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.Name),e.push(this.DataOrigin),e.push(this.UserDefinedDataOrigin),e.push(this.RecurrencePattern),e.push(this.Start),e.push(this.Finish),e}},aRe=class{constructor(e,t,i,r,n,s,a,o,l,h,u){this.expressID=e,this.type=t,this.ProfileType=i,this.ProfileName=r,this.Position=n,this.Depth=s,this.FlangeWidth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=h,this.EdgeRadius=u}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++],u=i[r++],c=i[r++],p=i[r++];return new aRe(e,t,n,s,a,o,l,h,u,c,p)}ToTape(){let e=[];return e.push(this.ProfileType),e.push(this.ProfileName),e.push(this.Position),e.push(this.Depth),e.push(this.FlangeWidth),e.push(this.WebThickness),e.push(this.FlangeThickness),e.push(this.FilletRadius),e.push(this.EdgeRadius),e}},oRe=class{constructor(e,t,i,r,n,s,a,o){this.expressID=e,this.type=t,this.GlobalId=i,this.OwnerHistory=r,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o}static FromTape(e,t,i){let r=0,n=i[r++],s=i[r++],a=i[r++],o=i[r++],l=i[r++],h=i[r++];return new oRe(e,t,n,s,a,o,l,h)}ToTape(){let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e.push(this.Name),e.push(this.Description),e.push(this.ObjectType),e.push(this.LongName),e}},kde=rEt(),n8=class{constructor(){this.wasmModule=void 0,this.fs=void 0}Init(){return eEt(this,null,(function*(){kde?(this.wasmModule=yield kde({noInitialRun:!0}),this.fs=this.wasmModule.FS):console.error("Could not find wasm module at './web-ifc' from web-ifc-api.ts")}))}OpenModel(e,t){this.wasmModule.FS_createDataFile("/","filename",e,!0,!0,!0);let i=Bde({COORDINATE_TO_ORIGIN:!1,USE_FAST_BOOLS:!1,CIRCLE_SEGMENTS_LOW:5,CIRCLE_SEGMENTS_MEDIUM:8,CIRCLE_SEGMENTS_HIGH:12},t),r=this.wasmModule.OpenModel(i);return this.wasmModule.FS_unlink("/filename"),r}CreateModel(e){let t=Bde({COORDINATE_TO_ORIGIN:!1,USE_FAST_BOOLS:!1,CIRCLE_SEGMENTS_LOW:5,CIRCLE_SEGMENTS_MEDIUM:8,CIRCLE_SEGMENTS_HIGH:12},e);return this.wasmModule.CreateModel(t)}ExportFileAsIFC(e){this.wasmModule.ExportFileAsIFC(e);let t=this.fs.readFile("/export.ifc");return this.wasmModule.FS_unlink("/export.ifc"),t}GetGeometry(e,t){return this.wasmModule.GetGeometry(e,t)}GetLine(e,t,i=!1){let r=this.GetRawLineData(e,t),n=O[r.type](r);return i&&this.FlattenLine(e,n),n}WriteLine(e,t){Object.keys(t).forEach((i=>{let r=t[i];if(r&&void 0!==r.expressID)this.WriteLine(e,r),t[i]={type:5,value:r.expressID};else if(Array.isArray(r)&&r.length>0)for(let n=0;n{let r=t[i];if(r&&5===r.type)t[i]=this.GetLine(e,r.value,!0);else if(Array.isArray(r)&&r.length>0&&5===r[0].type)for(let n=0;nzo(e,t),cRe=(e,t)=>new Wt(new Float32Array(e),t),nPt=(e,t)=>new Wt(new Uint32Array(e),t),s8="default",zl={aggregates:{name:zk,relating:"RelatingObject",related:"RelatedObjects",key:"children"},spatial:{name:Wk,relating:"RelatingStructure",related:"RelatedElements",key:"children"},psets:{name:qk,relating:"RelatingPropertyDefinition",related:"RelatedObjects",key:"hasPsets"},materials:{name:jk,relating:"RelatingMaterial",related:"RelatedObjects",key:"hasMaterial"},type:{name:Yk,relating:"RelatingType",related:"RelatedObjects",key:"hasType"}},a8=class{constructor(e,t){this.state=e,this.BVH=t,this.loadedModels=0,this.currentWebIfcID=-1,this.currentModelID=-1}parse(e){return ht(this,null,(function*(){return void 0===this.state.api.wasmModule&&(yield this.state.api.Init()),this.newIfcModel(e),this.loadedModels++,this.loadAllGeometry()}))}newIfcModel(e){let t=new Uint8Array(e);this.currentWebIfcID=this.state.api.OpenModel(t,this.state.webIfcSettings),this.currentModelID=this.state.useJSON?this.loadedModels:this.currentWebIfcID,this.state.models[this.currentModelID]={modelID:this.currentModelID,mesh:{},items:{},types:{},jsonData:{}}}loadAllGeometry(){return this.saveAllPlacedGeometriesByMaterial(),this.generateAllGeometriesByMaterial()}generateAllGeometriesByMaterial(){let{geometry:e,materials:t}=this.getGeometryAndMaterials();this.BVH.applyThreeMeshBVH(e);let i=new rt(e,t);return i.modelID=this.currentModelID,this.state.models[this.currentModelID].mesh=i,i}getGeometryAndMaterials(){let e=this.state.models[this.currentModelID].items,t=[],i=[];for(let r in e){i.push(e[r].material);let n=Object.values(e[r].geometries);t.push(GT(n))}return{geometry:GT(t,!0),materials:i}}saveAllPlacedGeometriesByMaterial(){let e=this.state.api.LoadAllGeometry(this.currentWebIfcID);for(let t=0;t0?GT(e,t):new lt}isConfigValid(e){return this.isValid(e.scene)&&this.isValid(e.modelID)&&this.isValid(e.ids)&&this.isValid(e.removePrevious)}isValid(e){return null!=e}getGeomAndMat(e){let t=[],i=[];for(let r in e){let n=Object.values(e[r].geometries);n.length&&(i.push(e[r].material),n.length>1?t.push(GT(n)):t.push(...n))}return{geomsByMaterial:t,materials:i}}updatePreviousSelection(e,t){let i=this.selected[this.matID(t)];if(!i)return this.newSelectionGroup(t);e.remove(i.mesh),t.removePrevious?i.ids=new Set(t.ids):t.ids.forEach((e=>i.ids.add(e)))}newSelectionGroup(e){this.selected[this.matID(e)]={ids:new Set(e.ids),mesh:{}}}isPreviousSelection(e){if(!this.selected[this.matID(e)])return!1;if(this.containsIds(e))return!0;let t=this.selected[this.matID(e)].ids;return JSON.stringify(e.ids)===JSON.stringify(t)}containsIds(e){let t=e.ids,i=Array.from(this.selected[this.matID(e)].ids);return t.every((r=0,e=>r=i.indexOf(e,r)+1));var r}addToPreviousSelection(e){let t=this.selected[this.matID(e)],i=this.filter(e),r=Object.values(i).map((e=>Object.values(e.geometries))).flat(),n=t.mesh.geometry;t.mesh.geometry=GT([n,...r]),e.ids.forEach((e=>t.ids.add(e)))}filter(e){let t=this.selected[this.matID(e)].ids,i=this.state.models[e.modelID].items,r={};for(let e in i)r[e]={material:i[e].material,geometries:this.filterGeometries(t,i[e].geometries)};return r}filterGeometries(e,t){let i=Array.from(e);return Object.keys(t).filter((e=>i.includes(parseInt(e,10)))).reduce(((e,i)=>Dn(Br({},e),{[i]:t[i]})),{})}isEasySelection(e){let t=this.matID(e);if(!e.removePrevious&&!this.isDefaultMat(e)&&this.selected[t])return!0}isDefaultMat(e){return this.matIDNoConfig(e.modelID)===this.matID(e)}matID(e){let t;return t=e.material&&e.material.uuid||s8,t.concat(" - ").concat(e.modelID.toString())}matIDNoConfig(e,t){let i=s8;return t&&(i=t.uuid),i.concat(" - ").concat(e.toString())}},f8={103090709:"IFCPROJECT",4097777520:"IFCSITE",4031249490:"IFCBUILDING",3124254112:"IFCBUILDINGSTOREY",3856911033:"IFCSPACE",1674181508:"IFCANNOTATION",25142252:"IFCCONTROLLER",32344328:"IFCBOILER",76236018:"IFCLAMP",90941305:"IFCPUMP",177149247:"IFCAIRTERMINALBOX",182646315:"IFCFLOWINSTRUMENT",263784265:"IFCFURNISHINGELEMENT",264262732:"IFCELECTRICGENERATOR",277319702:"IFCAUDIOVISUALAPPLIANCE",310824031:"IFCPIPEFITTING",331165859:"IFCSTAIR",342316401:"IFCDUCTFITTING",377706215:"IFCMECHANICALFASTENER",395920057:"IFCDOOR",402227799:"IFCELECTRICMOTOR",413509423:"IFCSYSTEMFURNITUREELEMENT",484807127:"IFCEVAPORATOR",486154966:"IFCWINDOWSTANDARDCASE",629592764:"IFCLIGHTFIXTURE",630975310:"IFCUNITARYCONTROLELEMENT",635142910:"IFCCABLECARRIERFITTING",639361253:"IFCCOIL",647756555:"IFCFASTENER",707683696:"IFCFLOWSTORAGEDEVICE",738039164:"IFCPROTECTIVEDEVICE",753842376:"IFCBEAM",812556717:"IFCTANK",819412036:"IFCFILTER",843113511:"IFCCOLUMN",862014818:"IFCELECTRICDISTRIBUTIONBOARD",900683007:"IFCFOOTING",905975707:"IFCCOLUMNSTANDARDCASE",926996030:"IFCVOIDINGFEATURE",979691226:"IFCREINFORCINGBAR",987401354:"IFCFLOWSEGMENT",1003880860:"IFCELECTRICTIMECONTROL",1051757585:"IFCCABLEFITTING",1052013943:"IFCDISTRIBUTIONCHAMBERELEMENT",1062813311:"IFCDISTRIBUTIONCONTROLELEMENT",1073191201:"IFCMEMBER",1095909175:"IFCBUILDINGELEMENTPROXY",1156407060:"IFCPLATESTANDARDCASE",1162798199:"IFCSWITCHINGDEVICE",1329646415:"IFCSHADINGDEVICE",1335981549:"IFCDISCRETEACCESSORY",1360408905:"IFCDUCTSILENCER",1404847402:"IFCSTACKTERMINAL",1426591983:"IFCFIRESUPPRESSIONTERMINAL",1437502449:"IFCMEDICALDEVICE",1509553395:"IFCFURNITURE",1529196076:"IFCSLAB",1620046519:"IFCTRANSPORTELEMENT",1634111441:"IFCAIRTERMINAL",1658829314:"IFCENERGYCONVERSIONDEVICE",1677625105:"IFCCIVILELEMENT",1687234759:"IFCPILE",1904799276:"IFCELECTRICAPPLIANCE",1911478936:"IFCMEMBERSTANDARDCASE",1945004755:"IFCDISTRIBUTIONELEMENT",1973544240:"IFCCOVERING",1999602285:"IFCSPACEHEATER",2016517767:"IFCROOF",2056796094:"IFCAIRTOAIRHEATRECOVERY",2058353004:"IFCFLOWCONTROLLER",2068733104:"IFCHUMIDIFIER",2176052936:"IFCJUNCTIONBOX",2188021234:"IFCFLOWMETER",2223149337:"IFCFLOWTERMINAL",2262370178:"IFCRAILING",2272882330:"IFCCONDENSER",2295281155:"IFCPROTECTIVEDEVICETRIPPINGUNIT",2320036040:"IFCREINFORCINGMESH",2347447852:"IFCTENDONANCHOR",2391383451:"IFCVIBRATIONISOLATOR",2391406946:"IFCWALL",2474470126:"IFCMOTORCONNECTION",2769231204:"IFCVIRTUALELEMENT",2814081492:"IFCENGINE",2906023776:"IFCBEAMSTANDARDCASE",2938176219:"IFCBURNER",2979338954:"IFCBUILDINGELEMENTPART",3024970846:"IFCRAMP",3026737570:"IFCTUBEBUNDLE",3027962421:"IFCSLABSTANDARDCASE",3040386961:"IFCDISTRIBUTIONFLOWELEMENT",3053780830:"IFCSANITARYTERMINAL",3079942009:"IFCOPENINGSTANDARDCASE",3087945054:"IFCALARM",3101698114:"IFCSURFACEFEATURE",3127900445:"IFCSLABELEMENTEDCASE",3132237377:"IFCFLOWMOVINGDEVICE",3171933400:"IFCPLATE",3221913625:"IFCCOMMUNICATIONSAPPLIANCE",3242481149:"IFCDOORSTANDARDCASE",3283111854:"IFCRAMPFLIGHT",3296154744:"IFCCHIMNEY",3304561284:"IFCWINDOW",3310460725:"IFCELECTRICFLOWSTORAGEDEVICE",3319311131:"IFCHEATEXCHANGER",3415622556:"IFCFAN",3420628829:"IFCSOLARDEVICE",3493046030:"IFCGEOGRAPHICELEMENT",3495092785:"IFCCURTAINWALL",3508470533:"IFCFLOWTREATMENTDEVICE",3512223829:"IFCWALLSTANDARDCASE",3518393246:"IFCDUCTSEGMENT",3571504051:"IFCCOMPRESSOR",3588315303:"IFCOPENINGELEMENT",3612865200:"IFCPIPESEGMENT",3640358203:"IFCCOOLINGTOWER",3651124850:"IFCPROJECTIONELEMENT",3694346114:"IFCOUTLET",3747195512:"IFCEVAPORATIVECOOLER",3758799889:"IFCCABLECARRIERSEGMENT",3824725483:"IFCTENDON",3825984169:"IFCTRANSFORMER",3902619387:"IFCCHILLER",4074379575:"IFCDAMPER",4086658281:"IFCSENSOR",4123344466:"IFCELEMENTASSEMBLY",4136498852:"IFCCOOLEDBEAM",4156078855:"IFCWALLELEMENTEDCASE",4175244083:"IFCINTERCEPTOR",4207607924:"IFCVALVE",4217484030:"IFCCABLESEGMENT",4237592921:"IFCWASTETERMINAL",4252922144:"IFCSTAIRFLIGHT",4278956645:"IFCFLOWFITTING",4288193352:"IFCACTUATOR",4292641817:"IFCUNITARYEQUIPMENT",3009204131:"IFCGRID"},sPt={3821786052:"IFCACTIONREQUEST",2296667514:"IFCACTOR",3630933823:"IFCACTORROLE",4288193352:"IFCACTUATOR",2874132201:"IFCACTUATORTYPE",618182010:"IFCADDRESS",1635779807:"IFCADVANCEDBREP",2603310189:"IFCADVANCEDBREPWITHVOIDS",3406155212:"IFCADVANCEDFACE",1634111441:"IFCAIRTERMINAL",177149247:"IFCAIRTERMINALBOX",1411407467:"IFCAIRTERMINALBOXTYPE",3352864051:"IFCAIRTERMINALTYPE",2056796094:"IFCAIRTOAIRHEATRECOVERY",1871374353:"IFCAIRTOAIRHEATRECOVERYTYPE",3087945054:"IFCALARM",3001207471:"IFCALARMTYPE",325726236:"IFCALIGNMENT",749761778:"IFCALIGNMENT2DHORIZONTAL",3199563722:"IFCALIGNMENT2DHORIZONTALSEGMENT",2483840362:"IFCALIGNMENT2DSEGMENT",3379348081:"IFCALIGNMENT2DVERSEGCIRCULARARC",3239324667:"IFCALIGNMENT2DVERSEGLINE",4263986512:"IFCALIGNMENT2DVERSEGPARABOLICARC",53199957:"IFCALIGNMENT2DVERTICAL",2029264950:"IFCALIGNMENT2DVERTICALSEGMENT",3512275521:"IFCALIGNMENTCURVE",1674181508:"IFCANNOTATION",669184980:"IFCANNOTATIONFILLAREA",639542469:"IFCAPPLICATION",411424972:"IFCAPPLIEDVALUE",130549933:"IFCAPPROVAL",3869604511:"IFCAPPROVALRELATIONSHIP",3798115385:"IFCARBITRARYCLOSEDPROFILEDEF",1310608509:"IFCARBITRARYOPENPROFILEDEF",2705031697:"IFCARBITRARYPROFILEDEFWITHVOIDS",3460190687:"IFCASSET",3207858831:"IFCASYMMETRICISHAPEPROFILEDEF",277319702:"IFCAUDIOVISUALAPPLIANCE",1532957894:"IFCAUDIOVISUALAPPLIANCETYPE",4261334040:"IFCAXIS1PLACEMENT",3125803723:"IFCAXIS2PLACEMENT2D",2740243338:"IFCAXIS2PLACEMENT3D",1967976161:"IFCBSPLINECURVE",2461110595:"IFCBSPLINECURVEWITHKNOTS",2887950389:"IFCBSPLINESURFACE",167062518:"IFCBSPLINESURFACEWITHKNOTS",753842376:"IFCBEAM",2906023776:"IFCBEAMSTANDARDCASE",819618141:"IFCBEAMTYPE",4196446775:"IFCBEARING",3649138523:"IFCBEARINGTYPE",616511568:"IFCBLOBTEXTURE",1334484129:"IFCBLOCK",32344328:"IFCBOILER",231477066:"IFCBOILERTYPE",3649129432:"IFCBOOLEANCLIPPINGRESULT",2736907675:"IFCBOOLEANRESULT",4037036970:"IFCBOUNDARYCONDITION",1136057603:"IFCBOUNDARYCURVE",1560379544:"IFCBOUNDARYEDGECONDITION",3367102660:"IFCBOUNDARYFACECONDITION",1387855156:"IFCBOUNDARYNODECONDITION",2069777674:"IFCBOUNDARYNODECONDITIONWARPING",1260505505:"IFCBOUNDEDCURVE",4182860854:"IFCBOUNDEDSURFACE",2581212453:"IFCBOUNDINGBOX",2713105998:"IFCBOXEDHALFSPACE",644574406:"IFCBRIDGE",963979645:"IFCBRIDGEPART",4031249490:"IFCBUILDING",3299480353:"IFCBUILDINGELEMENT",2979338954:"IFCBUILDINGELEMENTPART",39481116:"IFCBUILDINGELEMENTPARTTYPE",1095909175:"IFCBUILDINGELEMENTPROXY",1909888760:"IFCBUILDINGELEMENTPROXYTYPE",1950629157:"IFCBUILDINGELEMENTTYPE",3124254112:"IFCBUILDINGSTOREY",1177604601:"IFCBUILDINGSYSTEM",2938176219:"IFCBURNER",2188180465:"IFCBURNERTYPE",2898889636:"IFCCSHAPEPROFILEDEF",635142910:"IFCCABLECARRIERFITTING",395041908:"IFCCABLECARRIERFITTINGTYPE",3758799889:"IFCCABLECARRIERSEGMENT",3293546465:"IFCCABLECARRIERSEGMENTTYPE",1051757585:"IFCCABLEFITTING",2674252688:"IFCCABLEFITTINGTYPE",4217484030:"IFCCABLESEGMENT",1285652485:"IFCCABLESEGMENTTYPE",3999819293:"IFCCAISSONFOUNDATION",3203706013:"IFCCAISSONFOUNDATIONTYPE",1123145078:"IFCCARTESIANPOINT",574549367:"IFCCARTESIANPOINTLIST",1675464909:"IFCCARTESIANPOINTLIST2D",2059837836:"IFCCARTESIANPOINTLIST3D",59481748:"IFCCARTESIANTRANSFORMATIONOPERATOR",3749851601:"IFCCARTESIANTRANSFORMATIONOPERATOR2D",3486308946:"IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM",3331915920:"IFCCARTESIANTRANSFORMATIONOPERATOR3D",1416205885:"IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM",3150382593:"IFCCENTERLINEPROFILEDEF",3902619387:"IFCCHILLER",2951183804:"IFCCHILLERTYPE",3296154744:"IFCCHIMNEY",2197970202:"IFCCHIMNEYTYPE",2611217952:"IFCCIRCLE",2937912522:"IFCCIRCLEHOLLOWPROFILEDEF",1383045692:"IFCCIRCLEPROFILEDEF",1062206242:"IFCCIRCULARARCSEGMENT2D",1677625105:"IFCCIVILELEMENT",3893394355:"IFCCIVILELEMENTTYPE",747523909:"IFCCLASSIFICATION",647927063:"IFCCLASSIFICATIONREFERENCE",2205249479:"IFCCLOSEDSHELL",639361253:"IFCCOIL",2301859152:"IFCCOILTYPE",776857604:"IFCCOLOURRGB",3285139300:"IFCCOLOURRGBLIST",3264961684:"IFCCOLOURSPECIFICATION",843113511:"IFCCOLUMN",905975707:"IFCCOLUMNSTANDARDCASE",300633059:"IFCCOLUMNTYPE",3221913625:"IFCCOMMUNICATIONSAPPLIANCE",400855858:"IFCCOMMUNICATIONSAPPLIANCETYPE",2542286263:"IFCCOMPLEXPROPERTY",3875453745:"IFCCOMPLEXPROPERTYTEMPLATE",3732776249:"IFCCOMPOSITECURVE",15328376:"IFCCOMPOSITECURVEONSURFACE",2485617015:"IFCCOMPOSITECURVESEGMENT",1485152156:"IFCCOMPOSITEPROFILEDEF",3571504051:"IFCCOMPRESSOR",3850581409:"IFCCOMPRESSORTYPE",2272882330:"IFCCONDENSER",2816379211:"IFCCONDENSERTYPE",2510884976:"IFCCONIC",370225590:"IFCCONNECTEDFACESET",1981873012:"IFCCONNECTIONCURVEGEOMETRY",2859738748:"IFCCONNECTIONGEOMETRY",45288368:"IFCCONNECTIONPOINTECCENTRICITY",2614616156:"IFCCONNECTIONPOINTGEOMETRY",2732653382:"IFCCONNECTIONSURFACEGEOMETRY",775493141:"IFCCONNECTIONVOLUMEGEOMETRY",1959218052:"IFCCONSTRAINT",3898045240:"IFCCONSTRUCTIONEQUIPMENTRESOURCE",2185764099:"IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE",1060000209:"IFCCONSTRUCTIONMATERIALRESOURCE",4105962743:"IFCCONSTRUCTIONMATERIALRESOURCETYPE",488727124:"IFCCONSTRUCTIONPRODUCTRESOURCE",1525564444:"IFCCONSTRUCTIONPRODUCTRESOURCETYPE",2559216714:"IFCCONSTRUCTIONRESOURCE",2574617495:"IFCCONSTRUCTIONRESOURCETYPE",3419103109:"IFCCONTEXT",3050246964:"IFCCONTEXTDEPENDENTUNIT",3293443760:"IFCCONTROL",25142252:"IFCCONTROLLER",578613899:"IFCCONTROLLERTYPE",2889183280:"IFCCONVERSIONBASEDUNIT",2713554722:"IFCCONVERSIONBASEDUNITWITHOFFSET",4136498852:"IFCCOOLEDBEAM",335055490:"IFCCOOLEDBEAMTYPE",3640358203:"IFCCOOLINGTOWER",2954562838:"IFCCOOLINGTOWERTYPE",1785450214:"IFCCOORDINATEOPERATION",1466758467:"IFCCOORDINATEREFERENCESYSTEM",3895139033:"IFCCOSTITEM",1419761937:"IFCCOSTSCHEDULE",602808272:"IFCCOSTVALUE",1973544240:"IFCCOVERING",1916426348:"IFCCOVERINGTYPE",3295246426:"IFCCREWRESOURCE",1815067380:"IFCCREWRESOURCETYPE",2506170314:"IFCCSGPRIMITIVE3D",2147822146:"IFCCSGSOLID",539742890:"IFCCURRENCYRELATIONSHIP",3495092785:"IFCCURTAINWALL",1457835157:"IFCCURTAINWALLTYPE",2601014836:"IFCCURVE",2827736869:"IFCCURVEBOUNDEDPLANE",2629017746:"IFCCURVEBOUNDEDSURFACE",1186437898:"IFCCURVESEGMENT2D",3800577675:"IFCCURVESTYLE",1105321065:"IFCCURVESTYLEFONT",2367409068:"IFCCURVESTYLEFONTANDSCALING",3510044353:"IFCCURVESTYLEFONTPATTERN",1213902940:"IFCCYLINDRICALSURFACE",4074379575:"IFCDAMPER",3961806047:"IFCDAMPERTYPE",3426335179:"IFCDEEPFOUNDATION",1306400036:"IFCDEEPFOUNDATIONTYPE",3632507154:"IFCDERIVEDPROFILEDEF",1765591967:"IFCDERIVEDUNIT",1045800335:"IFCDERIVEDUNITELEMENT",2949456006:"IFCDIMENSIONALEXPONENTS",32440307:"IFCDIRECTION",1335981549:"IFCDISCRETEACCESSORY",2635815018:"IFCDISCRETEACCESSORYTYPE",1945343521:"IFCDISTANCEEXPRESSION",1052013943:"IFCDISTRIBUTIONCHAMBERELEMENT",1599208980:"IFCDISTRIBUTIONCHAMBERELEMENTTYPE",562808652:"IFCDISTRIBUTIONCIRCUIT",1062813311:"IFCDISTRIBUTIONCONTROLELEMENT",2063403501:"IFCDISTRIBUTIONCONTROLELEMENTTYPE",1945004755:"IFCDISTRIBUTIONELEMENT",3256556792:"IFCDISTRIBUTIONELEMENTTYPE",3040386961:"IFCDISTRIBUTIONFLOWELEMENT",3849074793:"IFCDISTRIBUTIONFLOWELEMENTTYPE",3041715199:"IFCDISTRIBUTIONPORT",3205830791:"IFCDISTRIBUTIONSYSTEM",1154170062:"IFCDOCUMENTINFORMATION",770865208:"IFCDOCUMENTINFORMATIONRELATIONSHIP",3732053477:"IFCDOCUMENTREFERENCE",395920057:"IFCDOOR",2963535650:"IFCDOORLININGPROPERTIES",1714330368:"IFCDOORPANELPROPERTIES",3242481149:"IFCDOORSTANDARDCASE",526551008:"IFCDOORSTYLE",2323601079:"IFCDOORTYPE",445594917:"IFCDRAUGHTINGPREDEFINEDCOLOUR",4006246654:"IFCDRAUGHTINGPREDEFINEDCURVEFONT",342316401:"IFCDUCTFITTING",869906466:"IFCDUCTFITTINGTYPE",3518393246:"IFCDUCTSEGMENT",3760055223:"IFCDUCTSEGMENTTYPE",1360408905:"IFCDUCTSILENCER",2030761528:"IFCDUCTSILENCERTYPE",3900360178:"IFCEDGE",476780140:"IFCEDGECURVE",1472233963:"IFCEDGELOOP",1904799276:"IFCELECTRICAPPLIANCE",663422040:"IFCELECTRICAPPLIANCETYPE",862014818:"IFCELECTRICDISTRIBUTIONBOARD",2417008758:"IFCELECTRICDISTRIBUTIONBOARDTYPE",3310460725:"IFCELECTRICFLOWSTORAGEDEVICE",3277789161:"IFCELECTRICFLOWSTORAGEDEVICETYPE",264262732:"IFCELECTRICGENERATOR",1534661035:"IFCELECTRICGENERATORTYPE",402227799:"IFCELECTRICMOTOR",1217240411:"IFCELECTRICMOTORTYPE",1003880860:"IFCELECTRICTIMECONTROL",712377611:"IFCELECTRICTIMECONTROLTYPE",1758889154:"IFCELEMENT",4123344466:"IFCELEMENTASSEMBLY",2397081782:"IFCELEMENTASSEMBLYTYPE",1623761950:"IFCELEMENTCOMPONENT",2590856083:"IFCELEMENTCOMPONENTTYPE",1883228015:"IFCELEMENTQUANTITY",339256511:"IFCELEMENTTYPE",2777663545:"IFCELEMENTARYSURFACE",1704287377:"IFCELLIPSE",2835456948:"IFCELLIPSEPROFILEDEF",1658829314:"IFCENERGYCONVERSIONDEVICE",2107101300:"IFCENERGYCONVERSIONDEVICETYPE",2814081492:"IFCENGINE",132023988:"IFCENGINETYPE",3747195512:"IFCEVAPORATIVECOOLER",3174744832:"IFCEVAPORATIVECOOLERTYPE",484807127:"IFCEVAPORATOR",3390157468:"IFCEVAPORATORTYPE",4148101412:"IFCEVENT",211053100:"IFCEVENTTIME",4024345920:"IFCEVENTTYPE",297599258:"IFCEXTENDEDPROPERTIES",4294318154:"IFCEXTERNALINFORMATION",3200245327:"IFCEXTERNALREFERENCE",1437805879:"IFCEXTERNALREFERENCERELATIONSHIP",1209101575:"IFCEXTERNALSPATIALELEMENT",2853485674:"IFCEXTERNALSPATIALSTRUCTUREELEMENT",2242383968:"IFCEXTERNALLYDEFINEDHATCHSTYLE",1040185647:"IFCEXTERNALLYDEFINEDSURFACESTYLE",3548104201:"IFCEXTERNALLYDEFINEDTEXTFONT",477187591:"IFCEXTRUDEDAREASOLID",2804161546:"IFCEXTRUDEDAREASOLIDTAPERED",2556980723:"IFCFACE",2047409740:"IFCFACEBASEDSURFACEMODEL",1809719519:"IFCFACEBOUND",803316827:"IFCFACEOUTERBOUND",3008276851:"IFCFACESURFACE",807026263:"IFCFACETEDBREP",3737207727:"IFCFACETEDBREPWITHVOIDS",24185140:"IFCFACILITY",1310830890:"IFCFACILITYPART",4219587988:"IFCFAILURECONNECTIONCONDITION",3415622556:"IFCFAN",346874300:"IFCFANTYPE",647756555:"IFCFASTENER",2489546625:"IFCFASTENERTYPE",2827207264:"IFCFEATUREELEMENT",2143335405:"IFCFEATUREELEMENTADDITION",1287392070:"IFCFEATUREELEMENTSUBTRACTION",738692330:"IFCFILLAREASTYLE",374418227:"IFCFILLAREASTYLEHATCHING",315944413:"IFCFILLAREASTYLETILES",819412036:"IFCFILTER",1810631287:"IFCFILTERTYPE",1426591983:"IFCFIRESUPPRESSIONTERMINAL",4222183408:"IFCFIRESUPPRESSIONTERMINALTYPE",2652556860:"IFCFIXEDREFERENCESWEPTAREASOLID",2058353004:"IFCFLOWCONTROLLER",3907093117:"IFCFLOWCONTROLLERTYPE",4278956645:"IFCFLOWFITTING",3198132628:"IFCFLOWFITTINGTYPE",182646315:"IFCFLOWINSTRUMENT",4037862832:"IFCFLOWINSTRUMENTTYPE",2188021234:"IFCFLOWMETER",3815607619:"IFCFLOWMETERTYPE",3132237377:"IFCFLOWMOVINGDEVICE",1482959167:"IFCFLOWMOVINGDEVICETYPE",987401354:"IFCFLOWSEGMENT",1834744321:"IFCFLOWSEGMENTTYPE",707683696:"IFCFLOWSTORAGEDEVICE",1339347760:"IFCFLOWSTORAGEDEVICETYPE",2223149337:"IFCFLOWTERMINAL",2297155007:"IFCFLOWTERMINALTYPE",3508470533:"IFCFLOWTREATMENTDEVICE",3009222698:"IFCFLOWTREATMENTDEVICETYPE",900683007:"IFCFOOTING",1893162501:"IFCFOOTINGTYPE",263784265:"IFCFURNISHINGELEMENT",4238390223:"IFCFURNISHINGELEMENTTYPE",1509553395:"IFCFURNITURE",1268542332:"IFCFURNITURETYPE",3493046030:"IFCGEOGRAPHICELEMENT",4095422895:"IFCGEOGRAPHICELEMENTTYPE",987898635:"IFCGEOMETRICCURVESET",3448662350:"IFCGEOMETRICREPRESENTATIONCONTEXT",2453401579:"IFCGEOMETRICREPRESENTATIONITEM",4142052618:"IFCGEOMETRICREPRESENTATIONSUBCONTEXT",3590301190:"IFCGEOMETRICSET",3009204131:"IFCGRID",852622518:"IFCGRIDAXIS",178086475:"IFCGRIDPLACEMENT",2706460486:"IFCGROUP",812098782:"IFCHALFSPACESOLID",3319311131:"IFCHEATEXCHANGER",1251058090:"IFCHEATEXCHANGERTYPE",2068733104:"IFCHUMIDIFIER",1806887404:"IFCHUMIDIFIERTYPE",1484403080:"IFCISHAPEPROFILEDEF",3905492369:"IFCIMAGETEXTURE",3570813810:"IFCINDEXEDCOLOURMAP",2571569899:"IFCINDEXEDPOLYCURVE",178912537:"IFCINDEXEDPOLYGONALFACE",2294589976:"IFCINDEXEDPOLYGONALFACEWITHVOIDS",1437953363:"IFCINDEXEDTEXTUREMAP",2133299955:"IFCINDEXEDTRIANGLETEXTUREMAP",4175244083:"IFCINTERCEPTOR",3946677679:"IFCINTERCEPTORTYPE",3113134337:"IFCINTERSECTIONCURVE",2391368822:"IFCINVENTORY",3741457305:"IFCIRREGULARTIMESERIES",3020489413:"IFCIRREGULARTIMESERIESVALUE",2176052936:"IFCJUNCTIONBOX",4288270099:"IFCJUNCTIONBOXTYPE",572779678:"IFCLSHAPEPROFILEDEF",3827777499:"IFCLABORRESOURCE",428585644:"IFCLABORRESOURCETYPE",1585845231:"IFCLAGTIME",76236018:"IFCLAMP",1051575348:"IFCLAMPTYPE",2655187982:"IFCLIBRARYINFORMATION",3452421091:"IFCLIBRARYREFERENCE",4162380809:"IFCLIGHTDISTRIBUTIONDATA",629592764:"IFCLIGHTFIXTURE",1161773419:"IFCLIGHTFIXTURETYPE",1566485204:"IFCLIGHTINTENSITYDISTRIBUTION",1402838566:"IFCLIGHTSOURCE",125510826:"IFCLIGHTSOURCEAMBIENT",2604431987:"IFCLIGHTSOURCEDIRECTIONAL",4266656042:"IFCLIGHTSOURCEGONIOMETRIC",1520743889:"IFCLIGHTSOURCEPOSITIONAL",3422422726:"IFCLIGHTSOURCESPOT",1281925730:"IFCLINE",3092502836:"IFCLINESEGMENT2D",388784114:"IFCLINEARPLACEMENT",1154579445:"IFCLINEARPOSITIONINGELEMENT",2624227202:"IFCLOCALPLACEMENT",1008929658:"IFCLOOP",1425443689:"IFCMANIFOLDSOLIDBREP",3057273783:"IFCMAPCONVERSION",2347385850:"IFCMAPPEDITEM",1838606355:"IFCMATERIAL",1847130766:"IFCMATERIALCLASSIFICATIONRELATIONSHIP",3708119e3:"IFCMATERIALCONSTITUENT",2852063980:"IFCMATERIALCONSTITUENTSET",760658860:"IFCMATERIALDEFINITION",2022407955:"IFCMATERIALDEFINITIONREPRESENTATION",248100487:"IFCMATERIALLAYER",3303938423:"IFCMATERIALLAYERSET",1303795690:"IFCMATERIALLAYERSETUSAGE",1847252529:"IFCMATERIALLAYERWITHOFFSETS",2199411900:"IFCMATERIALLIST",2235152071:"IFCMATERIALPROFILE",164193824:"IFCMATERIALPROFILESET",3079605661:"IFCMATERIALPROFILESETUSAGE",3404854881:"IFCMATERIALPROFILESETUSAGETAPERING",552965576:"IFCMATERIALPROFILEWITHOFFSETS",3265635763:"IFCMATERIALPROPERTIES",853536259:"IFCMATERIALRELATIONSHIP",1507914824:"IFCMATERIALUSAGEDEFINITION",2597039031:"IFCMEASUREWITHUNIT",377706215:"IFCMECHANICALFASTENER",2108223431:"IFCMECHANICALFASTENERTYPE",1437502449:"IFCMEDICALDEVICE",1114901282:"IFCMEDICALDEVICETYPE",1073191201:"IFCMEMBER",1911478936:"IFCMEMBERSTANDARDCASE",3181161470:"IFCMEMBERTYPE",3368373690:"IFCMETRIC",2998442950:"IFCMIRROREDPROFILEDEF",2706619895:"IFCMONETARYUNIT",2474470126:"IFCMOTORCONNECTION",977012517:"IFCMOTORCONNECTIONTYPE",1918398963:"IFCNAMEDUNIT",3888040117:"IFCOBJECT",219451334:"IFCOBJECTDEFINITION",3701648758:"IFCOBJECTPLACEMENT",2251480897:"IFCOBJECTIVE",4143007308:"IFCOCCUPANT",590820931:"IFCOFFSETCURVE",3388369263:"IFCOFFSETCURVE2D",3505215534:"IFCOFFSETCURVE3D",2485787929:"IFCOFFSETCURVEBYDISTANCES",2665983363:"IFCOPENSHELL",3588315303:"IFCOPENINGELEMENT",3079942009:"IFCOPENINGSTANDARDCASE",4251960020:"IFCORGANIZATION",1411181986:"IFCORGANIZATIONRELATIONSHIP",643959842:"IFCORIENTATIONEXPRESSION",1029017970:"IFCORIENTEDEDGE",144952367:"IFCOUTERBOUNDARYCURVE",3694346114:"IFCOUTLET",2837617999:"IFCOUTLETTYPE",1207048766:"IFCOWNERHISTORY",2529465313:"IFCPARAMETERIZEDPROFILEDEF",2519244187:"IFCPATH",1682466193:"IFCPCURVE",2382730787:"IFCPERFORMANCEHISTORY",3566463478:"IFCPERMEABLECOVERINGPROPERTIES",3327091369:"IFCPERMIT",2077209135:"IFCPERSON",101040310:"IFCPERSONANDORGANIZATION",3021840470:"IFCPHYSICALCOMPLEXQUANTITY",2483315170:"IFCPHYSICALQUANTITY",2226359599:"IFCPHYSICALSIMPLEQUANTITY",1687234759:"IFCPILE",1158309216:"IFCPILETYPE",310824031:"IFCPIPEFITTING",804291784:"IFCPIPEFITTINGTYPE",3612865200:"IFCPIPESEGMENT",4231323485:"IFCPIPESEGMENTTYPE",597895409:"IFCPIXELTEXTURE",2004835150:"IFCPLACEMENT",603570806:"IFCPLANARBOX",1663979128:"IFCPLANAREXTENT",220341763:"IFCPLANE",3171933400:"IFCPLATE",1156407060:"IFCPLATESTANDARDCASE",4017108033:"IFCPLATETYPE",2067069095:"IFCPOINT",4022376103:"IFCPOINTONCURVE",1423911732:"IFCPOINTONSURFACE",2924175390:"IFCPOLYLOOP",2775532180:"IFCPOLYGONALBOUNDEDHALFSPACE",2839578677:"IFCPOLYGONALFACESET",3724593414:"IFCPOLYLINE",3740093272:"IFCPORT",1946335990:"IFCPOSITIONINGELEMENT",3355820592:"IFCPOSTALADDRESS",759155922:"IFCPREDEFINEDCOLOUR",2559016684:"IFCPREDEFINEDCURVEFONT",3727388367:"IFCPREDEFINEDITEM",3778827333:"IFCPREDEFINEDPROPERTIES",3967405729:"IFCPREDEFINEDPROPERTYSET",1775413392:"IFCPREDEFINEDTEXTFONT",677532197:"IFCPRESENTATIONITEM",2022622350:"IFCPRESENTATIONLAYERASSIGNMENT",1304840413:"IFCPRESENTATIONLAYERWITHSTYLE",3119450353:"IFCPRESENTATIONSTYLE",2417041796:"IFCPRESENTATIONSTYLEASSIGNMENT",2744685151:"IFCPROCEDURE",569719735:"IFCPROCEDURETYPE",2945172077:"IFCPROCESS",4208778838:"IFCPRODUCT",673634403:"IFCPRODUCTDEFINITIONSHAPE",2095639259:"IFCPRODUCTREPRESENTATION",3958567839:"IFCPROFILEDEF",2802850158:"IFCPROFILEPROPERTIES",103090709:"IFCPROJECT",653396225:"IFCPROJECTLIBRARY",2904328755:"IFCPROJECTORDER",3843373140:"IFCPROJECTEDCRS",3651124850:"IFCPROJECTIONELEMENT",2598011224:"IFCPROPERTY",986844984:"IFCPROPERTYABSTRACTION",871118103:"IFCPROPERTYBOUNDEDVALUE",1680319473:"IFCPROPERTYDEFINITION",148025276:"IFCPROPERTYDEPENDENCYRELATIONSHIP",4166981789:"IFCPROPERTYENUMERATEDVALUE",3710013099:"IFCPROPERTYENUMERATION",2752243245:"IFCPROPERTYLISTVALUE",941946838:"IFCPROPERTYREFERENCEVALUE",1451395588:"IFCPROPERTYSET",3357820518:"IFCPROPERTYSETDEFINITION",492091185:"IFCPROPERTYSETTEMPLATE",3650150729:"IFCPROPERTYSINGLEVALUE",110355661:"IFCPROPERTYTABLEVALUE",3521284610:"IFCPROPERTYTEMPLATE",1482703590:"IFCPROPERTYTEMPLATEDEFINITION",738039164:"IFCPROTECTIVEDEVICE",2295281155:"IFCPROTECTIVEDEVICETRIPPINGUNIT",655969474:"IFCPROTECTIVEDEVICETRIPPINGUNITTYPE",1842657554:"IFCPROTECTIVEDEVICETYPE",3219374653:"IFCPROXY",90941305:"IFCPUMP",2250791053:"IFCPUMPTYPE",2044713172:"IFCQUANTITYAREA",2093928680:"IFCQUANTITYCOUNT",931644368:"IFCQUANTITYLENGTH",2090586900:"IFCQUANTITYSET",3252649465:"IFCQUANTITYTIME",2405470396:"IFCQUANTITYVOLUME",825690147:"IFCQUANTITYWEIGHT",2262370178:"IFCRAILING",2893384427:"IFCRAILINGTYPE",3024970846:"IFCRAMP",3283111854:"IFCRAMPFLIGHT",2324767716:"IFCRAMPFLIGHTTYPE",1469900589:"IFCRAMPTYPE",1232101972:"IFCRATIONALBSPLINECURVEWITHKNOTS",683857671:"IFCRATIONALBSPLINESURFACEWITHKNOTS",2770003689:"IFCRECTANGLEHOLLOWPROFILEDEF",3615266464:"IFCRECTANGLEPROFILEDEF",2798486643:"IFCRECTANGULARPYRAMID",3454111270:"IFCRECTANGULARTRIMMEDSURFACE",3915482550:"IFCRECURRENCEPATTERN",2433181523:"IFCREFERENCE",4021432810:"IFCREFERENT",3413951693:"IFCREGULARTIMESERIES",1580146022:"IFCREINFORCEMENTBARPROPERTIES",3765753017:"IFCREINFORCEMENTDEFINITIONPROPERTIES",979691226:"IFCREINFORCINGBAR",2572171363:"IFCREINFORCINGBARTYPE",3027567501:"IFCREINFORCINGELEMENT",964333572:"IFCREINFORCINGELEMENTTYPE",2320036040:"IFCREINFORCINGMESH",2310774935:"IFCREINFORCINGMESHTYPE",160246688:"IFCRELAGGREGATES",3939117080:"IFCRELASSIGNS",1683148259:"IFCRELASSIGNSTOACTOR",2495723537:"IFCRELASSIGNSTOCONTROL",1307041759:"IFCRELASSIGNSTOGROUP",1027710054:"IFCRELASSIGNSTOGROUPBYFACTOR",4278684876:"IFCRELASSIGNSTOPROCESS",2857406711:"IFCRELASSIGNSTOPRODUCT",205026976:"IFCRELASSIGNSTORESOURCE",1865459582:"IFCRELASSOCIATES",4095574036:"IFCRELASSOCIATESAPPROVAL",919958153:"IFCRELASSOCIATESCLASSIFICATION",2728634034:"IFCRELASSOCIATESCONSTRAINT",982818633:"IFCRELASSOCIATESDOCUMENT",3840914261:"IFCRELASSOCIATESLIBRARY",2655215786:"IFCRELASSOCIATESMATERIAL",826625072:"IFCRELCONNECTS",1204542856:"IFCRELCONNECTSELEMENTS",3945020480:"IFCRELCONNECTSPATHELEMENTS",4201705270:"IFCRELCONNECTSPORTTOELEMENT",3190031847:"IFCRELCONNECTSPORTS",2127690289:"IFCRELCONNECTSSTRUCTURALACTIVITY",1638771189:"IFCRELCONNECTSSTRUCTURALMEMBER",504942748:"IFCRELCONNECTSWITHECCENTRICITY",3678494232:"IFCRELCONNECTSWITHREALIZINGELEMENTS",3242617779:"IFCRELCONTAINEDINSPATIALSTRUCTURE",886880790:"IFCRELCOVERSBLDGELEMENTS",2802773753:"IFCRELCOVERSSPACES",2565941209:"IFCRELDECLARES",2551354335:"IFCRELDECOMPOSES",693640335:"IFCRELDEFINES",1462361463:"IFCRELDEFINESBYOBJECT",4186316022:"IFCRELDEFINESBYPROPERTIES",307848117:"IFCRELDEFINESBYTEMPLATE",781010003:"IFCRELDEFINESBYTYPE",3940055652:"IFCRELFILLSELEMENT",279856033:"IFCRELFLOWCONTROLELEMENTS",427948657:"IFCRELINTERFERESELEMENTS",3268803585:"IFCRELNESTS",1441486842:"IFCRELPOSITIONS",750771296:"IFCRELPROJECTSELEMENT",1245217292:"IFCRELREFERENCEDINSPATIALSTRUCTURE",4122056220:"IFCRELSEQUENCE",366585022:"IFCRELSERVICESBUILDINGS",3451746338:"IFCRELSPACEBOUNDARY",3523091289:"IFCRELSPACEBOUNDARY1STLEVEL",1521410863:"IFCRELSPACEBOUNDARY2NDLEVEL",1401173127:"IFCRELVOIDSELEMENT",478536968:"IFCRELATIONSHIP",816062949:"IFCREPARAMETRISEDCOMPOSITECURVESEGMENT",1076942058:"IFCREPRESENTATION",3377609919:"IFCREPRESENTATIONCONTEXT",3008791417:"IFCREPRESENTATIONITEM",1660063152:"IFCREPRESENTATIONMAP",2914609552:"IFCRESOURCE",2943643501:"IFCRESOURCEAPPROVALRELATIONSHIP",1608871552:"IFCRESOURCECONSTRAINTRELATIONSHIP",2439245199:"IFCRESOURCELEVELRELATIONSHIP",1042787934:"IFCRESOURCETIME",1856042241:"IFCREVOLVEDAREASOLID",3243963512:"IFCREVOLVEDAREASOLIDTAPERED",4158566097:"IFCRIGHTCIRCULARCONE",3626867408:"IFCRIGHTCIRCULARCYLINDER",2016517767:"IFCROOF",2781568857:"IFCROOFTYPE",2341007311:"IFCROOT",2778083089:"IFCROUNDEDRECTANGLEPROFILEDEF",448429030:"IFCSIUNIT",3053780830:"IFCSANITARYTERMINAL",1768891740:"IFCSANITARYTERMINALTYPE",1054537805:"IFCSCHEDULINGTIME",2157484638:"IFCSEAMCURVE",2042790032:"IFCSECTIONPROPERTIES",4165799628:"IFCSECTIONREINFORCEMENTPROPERTIES",1862484736:"IFCSECTIONEDSOLID",1290935644:"IFCSECTIONEDSOLIDHORIZONTAL",1509187699:"IFCSECTIONEDSPINE",4086658281:"IFCSENSOR",1783015770:"IFCSENSORTYPE",1329646415:"IFCSHADINGDEVICE",4074543187:"IFCSHADINGDEVICETYPE",867548509:"IFCSHAPEASPECT",3982875396:"IFCSHAPEMODEL",4240577450:"IFCSHAPEREPRESENTATION",4124623270:"IFCSHELLBASEDSURFACEMODEL",3692461612:"IFCSIMPLEPROPERTY",3663146110:"IFCSIMPLEPROPERTYTEMPLATE",4097777520:"IFCSITE",1529196076:"IFCSLAB",3127900445:"IFCSLABELEMENTEDCASE",3027962421:"IFCSLABSTANDARDCASE",2533589738:"IFCSLABTYPE",2609359061:"IFCSLIPPAGECONNECTIONCONDITION",3420628829:"IFCSOLARDEVICE",1072016465:"IFCSOLARDEVICETYPE",723233188:"IFCSOLIDMODEL",3856911033:"IFCSPACE",1999602285:"IFCSPACEHEATER",1305183839:"IFCSPACEHEATERTYPE",3812236995:"IFCSPACETYPE",1412071761:"IFCSPATIALELEMENT",710998568:"IFCSPATIALELEMENTTYPE",2706606064:"IFCSPATIALSTRUCTUREELEMENT",3893378262:"IFCSPATIALSTRUCTUREELEMENTTYPE",463610769:"IFCSPATIALZONE",2481509218:"IFCSPATIALZONETYPE",451544542:"IFCSPHERE",4015995234:"IFCSPHERICALSURFACE",1404847402:"IFCSTACKTERMINAL",3112655638:"IFCSTACKTERMINALTYPE",331165859:"IFCSTAIR",4252922144:"IFCSTAIRFLIGHT",1039846685:"IFCSTAIRFLIGHTTYPE",338393293:"IFCSTAIRTYPE",682877961:"IFCSTRUCTURALACTION",3544373492:"IFCSTRUCTURALACTIVITY",2515109513:"IFCSTRUCTURALANALYSISMODEL",1179482911:"IFCSTRUCTURALCONNECTION",2273995522:"IFCSTRUCTURALCONNECTIONCONDITION",1004757350:"IFCSTRUCTURALCURVEACTION",4243806635:"IFCSTRUCTURALCURVECONNECTION",214636428:"IFCSTRUCTURALCURVEMEMBER",2445595289:"IFCSTRUCTURALCURVEMEMBERVARYING",2757150158:"IFCSTRUCTURALCURVEREACTION",3136571912:"IFCSTRUCTURALITEM",1807405624:"IFCSTRUCTURALLINEARACTION",2162789131:"IFCSTRUCTURALLOAD",385403989:"IFCSTRUCTURALLOADCASE",3478079324:"IFCSTRUCTURALLOADCONFIGURATION",1252848954:"IFCSTRUCTURALLOADGROUP",1595516126:"IFCSTRUCTURALLOADLINEARFORCE",609421318:"IFCSTRUCTURALLOADORRESULT",2668620305:"IFCSTRUCTURALLOADPLANARFORCE",2473145415:"IFCSTRUCTURALLOADSINGLEDISPLACEMENT",1973038258:"IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION",1597423693:"IFCSTRUCTURALLOADSINGLEFORCE",1190533807:"IFCSTRUCTURALLOADSINGLEFORCEWARPING",2525727697:"IFCSTRUCTURALLOADSTATIC",3408363356:"IFCSTRUCTURALLOADTEMPERATURE",530289379:"IFCSTRUCTURALMEMBER",1621171031:"IFCSTRUCTURALPLANARACTION",2082059205:"IFCSTRUCTURALPOINTACTION",734778138:"IFCSTRUCTURALPOINTCONNECTION",1235345126:"IFCSTRUCTURALPOINTREACTION",3689010777:"IFCSTRUCTURALREACTION",2986769608:"IFCSTRUCTURALRESULTGROUP",3657597509:"IFCSTRUCTURALSURFACEACTION",1975003073:"IFCSTRUCTURALSURFACECONNECTION",3979015343:"IFCSTRUCTURALSURFACEMEMBER",2218152070:"IFCSTRUCTURALSURFACEMEMBERVARYING",603775116:"IFCSTRUCTURALSURFACEREACTION",2830218821:"IFCSTYLEMODEL",3958052878:"IFCSTYLEDITEM",3049322572:"IFCSTYLEDREPRESENTATION",148013059:"IFCSUBCONTRACTRESOURCE",4095615324:"IFCSUBCONTRACTRESOURCETYPE",2233826070:"IFCSUBEDGE",2513912981:"IFCSURFACE",699246055:"IFCSURFACECURVE",2028607225:"IFCSURFACECURVESWEPTAREASOLID",3101698114:"IFCSURFACEFEATURE",2809605785:"IFCSURFACEOFLINEAREXTRUSION",4124788165:"IFCSURFACEOFREVOLUTION",2934153892:"IFCSURFACEREINFORCEMENTAREA",1300840506:"IFCSURFACESTYLE",3303107099:"IFCSURFACESTYLELIGHTING",1607154358:"IFCSURFACESTYLEREFRACTION",1878645084:"IFCSURFACESTYLERENDERING",846575682:"IFCSURFACESTYLESHADING",1351298697:"IFCSURFACESTYLEWITHTEXTURES",626085974:"IFCSURFACETEXTURE",2247615214:"IFCSWEPTAREASOLID",1260650574:"IFCSWEPTDISKSOLID",1096409881:"IFCSWEPTDISKSOLIDPOLYGONAL",230924584:"IFCSWEPTSURFACE",1162798199:"IFCSWITCHINGDEVICE",2315554128:"IFCSWITCHINGDEVICETYPE",2254336722:"IFCSYSTEM",413509423:"IFCSYSTEMFURNITUREELEMENT",1580310250:"IFCSYSTEMFURNITUREELEMENTTYPE",3071757647:"IFCTSHAPEPROFILEDEF",985171141:"IFCTABLE",2043862942:"IFCTABLECOLUMN",531007025:"IFCTABLEROW",812556717:"IFCTANK",5716631:"IFCTANKTYPE",3473067441:"IFCTASK",1549132990:"IFCTASKTIME",2771591690:"IFCTASKTIMERECURRING",3206491090:"IFCTASKTYPE",912023232:"IFCTELECOMADDRESS",3824725483:"IFCTENDON",2347447852:"IFCTENDONANCHOR",3081323446:"IFCTENDONANCHORTYPE",3663046924:"IFCTENDONCONDUIT",2281632017:"IFCTENDONCONDUITTYPE",2415094496:"IFCTENDONTYPE",2387106220:"IFCTESSELLATEDFACESET",901063453:"IFCTESSELLATEDITEM",4282788508:"IFCTEXTLITERAL",3124975700:"IFCTEXTLITERALWITHEXTENT",1447204868:"IFCTEXTSTYLE",1983826977:"IFCTEXTSTYLEFONTMODEL",2636378356:"IFCTEXTSTYLEFORDEFINEDFONT",1640371178:"IFCTEXTSTYLETEXTMODEL",280115917:"IFCTEXTURECOORDINATE",1742049831:"IFCTEXTURECOORDINATEGENERATOR",2552916305:"IFCTEXTUREMAP",1210645708:"IFCTEXTUREVERTEX",3611470254:"IFCTEXTUREVERTEXLIST",1199560280:"IFCTIMEPERIOD",3101149627:"IFCTIMESERIES",581633288:"IFCTIMESERIESVALUE",1377556343:"IFCTOPOLOGICALREPRESENTATIONITEM",1735638870:"IFCTOPOLOGYREPRESENTATION",1935646853:"IFCTOROIDALSURFACE",3825984169:"IFCTRANSFORMER",1692211062:"IFCTRANSFORMERTYPE",2595432518:"IFCTRANSITIONCURVESEGMENT2D",1620046519:"IFCTRANSPORTELEMENT",2097647324:"IFCTRANSPORTELEMENTTYPE",2715220739:"IFCTRAPEZIUMPROFILEDEF",2916149573:"IFCTRIANGULATEDFACESET",1229763772:"IFCTRIANGULATEDIRREGULARNETWORK",3593883385:"IFCTRIMMEDCURVE",3026737570:"IFCTUBEBUNDLE",1600972822:"IFCTUBEBUNDLETYPE",1628702193:"IFCTYPEOBJECT",3736923433:"IFCTYPEPROCESS",2347495698:"IFCTYPEPRODUCT",3698973494:"IFCTYPERESOURCE",427810014:"IFCUSHAPEPROFILEDEF",180925521:"IFCUNITASSIGNMENT",630975310:"IFCUNITARYCONTROLELEMENT",3179687236:"IFCUNITARYCONTROLELEMENTTYPE",4292641817:"IFCUNITARYEQUIPMENT",1911125066:"IFCUNITARYEQUIPMENTTYPE",4207607924:"IFCVALVE",728799441:"IFCVALVETYPE",1417489154:"IFCVECTOR",2799835756:"IFCVERTEX",2759199220:"IFCVERTEXLOOP",1907098498:"IFCVERTEXPOINT",1530820697:"IFCVIBRATIONDAMPER",3956297820:"IFCVIBRATIONDAMPERTYPE",2391383451:"IFCVIBRATIONISOLATOR",3313531582:"IFCVIBRATIONISOLATORTYPE",2769231204:"IFCVIRTUALELEMENT",891718957:"IFCVIRTUALGRIDINTERSECTION",926996030:"IFCVOIDINGFEATURE",2391406946:"IFCWALL",4156078855:"IFCWALLELEMENTEDCASE",3512223829:"IFCWALLSTANDARDCASE",1898987631:"IFCWALLTYPE",4237592921:"IFCWASTETERMINAL",1133259667:"IFCWASTETERMINALTYPE",3304561284:"IFCWINDOW",336235671:"IFCWINDOWLININGPROPERTIES",512836454:"IFCWINDOWPANELPROPERTIES",486154966:"IFCWINDOWSTANDARDCASE",1299126871:"IFCWINDOWSTYLE",4009809668:"IFCWINDOWTYPE",4088093105:"IFCWORKCALENDAR",1028945134:"IFCWORKCONTROL",4218914973:"IFCWORKPLAN",3342526732:"IFCWORKSCHEDULE",1236880293:"IFCWORKTIME",2543172580:"IFCZSHAPEPROFILEDEF",1033361043:"IFCZONE"},l8=class{constructor(e){this.state=e}getExpressId(e,t){if(!e.index)return;let i=e.index.array;return e.attributes[uRe].getX(i[3*t])}getItemProperties(e,t,i=!1){return this.state.useJSON?Br({},this.state.models[e].jsonData[t]):this.state.api.GetLine(e,t,i)}getAllItemsOfType(e,t,i){return this.state.useJSON?this.getAllItemsOfTypeJSON(e,t,i):this.getAllItemsOfTypeWebIfcAPI(e,t,i)}getPropertySets(e,t,i=!1){return this.state.useJSON?this.getPropertyJSON(e,t,i,zl.psets):this.getPropertyWebIfcAPI(e,t,i,zl.psets)}getTypeProperties(e,t,i=!1){return this.state.useJSON?this.getPropertyJSON(e,t,i,zl.type):this.getPropertyWebIfcAPI(e,t,i,zl.type)}getMaterialsProperties(e,t,i=!1){return this.state.useJSON?this.getPropertyJSON(e,t,i,zl.materials):this.getPropertyWebIfcAPI(e,t,i,zl.materials)}getSpatialStructure(e){return this.state.useJSON?this.getSpatialStructureJSON(e):this.getSpatialStructureWebIfcAPI(e)}getSpatialStructureJSON(e){let t=this.getSpatialTreeChunks(e),i=this.getAllItemsOfTypeJSON(e,pA,!1)[0],r=this.newIfcProject(i);return this.getSpatialNode(e,r,t),Br({},r)}getSpatialStructureWebIfcAPI(e){let t=this.getSpatialTreeChunks(e),i=this.state.api.GetLineIDsWithType(e,pA).get(0),r=this.newIfcProject(i);return this.getSpatialNode(e,r,t),r}getAllItemsOfTypeJSON(e,t,i){let r=this.state.models[e].jsonData,n=sPt[t];if(!n)throw new Error(`Type not found: ${t}`);return this.filterJSONItemsByType(r,n,i)}filterJSONItemsByType(e,t,i){let r=[];return Object.keys(e).forEach((n=>{let s=parseInt(n);e[s].type.toUpperCase()===t&&r.push(i?Br({},e[s]):s)})),r}getItemsByIDJSON(e,t){let i=this.state.models[e].jsonData,r=[];return t.forEach((e=>r.push(Br({},i[e])))),r}getPropertyJSON(e,t,i=!1,r){let n=this.getAllRelatedItemsOfTypeJSON(e,t,r),s=this.getItemsByIDJSON(e,n);return i&&s.forEach((t=>this.getJSONReferencesRecursively(e,t))),s}getJSONReferencesRecursively(e,t){if(null==t)return;let i=Object.keys(t);for(let r=0;r(5===t.type&&(t=this.getItemsByIDJSON(e,[t.value])[0],this.getJSONReferencesRecursively(e,t)),t)))}getPropertyWebIfcAPI(e,t,i=!1,r){return this.getAllRelatedItemsOfTypeWebIfcAPI(e,t,r).map((t=>this.state.api.GetLine(e,t,i)))}getAllItemsOfTypeWebIfcAPI(e,t,i){let r=[],n=this.state.api.GetLineIDsWithType(e,t);for(let e=0;ethis.state.api.GetLine(e,t))):r}newIfcProject(e){return{expressID:e,type:"IFCPROJECT",children:[]}}getSpatialTreeChunks(e){let t={};return this.state.useJSON?(this.getChunksJSON(e,t,zl.aggregates),this.getChunksJSON(e,t,zl.spatial)):(this.getChunksWebIfcAPI(e,t,zl.aggregates),this.getChunksWebIfcAPI(e,t,zl.spatial)),t}getChunksJSON(e,t,i){this.getAllItemsOfTypeJSON(e,i.name,!0).forEach((e=>{this.saveChunk(t,i,e)}))}getChunksWebIfcAPI(e,t,i){let r=this.state.api.GetLineIDsWithType(e,i.name);for(let n=0;ne.value));null==e[r]?e[r]=n:e[r]=e[r].concat(n)}getSpatialNode(e,t,i){this.getChildren(e,t,i,zl.aggregates),this.getChildren(e,t,i,zl.spatial)}getChildren(e,t,i,r){let n=i[t.expressID];null!=n&&(t[r.key]=n.map((t=>{let r=this.newNode(e,t);return this.getSpatialNode(e,r,i),r})))}newNode(e,t){return{expressID:t,type:this.getNodeType(e,t),children:[]}}getNodeType(e,t){if(this.state.useJSON)return this.state.models[e].jsonData[t].type;let i=this.state.models[e].types[t];return f8[i]}getAllRelatedItemsOfTypeJSON(e,t,i){let r=this.getAllItemsOfTypeJSON(e,i.name,!0),n=[];return r.forEach((e=>{this.isRelated(t,e,i)&&this.getRelated(e,i,n)})),n}getAllRelatedItemsOfTypeWebIfcAPI(e,t,i){let r=this.state.api.GetLineIDsWithType(e,i.name),n=[];for(let s=0;si.push(e.value))):i.push(r.value)}isRelated(e,t,i){let r=t[i.related];return Array.isArray(r)?r.map((e=>e.value)).includes(e):r.value===e}},c8=class{constructor(e){this.state=e}getAllTypes(){for(let e in this.state.models){let t=this.state.models[e].types;0==Object.keys(t).length&&this.getAllTypesOfModel(parseInt(e))}}getAllTypesOfModel(e){let t=Object.keys(f8).map((e=>parseInt(e))),i=this.state.models[e].types;t.forEach((t=>{let r=this.state.api.GetLineIDsWithType(e,t);for(let e=0;e{r[e]&&n.push(...r[e])}));let s=this.getCoordinates(e),a=this.modelCoordinates[e];i?n.forEach((e=>s.set([0,0,0],e))):n.forEach((e=>s.set([a[e],a[e+1],a[e+2]],e))),this.getAttributes(e).position.needsUpdate=!0}showAllItems(e){this.modelCoordinates[e]&&(this.resetCoordinates(e),this.getAttributes(e).position.needsUpdate=!0)}hideAllItems(e){this.getCoordinates(e).fill(0),this.getAttributes(e).position.needsUpdate=!0}initializeCoordinates(e){let t=this.getCoordinates(e);this.modelCoordinates[e]||(this.modelCoordinates[e]=new Float32Array(t))}resetCoordinates(e){let t=this.modelCoordinates[e];this.getCoordinates(e).set(t)}getCoordinates(e){return this.getAttributes(e).position.array}getAttributes(e){return this.state.models[e].mesh.geometry.attributes}},d8=class{constructor(){this.state={models:[],api:new n8,useJSON:!1},this.BVH=new h8,this.parser=new a8(this.state,this.BVH),this.subsets=new o8(this.state,this.BVH),this.properties=new l8(this.state),this.types=new c8(this.state),this.hider=new p8(this.state)}parse(e){return ht(this,null,(function*(){let t=yield this.parser.parse(e);this.state.useJSON?this.disposeMemory():this.types.getAllTypes(),this.hider.processCoordinates(t.modelID);let i=new u8(t.geometry,t.material);return i.setIFCManager(this),i}))}setWasmPath(e){this.state.api.SetWasmPath(e)}applyWebIfcConfig(e){this.state.webIfcSettings=e}useJSONData(e=!0){this.state.useJSON=e,this.disposeMemory()}addModelJSONData(e,t){let i=this.state.models[e];i&&(i.jsonData=t)}disposeMemory(){this.state.api=null,this.state.api=new n8}setupThreeMeshBVH(e,t,i){this.BVH.initializeMeshBVH(e,t,i)}close(e,t){this.state.api.CloseModel(e),t&&t.remove(this.state.models[e].mesh),delete this.state.models[e]}getExpressId(e,t){return this.properties.getExpressId(e,t)}getAllItemsOfType(e,t,i){return this.properties.getAllItemsOfType(e,t,i)}getItemProperties(e,t,i=!1){return this.properties.getItemProperties(e,t,i)}getPropertySets(e,t,i=!1){return this.properties.getPropertySets(e,t,i)}getTypeProperties(e,t,i=!1){return this.properties.getTypeProperties(e,t,i)}getMaterialsProperties(e,t,i=!1){return this.properties.getMaterialsProperties(e,t,i)}getIfcType(e,t){let i=this.state.models[e].types[t];return f8[i]}getSpatialStructure(e){return this.properties.getSpatialStructure(e)}getSubset(e,t){return this.subsets.getSubset(e,t)}removeSubset(e,t,i){this.subsets.removeSubset(e,t,i)}createSubset(e){return this.subsets.createSubset(e)}hideItems(e,t){this.hider.hideItems(e,t)}hideAllItems(e){this.hider.hideAllItems(e)}showItems(e,t){this.hider.showItems(e,t)}showAllItems(e){this.hider.showAllItems(e)}},BA=class extends ci{constructor(e){super(e),this.ifcManager=new d8}load(e,t,i,r){let n=this,s=new ui(n.manager);s.setPath(n.path),s.setResponseType("arraybuffer"),s.setRequestHeader(n.requestHeader),s.setWithCredentials(n.withCredentials),s.load(e,(function(i){return ht(this,null,(function*(){try{if("string"==typeof i)throw new Error("IFC files must be given as a buffer!");t(yield n.parse(i))}catch(t){r?r(t):console.error(t),n.manager.itemError(e)}}))}),i,r)}parse(e){return this.ifcManager.parse(e)}},kA=class extends ci{constructor(e){super(e)}load(e,t,i,r){let n=this,s=""===this.path?Bs.extractUrlBase(e):this.path,a=new ui(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(i){try{t(n.parse(i,s))}catch(t){r?r(t):console.error(t),n.manager.itemError(e)}}),i,r)}setMaterialOptions(e){return this.materialOptions=e,this}parse(e,t){let i=e.split("\n"),r={},n=/\s+/,s={};for(let e=0;e=0?t.substring(0,a):t;o=o.toLowerCase();let l=a>=0?t.substring(a+1):"";if(l=l.trim(),"newmtl"===o)r={name:l},s[l]=r;else if("ka"===o||"kd"===o||"ks"===o||"ke"===o){let e=l.split(n,3);r[o]=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])]}else r[o]=l}let a=new m8(this.resourcePath||t,this.materialOptions);return a.setCrossOrigin(this.crossOrigin),a.setManager(this.manager),a.setMaterials(s),a}},m8=class{constructor(e="",t={}){this.baseUrl=e,this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=void 0!==this.options.side?this.options.side:tn,this.wrap=void 0!==this.options.wrap?this.options.wrap:vn}setCrossOrigin(e){return this.crossOrigin=e,this}setManager(e){this.manager=e}setMaterials(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(e){if(!this.options)return e;let t={};for(let i in e){let r=e[i],n={};t[i]=n;for(let e in r){let t=!0,i=r[e],s=e.toLowerCase();switch(s){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(i=[i[0]/255,i[1]/255,i[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===i[0]&&0===i[1]&&0===i[2]&&(t=!1)}t&&(n[s]=i)}}return t}preload(){for(let e in this.materialsInfo)this.create(e)}getIndex(e){return this.nameLookup[e]}getAsArray(){let e=0;for(let t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray}create(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]}createMaterial_(e){let t=this,i=this.materialsInfo[e],r={name:e,side:this.side};function n(e,i){if(r[e])return;let n=t.getTextureParams(i,r),s=t.loadTexture(function(e,t){return"string"!=typeof t||""===t?"":/^https?:\/\//i.test(t)?t:e+t}(t.baseUrl,n.url));s.repeat.copy(n.scale),s.offset.copy(n.offset),s.wrapS=t.wrap,s.wrapT=t.wrap,("map"===e||"emissiveMap"===e)&&(s.encoding=gr),r[e]=s}for(let e in i){let t,s=i[e];if(""!==s)switch(e.toLowerCase()){case"kd":r.color=(new je).fromArray(s).convertSRGBToLinear();break;case"ks":r.specular=(new je).fromArray(s).convertSRGBToLinear();break;case"ke":r.emissive=(new je).fromArray(s).convertSRGBToLinear();break;case"map_kd":n("map",s);break;case"map_ks":n("specularMap",s);break;case"map_ke":n("emissiveMap",s);break;case"norm":n("normalMap",s);break;case"map_bump":case"bump":n("bumpMap",s);break;case"map_d":n("alphaMap",s),r.transparent=!0;break;case"ns":r.shininess=parseFloat(s);break;case"d":t=parseFloat(s),t<1&&(r.opacity=t,r.transparent=!0);break;case"tr":t=parseFloat(s),this.options&&this.options.invertTrProperty&&(t=1-t),t>0&&(r.opacity=1-t,r.transparent=!0)}}return this.materials[e]=new Es(r),this.materials[e]}getTextureParams(e,t){let i,r={scale:new le(1,1),offset:new le(0,0)},n=e.split(/\s+/);return i=n.indexOf("-bm"),i>=0&&(t.bumpScale=parseFloat(n[i+1]),n.splice(i,2)),i=n.indexOf("-s"),i>=0&&(r.scale.set(parseFloat(n[i+1]),parseFloat(n[i+2])),n.splice(i,4)),i=n.indexOf("-o"),i>=0&&(r.offset.set(parseFloat(n[i+1]),parseFloat(n[i+2])),n.splice(i,4)),r.url=n.join(" ").trim(),r}loadTexture(e,t,i,r,n){let s=void 0!==this.manager?this.manager:ao,a=s.getHandler(e);null===a&&(a=new bs(s)),a.setCrossOrigin&&a.setCrossOrigin(this.crossOrigin);let o=a.load(e,i,r,n);return void 0!==t&&(o.mapping=t),o}},oPt=/^[og]\s*(.+)?/,lPt=/^mtllib /,cPt=/^usemtl /,uPt=/^usemap /,hRe=/\s+/,pRe=new A,g8=new A,dRe=new A,fRe=new A,jl=new A,GA=new je;function hPt(){let e={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);let i=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(e,t){let i=this._finalize(!1);i&&(i.inherited||i.groupCount<=0)&&this.materials.splice(i.index,1);let r={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==i?i.smooth:this.smooth,groupStart:void 0!==i?i.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){let t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(r),r},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){let t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(let e=this.materials.length-1;e>=0;e--)this.materials[e].groupCount<=0&&this.materials.splice(e,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},i&&i.name&&"function"==typeof i.clone){let e=i.clone(0);e.inherited=!0,this.object.materials.push(e)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){let i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseNormalIndex:function(e,t){let i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseUVIndex:function(e,t){let i=parseInt(e,10);return 2*(i>=0?i-1:i+t/2)},addVertex:function(e,t,i){let r=this.vertices,n=this.object.geometry.vertices;n.push(r[e+0],r[e+1],r[e+2]),n.push(r[t+0],r[t+1],r[t+2]),n.push(r[i+0],r[i+1],r[i+2])},addVertexPoint:function(e){let t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){let t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,i){let r=this.normals,n=this.object.geometry.normals;n.push(r[e+0],r[e+1],r[e+2]),n.push(r[t+0],r[t+1],r[t+2]),n.push(r[i+0],r[i+1],r[i+2])},addFaceNormal:function(e,t,i){let r=this.vertices,n=this.object.geometry.normals;pRe.fromArray(r,e),g8.fromArray(r,t),dRe.fromArray(r,i),jl.subVectors(dRe,g8),fRe.subVectors(pRe,g8),jl.cross(fRe),jl.normalize(),n.push(jl.x,jl.y,jl.z),n.push(jl.x,jl.y,jl.z),n.push(jl.x,jl.y,jl.z)},addColor:function(e,t,i){let r=this.colors,n=this.object.geometry.colors;void 0!==r[e]&&n.push(r[e+0],r[e+1],r[e+2]),void 0!==r[t]&&n.push(r[t+0],r[t+1],r[t+2]),void 0!==r[i]&&n.push(r[i+0],r[i+1],r[i+2])},addUV:function(e,t,i){let r=this.uvs,n=this.object.geometry.uvs;n.push(r[e+0],r[e+1]),n.push(r[t+0],r[t+1]),n.push(r[i+0],r[i+1])},addDefaultUV:function(){let e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){let t=this.uvs;this.object.geometry.uvs.push(t[e+0],t[e+1])},addFace:function(e,t,i,r,n,s,a,o,l){let h=this.vertices.length,u=this.parseVertexIndex(e,h),c=this.parseVertexIndex(t,h),p=this.parseVertexIndex(i,h);if(this.addVertex(u,c,p),this.addColor(u,c,p),void 0!==a&&""!==a){let e=this.normals.length;u=this.parseNormalIndex(a,e),c=this.parseNormalIndex(o,e),p=this.parseNormalIndex(l,e),this.addNormal(u,c,p)}else this.addFaceNormal(u,c,p);if(void 0!==r&&""!==r){let e=this.uvs.length;u=this.parseUVIndex(r,e),c=this.parseUVIndex(n,e),p=this.parseUVIndex(s,e),this.addUV(u,c,p),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";let t=this.vertices.length;for(let i=0,r=e.length;i=7?(GA.setRGB(parseFloat(e[4]),parseFloat(e[5]),parseFloat(e[6])).convertSRGBToLinear(),t.colors.push(GA.r,GA.g,GA.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(e[1]),parseFloat(e[2]),parseFloat(e[3]));break;case"vt":t.uvs.push(parseFloat(e[1]),parseFloat(e[2]))}}else if("f"===s){let e=n.slice(1).trim().split(hRe),i=[];for(let t=0,r=e.length;t0){let e=r.split("/");i.push(e)}}let r=i[0];for(let e=1,n=i.length-1;e1){let e=r[1].trim().toLowerCase();t.object.smooth="0"!==e&&"off"!==e}else t.object.smooth=!0;let e=t.object.currentMaterial();e&&(e.smooth=t.object.smooth)}else{if("\0"===n)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+n+'"')}}t.finalize();let n=new ur;if(n.materialLibraries=[].concat(t.materialLibraries),!0==!(1===t.objects.length&&0===t.objects[0].geometry.vertices.length))for(let e=0,i=t.objects.length;e0&&h.setAttribute("normal",new dt(r.normals,3)),r.colors.length>0&&(l=!0,h.setAttribute("color",new dt(r.colors,3))),!0===r.hasUVIndices&&h.setAttribute("uv",new dt(r.uvs,2));let u,c=[];for(let e=0,i=s.length;e1){for(let e=0,t=s.length;e0){let e=new jn({size:1,sizeAttenuation:!1}),i=new lt;i.setAttribute("position",new dt(t.vertices,3)),t.colors.length>0&&void 0!==t.colors[0]&&(i.setAttribute("color",new dt(t.colors,3)),e.vertexColors=!0);let r=new nn(i,e);n.add(r)}return n}},zA=new je,jA=class extends ci{constructor(e){super(e),this.propertyNameMapping={},this.customPropertyMapping={}}load(e,t,i,r){let n=this,s=new ui(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(function(i){try{t(n.parse(i))}catch(t){r?r(t):console.error(t),n.manager.itemError(e)}}),i,r)}setPropertyNameMapping(e){this.propertyNameMapping=e}setCustomPropertyNameMapping(e){this.customPropertyMapping=e}parse(e){function t(e){let t="",i=0,r=/^ply([\s\S]*)end_header(\r\n|\r|\n)/.exec(e);null!==r&&(t=r[1],i=new Blob([r[0]]).size);let n,s={comments:[],elements:[],headerLength:i,objInfo:""},a=t.split(/\r\n|\r|\n/);function o(e,t){let i={type:e[0]};return"list"===i.type?(i.name=e[3],i.countType=e[1],i.itemType=e[2]):i.name=e[1],i.name in t&&(i.name=t[i.name]),i}for(let e=0;ee.name));function i(e){for(let i=0,r=e.length;i=d.count&&(c++,p=0,d=t.elements[c],f=s(d.properties));let n=r(d.properties,i);l(a,d.name,n,f),p++}return o(a)}function o(e){let t=new lt;e.indices.length>0&&t.setIndex(e.indices),t.setAttribute("position",new dt(e.vertices,3)),e.normals.length>0&&t.setAttribute("normal",new dt(e.normals,3)),e.uvs.length>0&&t.setAttribute("uv",new dt(e.uvs,2)),e.colors.length>0&&t.setAttribute("color",new dt(e.colors,3)),e.faceVertexUvs.length>0&&(t=t.toNonIndexed(),t.setAttribute("uv",new dt(e.faceVertexUvs,2)));for(let i of Object.keys(p.customPropertyMapping))e[i].length>0&&t.setAttribute(i,new dt(e[i],p.customPropertyMapping[i].length));return t.computeBoundingSphere(),t}function l(e,t,i,r){if("vertex"===t){e.vertices.push(i[r.attrX],i[r.attrY],i[r.attrZ]),null!==r.attrNX&&null!==r.attrNY&&null!==r.attrNZ&&e.normals.push(i[r.attrNX],i[r.attrNY],i[r.attrNZ]),null!==r.attrS&&null!==r.attrT&&e.uvs.push(i[r.attrS],i[r.attrT]),null!==r.attrR&&null!==r.attrG&&null!==r.attrB&&(zA.setRGB(i[r.attrR]/255,i[r.attrG]/255,i[r.attrB]/255).convertSRGBToLinear(),e.colors.push(zA.r,zA.g,zA.b));for(let t of Object.keys(p.customPropertyMapping))for(let r of p.customPropertyMapping[t])e[t].push(i[r])}else if("face"===t){let t=i.vertex_indices||i.vertex_index,r=i.texcoord;3===t.length?(e.indices.push(t[0],t[1],t[2]),r&&6===r.length&&(e.faceVertexUvs.push(r[0],r[1]),e.faceVertexUvs.push(r[2],r[3]),e.faceVertexUvs.push(r[4],r[5]))):4===t.length&&(e.indices.push(t[0],t[1],t[3]),e.indices.push(t[1],t[2],t[3]))}}function h(e,t){let i={},r=0;for(let n=0;ne.getInt8(t),size:1};case"uint8":case"uchar":return{read:t=>e.getUint8(t),size:1};case"int16":case"short":return{read:t=>e.getInt16(t,i),size:2};case"uint16":case"ushort":return{read:t=>e.getUint16(t,i),size:2};case"int32":case"int":return{read:t=>e.getInt32(t,i),size:4};case"uint32":case"uint":return{read:t=>e.getUint32(t,i),size:4};case"float32":case"float":return{read:t=>e.getFloat32(t,i),size:4};case"float64":case"double":return{read:t=>e.getFloat64(t,i),size:8}}}for(let n=0,s=e.length;n>5&31)/31,r=(e>>10&31)/31)}for(let s=1;s<=3;s++){let a=l+12*s,o=3*e*3+3*(s-1);d[o]=h.getFloat32(a,!0),d[o+1]=h.getFloat32(a+4,!0),d[o+2]=h.getFloat32(a+8,!0),f[o]=u,f[o+1]=p,f[o+2]=m,c&&(n[o]=t,n[o+1]=i,n[o+2]=r)}}return p.setAttribute("position",new Wt(d,3)),p.setAttribute("normal",new Wt(f,3)),c&&(p.setAttribute("color",new Wt(n,3)),p.hasColors=!0,p.alpha=l),p}(i):function(e){let t,i=new lt,r=/solid([\s\S]*?)endsolid/g,n=/facet([\s\S]*?)endfacet/g,s=0,a=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,o=new RegExp("vertex"+a+a+a,"g"),l=new RegExp("normal"+a+a+a,"g"),h=[],u=[],c=new A,p=0,d=0,f=0;for(;null!==(t=r.exec(e));){d=f;let e=t[0];for(;null!==(t=n.exec(e));){let e=0,i=0,r=t[0];for(;null!==(t=l.exec(r));)c.x=parseFloat(t[1]),c.y=parseFloat(t[2]),c.z=parseFloat(t[3]),i++;for(;null!==(t=o.exec(r));)h.push(parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3])),u.push(c.x,c.y,c.z),e++,f++;1!==i&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+s),3!==e&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+s),s++}let r=d,a=f-d;i.addGroup(r,a,p),p++}return i.setAttribute("position",new dt(h,3)),i.setAttribute("normal",new dt(u,3)),i}("string"!=typeof(r=e)?(new TextDecoder).decode(r):r);var r}},kMe=kn(ARe(),1),HRe="3.7.2",bPt=HRe,xPt="function"==typeof atob,IPt="function"==typeof btoa,jT="function"==typeof Buffer,ORe="function"==typeof TextDecoder?new TextDecoder:void 0,PRe="function"==typeof TextEncoder?new TextEncoder:void 0,_Pt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",VI=Array.prototype.slice.call(_Pt),KA=(e=>{let t={};return VI.forEach(((e,i)=>t[e]=i)),t})(),SPt=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,Gs=String.fromCharCode.bind(String),NRe="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(e,t=(e=>e))=>new Uint8Array(Array.prototype.slice.call(e,0).map(t)),URe=e=>e.replace(/=/g,"").replace(/[+\/]/g,(e=>"+"==e?"-":"_")),BRe=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),kRe=e=>{let t,i,r,n,s="",a=e.length%3;for(let a=0;a255||(r=e.charCodeAt(a++))>255||(n=e.charCodeAt(a++))>255)throw new TypeError("invalid character found");t=i<<16|r<<8|n,s+=VI[t>>18&63]+VI[t>>12&63]+VI[t>>6&63]+VI[63&t]}return a?s.slice(0,a-3)+"===".substring(a):s},R8=IPt?e=>btoa(e):jT?e=>Buffer.from(e,"binary").toString("base64"):kRe,S8=jT?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let i=0,r=e.length;it?URe(S8(e)):S8(e),wPt=e=>{if(e.length<2)return(t=e.charCodeAt(0))<128?e:t<2048?Gs(192|t>>>6)+Gs(128|63&t):Gs(224|t>>>12&15)+Gs(128|t>>>6&63)+Gs(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return Gs(240|t>>>18&7)+Gs(128|t>>>12&63)+Gs(128|t>>>6&63)+Gs(128|63&t)},RPt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,GRe=e=>e.replace(RPt,wPt),LRe=jT?e=>Buffer.from(e,"utf8").toString("base64"):PRe?e=>S8(PRe.encode(e)):e=>R8(GRe(e)),zT=(e,t=!1)=>t?URe(LRe(e)):LRe(e),FRe=e=>zT(e,!0),MPt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,DPt=e=>{switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return Gs(55296+(t>>>10))+Gs(56320+(1023&t));case 3:return Gs((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return Gs((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},VRe=e=>e.replace(MPt,DPt),zRe=e=>{if(e=e.replace(/\s+/g,""),!SPt.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let t,i,r,n="";for(let s=0;s>16&255):64===r?Gs(t>>16&255,t>>8&255):Gs(t>>16&255,t>>8&255,255&t);return n},M8=xPt?e=>atob(BRe(e)):jT?e=>Buffer.from(e,"base64").toString("binary"):zRe,jRe=jT?e=>NRe(Buffer.from(e,"base64")):e=>NRe(M8(e),(e=>e.charCodeAt(0))),WRe=e=>jRe(qRe(e)),CPt=jT?e=>Buffer.from(e,"base64").toString("utf8"):ORe?e=>ORe.decode(jRe(e)):e=>VRe(M8(e)),qRe=e=>BRe(e.replace(/[-_]/g,(e=>"-"==e?"+":"/"))),w8=e=>CPt(qRe(e)),APt=e=>{if("string"!=typeof e)return!1;let t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},YRe=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),XRe=function(){let e=(e,t)=>Object.defineProperty(String.prototype,e,YRe(t));e("fromBase64",(function(){return w8(this)})),e("toBase64",(function(e){return zT(this,e)})),e("toBase64URI",(function(){return zT(this,!0)})),e("toBase64URL",(function(){return zT(this,!0)})),e("toUint8Array",(function(){return WRe(this)}))},$Re=function(){let e=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,YRe(t));e("toBase64",(function(e){return ZA(this,e)})),e("toBase64URI",(function(){return ZA(this,!0)})),e("toBase64URL",(function(){return ZA(this,!0)}))},OPt=()=>{XRe(),$Re()},KRe={version:HRe,VERSION:bPt,atob:M8,atobPolyfill:zRe,btoa:R8,btoaPolyfill:kRe,fromBase64:w8,toBase64:zT,encode:zT,encodeURI:FRe,encodeURL:FRe,utob:GRe,btou:VRe,decode:w8,isValid:APt,fromUint8Array:ZA,toUint8Array:WRe,extendString:XRe,extendUint8Array:$Re,extendBuiltins:OPt},Xl=kn(fMe(),1),JA=class extends Mp{constructor(e,t={}){let i=t.font;if(void 0===i)super();else{let r=i.generateShapes(e,t.size);t.depth=void 0!==t.height?t.height:50,void 0===t.bevelThickness&&(t.bevelThickness=10),void 0===t.bevelSize&&(t.bevelSize=8),void 0===t.bevelEnabled&&(t.bevelEnabled=!1),super(r,t)}this.type="TextGeometry"}},QA="BYLAYER",D8="BYBLOCK",mMe=(e=>(e[e.Mesh=-1]="Mesh",e[e.MeshWithPattern=0]="MeshWithPattern",e[e.LineWithWidth=1]="LineWithWidth",e[e.Line=2]="Line",e[e.LineWithPattern=3]="LineWithPattern",e[e.Point=4]="Point",e[e.Text=5]="Text",e))(mMe||{}),E0=["INSERT","DIMENSION"],sEr=kn(EMe(),1),eO=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215],WT=class{constructor(){this.pointer=0,this.eof=!1}},bMe=1e3,$I=class extends WT{constructor(e){super(),this.int8Array=new Int8Array(bMe),this.caches=new Map,this.reader=new Af(e);let t=this.reader.readBytes(22),i="";for(let e=0;e<18;e++)i+=String.fromCharCode(t[e]);if("AutoCAD Binary DXF"!=i)throw new Error("Invalid DXF file")}next(){if(!this.hasNext())throw this.eof?new Error("Cannot call 'next' after EOF group has been read"):new Error("Unexpected end of input: EOF group not read before end of file.");let e={code:this.reader.readInt16()};return e.value=this.parseGroupValue(e.code),0===e.code&&"EOF"===e.value&&(this.eof=!0),this.lastReadGroup=e,e}hasNext(){return!this.eof&&!this.reader.IsEnd()}isEOF(){return this.eof}parseGroupValue(e){if(e>=0&&e<=9)return this.readNullTerminatedString();if(e>=10&&e<=59)return this.reader.readFloat64();if(e>=60&&e<=79)return this.reader.readInt16();if(e>=90&&e<=99)return this.reader.readInt32();if(e>=100&&e<=109)return this.readNullTerminatedString();if(e>=110&&e<=149)return this.reader.readFloat64();if(e>=160&&e<=169)return this.reader.readInt64();if(e>=170&&e<=179)return this.reader.readInt16();if(e>=210&&e<=239)return this.reader.readFloat64();if(e>=270&&e<=289)return this.reader.readInt16();if(e>=290&&e<=299)return this.reader.readInt8()>0;if(e>=300&&e<=309)return this.readNullTerminatedString();if(e>=310&&e<=319){return xMe(this.ReadBinaryData())}if(e>=320&&e<=369)return this.readNullTerminatedString();if(e>=370&&e<=389)return this.reader.readInt16();if(e>=390&&e<=399)return this.readNullTerminatedString();if(e>=400&&e<=409)return this.reader.readInt16();if(e>=410&&e<=419)return this.readNullTerminatedString();if(e>=420&&e<=429)return this.reader.readInt32();if(e>=430&&e<=439)return this.readNullTerminatedString();if(e>=440&&e<=459)return this.reader.readInt32();if(e>=460&&e<=469)return this.reader.readFloat64();if(e>=470&&e<=481)return this.readNullTerminatedString();if(999===e)throw new Error("The comment group 999, is not used in binary DXF files at byte address!");if(1004===e){return xMe(this.ReadBinaryData())}return e>=1e3&&e<=1009?this.readNullTerminatedString():e>=1010&&e<=1059?this.reader.readFloat64():e>=1060&&e<=1070?this.reader.readInt16():1071===e?this.reader.readInt32():void ne.warn(`[DxfBinReader] Invalid code '${e}' at byte address ${this.reader.getPosition()}`)}readNullTerminatedString(){var e;this.decoder||(this.decoder=new TextDecoder("utf-8"));let t=0,i=this.reader.readInt8();for(;0!==i;)this.int8Array[t++]=i,i=this.reader.readInt8();if(0===t)return"";if(t>bMe)return ne.warn(`[DxfBinReader] Failed to read string! The number of bytes is ${t} !`),"";let r=this.int8Array.subarray(0,t),n=r.toString();if(this.caches.get(n))return this.caches.get(n);let s=null==(e=this.decoder)?void 0:e.decode(r);return this.caches.set(n,s),s}ReadBinaryData(){let e=this.reader.readUint8();return this.reader.readBytes(e)}};function xMe(e){return Array.prototype.map.call(e,(e=>("00"+e.toString(16)).slice(-2))).join("")}var qT=class extends WT{constructor(e){super(),this.data=e}next(){if(!this.hasNext())throw this.eof?new Error("Cannot call 'next' after EOF group has been read"):new Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this.data[this.pointer]);let e={code:parseInt(this.data[this.pointer])};return this.pointer++,e.value=jPt(e.code,this.data[this.pointer].trim()),this.pointer++,0===e.code&&"EOF"===e.value&&(this.eof=!0),this.lastReadGroup=e,e}hasNext(){return!(this.eof||this.pointer>this.data.length-2)}isEOF(){return this.eof}};function jPt(e,t){return e>=0&&e<=9?t:e>=10&&e<=59?parseFloat(t):e>=60&&e<=99?parseInt(t):e>=100&&e<=109?t:e>=110&&e<=149?parseFloat(t):e>=160&&e<=179?parseInt(t):e>=210&&e<=239?parseFloat(t):e>=270&&e<=289?parseInt(t):e>=290&&e<=299?WPt(t):e>=300&&e<=369?t:e>=370&&e<=389?parseInt(t):e>=390&&e<=399?t:e>=400&&e<=409?parseInt(t):e>=410&&e<=419?t:e>=420&&e<=429?parseInt(t):e>=430&&e<=439?t:e>=440&&e<=459?parseInt(t):e>=460&&e<=469?parseFloat(t):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?t:e>=1010&&e<=1059?parseFloat(t):e>=1060&&e<=1071?parseInt(t):(ne.info("WARNING: Group code does not have a defined type: %j",{code:e,value:t}),t)}function WPt(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}var SMe=kn(ql(),1),qPt="OriginalHandle",YPt="OriginalType",XPt="Outlines",IMe=["PROXY","REGION","INSERT","HATCH"];function b0(e){return eO[e]}function vt(e){let t={},i=e.lastReadGroup,r=i.code;if(t.x=i.value,r+=10,i=e.next(),i.code!=r)throw new Error(`Expected code for point value to be ${r} but got ${i.code}`);return t.y=i.value,r+=10,i=e.next(),i.code!=r||(t.z=i.value,e.next()),t}function _Me(e,t){let i=e.lastReadGroup,r=[];for(let n=0;n<16;n++){if(i.code!==t)throw new Error(`Expected code for matrix value to be ${t} but got ${i.code}`);r.push(i.value),i=e.next()}return r}function fr(e,t){switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 6:e.lineType=t.value.toUpperCase();break;case 8:e.layer=t.value;break;case 48:e.lineTypeScale=t.value,e.lineTypeScale<=0&&(e.lineTypeScale=1);break;case 60:e.visible=0===t.value;break;case 62:e.isTrueColor||(e.colorIndex=t.value,e.colorIndex<0&&ne.warn("[DxfParser] a negative value of colorIndex indicates that the layer is turned off"),e.color=b0(Math.abs(t.value)));break;case 67:e.inPaperSpace=0!==t.value;break;case 100:case 1001:break;case 330:e.ownerHandle=t.value;break;case 347:e.materialObjectHandle=t.value;break;case 370:e.lineweight=t.value;break;case 410:e.layoutName=t.value;break;case 420:e.isTrueColor=!0,e.color=t.value;break;case 1e3:if(t.value&&t.value.includes(qPt)){let i=t.value.split(":").map((e=>e.trim()));e.extendedData||(e.extendedData={}),e.extendedData.originalHandle=i[1]}if(e.extendedData&&e.extendedData.outlines)try{e.extendedData.outlines=JSON.parse(t.value||"[]")}catch(t){e.extendedData.outlines=void 0}if(t.value&&t.value.includes(XPt)&&(e.extendedData||(e.extendedData={}),e.extendedData.outlines=[]),t.value&&t.value.includes(YPt)){let i=t.value.split(":").map((e=>e.trim()));e.extendedData||(e.extendedData={}),e.extendedData.originalType=i[1]}break;default:return!1}return!0}function lh(e,t){switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 330:e.ownerHandle=t.value;break;case 1e3:case 1001:break;default:return!1}return!0}var ZI=class{constructor(){this.ForEntityName="3DFACE"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 70:if(0!==t.value){let e=Math.log2(t.value)-1;i.vertices.splice(e,1)}t=e.next();break;case 10:i.vertices=$Pt(e,t),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}};function $Pt(e,t){let i=[],r=!1,n=!1;for(let s=0;s<=4;s++){let s={};for(;!e.isEOF()&&0!==t.code&&!n;){switch(t.code){case 10:case 11:case 12:case 13:if(r){n=!0;continue}s.x=t.value,r=!0;break;case 20:case 21:case 22:case 23:s.y=t.value;break;case 30:case 31:case 32:case 33:s.z=t.value;break;default:return i}t=e.next()}(0,SMe.isEmpty)(s)||i.push(s),r=!1,n=!1}return i}var JI=class{constructor(){this.ForEntityName="ARC"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.center=vt(e),t=e.lastReadGroup;break;case 40:i.radius=t.value,t=e.next();break;case 50:i.startAngle=Math.PI/180*t.value,t=e.next();break;case 51:i.endAngle=Math.PI/180*t.value,i.angleLength=i.endAngle-i.startAngle,t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},QI=class{constructor(){this.ForEntityName="ATTDEF"}parseEntity(e,t){let i={type:t.value,xScale:1,textStyle:"STANDARD"};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 1:i.text=t.value,t=e.next();break;case 2:i.tag=t.value,t=e.next();break;case 3:i.prompt=t.value,t=e.next();break;case 7:i.textStyle=t.value,t=e.next();break;case 10:i.startPoint=vt(e),t=e.lastReadGroup;break;case 11:i.endPoint=vt(e),t=e.lastReadGroup;break;case 39:i.thickness=t.value,t=e.next();break;case 40:i.textHeight=t.value,t=e.next();break;case 41:i.xScale=t.value,t=e.next();break;case 50:i.rotation=t.value,t=e.next();break;case 51:i.obliqueAngle=t.value,t=e.next();break;case 70:i.invisible=!!(1&t.value),i.constant=!!(2&t.value),i.verificationRequired=!!(4&t.value),i.preset=!!(8&t.value),t=e.next();break;case 71:i.backwards=!!(2&t.value),i.mirrored=!!(4&t.value),t=e.next();break;case 72:i.horizontalJustification=t.value,t=e.next();break;case 73:i.fieldLength=t.value,t=e.next();break;case 74:i.verticalJustification=t.value,t=e.next();break;case 100:t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},e_=class{constructor(){this.ForEntityName="ATTRIB"}parseEntity(e,t){let i={type:t.value,xScale:1,textStyle:"STANDARD"};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 1:i.text=t.value,t=e.next();break;case 2:i.tag=t.value,t=e.next();break;case 3:i.prompt=t.value,t=e.next();break;case 7:i.textStyle=t.value,t=e.next();break;case 10:i.startPoint=vt(e),t=e.lastReadGroup;break;case 11:i.endPoint=vt(e),t=e.lastReadGroup;break;case 39:i.thickness=t.value,t=e.next();break;case 40:i.textHeight=t.value,t=e.next();break;case 41:i.xScale=t.value,t=e.next();break;case 50:i.rotation=t.value,t=e.next();break;case 51:i.obliqueAngle=t.value,t=e.next();break;case 70:i.invisible=!!(1&t.value),i.constant=!!(2&t.value),i.verificationRequired=!!(4&t.value),i.preset=!!(8&t.value),t=e.next();break;case 71:i.backwards=!!(2&t.value),i.mirrored=!!(4&t.value),t=e.next();break;case 72:i.horizontalJustification=t.value,t=e.next();break;case 73:i.fieldLength=t.value,t=e.next();break;case 74:i.verticalJustification=t.value,t=e.next();break;case 100:t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},t_=class{constructor(){this.ForEntityName="CIRCLE"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.center=vt(e),t=e.lastReadGroup;break;case 40:i.radius=t.value,t=e.next();break;case 50:i.startAngle=Math.PI/180*t.value,t=e.next();break;case 51:let r=Math.PI/180*t.value;r=0&&i.push({angle:e,origin:n,delta:s,dashPattern:o})}return i}function e2t(e,t){let i=[],r=t.next();for(;i.length0&&(i.colorIndex=t.value,i.color=b0(Math.abs(t.value)))))}t=e.next();break;default:fr(i,t),t=e.next()}return i}};function t2t(e){switch(e){case 40:return"DIMSCALE";case 41:return"DIMASZ";case 42:return"DIMEXO";case 44:return"DIMEXE";case 75:return"DIMSE1";case 76:return"DIMSE2";case 77:return"DIMTAD";case 140:return"DIMTXT";case 144:return"DIMLFAC";case 147:return"DIMGAP";case 176:return"DIMCLRD";case 178:return"DIMCLRT";case 271:return"DIMDEC";case 341:return"DIMLDRBLK";default:return null}}var o_=class{constructor(){this.ForEntityName="LINE"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.vertices.unshift(vt(e)),t=e.lastReadGroup;break;case 11:i.vertices.push(vt(e)),t=e.lastReadGroup;break;case 210:i.extrusionDirection=vt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},l_=class{constructor(){this.ForEntityName="LWPOLYLINE"}parseEntity(e,t){let i={type:t.value,vertices:[]},r=0;for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 38:i.elevation=t.value,t=e.next();break;case 39:i.thickness=t.value,t=e.next();break;case 70:i.shape=1==(1&t.value),i.hasContinuousLinetypePattern=128==(128&t.value),t=e.next();break;case 90:r=t.value,t=e.next();break;case 10:i.vertices.push(...r2t(r,e)),t=e.lastReadGroup;break;case 43:0!==t.value&&(i.constantWidth=t.value),t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}};function r2t(e,t){if(!e||e<=0)throw Error("n must be greater than 0 verticies");let i=[],r=!1,n=!1,s=t.lastReadGroup,a={};for(;!t.isEOF()&&0!==s.code&&!n;)switch(s.code){case 10:if(r){n=!0;continue}a.x=s.value,r=!0,s=t.next();break;case 20:a.y=s.value,s=t.next();break;case 30:a.z=s.value,s=t.next();break;case 40:a.startWidth=s.value,s=t.next();break;case 41:a.endWidth=s.value,s=t.next();break;case 42:0!=s.value&&(a.bulge=s.value),s=t.next();break;default:return r&&i.push(a),i}return i.push(a),r=!1,n=!1,i}var c_=class{constructor(){this.ForEntityName="MULTILEADER"}parseEntity(e,t){let i={type:t.value};function r(){for(;!e.isEOF();)switch(t.code){case 40:i.contextData.contentScale=t.value,t=e.next();break;case 10:i.contextData.contentBasePosition=vt(e),t=e.lastReadGroup;break;case 145:i.contextData.landingGap=t.value,t=e.next();break;case 290:i.contextData.hasMText=t.value,t=e.next();break;case 304:i.contextData.defaultTextContents=t.value,t=e.next();break;case 11:i.contextData.textNormalDirection=vt(e),t=e.lastReadGroup;break;case 12:i.contextData.textLocation=vt(e),t=e.lastReadGroup;break;case 13:i.contextData.textDirection=vt(e),t=e.lastReadGroup;break;case 140:i.contextData.arrowHeadSize=t.value,t=e.next();break;case 41:i.contextData.textHeight=t.value,t=e.next();break;case 42:i.contextData.textRotation=t.value,t=e.next();break;case 43:i.contextData.textWidth=t.value,t=e.next();break;case 44:default:t=e.next();break;case 45:i.contextData.textLineSpacingFactor=t.value,t=e.next();break;case 90:i.contextData.textColor=t.value,t=e.next();break;case 170:i.contextData.textLineSpacingStyle=t.value,t=e.next();break;case 171:i.contextData.textAttachment=t.value,t=e.next();break;case 172:i.contextData.textFlowDirection=t.value,t=e.next();break;case 141:i.contextData.textBackgroundScaleFactor=t.value,t=e.next();break;case 92:i.contextData.textBackgroundTransparency=t.value,t=e.next();break;case 291:i.contextData.textBackgroundColorOn=t.value,t=e.next();break;case 292:i.contextData.textBackgroundFillOn=t.value,t=e.next();break;case 293:i.contextData.textUseAutoHeight=t.value,t=e.next();break;case 173:i.contextData.textColumnType=t.value,t=e.next();break;case 142:i.contextData.textColumnWidth=t.value,t=e.next();break;case 143:i.contextData.textColumnGutterWidth=t.value,t=e.next();break;case 144:i.contextData.textColumnHeight=t.value,t=e.next();break;case 295:i.contextData.textUseWordBreak=t.value,t=e.next();break;case 296:i.contextData.hasBlock=t.value,t=e.next();break;case 341:i.contextData.blockContentId=t.value,t=e.next();break;case 14:i.contextData.blockContentNormalDirection=vt(e),t=e.lastReadGroup;break;case 15:i.contextData.blockContentPosition=vt(e),t=e.lastReadGroup;break;case 16:i.contextData.blockContentScale=t.value,t=e.next();break;case 46:i.contextData.blockContentRotation=t.value,t=e.next();break;case 93:i.contextData.blockContentColor=t.value,t=e.next();break;case 47:i.contextData.blockTransformationMatrix=_Me(e,47),t=e.lastReadGroup;break;case 110:i.contextData.planeOriginPoint=vt(e),t=e.lastReadGroup;break;case 111:i.contextData.planeXAxisDirection=vt(e),t=e.lastReadGroup;break;case 112:i.contextData.planeYAxisDirection=vt(e),t=e.lastReadGroup;break;case 297:i.contextData.planeNormalReversed=t.value,t=e.next();break;case 301:return;case 302:n(),t=e.lastReadGroup}}function n(){let r={leaderLines:[]};for(i.contextData.leaders.push(r);!e.isEOF();)switch(t.code){case 290:r.hasSetLastLeaderLinePoint=t.value,t=e.next();break;case 291:r.hasSetDoglegVector=t.value,t=e.next();break;case 10:r.lastLeaderLinePoint=vt(e),t=e.lastReadGroup;break;case 11:r.doglegVector=vt(e),t=e.lastReadGroup;break;case 90:r.leaderBranchIndex=t.value,t=e.next();break;case 40:r.doglegLength=t.value,t=e.next();break;case 303:return;case 304:s(),t=e.lastReadGroup;break;default:t=e.next()}}function s(){let r={vertices:[[]]};for(i.contextData.leaders[i.contextData.leaders.length-1].leaderLines.push(r);!e.isEOF();)switch(t.code){case 10:r.vertices[0].push(vt(e)),t=e.lastReadGroup;break;case 305:return;default:t=e.next()}}return i.contextData={leaders:[]},t=e.next(),function(){for(;!e.isEOF();)switch(t.code){case 0:return;case 340:i.leaderStyleId=t.value,t=e.next();break;case 170:i.leaderLineType=t.value,t=e.next();break;case 91:i.leaderLineColor=t.value,t=e.next();break;case 341:i.leaderLineTypeId=t.value,t=e.next();break;case 171:i.leaderLineWeight=t.value,t=e.next();break;case 41:i.doglegLength=t.value,t=e.next();break;case 290:i.enableLanding=t.value,t=e.next();break;case 291:i.enableDogLeg=t.value,t=e.next();break;case 342:i.arrowHeadId=t.value,t=e.next();break;case 42:i.arrowHeadSize=t.value,t=e.next();break;case 172:i.contentType=t.value,t=e.next();break;case 173:case 95:i.textLeftAttachmentType=t.value,t=e.next();break;case 174:i.textAngleType=t.value,t=e.next();break;case 175:i.textAlignmentType=t.value,t=e.next();break;case 343:i.textStyleId=t.value,t=e.next();break;case 92:i.textColor=t.value,t=e.next();break;case 292:i.enableFrameText=t.value,t=e.next();break;case 344:i.blockContentId=t.value,t=e.next();break;case 93:i.blockContentColor=t.value,t=e.next();break;case 10:i.blockContentScale=vt(e),t=e.lastReadGroup;break;case 43:i.blockContentRotation=t.value,t=e.next();break;case 176:i.blockContentConnectionType=t.value,t=e.next();break;case 293:i.enableAnotationScale=t.value,t=e.next();break;case 94:i.arrowHeadIndex=t.value,t=e.next();break;case 177:i.blockAttributeIndex=t.value,t=e.next();break;case 44:i.blockAttributeWidth=t.value,t=e.next();break;case 302:i.blockAttributeTextString=t.value,t=e.next();break;case 294:i.textDirectionNegative=t.value,t=e.next();break;case 178:i.textAlignInIPE=t.value,t=e.next();break;case 179:i.textAttachmentPoint=t.value,t=e.next();break;case 271:i.textAttachmentDirectionMText=t.value,t=e.next();break;case 272:i.textAttachmentDirectionBottom=t.value,t=e.next();break;case 273:i.textAttachmentDirectionTop=t.value,t=e.next();break;case 300:r(),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}}(),i}},u_=class{constructor(){this.ForEntityName="MTEXT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 3:case 1:i.text?i.text+=t.value:i.text=t.value,t=e.next();break;case 10:i.position=vt(e),t=e.lastReadGroup;break;case 7:i.textStyle=t.value,t=e.next();break;case 44:i.lineSpaceFactor=t.value,t=e.next();break;case 11:i.directionVector=vt(e),t=e.lastReadGroup;break;case 40:i.height=t.value,t=e.next();break;case 41:i.width=t.value,t=e.next();break;case 50:i.rotation=t.value,t=e.next();break;case 71:i.attachmentPoint=t.value,t=e.next();break;case 72:i.drawingDirection=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},h_=class{constructor(){this.ForEntityName="OLE2FRAME"}parseEntity(e,t){let i={type:t.value,binaryData:""};for(t=e.next();"OLE"!==t.value&&0!==t.code;)switch(t.code){case 3:i.documentType=t.value,t=e.next();break;case 70:i.version=t.value,t=e.next();break;case 10:i.leftUpX=t.value,t=e.next();break;case 20:i.leftUpY=t.value,t=e.next();break;case 30:i.leftUpZ=t.value,t=e.next();break;case 11:i.rightDownX=t.value,t=e.next();break;case 21:i.rightDownY=t.value,t=e.next();break;case 31:i.rightDownZ=t.value,t=e.next();break;case 90:i.lengthOfBinaryData=t.value,t=e.next();break;case 310:i.binaryData+=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},p_=class{constructor(){this.ForEntityName="POINT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.position=vt(e),t=e.lastReadGroup;break;case 39:i.thickness=t.value,t=e.next();break;case 210:i.extrusionDirection=vt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},d_=class{constructor(){this.ForEntityName="VERTEX"}parseEntity(e,t){var i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.x=t.value,t=e.next();break;case 20:i.y=t.value,t=e.next();break;case 30:i.z=t.value,t=e.next();break;case 40:case 41:case 50:t=e.next();break;case 42:0!=t.value&&(i.bulge=t.value),t=e.next();break;case 70:i.curveFittingVertex=0!=(1&t.value),i.curveFitTangent=0!=(2&t.value),i.splineVertex=0!=(8&t.value),i.splineControlPoint=0!=(16&t.value),i.threeDPolylineVertex=0!=(32&t.value),i.threeDPolylineMesh=0!=(64&t.value),i.polyfaceMeshVertex=0!=(128&t.value),t=e.next();break;case 71:i.faceA=t.value,t=e.next();break;case 72:i.faceB=t.value,t=e.next();break;case 73:i.faceC=t.value,t=e.next();break;case 74:i.faceD=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},f_=class{constructor(){this.ForEntityName="POLYLINE"}parseEntity(e,t){var i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:case 20:case 30:case 40:case 41:case 71:case 72:case 73:case 74:case 75:t=e.next();break;case 39:t=e.next(),i.thickness=t.value;break;case 70:i.shape=0!=(1&t.value),i.includesCurveFitVertices=0!=(2&t.value),i.includesSplineFitVertices=0!=(4&t.value),i.is3dPolyline=0!=(8&t.value),i.is3dPolygonMesh=0!=(16&t.value),i.is3dPolygonMeshClosed=0!=(32&t.value),i.isPolyfaceMesh=0!=(64&t.value),i.hasContinuousLinetypePattern=0!=(128&t.value),t=e.next();break;case 210:i.extrusionDirection=vt(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i.vertices=i2t(e,t),i}};function i2t(e,t){let i=new d_,r=[];for(;!e.isEOF();)if(0===t.code)if("VERTEX"===t.value)r.push(i.parseEntity(e,t)),t=e.lastReadGroup;else if("SEQEND"===t.value){n2t(e,t);break}return r}function n2t(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)if(101===t.code)for(;0!=t.code;)t=e.next();else fr(i,t),t=e.next();return i}var m_=class{constructor(){this.ForEntityName="RAY"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.vertices.unshift(vt(e)),t=e.lastReadGroup;break;case 11:i.directionVector=vt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},g_=class{constructor(){this.ForEntityName="REGION"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 70:i.modelerVersion=t.value,t=e.next();break;case 1:i.proprietaryData=t.value,t=e.next();break;case 3:i.proprietaryData+=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},v_=class{constructor(){this.ForEntityName="SEQEND"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)if(-2===t.code);else fr(i,t),t=e.next();return i}},y_=class{constructor(){this.ForEntityName="SOLID"}parseEntity(e,t){let i={type:t.value,points:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.points[0]=vt(e),t=e.lastReadGroup;break;case 11:i.points[1]=vt(e),t=e.lastReadGroup;break;case 12:i.points[2]=vt(e),t=e.lastReadGroup;break;case 13:i.points[3]=vt(e),t=e.lastReadGroup;break;case 210:i.extrusionDirection=vt(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},T_=class{constructor(){this.ForEntityName="SPLINE"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.controlPoints||(i.controlPoints=[]),i.controlPoints.push(vt(e)),t=e.lastReadGroup;break;case 11:i.fitPoints||(i.fitPoints=[]),i.fitPoints.push(vt(e)),t=e.lastReadGroup;break;case 12:i.startTangent=vt(e),t=e.lastReadGroup;break;case 13:i.endTangent=vt(e),t=e.lastReadGroup;break;case 40:i.knotValues||(i.knotValues=[]),i.knotValues.push(t.value),t=e.next();break;case 70:1&t.value&&(i.closed=!0),2&t.value&&(i.periodic=!0),4&t.value&&(i.rational=!0),8&t.value&&(i.planar=!0),16&t.value&&(i.planar=!0,i.linear=!0),t=e.next();break;case 71:i.degreeOfSplineCurve=t.value,t=e.next();break;case 72:i.numberOfKnots=t.value,t=e.next();break;case 73:i.numberOfControlPoints=t.value,t=e.next();break;case 74:i.numberOfFitPoints=t.value,t=e.next();break;case 210:i.normalVector=vt(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},E_=class{constructor(){this.ForEntityName="TEXT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.startPoint=vt(e),t=e.lastReadGroup;break;case 11:i.endPoint=vt(e),t=e.lastReadGroup;break;case 40:i.textHeight=t.value,t=e.next();break;case 41:i.xScale=t.value,t=e.next();break;case 50:i.rotation=t.value,t=e.next();break;case 1:i.text=t.value,t=e.next();break;case 72:i.halign=t.value,t=e.next();break;case 73:i.valign=t.value,t=e.next();break;case 7:i.textStyle=t.value,t=e.next();break;case 71:i.mirrored=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},b_=class{constructor(){this.ForEntityName="VIEWPORT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 68:i.viewportStatus=t.value,t=e.next();break;case 40:i.width_paperSpace=t.value,t=e.next();break;case 41:i.height_paperSpace=t.value,t=e.next();break;case 69:i.viewportId=t.value,t=e.next();break;case 10:i.centerPoint=vt(e),t=e.lastReadGroup;break;case 12:i.centerPoint_dcs=vt(e),t=e.lastReadGroup;break;case 13:i.snapBasePoint_dcs=vt(e),t=e.lastReadGroup;break;case 14:i.snapSpacing_dcs=vt(e),t=e.lastReadGroup;break;case 15:i.gridSpacing_dcs=vt(e),t=e.lastReadGroup;break;case 16:i.viewDirection=vt(e),t=e.lastReadGroup;break;case 17:i.viewTarget=vt(e),t=e.lastReadGroup;break;case 42:i.perspectiveLens=t.value,t=e.next();break;case 43:i.frontClippingPlaneZ=t.value,t=e.next();break;case 44:i.backClippingPlaneZ=t.value,t=e.next();break;case 45:i.viewHeight=t.value,t=e.next();break;case 50:i.snapAngle=t.value,t=e.next();break;case 51:i.viewTwistAngle=t.value,t=e.next();break;case 72:i.circleZoomPercent=t.value,t=e.next();break;case 331:i.frozenLayerHandles=i.frozenLayerHandles||[],i.frozenLayerHandles.push(t.value),t=e.next();break;case 90:i.viewportStatusFlags=t.value,t=e.next();break;case 340:i.viewportClippingBoundaryhandleId=t.value,t=e.next();break;case 1:i.plotStyleSheetName=t.value,t=e.next();break;case 281:i.renderMode=t.value,t=e.next();break;case 71:i.viewportFlag_ucs=t.value,t=e.next();break;case 74:i.ucsIcon=t.value,t=e.next();break;case 110:i.ucsOrigin=vt(e),t=e.lastReadGroup;break;case 111:i.ucsXAxis=vt(e),t=e.lastReadGroup;break;case 112:i.ucsYAxis=vt(e),t=e.lastReadGroup;break;case 345:i.ucsTableRecordHandle=t.value,t=e.next();break;case 346:i.baseUcsTableRecordHandle=t.value,t=e.next();break;case 79:i.orthographicType=t.value,t=e.next();break;case 146:i.elevation=t.value,t=e.next();break;case 170:i.shadePlotMode=t.value,t=e.next();break;case 61:i.frequency=t.value,t=e.next();break;case 292:i.lightingFlag=t.value,t=e.next();break;case 282:i.lightingType=t.value,t=e.next();break;case 141:i.viewBrightness=t.value,t=e.next();break;case 142:i.viewContrast=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},x_=class{constructor(){this.ForEntityName="XLINE"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.vertices.unshift(vt(e)),t=e.lastReadGroup;break;case 11:i.directionVector=vt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:fr(i,t),t=e.next()}return i}},tO=class{constructor(){this.ForObjectName="DICTIONARY"}parseObject(e,t){let i={type:t.value},r=[],n=[];for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 280:i.isHardOwner=1===t.value,t=e.next();break;case 281:i.cloningFlag=t.value,t=e.next();break;case 3:r.push(t.value),t=e.next();break;case 350:case 360:n.push(t.value),t=e.next();break;case 100:case 102:t=e.next();break;default:lh(i,t),t=e.next()}if(r.length!==n.length)throw new Error("The number of Dictionary entries does not match !");return i.entries={},r.forEach(((e,t)=>{i.entries[n[t]]=e})),i}},rO=class{constructor(){this.ForObjectName="LAYOUT"}parseObject(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 100:t=e.next();break;case 1:i.layoutName=t.value,t=e.next();break;case 70:i.flag=t.value,t=e.next();break;case 71:i.tabOrder=t.value,t=e.next();break;case 76:i.orthographicType=t.value,t=e.next();break;case 10:i.minLimit=vt(e),t=e.lastReadGroup;break;case 11:i.maxLimit=vt(e),t=e.lastReadGroup;break;case 12:i.basePoint=vt(e),t=e.lastReadGroup;break;case 13:i.origin=vt(e),t=e.lastReadGroup;break;case 14:i.minExtent=vt(e),t=e.lastReadGroup;break;case 15:i.maxExtent=vt(e),t=e.lastReadGroup;break;case 16:i.XAxis=vt(e),t=e.lastReadGroup;break;case 17:i.YAxis=vt(e),t=e.lastReadGroup;break;case 146:i.elevation=t.value,t=e.next();break;case 331:i.viewportHandle=t.value,t=e.next();break;default:lh(i,t),t=e.next()}return i.blockTableHandle=i.ownerHandle,i}},iO=class{constructor(){this.ForObjectName="SORTENTSTABLE"}parseObject(e,t){let i={type:t.value},r=!1;i.sortEntsObject={},i.sortEntsObject.entityHandles=[];let n=[];for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 5:r?(n.push(t.value),i.sortEntsObject.entityHandles.push(n),n=[]):i.handle=t.value,t=e.next();break;case 100:t=e.next(),r=!0;break;case 102:t=e.next();break;case 330:r?i.sortEntsObject.ownerHandle=t.value:i.ownerHandle=t.value,t=e.next();break;case 331:n.push(t.value),t=e.next();break;default:lh(i,t),t=e.next()}return i}},nO=class{constructor(){this.ForObjectName="SPATIAL_FILTER"}parseObject(e,t){let i,r,n={type:t.value};for(n.vertices=[],t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 11:n.origin=vt(e),t=e.lastReadGroup;break;case 70:n.numberOfPointsOnClipBoundary=t.value,2===n.numberOfPointsOnClipBoundary?(t=e.next(),i=vt(e),t=e.lastReadGroup,r=vt(e),t=e.lastReadGroup,n.vertices.push(i,{x:r.x,y:i.y},r,{x:i.x,y:r.y},i)):n.numberOfPointsOnClipBoundary>2?(n.vertices=s2t(n.numberOfPointsOnClipBoundary,e),t=e.lastReadGroup):t=e.next();break;case 71:n.clipBoundaryVisible=1===t.value,t=e.next();break;case 72:n.frontClippingPlaneFlag=1===t.value,t=e.next(),n.frontClippingPlaneFlag&&40===t.code&&(n.frontClippingPlaneDistance=t.value,t=e.next());break;case 73:n.backClippingPlaneFlag=1===t.value,t=e.next(),n.backClippingPlaneFlag&&41===t.code&&(n.backClippingPlaneDistance=t.value,t=e.next());break;case 100:case 102:t=e.next();break;case 210:n.extrusionDirectionX=t.value,t=e.next();break;case 220:n.extrusionDirectionY=t.value,t=e.next();break;case 230:n.extrusionDirectionZ=t.value,t=e.next();break;case 40:n.invertBlockMatrix=wMe(e,40),n.matrix=wMe(e,40),t=e.lastReadGroup;break;default:lh(n,t),t=e.next()}return n}};function s2t(e,t){t.next();let i=[];for(;i.length{e.on("data",(e=>{t+=e})),e.on("end",(()=>{try{r(i.parse(t))}catch(e){n(e)}})),e.on("error",(e=>{n(e)}))}))}_parse(e){let t={},i=0;if(!e.hasNext())throw Error("Empty file");let r,n=this;function s(){let t=null,i=null,n={};for(r=e.next();;){if(el(r,0,"ENDSEC")){t&&(n[t]=i);break}9===r.code?(t&&(n[t]=i),t=r.value):10===r.code?i={x:r.value}:20===r.code?i.y=r.value:30===r.code?i.z=r.value:i=r.value,r=e.next()}return r=e.next(),n}function a(){let t={};for(r=e.next();"EOF"!==r.value&&!el(r,0,"ENDSEC");)if(el(r,0,"BLOCK")){ne.trace("block {");let e=o();ne.trace("}"),m(e),e.name?t[e.name]=e:ne.error(`[DxfParser] Block with handle '${e.handle}' is missing a name, ignored!`)}else sd(r),r=e.next();return t}function o(){let t={};for(r=e.next();"EOF"!==r.value;){switch(r.code){case 1:t.xrefPath=r.value,r=e.next();break;case 2:t.name=r.value,r=e.next();break;case 3:t.name2=r.value,r=e.next();break;case 4:t.description=r.value,r=e.next();break;case 5:t.handle=r.value,r=e.next();break;case 8:t.layer=r.value,r=e.next();break;case 10:t.position=f(r),r=e.lastReadGroup;break;case 67:t.paperSpace=!(!r.value||1!==r.value),r=e.next();break;case 70:t.blockType=r.value,r=e.next();break;case 100:r=e.next();break;case 330:t.ownerHandle=r.value,r=e.next();break;case 0:if("ENDBLK"==r.value)break;t.entities=p(!0);break;default:sd(r),r=e.next()}if(el(r,0,"ENDBLK")){r=e.next();break}}return t}function l(){let t={};for(r=e.next();"EOF"!==r.value&&!el(r,0,"ENDSEC");)el(r,0,"TABLE")?(r=e.next(),c[r.value]?(ne.trace(r.value+" Table {"),t[c[r.value].tableName]=u(r),ne.trace("}")):ne.trace("Unhandled Table "+r.value)):r=e.next();return r=e.next(),t}let h="ENDTAB";function u(t){let i=c[t.value],n={},s=0;for(r=e.next();!el(r,0,h);)switch(r.code){case 5:n.handle=r.value,r=e.next();break;case 330:n.ownerHandle=r.value,r=e.next();break;case 100:"AcDbSymbolTable"===r.value||sd(r),r=e.next();break;case 70:s=r.value,r=e.next();break;case 0:r.value===i.dxfSymbolName?n[i.tableRecordsProperty]=i.parseTableRecords():(sd(r),r=e.next());break;default:sd(r),r=e.next()}let a=n[i.tableRecordsProperty];if(a){let e=a.constructor===Array?a.length:"object"==typeof a?Object.keys(a).length:void 0;s!==e&&ne.warn(`[DxfParser] Parsed ${e} ${i.dxfSymbolName}s but expected ${s}`)}return r=e.next(),n}let c={VPORT:{tableRecordsProperty:"viewPorts",tableName:"viewPort",dxfSymbolName:"VPORT",parseTableRecords:function(){let t=[],i={};for(ne.trace("ViewPort {"),r=e.next();!el(r,0,h);)switch(r.code){case 2:i.name=r.value,r=e.next();break;case 10:i.lowerLeftCorner=f(r),r=e.lastReadGroup;break;case 11:i.upperRightCorner=f(r),r=e.lastReadGroup;break;case 12:i.center=f(r),r=e.lastReadGroup;break;case 13:i.snapBasePoint=f(r),r=e.lastReadGroup;break;case 14:i.snapSpacing=f(r),r=e.lastReadGroup;break;case 15:i.gridSpacing=f(r),r=e.lastReadGroup;break;case 16:i.viewDirectionFromTarget=f(r),r=e.lastReadGroup;break;case 17:i.viewTarget=f(r),r=e.lastReadGroup;break;case 40:case 45:i.viewHeight=r.value,r=e.next();break;case 41:i.aspectRatio=r.value,r=e.next();break;case 42:i.lensLength=r.value,r=e.next();break;case 43:i.frontClippingPlane=r.value,r=e.next();break;case 44:i.backClippingPlane=r.value,r=e.next();break;case 50:i.snapRotationAngle=r.value,r=e.next();break;case 51:i.viewTwistAngle=r.value,r=e.next();break;case 79:i.orthographicType=r.value,r=e.next();break;case 110:i.ucsOrigin=f(r),r=e.lastReadGroup;break;case 111:i.ucsXAxis=f(r),r=e.lastReadGroup;break;case 112:i.ucsYAxis=f(r),r=e.lastReadGroup;break;case 281:i.renderMode=r.value,r=e.next();break;case 282:i.defaultLightingType=r.value,r=e.next();break;case 292:i.defaultLightingOn=r.value,r=e.next();break;case 330:i.ownerHandle=r.value,r=e.next();break;case 63:case 421:case 431:i.ambientColor=r.value,r=e.next();break;case 0:"VPORT"===r.value&&(ne.trace("}"),t.push(i),ne.trace("ViewPort {"),i={},r=e.next());break;default:sd(r),r=e.next()}return ne.trace("}"),t.push(i),t}},LTYPE:{tableRecordsProperty:"lineTypes",tableName:"lineType",dxfSymbolName:"LTYPE",parseTableRecords:function(){let t={},i={},s=0,a="",o=!1;for(ne.trace("LType {"),r=e.next();!el(r,0,"ENDTAB");)switch(r.code){case 2:i.name=r.value.toUpperCase(),a=i.name,r=e.next();break;case 3:i.description=r.value,r=e.next();break;case 9:case 44:case 45:case 46:case 70:case 75:default:r=e.next();break;case 40:i.patternLength=r.value,r=e.next();break;case 49:let l=r.value;o&&(l=Math.abs(l),o=!1),i.pattern.push(l),r=e.next();break;case 73:s=r.value,s>0&&(i.pattern=[]),r=e.next();break;case 74:0!==r.value&&(o=!0,n.unsupportedLineTypes[i.name]?n.unsupportedLineTypes[i.name]++:n.unsupportedLineTypes[i.name]=1),r=e.next();break;case 0:ne.trace("}"),s>0&&s!==i.pattern.length&&ne.warn("[DxfParser] lengths do not match on LTYPE pattern"),t[a]=i,i={},ne.trace("LType {"),r=e.next()}return ne.trace("}"),t[a]=i,t}},LAYER:{tableRecordsProperty:"layers",tableName:"layer",dxfSymbolName:"LAYER",parseTableRecords:function(){let t,i={},n={};for(ne.trace("Layer {"),r=e.next();!el(r,0,"ENDTAB");)switch(r.code){case 2:n.name=r.value,t=r.value,r=e.next();break;case 5:n.handle=r.value,r=e.next();break;case 62:n.visible=r.value>=0,n.colorIndex=Math.abs(r.value),n.color=c2t(n.colorIndex),r=e.next();break;case 70:n.flag=r.value,n.frozen=(1&n.flag)>0,r=e.next();break;case 420:n.color=Math.abs(r.value),r=e.next();break;case 6:n.lineType=r.value.toUpperCase(),r=e.next();break;case 370:n.lineweight=r.value,r=e.next();break;case 0:"LAYER"===r.value&&(ne.trace("}"),t&&(i[t]=n),ne.trace("Layer {"),n={},t=void 0,r=e.next());break;default:sd(r),r=e.next()}return ne.trace("}"),t&&(i[t]=n),i}},BLOCK_RECORD:{tableRecordsProperty:"blockRecords",tableName:"blockRecord",dxfSymbolName:"BLOCK_RECORD",parseTableRecords:function(){let t,i={},s={};for(ne.trace("BlockRecord {"),r=e.next();!el(r,0,"ENDTAB");)switch(r.code){case 5:s.handle=r.value,r=e.next();break;case 330:s.ownerHandle=r.value,r=e.next();break;case 2:s.blockName=r.value,t=s.blockName,r=e.next();break;case 340:s.layoutHandle=r.value,r=e.next();break;case 70:s.blockInsertUnits=r.value,r=e.next();break;case 280:s.blockExplodability=r.value,r=e.next();break;case 281:s.blockScalability=r.value,r=e.next();break;case 310:s.bitmap=r.value,r=e.next();break;case 0:if("BLOCK_RECORD"===r.value){ne.trace("}"),t&&(i[t]=s);let a=s.layoutHandle;t&&a&&a.length>0&&"0"!==a&&(n._layoutBlocks[a]=s),ne.trace("BlockRecord {"),s={},t=void 0,r=e.next()}else sd(r),r=e.next();break;default:sd(r),r=e.next()}ne.trace("}"),t&&(i[t]=s);let a=s.layoutHandle;return t&&a&&a.length>0&&"0"!==a&&(n._layoutBlocks[a]=s),i}},STYLE:{tableRecordsProperty:"styles",tableName:"style",dxfSymbolName:"STYLE",parseTableRecords:function(){let t,i={},n={};for(ne.trace("Style {"),r=e.next();!el(r,0,"ENDTAB");)switch(r.code){case 2:n.styleName=r.value,t=r.value,r=e.next();break;case 3:n.fontFile=r.value,r=e.next();break;case 4:n.bigFontFile=r.value,r=e.next();break;case 5:n.handle=r.value,r=e.next();break;case 7:n.textStyle=r.value,r=e.next();break;case 40:n.textHeight=r.value,r=e.next();break;case 41:n.xScale=r.value,r=e.next();break;case 42:n.priorTextHeight=r.value,r=e.next();break;case 50:n.rotation=r.value,r=e.next();break;case 70:default:r=e.next();break;case 71:n.mirroreType=r.value,r=e.next();break;case 330:n.ownerHandle=r.value,r=e.next();break;case 0:"STYLE"===r.value&&(ne.trace("}"),t&&(i[t]=n),ne.trace("Style {"),n={},t=void 0,r=e.next())}return ne.trace("}"),t&&(i[t]=n),i}},DIMSTYLE:{tableRecordsProperty:"dimStyles",tableName:"dimStyle",dxfSymbolName:"DIMSTYLE",parseTableRecords:function(){let t,i={},n={};for(ne.trace("DimStyle {"),r=e.next();!el(r,0,"ENDTAB");)switch(r.code){case 2:n.styleName=r.value,t=r.value,r=e.next();break;case 40:n.DIMSCALE=r.value,r=e.next();break;case 41:n.DIMASZ=r.value,r=e.next();break;case 42:n.DIMEXO=r.value,r=e.next();break;case 44:n.DIMEXE=r.value,r=e.next();break;case 75:n.DIMSE1=r.value,r=e.next();break;case 76:n.DIMSE2=r.value,r=e.next();break;case 77:n.DIMTAD=r.value,r=e.next();break;case 140:n.DIMTXT=r.value,r=e.next();break;case 144:n.DIMLFAC=r.value,r=e.next();break;case 147:n.DIMGAP=r.value,r=e.next();break;case 176:n.DIMCLRD=r.value,r=e.next();break;case 178:n.DIMCLRT=r.value,r=e.next();break;case 271:n.DIMDEC=r.value,r=e.next();break;case 341:n.DIMLDRBLK=r.value,r=e.next();break;case 70:default:r=e.next();break;case 0:"DIMSTYLE"===r.value&&(ne.trace("}"),t&&(i[t]=n),ne.trace("DimStyle {"),n={},t=void 0,r=e.next())}return ne.trace("}"),t&&(i[t]=n),i}}};function p(t){let i=[],s=t?"ENDBLK":"ENDSEC";for(t||(r=e.next());;)if(0===r.code){if(r.value===s)break;let t=n._entityHandlers[r.value];if(null==t){let t=r.value;n.unhandledEntities[t]||(n.unhandledEntities[t]=0),n.unhandledEntities[t]++,r=e.next();continue}{ne.trace(r.value+" {");let n=t.parseEntity(e,r);n&&(n.layer||(n.layer="0"),void 0===n.colorIndex&&(n.colorIndex=256),n.lineType||(n.lineType=QA)),r=e.lastReadGroup,ne.trace("}"),m(n),i.push(n)}}else r=e.next();return"ENDSEC"==s&&(r=e.next()),i}function d(){let t={};for(r=e.next();"EOF"!==r.value;)if(0===r.code){if("ENDSEC"===r.value)break;let i=n._objectHandlers[r.value];if(null==i){let t=r.value;n.unhandledObjects[t]||(n.unhandledObjects[t]=0),n.unhandledObjects[t]++,r=e.next();continue}{ne.trace(r.value+" {");let n=i.parseObject(e,r),s=r.value;r=e.lastReadGroup,ne.trace("}"),m(n),t[s]||(t[s]=[]),t[s].push(n)}}else r=e.next();return r=e.next(),t.LAYOUT&&(Object.keys(n._layoutBlocks).length!==t.LAYOUT.length&&ne.warn("[DxfParser] The number of layout and block associations does not match!"),t.LAYOUT.forEach((e=>{n._layoutBlocks[e.handle]&&(e.associatedBlockName=n._layoutBlocks[e.handle].blockName)})),t.LAYOUT.sort(((e,t)=>e.tabOrder-t.tabOrder))),t}function f(t){let i={},r=t.code;if(i.x=t.value,r+=10,(t=e.next()).code!=r)throw new Error(`Expected code for point value to be ${r} but got ${t.code}.`);return i.y=t.value,r+=10,(t=e.next()).code!=r||(i.z=t.value,t=e.next()),i}function m(e){if(!e)throw new TypeError("entity cannot be undefined or null");e.handle||(e.handle=(i++).toString())}return function(){for(r=e.next();999===r.code;)r=e.next();for(;!e.isEOF();)if(0===r.code&&"SECTION"===r.value){if(r=e.next(),2!==r.code){ne.error("Unexpected code %s after 0:SECTION",RMe(r)),r=e.next();continue}if("HEADER"===r.value)ne.trace("> HEADER"),t.header=s(),ne.trace("<");else if("TABLES"===r.value)ne.trace("> TABLES"),t.tables=l(),ne.trace("<");else if("BLOCKS"===r.value)ne.trace("> BLOCKS"),t.blocks=a(),ne.trace("<");else if("ENTITIES"===r.value)ne.trace("> ENTITIES"),t.entities=p(!1),ne.trace("<");else if("OBJECTS"===r.value)ne.trace("> OBJECTS"),t.objects=d(),ne.trace("<");else if("EOF"===r.value)ne.trace("EOF");else{let e=r.value;n.unhandledSections[e]?n.unhandledSections[e]++:n.unhandledSections[e]=1}}else r=e.next();n.unhandledSections={},n.unhandledEntities={},n.unhandledObjects={},n.unsupportedLineTypes={}}(),t}splitByLineSeparator(e){let t=[],i=0;for(let r=0,n=e.length;r(e.Added="Added",e.Removed="Removed",e.Modified="Modified",e.NoChange="NoChange",e))(L8||{}),Vs=1,aO=class{constructor(e,t){if(this.changes={},this.comparedBlocks=new Map,this.isComparingBlock=!1,this.isComparingDimension=!1,this.dxf1=e,this.dxf2=t,!e||!t)throw new Error("Invalid dxf data to compare!")}getLayerFrozen(e,t){var i,r,n;let s=null==(r=null==(i=e.tables)?void 0:i.layer)?void 0:r.layers;return s&&(null==(n=s[t.layer])?void 0:n.frozen)}compare(e){return ht(this,null,(function*(){this.changes={};let t=[],i=new Map;return this.dxf1.entities.forEach((e=>{if(!0!==e.inPaperSpace){let i=!0===this.getLayerFrozen(this.dxf1,e);!aO.ignoreEntityTypes.includes(e.type)&&!i&&t.push(e)}})),this.dxf2.entities.forEach((e=>{if(!0!==e.inPaperSpace){let t=!0===this.getLayerFrozen(this.dxf2,e);!aO.ignoreEntityTypes.includes(e.type)&&!t&&i.set(e.handle,e)}})),yield this.compareEntities(t,i,void 0,e),Promise.resolve(this.changes)}))}isDimensionBlock(e){return e.includes("*D")}compareInsertOrDemensionEntities(e,t,i,r){if(!e.block||!t.block)return;let n,s=e.block;if(this.isComparingBlock=!0,this.isDimensionBlock(s)){let i=this.dxf1.blocks[e.block],r=this.dxf2.blocks[t.block],a=Date.now();this.isComparingDimension=!0,n=this.compareBlock(i,r),this.isComparingDimension=!1,ne.debug(`[DxfCompare] compare block: ${s} cost ${(Date.now()-a)/1e3}s`)}else{if(!this.comparedBlocks.has(s)){let e=this.dxf1.blocks[s],t=this.dxf2.blocks[s],i=Date.now(),r=this.compareBlock(e,t);this.comparedBlocks.set(s,r),ne.debug(`[DxfCompare] compare block: ${s} cost ${(Date.now()-i)/1e3}s`)}n=this.comparedBlocks.get(s)}return null==n||n.forEach((t=>{if(t.parentHandles||(t.parentHandles=[]),i&&r)"Added"===t.type?t.parentHandles.push(r):"Removed"===t.type&&t.parentHandles.push(i);else{let i=[...t.parentHandles,e.handle];("Added"===t.type||"Removed"===t.type)&&(this.changes[Vs]=Dn(Br({id:Vs},t),{parentHandles:i})),Vs++}})),!i&&!r&&(this.isComparingBlock=!1),n}compareBlock(e,t){var i,r;let n=[],s=[];null==(i=null==e?void 0:e.entities)||i.forEach((e=>{"ATTDEF"!==e.type&&!this.bIgnoreChildEntitiesOriginalType(e)&&n.push(e)})),null==(r=null==t?void 0:t.entities)||r.forEach((e=>{"ATTDEF"!==e.type&&!this.bIgnoreChildEntitiesOriginalType(e)&&s.push(e)}));let a=[],o=[];for(let e=0;e0&&a.push(...n),i=!1,s.splice(e--,1);break}i=!1,s.splice(e--,1);break}i=!0}i&&(a.push({type:"Removed",handle:t.handle}),o.push(t.handle))}return s.forEach((e=>{o.includes(e.handle)||a.push({type:"Added",handle:e.handle})})),a}compareEntities(e,t,i,r){return ht(this,null,(function*(){var n,s;let a=e.length,o=Math.round(Math.pow(a,.5)),l=Date.now(),h=e=>ht(this,null,(function*(){if(r&&(e%o==0||e===a-1)){r(new ProgressEvent("compareProgress",{loaded:e+1,total:a}));let t=500,i=Date.now();(i-l>t||e===a-1)&&(yield xs.sleep(0),l=i)}}));for(let r=0;r\n\n // Clamp [0..1] range\n #define saturate(a) clamp(a, 0.0, 1.0)\n\n const float EPS = 0.000001;\n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n vec2 rotate(vec2 st, float rotation) {\n const float PI = 3.1415926;\n float angle = rotation * PI/180.0;\n float sine = sin(angle), cosine = cos(angle);\n return vec2(cosine * st.x - sine * st.y, cosine * st.y + sine * st.x);\n }\n\n vec2 translate(vec2 samplePosition, vec2 offset) {\n //move samplepoint in the opposite direction that we want to move shapes in\n return samplePosition - offset;\n }\n\n vec2 scale(vec2 samplePosition, float scale) {\n return samplePosition / scale;\n }\n\n float sdfLine(vec2 st, vec2 a, vec2 b) {\n vec2 ap = st - a;\n vec2 ab = b - a;\n return abs(((ap.x * ab.y) - (ab.x * ap.y))) / length(ab);\n }\n\n float drawSpaceLine(vec2 st, float distanceBetweenLines, float thick) {\n float dist = sdfLine(st , vec2(0.0, 0.0) , vec2(1.0, 0.0));\n \n //vec2 tt = dFdy(st);\n //float scale = (abs(tt.x)+abs(tt.y))/2.0;\n //float scale = length(fwidth(st)) * 0.5;\n // close to a pixel\n //float thick = 2.0;\n //thick = (thick * 0.5 - 0.5) * scale;\n\n float lineDistance = abs(fract(dist / distanceBetweenLines + 0.5) - 0.5) * distanceBetweenLines;\n //float distanceChange = fwidth(dist) * 0.5;\n //float thresold = smoothstep(thick - distanceChange, thick + distanceChange, lineDistance);\n //float thresold = step(thick,lineDistance);\n // remove gradient\n float thresold = step(thick,lineDistance);\n\n return saturate(thresold);\n }\n\n float drawSolidLine(PatternLine patternLine, float thick) {\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta;\n float distanceBetweenLines = length(delta);\n\n origin = rotate(origin,u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n return drawSpaceLine(st, distanceBetweenLines , thick);\n }\n\n int getPatternIndex(PatternLine patternLine, float u ) {\n u = mod(u, patternLine.patternLength);\n float distance = 0.0;\n\n #pragma unroll_loop_start\n for(int i = 1; i < patternLine.patternSum.length(); i++){\n if(u < patternLine.patternSum[i]) {\n distance = u - patternLine.patternSum[i-1];\n return i - 1;\n }\n }\n #pragma unroll_loop_end\n\n return -1;\n }\n\n float drawDashedLine(PatternLine patternLine, float thick){\n float thresold = 1.0;\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta; \n float distanceBetweenLines = length(delta.y);\n\n origin = rotate(origin, u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n float offsetX = st.y * delta.x/delta.y;\n float u = st.x - offsetX;\n int index = getPatternIndex(patternLine, u);\n if(index < 0){\n return thresold;\n }\n\n float size = patternLine.pattern[index];\n if(size >= 0.0) {\n thresold = drawSpaceLine(st, distanceBetweenLines , thick);\n }\n \n return thresold;\n }\n\n float drawLine(PatternLine patternLine, float thick) {\n float t = 0.0;\n if(patternLine.patternLength > 0.0) {\n t = drawDashedLine(patternLine, thick);\n } else {\n t = drawSolidLine(patternLine, thick);\n }\n return t;\n }\n\n void main() {\n #include \n \n if(u_cameraZoom < EPS){\n gl_FragColor = vec4(u_color, 1.0);\n return;\n }\n\n vec2 worldScale = getWorldScale();\n float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n float thick = (0.7 / averageScale) / u_cameraZoom;\n\n float total = 0.0;\n\n#if ${e.length} > 1\n #pragma unroll_loop_start\n for (int i = 0; i < u_patternLines.length(); i++) {\n PatternLine pl = u_patternLines[i];\n float t = drawLine(pl, thick);\n total += (1.0 - t);\n }\n #pragma unroll_loop_end\n#else\n float t = drawLine(u_patternLines[0], thick);\n total += (1.0 - t);\n#endif\n\n total = saturate(total);\n if (total < 0.01) {\n discard;\n }\n\n gl_FragColor = vec4(u_color * total, 1.0);\n }\n `;return new Yt({uniforms:n,vertexShader:"\n varying vec3 v_pos;\n\n #include \n void main() {\n //vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n v_pos = position;\n\n #include \n #include \n #include \n }",fragmentShader:s,clipping:!0})}qn.ENTITY_COLOR_ADDED=65280,qn.ENTITY_COLOR_REMOVED=16711680,qn.ENTITY_COLOR_NO_CHANGE=10066329,qn.ENTITY_COLOR_MARKUP=16744231,qn.ignoreEntityTypes=["ATTRIB","SEQEND"];var oO=class{static createLineShaderMaterial(e,t,i,r,n){let s=0,a=[];for(let t=0;t\n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n void main() {\n\n #include \n\n // vec2 worldScale = getWorldScale();\n // float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n // When zoomed out to a certain extent, it is displayed as a solid line.\n if(patternLength * u_viewportScale * u_cameraZoom/1.5 < 1.0){\n gl_FragColor = vec4(u_color, opacity);\n return;\n }\n\n float pos = mod(vLineDistance, patternLength * u_viewportScale);\n\n for ( int i = 0; i < ${e.length}; i++ ) {\n pos = pos - abs(pattern[i] * u_viewportScale);\n if ( pos < 0.0 ) {\n if ( pattern[i] > 0.0 ) {\n gl_FragColor = vec4(u_color, opacity);\n break;\n }\n discard;\n }\n }\n }`;return new Yt({uniforms:o,vertexShader:"\n attribute float lineDistance;\n varying float vLineDistance;\n\n #include \n\n void main() {\n vLineDistance = lineDistance;\n\n #include \n #include \n #include \n }",fragmentShader:l,clipping:!0})}},B8={};QS(B8,{default:()=>U8});var H8={};QS(H8,{default:()=>F8});var F8=(e,t)=>void 0===t||0==+t?Math.round(e):(e=+e,t=+t,isNaN(e)||"number"!=typeof t||t%1!=0?NaN:(e=e.toString().split("e"),+((e=(e=Math.round(+(e[0]+"e"+(e[1]?+e[1]-t:-t)))).toString().split("e"))[0]+"e"+(e[1]?+e[1]+t:t)))),U8=(e,t,i,r,n)=>{let s=i.length,a=i[0].length;if(e<0||e>1)throw new Error("t out of bounds [0,1]: "+e);if(t<1)throw new Error("degree must be at least 1 (linear)");if(t>s-1)throw new Error("degree must be less than or equal to point count - 1");if(r){if(r.length!==s+t+1)throw new Error("bad knot vector length")}else{r=[];for(let e=0;e=r[o]&&e<=r[o+1]);o++);let c,p=[];for(let e=0;eo-t-1+i;n--){c=(e-r[n])/(r[n+t+1-i]-r[n]);for(let e=0;e{if(!e)return[];e=e.replace(/%%(.)/g,((e,t)=>u2t[t]||t));let i,r=null==t?void 0:t.encoding,n=r instanceof TextDecoder?r:void 0,s="",a=[],o=e=>{s&&(a.push(s),s=""),a.push(e)};for(let t=0;t(e=d2t(e),t?f2t(e,t):e),d2t=e=>e.replace(/\\[uU]\+([0-9a-fA-F]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))),f2t=(e,t)=>{let i=t instanceof TextDecoder?t:new TextDecoder(t);return e.replace(/\\[mM]\+[0|1]([0-9a-fA-F]{2})([0-9a-fA-F]{2})/g,((e,r,n)=>(i=i||new TextDecoder(t)).decode(new Uint8Array([parseInt(r,16),parseInt(n,16)]))))},cO=(e,t)=>{let i=0,r={text:""},n=[r],s=(e=p2t(e,null==t?void 0:t.encoding)).matchAll(/%%(\d\d\d|.)/g);for(let t of s){r.text+=e.slice(i,t.index);let s=t[1].toLowerCase(),a=h2t[s];a?r.text+=a:3===s.length?r.text+=String.fromCodePoint(+s):"k"===s||"o"===s||"u"===s?(r=Dn(Br({},r),{text:""}),r[s]?delete r[s]:r[s]=1,n.push(r)):r.text+=s,i=t.index+t[0].length}return r.text+=e.slice(i),n.filter((e=>e.text))},k8=(e=>(e.Unitless="Unitless",e.Inches="Inches",e.Feet="Feet",e.Millimeters="Millimeters",e.Centimeters="Centimeters",e.Meters="Meters",e))(k8||{}),DMe=e=>"Unitless"===e?1:"Inches"===e?.0254:"Feet"===e?.3048:"Millimeters"===e?.001:"Centimeters"===e?.01:("Meters"===e||console.warn(`[Units] Unsupported unit '${e}', will return 1 for unit scale.`),1),G8=(e,t)=>DMe(e)/DMe(t),XT="0.2.25",CMe="VERSION",g2t=()=>window.localStorage.getItem(CMe),v2t=()=>{window.localStorage.setItem(CMe,XT)},AMe=()=>g2t()!==XT&&(v2t(),!0),$T=class{constructor(){this.DATABASE_NAME="gemini_viewer_db",this.TABLES=[{name:"viewpoint",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"annotation",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"dxfdata",options:{keyPath:"dxfDataId",autoIncrement:!1},indexArray:[]},{name:"fontdata",options:{keyPath:"url",autoIncrement:!0},indexArray:[]}],this.db=void 0}static instance(){return $T._instance||($T._instance=new $T),$T._instance}getDatabase(){return ht(this,null,(function*(){let e=yield this.getDB(this.DATABASE_NAME);return this.db||(e.close(),AMe()&&(yield this.deleteDataBase(this.DATABASE_NAME)),e=yield this.getUpgradedDB(e)),e.onclose=()=>{this.db=void 0,ne.debug(`[DB] Db ${e.name} is closed.`)},e.onerror=t=>{this.db=void 0,ne.debug(`[DB] Db ${e.name} encountered error.`,t)},e.onabort=t=>{this.db=void 0,ne.debug(`[DB] Db ${e.name} aborted.`,t)},e.onversionchange=e=>{ne.debug("onversionchange",e)},this.db=e,Promise.resolve(this.db)}))}closeDatabase(){this.db&&this.db.close()}deleteDataBase(e){return new Promise(((t,i)=>{let r=window.indexedDB.deleteDatabase(e);r.onerror=e=>{ne.debug(e),i(e)},r.onsuccess=i=>{let r=i.target;ne.debug(`[DB] Db ${e} delete old version ${i.oldVersion}.`),t(r)}}))}getDB(e){return ht(this,null,(function*(){return new Promise(((t,i)=>{let r=window.indexedDB.open(e);r.onerror=i,r.onsuccess=e=>{let i=e.target.result;ne.debug(`[DB] Db ${i.name} opened (version ${i.version}).`),t(i)}}))}))}getUpgradedDB(e){return ht(this,null,(function*(){return new Promise(((t,i)=>{ne.debug(`[DB] Upgrading db ${e.name} (version ${e.version})`);let r=window.indexedDB.open(e.name,e.version+1);r.onerror=i,r.onblocked=e=>{ne.debug("onblocked",e)},r.onupgradeneeded=e=>{e.target.transaction.oncomplete=()=>{ne.debug(`[DB] Upgrade is done (new version: ${t.version}).`)};let t=e.target.result,i=[];for(let e=0;e0&&Promise.all(i).then((()=>{ne.debug(`[DB] All(${i.length}) tables created.`)}))},r.onsuccess=e=>{let i=e.target.result;ne.debug(`[DB] Db ${i.name} opened (version ${i.version}).`),t(i)}}))}))}createTable(e,t,i,r){return ht(this,null,(function*(){return new Promise((n=>{let s=e.createObjectStore(t,i);r&&r.forEach((e=>{s.createIndex(e.name,e.fields,{unique:e.unique})})),ne.debug(`[DB] Table ${t} created.`),n(e)}))}))}},ss=$T;ss._instance=void 0;var ch=class{constructor(){if(this.db=void 0,this.isCreatingTable=!1,-1===ss.instance().TABLES.findIndex((e=>e.name===this.tableName())))throw new Error(`Make sure to add table '${this.tableName()}' to IndexedDbManager.TABLES!`)}tableName(){throw new Error("Derived class have to override 'tableName', and set a proper table name!")}add(e,t,i){let r=this.tableName();ss.instance().getDatabase().then((n=>{let s=n.transaction([r],"readwrite").objectStore(r).add(e);s.onsuccess=t,s.onerror=i})).finally((()=>{ss.instance().closeDatabase()})).catch((e=>{i&&i(e)}))}save(e,t,i){let r=this.tableName();ss.instance().getDatabase().then((n=>{let s=n.transaction([r],"readwrite").objectStore(r).put(e);s.onsuccess=t,s.onerror=i})).finally((()=>{ss.instance().closeDatabase()}))}delete(e,t,i){let r=this.tableName();ss.instance().getDatabase().then((n=>{let s=n.transaction([r],"readwrite").objectStore(r).delete(e);s.onsuccess=t,s.onerror=i})).finally((()=>{ss.instance().closeDatabase()}))}update(){ss.instance().getDatabase().then((()=>{}))}query(e,t){let i=this.tableName();ss.instance().getDatabase().then((r=>{let n=r.transaction([i],"readonly").objectStore(i).openCursor();n.onsuccess=t=>{let i=t.target.result;i&&i.continue(),e&&e(i)},n.onerror=t})).finally((()=>{ss.instance().closeDatabase()}))}queryAll(e,t){let i=this.tableName();ss.instance().getDatabase().then((r=>{let n=r.transaction([i],"readonly").objectStore(i).getAll();n.onsuccess=t=>{e&&e(n.result)},n.onerror=t})).finally((()=>{ss.instance().closeDatabase()}))}clearAll(e,t){let i=this.tableName();ss.instance().getDatabase().then((r=>{let n=r.transaction([i],"readwrite").objectStore(i).clear();n.onsuccess=t=>{e&&e(t)},n.onerror=e=>{t&&t(e)}})).finally((()=>{ss.instance().closeDatabase()}))}},KT=class extends ch{tableName(){return"annotation"}static instance(){return KT._instance||(KT._instance=new KT),KT._instance}query(e,t,i){let r=[];super.query((i=>{i?!i.value||i.value.projectId!==e||r.push(i.value):t&&t(r)}),(e=>{console.log(e)}))}},V8=KT;V8._instance=void 0;var ZT=class extends ch{tableName(){return"viewpoint"}static instance(){return ZT._instance||(ZT._instance=new ZT),ZT._instance}query(e,t,i){let r=[];super.query((i=>{i?!i.value||i.value.projectId!==e||r.push(i.value):t&&t(r)}),(e=>{i&&i(),console.log(e)}))}},z8=ZT;z8._instance=void 0;var JT=class extends ch{tableName(){return"dxfdata"}static instance(){return JT._instance||(JT._instance=new JT),JT._instance}query(e,t,i){let r=[],n=this.tableName();ss.instance().getDatabase().then((s=>{let a=s.transaction([n],"readonly").objectStore(n).get(e);a.onerror=e=>{i&&i(e),ne.info("[DxfDataTable] Failed to query !",e)},a.onsuccess=()=>{a.result&&r.push(a.result),t&&t(r)}})).finally((()=>{ss.instance().closeDatabase()}))}},QT=JT;QT._instance=void 0;var _0=class extends ch{tableName(){return"fontdata"}static instance(){return _0._instance||(_0._instance=new _0),_0._instance}query(e,t,i){let r;super.query((i=>{i?!i.value||i.value.url!==e||(r=i.value):t&&t(r)}),(e=>{i&&i(),console.log(e)}))}queryAll(){return ht(this,null,(function*(){return new Promise(((e,t)=>{U7(_0.prototype,this,"queryAll").call(this,(t=>{e(t)}),(e=>{t(e)}))}))}))}},uh=_0;uh._instance=void 0;var hO,OMe=(e=>(e[e.Horizontal=0]="Horizontal",e[e.Vertical=1]="Vertical",e[e.All=2]="All",e))(OMe||{}),S0=(e=>(e[e.Shapes=0]="Shapes",e[e.Bigfont=1]="Bigfont",e[e.Unifont=2]="Unifont",e))(S0||{}),uO=12,ad=class extends Qa{constructor(e,t){super(),this.width=0,this.lastPoint=e,this.polyLines=t,this.width=this.calcWidth(t)}offset(e){let t=[];for(let i=0;i>8}}return t.subarray(0,i)}var T2t="啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座锕嗳嫒瑷暧霭谙铵鹌媪骜鳌钯呗钣鸨龅鹎贲锛荜哔滗铋筚跸苄缏笾骠飑飙镖镳鳔傧缤槟殡膑镔髌鬓禀饽钹鹁钸骖黪恻锸侪钗冁谄谶蒇忏婵骣觇禅镡伥苌怅阊鲳砗伧谌榇碜龀枨柽铖铛饬鸱铳俦帱雠刍绌蹰钏怆缍鹑辍龊鹚苁骢枞辏撺锉鹾哒鞑骀绐殚赕瘅箪谠砀裆焘镫籴诋谛绨觌镝巅钿癫铫鲷鲽铤铥岽鸫窦渎椟牍笃黩簖怼镦炖趸铎谔垩阏轭锇锷鹗颚颛鳄诶迩铒鸸鲕钫鲂绯镄鲱偾沣凫驸绂绋赙麸鲋鳆钆赅尴擀绀戆睾诰缟锆纥镉颍亘赓绠鲠诟缑觏诂毂钴锢鸪鹄鹘鸹掴诖掼鹳鳏犷匦刿妫桧鲑鳜衮绲鲧埚呙帼椁蝈铪阚绗颉灏颢诃阖蛎黉讧荭闳鲎浒鹕骅桦铧奂缳锾鲩鳇诙荟哕浍缋珲晖诨馄阍钬镬讦诘荠叽哜骥玑觊齑矶羁虿跻霁鲚鲫郏浃铗镓蛲谏缣戋戬睑鹣笕鲣鞯绛缰挢峤鹪鲛疖颌鲒卺荩馑缙赆觐刭泾迳弪胫靓阄鸠鹫讵屦榉飓钜锔窭龃锩镌隽谲珏皲剀垲忾恺铠锴龛闶钪铐骒缂轲钶锞颔龈铿喾郐哙脍狯髋诓诳邝圹纩贶匮蒉愦聩篑阃锟鲲蛴崃徕涞濑赉睐铼癞籁岚榄斓镧褴阆锒唠崂铑铹痨鳓诔缧俪郦坜苈莅蓠呖逦骊缡枥栎轹砺锂鹂疠粝跞雳鲡鳢蔹奁潋琏殓裢裣鲢魉缭钌鹩蔺廪檩辚躏绫棂蛏鲮浏骝绺镏鹨茏泷珑栊胧砻偻蒌喽嵝镂瘘耧蝼髅垆撸噜闾泸渌栌橹轳辂辘氇胪鸬鹭舻鲈脔娈栾鸾銮囵荦猡泺椤脶镙榈褛锊呒唛嬷杩劢缦镘颡鳗麽扪焖懑钔芈谧猕祢渑腼黾缈缪闵缗谟蓦馍殁镆钼铙讷铌鲵辇鲶茑袅陧蘖嗫颟蹑苎咛聍侬哝驽钕傩讴怄瓯蹒疱辔纰罴铍谝骈缥嫔钋镤镨蕲骐绮桤碛颀颃鳍佥荨悭骞缱椠钤嫱樯戗炝锖锵镪羟跄诮谯荞缲硗跷惬锲箧锓揿鲭茕蛱巯赇虮鳅诎岖阒觑鸲诠绻辁铨阕阙悫荛娆桡饪轫嵘蝾缛铷颦蚬飒毵糁缫啬铯穑铩鲨酾讪姗骟钐鳝垧殇觞厍滠畲诜谂渖谥埘莳弑轼贳铈鲥绶摅纾闩铄厮驷缌锶鸶薮馊飕锼谡稣谇荪狲唢睃闼铊鳎钛鲐昙钽锬顸傥饧铴镗韬铽缇鹈阗粜龆鲦恸钭钍抟饨箨鼍娲腽纨绾辋诿帏闱沩涠玮韪炜鲔阌莴龌邬庑怃妩骛鹉鹜饩阋玺觋硖苋莶藓岘猃娴鹇痫蚝籼跹芗饷骧缃飨哓潇骁绡枭箫亵撷绁缬陉荥馐鸺诩顼谖铉镟谑泶鳕埙浔鲟垭娅桠氩厣赝俨兖谳恹闫酽魇餍鼹炀轺鹞鳐靥谒邺晔烨诒呓峄饴怿驿缢轶贻钇镒镱瘗舣铟瘾茔莺萦蓥撄嘤滢潆璎鹦瘿颏罂镛莸铕鱿伛俣谀谕蓣嵛饫阈妪纡觎欤钰鹆鹬龉橼鸢鼋钺郓芸恽愠纭韫殒氲瓒趱錾驵赜啧帻箦谮缯谵诏钊谪辄鹧浈缜桢轸赈祯鸩诤峥钲铮筝骘栉栀轵轾贽鸷蛳絷踬踯觯锺纣绉伫槠铢啭馔颞骓缒诼镯谘缁辎赀眦锱龇鲻偬诹驺鲰镞缵躜鳟讠谫郄勐凼坂垅垴埯埝苘荬荮莜莼菰藁揸吒吣咔咝咴噘噼嚯幞岙嵴彷徼犸狍馀馇馓馕愣憷懔丬溆滟溷漤潴澹甯纟绔绱珉枧桊桉槔橥轱轷赍肷胨飚煳煅熘愍淼砜磙眍钚钷铘铞锃锍锎锏锘锝锪锫锿镅镎镢镥镩镲稆鹋鹛鹱疬疴痖癯裥襁耢颥螨麴鲅鲆鲇鲞鲴鲺鲼鳊鳋鳘鳙鞒鞴齄",NMe="啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案骯昂盎凹敖熬翺襖傲奧懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百擺佰敗拜稗斑班搬扳般頒板版扮拌伴瓣半辦絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剝薄雹保堡飽寶抱報暴豹鮑爆杯碑悲卑北輩背貝鋇倍狽備憊焙被奔苯本笨崩繃甭泵蹦迸逼鼻比鄙筆彼碧蓖蔽畢斃毖幣庇痹閉敝弊必辟壁臂避陛鞭邊編貶扁便變卞辨辯辮遍標彪膘表鱉憋別癟彬斌瀕濱賓擯兵冰柄丙秉餅炳病並玻菠播撥缽波博勃搏鉑箔伯帛舶脖膊渤泊駁捕蔔哺補埠不布步簿部怖擦猜裁材才財睬踩采彩菜蔡餐參蠶殘慚慘燦蒼艙倉滄藏操糙槽曹草廁策側冊測層蹭插叉茬茶查碴搽察岔差詫拆柴豺攙摻蟬饞讒纏鏟產闡顫昌猖場嘗常長償腸廠敞暢唱倡超抄鈔朝嘲潮巢吵炒車扯撤掣徹澈郴臣辰塵晨忱沈陳趁襯撐稱城橙成呈乘程懲澄誠承逞騁秤吃癡持匙池遲弛馳恥齒侈尺赤翅斥熾充沖蟲崇寵抽酬疇躊稠愁籌仇綢瞅醜臭初出櫥廚躇鋤雛滁除楚礎儲矗搐觸處揣川穿椽傳船喘串瘡窗幢床闖創吹炊捶錘垂春椿醇唇淳純蠢戳綽疵茨磁雌辭慈瓷詞此刺賜次聰蔥囪匆從叢湊粗醋簇促躥篡竄摧崔催脆瘁粹淬翠村存寸磋撮搓措挫錯搭達答瘩打大呆歹傣戴帶殆代貸袋待逮怠耽擔丹單鄲撣膽旦氮但憚淡誕彈蛋當擋黨蕩檔刀搗蹈倒島禱導到稻悼道盜德得的蹬燈登等瞪凳鄧堤低滴迪敵笛狄滌翟嫡抵底地蒂第帝弟遞締顛掂滇碘點典靛墊電佃甸店惦奠澱殿碉叼雕雕刁掉吊釣調跌爹碟蝶叠諜疊丁盯叮釘頂鼎錠定訂丟東冬董懂動棟侗恫凍洞兜抖鬥陡豆逗痘都督毒犢獨讀堵睹賭杜鍍肚度渡妒端短鍛段斷緞堆兌隊對墩噸蹲敦頓囤鈍盾遁掇哆多奪垛躲朵跺舵剁惰墮蛾峨鵝俄額訛娥惡厄扼遏鄂餓恩而兒耳爾餌洱二貳發罰筏伐乏閥法琺藩帆番翻樊礬釩繁凡煩反返範販犯飯泛坊芳方肪房防妨仿訪紡放菲非啡飛肥匪誹吠肺廢沸費芬酚吩氛分紛墳焚汾粉奮份忿憤糞豐封楓蜂峰鋒風瘋烽逢馮縫諷奉鳳佛否夫敷膚孵扶拂輻幅氟符伏俘服浮涪福袱弗甫撫輔俯釜斧脯腑府腐赴副覆賦復傅付阜父腹負富訃附婦縛咐噶嘎該改概鈣蓋溉幹甘桿柑竿肝趕感稈敢贛岡剛鋼缸肛綱崗港杠篙臯高膏羔糕搞鎬稿告哥歌擱戈鴿胳疙割革葛格蛤閣隔鉻個各給根跟耕更庚羹埂耿梗工攻功恭龔供躬公宮弓鞏汞拱貢共鉤勾溝茍狗垢構購夠辜菇咕箍估沽孤姑鼓古蠱骨谷股故顧固雇刮瓜剮寡掛褂乖拐怪棺關官冠觀管館罐慣灌貫光廣逛瑰規圭矽歸龜閨軌鬼詭癸桂櫃跪貴劊輥滾棍鍋郭國果裹過哈骸孩海氦亥害駭酣憨邯韓含涵寒函喊罕翰撼捍旱憾悍焊汗漢夯杭航壕嚎豪毫郝好耗號浩呵喝荷菏核禾和何合盒貉閡河涸赫褐鶴賀嘿黑痕很狠恨哼亨橫衡恒轟哄烘虹鴻洪宏弘紅喉侯猴吼厚候後呼乎忽瑚壺葫胡蝴狐糊湖弧虎唬護互滬戶花嘩華猾滑畫劃化話槐徊懷淮壞歡環桓還緩換患喚瘓豢煥渙宦幻荒慌黃磺蝗簧皇凰惶煌晃幌恍謊灰揮輝徽恢蛔回毀悔慧卉惠晦賄穢會燴匯諱誨繪葷昏婚魂渾混豁活夥火獲或惑霍貨禍擊圾基機畸稽積箕肌饑跡激譏雞姬績緝吉極棘輯籍集及急疾汲即嫉級擠幾脊己薊技冀季伎祭劑悸濟寄寂計記既忌際繼紀嘉枷夾佳家加莢頰賈甲鉀假稼價架駕嫁殲監堅尖箋間煎兼肩艱奸緘繭檢柬堿鹼揀撿簡儉剪減薦檻鑒踐賤見鍵箭件健艦劍餞漸濺澗建僵姜將漿江疆蔣槳獎講匠醬降蕉椒礁焦膠交郊澆驕嬌嚼攪鉸矯僥腳狡角餃繳絞剿教酵轎較叫窖揭接皆稭街階截劫節莖睛晶鯨京驚精粳經井警景頸靜境敬鏡徑痙靖竟競凈炯窘揪究糾玖韭久灸九酒廄救舊臼舅咎就疚鞠拘狙疽居駒菊局咀矩舉沮聚拒據巨具距踞鋸俱句懼炬劇捐鵑娟倦眷卷絹撅攫抉掘倔爵桔傑捷睫竭潔結解姐戒藉芥界借介疥誡屆巾筋斤金今津襟緊錦僅謹進靳晉禁近燼浸盡勁荊兢覺決訣絕均菌鈞軍君峻俊竣浚郡駿喀咖卡咯開揩楷凱慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕顆科殼咳可渴克刻客課肯啃墾懇坑吭空恐孔控摳口扣寇枯哭窟苦酷庫褲誇垮挎跨胯塊筷儈快寬款匡筐狂框礦眶曠況虧盔巋窺葵奎魁傀饋愧潰坤昆捆困括擴廓闊垃拉喇蠟臘辣啦萊來賴藍婪欄攔籃闌蘭瀾讕攬覽懶纜爛濫瑯榔狼廊郎朗浪撈勞牢老佬姥酪烙澇勒樂雷鐳蕾磊累儡壘擂肋類淚棱楞冷厘梨犁黎籬貍離漓理李裏鯉禮莉荔吏栗麗厲勵礫歷利傈例俐痢立粒瀝隸力璃哩倆聯蓮連鐮廉憐漣簾斂臉鏈戀煉練糧涼梁粱良兩輛量晾亮諒撩聊僚療燎寥遼潦了撂鐐廖料列裂烈劣獵琳林磷霖臨鄰鱗淋凜賃吝拎玲菱零齡鈴伶羚淩靈陵嶺領另令溜琉榴硫餾留劉瘤流柳六龍聾嚨籠窿隆壟攏隴樓婁摟簍漏陋蘆盧顱廬爐擄鹵虜魯麓碌露路賂鹿潞祿錄陸戮驢呂鋁侶旅履屢縷慮氯律率濾綠巒攣孿灤卵亂掠略掄輪倫侖淪綸論蘿螺羅邏鑼籮騾裸落洛駱絡媽麻瑪碼螞馬罵嘛嗎埋買麥賣邁脈瞞饅蠻滿蔓曼慢漫謾芒茫盲氓忙莽貓茅錨毛矛鉚卯茂冒帽貌貿麽玫枚梅酶黴煤沒眉媒鎂每美昧寐妹媚門悶們萌蒙檬盟錳猛夢孟瞇醚靡糜迷謎彌米秘覓泌蜜密冪棉眠綿冕免勉娩緬面苗描瞄藐秒渺廟妙蔑滅民抿皿敏憫閩明螟鳴銘名命謬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌謀牟某拇牡畝姆母墓暮幕募慕木目睦牧穆拿哪吶鈉那娜納氖乃奶耐奈南男難囊撓腦惱鬧淖呢餒內嫩能妮霓倪泥尼擬妳匿膩逆溺蔫拈年碾攆撚念娘釀鳥尿捏聶孽嚙鑷鎳涅您檸獰凝寧擰濘牛扭鈕紐膿濃農弄奴努怒女暖虐瘧挪懦糯諾哦歐鷗毆藕嘔偶漚啪趴爬帕怕琶拍排牌徘湃派攀潘盤磐盼畔判叛乓龐旁耪胖拋咆刨炮袍跑泡呸胚培裴賠陪配佩沛噴盆砰抨烹澎彭蓬棚硼篷膨朋鵬捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片騙飄漂瓢票撇瞥拼頻貧品聘乒坪蘋萍平憑瓶評屏坡潑頗婆破魄迫粕剖撲鋪仆莆葡菩蒲埔樸圃普浦譜曝瀑期欺棲戚妻七淒漆柒沏其棋奇歧畦崎臍齊旗祈祁騎起豈乞企啟契砌器氣迄棄汽泣訖掐洽牽扡釬鉛千遷簽仟謙乾黔錢鉗前潛遣淺譴塹嵌欠歉槍嗆腔羌墻薔強搶橇鍬敲悄橋瞧喬僑巧鞘撬翹峭俏竅切茄且怯竊欽侵親秦琴勤芹擒禽寢沁青輕氫傾卿清擎晴氰情頃請慶瓊窮秋丘邱球求囚酋泅趨區蛆曲軀屈驅渠取娶齲趣去圈顴權醛泉全痊拳犬券勸缺炔瘸卻鵲榷確雀裙群然燃冉染瓤壤攘嚷讓饒擾繞惹熱壬仁人忍韌任認刃妊紉扔仍日戎茸蓉榮融熔溶容絨冗揉柔肉茹蠕儒孺如辱乳汝入褥軟阮蕊瑞銳閏潤若弱撒灑薩腮鰓塞賽三三傘散桑嗓喪搔騷掃嫂瑟色澀森僧莎砂殺剎沙紗傻啥煞篩曬珊苫杉山刪煽衫閃陜擅贍膳善汕扇繕墑傷商賞晌上尚裳梢捎稍燒芍勺韶少哨邵紹奢賒蛇舌舍赦攝射懾涉社設砷申呻伸身深娠紳神沈審嬸甚腎慎滲聲生甥牲升繩省盛剩勝聖師失獅施濕詩屍虱十石拾時什食蝕實識史矢使屎駛始式示士世柿事拭誓逝勢是嗜噬適仕侍釋飾氏市恃室視試收手首守壽授售受瘦獸蔬樞梳殊抒輸叔舒淑疏書贖孰熟薯暑曙署蜀黍鼠屬術述樹束戍豎墅庶數漱恕刷耍摔衰甩帥栓拴霜雙爽誰水睡稅吮瞬順舜說碩朔爍斯撕嘶思私司絲死肆寺嗣四伺似飼巳松聳慫頌送宋訟誦搜艘擻嗽蘇酥俗素速粟僳塑溯宿訴肅酸蒜算雖隋隨綏髓碎歲穗遂隧祟孫損筍蓑梭唆縮瑣索鎖所塌他它她塔獺撻蹋踏胎苔擡臺泰酞太態汰坍攤貪癱灘壇檀痰潭譚談坦毯袒碳探嘆炭湯塘搪堂棠膛唐糖倘躺淌趟燙掏濤滔絳萄桃逃淘陶討套特藤騰疼謄梯剔踢銻提題蹄啼體替嚏惕涕剃屜天添填田甜恬舔腆挑條迢眺跳貼鐵帖廳聽烴汀廷停亭庭挺艇通桐酮瞳同銅彤童桶捅筒統痛偷投頭透凸禿突圖徒途塗屠土吐兔湍團推頹腿蛻褪退吞屯臀拖托脫鴕陀馱駝橢妥拓唾挖哇蛙窪娃瓦襪歪外豌彎灣玩頑丸烷完碗挽晚皖惋宛婉萬腕汪王亡枉網往旺望忘妄威巍微危韋違桅圍唯惟為濰維葦萎委偉偽尾緯未蔚味畏胃餵魏位渭謂尉慰衛瘟溫蚊文聞紋吻穩紊問嗡翁甕撾蝸渦窩我斡臥握沃巫嗚鎢烏汙誣屋無蕪梧吾吳毋武五捂午舞伍侮塢戊霧晤物勿務悟誤昔熙析西硒矽晰嘻吸錫犧稀息希悉膝夕惜熄烯溪汐犀檄襲席習媳喜銑洗系隙戲細瞎蝦匣霞轄暇峽俠狹下廈夏嚇掀鍁先仙鮮纖鹹賢銜舷閑涎弦嫌顯險現獻縣腺餡羨憲陷限線相廂鑲香箱襄湘鄉翔祥詳想響享項巷橡像向象蕭硝霄削哮囂銷消宵淆曉小孝校肖嘯笑效楔些歇蠍鞋協挾攜邪斜脅諧寫械卸蟹懈泄瀉謝屑薪芯鋅欣辛新忻心信釁星腥猩惺興刑型形邢行醒幸杏性姓兄兇胸匈洶雄熊休修羞朽嗅銹秀袖繡墟戌需虛噓須徐許蓄酗敘旭序畜恤絮婿緒續軒喧宣懸旋玄選癬眩絢靴薛學穴雪血勛熏循旬詢尋馴巡殉汛訓訊遜迅壓押鴉鴨呀丫芽牙蚜崖衙涯雅啞亞訝焉咽閹煙淹鹽嚴研蜒巖延言顏閻炎沿奄掩眼衍演艷堰燕厭硯雁唁彥焰宴諺驗殃央鴦秧楊揚佯瘍羊洋陽氧仰癢養樣漾邀腰妖瑤搖堯遙窯謠姚咬舀藥要耀椰噎耶爺野冶也頁掖業葉曳腋夜液壹壹醫揖銥依伊衣頤夷遺移儀胰疑沂宜姨彜椅蟻倚已乙矣以藝抑易邑屹億役臆逸肄疫亦裔意毅憶義益溢詣議誼譯異翼翌繹茵蔭因殷音陰姻吟銀淫寅飲尹引隱印英櫻嬰鷹應纓瑩螢營熒蠅迎贏盈影穎硬映喲擁傭臃癰庸雍踴蛹詠泳湧永恿勇用幽優悠憂尤由郵鈾猶油遊酉有友右佑釉誘又幼迂淤於盂榆虞愚輿余俞逾魚愉渝漁隅予娛雨與嶼禹宇語羽玉域芋郁籲遇喻峪禦愈欲獄育譽浴寓裕預豫馭鴛淵冤元垣袁原援轅園員圓猿源緣遠苑願怨院曰約越躍鑰嶽粵月悅閱耘雲鄖勻隕允運蘊醞暈韻孕匝砸雜栽哉災宰載再在咱攢暫贊贓臟葬遭糟鑿藻棗早澡蚤躁噪造皂竈燥責擇則澤賊怎增憎曾贈紮喳渣劄軋鍘閘眨柵榨咋乍炸詐摘齋宅窄債寨瞻氈詹粘沾盞斬輾嶄展蘸棧占戰站湛綻樟章彰漳張掌漲杖丈帳賬仗脹瘴障招昭找沼趙照罩兆肇召遮折哲蟄轍者鍺蔗這浙珍斟真甄砧臻貞針偵枕疹診震振鎮陣蒸掙睜征猙爭怔整拯正政幀癥鄭證芝枝支吱蜘知肢脂汁之織職直植殖執值侄址指止趾只旨紙誌摯擲至致置幟峙制智秩稚質炙痔滯治窒中盅忠鐘衷終種腫重仲眾舟周州洲謅粥軸肘帚咒皺宙晝驟珠株蛛朱豬諸誅逐竹燭煮拄矚囑主著柱助蛀貯鑄築住註祝駐抓爪拽專磚轉撰賺篆樁莊裝妝撞壯狀椎錐追贅墜綴諄準捉拙卓桌琢茁酌啄著灼濁茲咨資姿滋淄孜紫仔籽滓子自漬字鬃棕蹤宗綜總縱鄒走奏揍租足卒族祖詛阻組鉆纂嘴醉最罪尊遵昨左佐柞做作坐座錒噯嬡璦曖靄諳銨鵪媼驁鰲鈀唄鈑鴇齙鵯賁錛蓽嗶潷鉍篳蹕芐緶籩驃颮飆鏢鑣鰾儐繽檳殯臏鑌髕鬢稟餑鈸鵓鈽驂黲惻鍤儕釵囅諂讖蕆懺嬋驏覘禪鐔倀萇悵閶鯧硨傖諶櫬磣齔棖檉鋮鐺飭鴟銃儔幬讎芻絀躕釧愴綞鶉輟齪鶿蓯驄樅輳攛銼鹺噠韃駘紿殫賧癉簞讜碭襠燾鐙糴詆諦綈覿鏑巔鈿癲銚鯛鰈鋌銩崠鶇竇瀆櫝牘篤黷籪懟鐓燉躉鐸諤堊閼軛鋨鍔鶚顎顓鱷誒邇鉺鴯鮞鈁魴緋鐨鯡僨灃鳧駙紱紼賻麩鮒鰒釓賅尷搟紺戇睪誥縞鋯紇鎘潁亙賡綆鯁詬緱覯詁轂鈷錮鴣鵠鶻鴰摑詿摜鸛鰥獷匭劌媯檜鮭鱖袞緄鯀堝咼幗槨蟈鉿闞絎頡灝顥訶闔蠣黌訌葒閎鱟滸鶘驊樺鏵奐繯鍰鯇鰉詼薈噦澮繢琿暉諢餛閽鈥鑊訐詰薺嘰嚌驥璣覬齏磯羈蠆躋霽鱭鯽郟浹鋏鎵蟯諫縑戔戩瞼鶼筧鰹韉絳韁撟嶠鷦鮫癤頜鮚巹藎饉縉贐覲剄涇逕弳脛靚鬮鳩鷲詎屨櫸颶鉅鋦窶齟錈鐫雋譎玨皸剴塏愾愷鎧鍇龕閌鈧銬騍緙軻鈳錁頷齦鏗嚳鄶噲膾獪髖誆誑鄺壙纊貺匱蕢憒聵簣閫錕鯤蠐崍徠淶瀨賚睞錸癩籟嵐欖斕鑭襤閬鋃嘮嶗銠鐒癆鰳誄縲儷酈壢藶蒞蘺嚦邐驪縭櫪櫟轢礪鋰鸝癘糲躒靂鱺鱧蘞奩瀲璉殮褳襝鰱魎繚釕鷯藺廩檁轔躪綾欞蟶鯪瀏騮綹鎦鷚蘢瀧瓏櫳朧礱僂蔞嘍嶁鏤瘺耬螻髏壚擼嚕閭瀘淥櫨櫓轤輅轆氌臚鸕鷺艫鱸臠孌欒鸞鑾圇犖玀濼欏腡鏍櫚褸鋝嘸嘜嬤榪勱縵鏝顙鰻麼捫燜懣鍆羋謐獼禰澠靦黽緲繆閔緡謨驀饃歿鏌鉬鐃訥鈮鯢輦鯰蔦裊隉蘗囁顢躡苧嚀聹儂噥駑釹儺謳慪甌蹣皰轡紕羆鈹諞駢縹嬪釙鏷鐠蘄騏綺榿磧頎頏鰭僉蕁慳騫繾槧鈐嬙檣戧熗錆鏘鏹羥蹌誚譙蕎繰磽蹺愜鍥篋鋟撳鯖煢蛺巰賕蟣鰍詘嶇闃覷鴝詮綣輇銓闋闕愨蕘嬈橈飪軔嶸蠑縟銣顰蜆颯毿糝繅嗇銫穡鎩鯊釃訕姍騸釤鱔坰殤觴厙灄畬詵諗瀋謚塒蒔弒軾貰鈰鰣綬攄紓閂鑠廝駟緦鍶鷥藪餿颼鎪謖穌誶蓀猻嗩脧闥鉈鰨鈦鮐曇鉭錟頇儻餳鐋鏜韜鋱緹鵜闐糶齠鰷慟鈄釷摶飩籜鼉媧膃紈綰輞諉幃闈溈潿瑋韙煒鮪閿萵齷鄔廡憮嫵騖鵡鶩餼鬩璽覡硤莧薟蘚峴獫嫻鷴癇蠔秈躚薌餉驤緗饗嘵瀟驍綃梟簫褻擷紲纈陘滎饈鵂詡頊諼鉉鏇謔澩鱈塤潯鱘埡婭椏氬厴贗儼兗讞懨閆釅魘饜鼴煬軺鷂鰩靨謁鄴曄燁詒囈嶧飴懌驛縊軼貽釔鎰鐿瘞艤銦癮塋鶯縈鎣攖嚶瀅瀠瓔鸚癭頦罌鏞蕕銪魷傴俁諛諭蕷崳飫閾嫗紆覦歟鈺鵒鷸齬櫞鳶黿鉞鄆蕓惲慍紜韞殞氳瓚趲鏨駔賾嘖幘簀譖繒譫詔釗謫輒鷓湞縝楨軫賑禎鴆諍崢鉦錚箏騭櫛梔軹輊贄鷙螄縶躓躑觶鍾紂縐佇櫧銖囀饌顳騅縋諑鐲諮緇輜貲眥錙齜鯔傯諏騶鯫鏃纘躦鱒訁譾郤猛氹阪壟堖垵墊檾蕒葤蓧蒓菇槁摣咤唚哢噝噅撅劈謔襆嶴脊仿僥獁麅餘餷饊饢楞怵懍爿漵灩混濫瀦淡寧糸絝緔瑉梘棬案橰櫫軲軤賫膁腖飈糊煆溜湣渺碸滾瞘鈈鉕鋣銱鋥鋶鐦鐧鍩鍀鍃錇鎄鎇鎿鐝鑥鑹鑔穭鶓鶥鸌癧屙瘂臒襇繈耮顬蟎麯鮁鮃鮎鯗鯝鯴鱝鯿鰠鰵鱅鞽韝齇";function LMe(e){return T2t.charAt(NMe.indexOf(e.charAt(0)))}var cbr=new RegExp("[一-龥]+");function FMe(e){return NMe.includes(e)}var pi=class{static GetBytes(e){switch(typeof e){case"string":{let t=new Uint16Array(e.length);for(let i=0;i4294967295?((t=new Float64Array(1))[0]=e,new Uint8Array(t.buffer)):function(t){return t[0]=e,new Uint8Array(t.buffer)}(new Int32Array(1)):function(t){return t[0]=e,new Uint8Array(t.buffer)}(new Float64Array(1));case"boolean":return function(t){return t[0]=Number(e),t}(new Uint8Array(1));default:if(e instanceof Array){let t=[];for(let i=0;ie.length&&(i-=t);let r="";for(let n=0;ne.length&&(i-=t);let r=new Uint8Array(i);for(let n=0;n1&&(n.push(s.slice()),s=[]);break;case 3:l++,i/=t[l];break;case 4:l++,i*=t[l];break;case 5:if(4===a.length)throw"The position stack is only four locations deep";a.push(r);break;case 6:r=a.pop(),s.length>1&&(n.push(s.slice()),s=[]),o&&s.push(r.clone());break;case 7:{let a,o=0,h=i*e.baseUp,u=r.clone();switch(s.length>1&&(n.push(s.slice()),s=[]),e.type){case 0:l++,o=t[l];break;case 1:l++,o=t[l],0==o&&(l++,o=pi.ToUInt16(new Uint8Array([t[l++],t[l++]]),0),u.x=t[l++]*i,u.y=t[l++]*i,h=t[l]*i);break;case 2:l+=2,o=pi.ToUInt16(new Uint8Array([t[l-1],t[l]]),0)}0!==o&&(a=e.getGraphicTextShape(o,h,u),a&&(n.push(...a.polyLines.slice()),r=a.lastPoint.clone()))}break;case 8:{let e=new le;e.x=pi.byteTosbyte(t[++l]),e.y=pi.byteTosbyte(t[++l]),r.add(e.multiplyScalar(i)),o&&s.push(r.clone())}break;case 9:for(;;){let e=new le;if(e.x=pi.byteTosbyte(t[++l]),e.y=pi.byteTosbyte(t[++l]),0==e.x&&0==e.y)break;r.add(e.multiplyScalar(i)),o&&s.push(r.clone())}break;case 10:{let e=t[++l]*i,n=pi.byteTosbyte(t[++l]),a=(112&n)>>4,h=7&n;0==h&&(h=8);let u=Math.PI/4,c=u*h,p=qf.CICLESPAN;n<0&&(p=-p,c=-c);let d=u*a,f=d+c,m=r.clone().sub(new le(Math.cos(d)*e,Math.sin(d)*e));if(r=m.clone().add(new le(Math.cos(f)*e,Math.sin(f)*e)),o){let t=d,i=!0;for(;i&&(t+=p,n>=0&&tf);)s.push(m.clone().add(new le(e*Math.cos(t),e*Math.sin(t))));s.push(r.clone())}}break;case 11:{let e=t[++l],n=t[++l],a=(255*t[++l]+t[++l])*i,h=pi.byteTosbyte(t[++l]),u=(112&h)>>4,c=7&h;0==c&&(c=8),0!=n&&c--;let p=Math.PI/4,d=p*c,f=qf.CICLESPAN,m=1;h<0&&(f=-f,d=-d,m=-1);let g=p*u,y=g+d;g+=p*e/256*m,y+=p*n/256*m;let v=r.clone().sub(new le(a*Math.cos(g),a*Math.sin(g)));if(r=v.clone().add(new le(a*Math.cos(y),a*Math.sin(y))),o){let e=g,t=!0;for(;t&&(e+=f,h>0&&ey);)s.push(v.clone().add(new le(a*Math.cos(e),a*Math.sin(e))));s.push(r.clone())}}break;case 12:{let e=new le;e.x=pi.byteTosbyte(t[++l])*i,e.y=pi.byteTosbyte(t[++l])*i;let n=pi.byteTosbyte(t[++l]);n<-127&&(n=-127),o&&(0==n?s.push(r.clone().add(e)):s.push(qf._generateArcPoints(r,e,n/127))),r.add(e)}break;case 13:for(;;){let e=new le;if(e.x=pi.byteTosbyte(t[++l])*i,e.y=pi.byteTosbyte(t[++l])*i,0==e.x&&0==e.y)break;let n=pi.byteTosbyte(t[++l]);n<-127&&(n=-127),o&&(0==n?s.push(r.clone().add(e)):s.push(qf._generateArcPoints(r.clone(),e,n/127))),r.add(e)}break;case 14:l=qf.skipCode(e,t,++l);break;default:if(h>15){let e=(240&h)>>4,t=15&h,n=new le;switch(t){case 0:n.x=1;break;case 1:n.x=1,n.y=.5;break;case 2:n.x=1,n.y=1;break;case 3:n.x=.5,n.y=1;break;case 4:n.y=1;break;case 5:n.x=-.5,n.y=1;break;case 6:n.x=-1,n.y=1;break;case 7:n.x=-1,n.y=.5;break;case 8:n.x=-1;break;case 9:n.x=-1,n.y=-.5;break;case 10:n.x=-1,n.y=-1;break;case 11:n.x=-.5,n.y=-1;break;case 12:n.y=-1;break;case 13:n.x=.5,n.y=-1;break;case 14:n.x=1,n.y=-1;break;case 15:n.x=1,n.y=-.5}r.add(n.multiplyScalar(e*i)),o&&s.push(r.clone())}}}return new ad(r,n)}static skipCode(e,t,i){switch(t[i]){case 0:case 1:case 2:case 5:case 6:case 14:default:break;case 3:case 4:i++;break;case 7:switch(e.type){case 0:i++;break;case 1:0==t[++i]&&(i+=6);break;case 2:i+=2}break;case 8:case 10:i+=2;break;case 9:for(;;){let e=t[++i],r=t[++i];if(0==e&&0==r)break}break;case 11:i+=5;break;case 12:i+=3;break;case 13:for(;;){let e=t[++i],r=t[++i];if(0==e&&0==r)break;t[++i]}}return i}static _generateArcPoints(e,t,i){let r=e.clone().add(t),n=i<0;i=Math.abs(i);let s=t.length()/2,a=s*i,o=2*Math.atan(1/i),l=new le(t.y,-t.x);l.normalize(),l.multiplyScalar(a);let h=Math.abs(s/Math.sin(o/2)),u=e.add(t.divideScalar(2));!1!==n?u.add(l):u.sub(l);let c=e.sub(u),p=r.sub(u),d=Math.atan2(c.y,c.x),f=Math.atan2(p.y,p.x),m=qf.CICLESPAN;n?(m=-m,df&&(d-=2*Math.PI);let g=d;for(;;){if(g+=m,!n&&gf)return u.add(new le(h*Math.cos(g),h*Math.sin(g)));break}return r}},Yl=qf;Yl.stopFlag="0x00",Yl.FILE_STOP_FLAG=["\r","\n",""],Yl.CICLESPAN=Math.PI/18;var pO={130:[[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],131:[[[3,0],[7,0]],[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],132:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],133:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[3,9.5],[7,9.5]]],134:[[[3,0],[7,0]],[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],135:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],136:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[3,9.5],[7,9.5]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],178:[[[1.142,9.285],[1.142,9.428],[1.285,9.714],[1.428,9.857],[1.714,10],[2.285,10],[2.571,9.857],[2.714,9.714],[2.857,9.428],[2.857,9.142],[2.714,8.857],[2.428,8.428],[1,7],[3,7]]],8960:[[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]],[[0,0],[8,8]]],20393:[[[0,0],[0,6.666]],[[0,4.761],[1.428,6.19],[2.38,6.666],[3.809,6.666],[4.761,6.19],[5.238,4.761],[5.238,0]],[[5.238,4.761],[6.666,6.19],[7.619,6.666],[9.047,6.666],[10,6.19],[10.476,4.761],[10.476,0]],[[11.142,9.285],[11.142,9.428],[11.285,9.714],[11.428,9.857],[11.714,10],[12.285,10],[12.571,9.857],[12.714,9.714],[12.857,9.428],[12.857,9.142],[12.714,8.857],[12.428,8.428],[11,7],[13,7]]],41123:[],55714:[[[2,5.9],[2.6,6.1],[3.4,7],[3.4,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],55970:[[[2.3,5.6],[2.3,5.9],[2.6,6.4],[2.9,6.7],[3.4,7],[4.6,7],[5.1,6.7],[5.4,6.4],[5.7,5.9],[5.7,5.3],[5.4,4.7],[4.9,3.9],[2,1],[6,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56226:[[[2.6,7],[5.7,7],[4,4.7],[4.9,4.7],[5.4,4.4],[5.7,4.1],[6,3.3],[6,2.7],[5.7,1.9],[5.1,1.3],[4.3,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56482:[[[4.9,7],[2,3],[6.3,3]],[[4.9,7],[4.9,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56738:[[[5.4,7],[2.6,7],[2.3,4.4],[2.6,4.7],[3.4,5],[4.3,5],[5.1,4.7],[5.7,4.1],[6,3.3],[6,2.7],[5.7,1.9],[5.1,1.3],[4.3,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56994:[[[5.4,6.1],[5.1,6.7],[4.3,7],[3.7,7],[2.9,6.7],[2.3,5.9],[2,4.4],[2,3],[2.3,1.9],[2.9,1.3],[3.7,1],[4,1],[4.9,1.3],[5.4,1.9],[5.7,2.7],[5.7,3],[5.4,3.9],[4.9,4.4],[4,4.7],[3.7,4.7],[2.9,4.4],[2.3,3.9],[2,3]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57250:[[[2,7],[6,7],[3.1,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57506:[[[3.4,7],[2.6,6.7],[2.3,6.1],[2.3,5.6],[2.6,5],[3.1,4.7],[4.3,4.4],[5.1,4.1],[5.7,3.6],[6,3],[6,2.1],[5.7,1.6],[5.4,1.3],[4.6,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1],[2,3],[2.3,3.6],[2.9,4.1],[3.7,4.4],[4.9,4.7],[5.4,5],[5.7,5.6],[5.7,6.1],[5.4,6.7],[4.6,7],[3.4,7]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57762:[[[5.7,5],[5.4,4.1],[4.9,3.6],[4,3.3],[3.7,3.3],[2.9,3.6],[2.3,4.1],[2,5],[2,5.3],[2.3,6.1],[2.9,6.7],[3.7,7],[4,7],[4.9,6.7],[5.4,6.1],[5.7,5],[5.7,3.6],[5.4,2.1],[4.9,1.3],[4,1],[3.4,1],[2.6,1.3],[2.3,1.9]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],60070:[[[0,6],[10,6],[10,4]]],60326:[[[0,7],[0,5],[10,5]]]},dO=new Pi,Yf=class{constructor(e){this.type=1,this.info="",this.orientation=0,this.baseUp=0,this.baseDown=0,this.fileHeader="",this.fileVersion="",this.datas={},this.graphicData=new Map,this.url=e}getGraphicDataByCode(e,t){if(0===e)return;let i=this.datas;if(!this.graphicData.has(e)){if(!i[e]){if(pO[e]){let i=[];for(let t=0;tnew le(e[0],e[1]))));let r=new ad(new le,i),n=t/uO;return dO.identity().scale(n,n),r.transform(dO)}return}{let t=i[e],r=uO/this.baseUp,n=Yl.parserCode(this,t,r);this.graphicData.set(e,n)}}if(this.graphicData.has(e)){let i=t/uO;return dO.identity().scale(i,i),this.graphicData.get(e).transform(dO)}}getGraphicTextShape(e,t,i){var r;return null==(r=this.getGraphicDataByCode(e,t))?void 0:r.offset(i)}getFontFile(){return{url:this.url,type:this.type,datas:this.datas,info:this.info,orientation:this.orientation,baseUp:this.baseUp,baseDown:this.baseDown,fileHeader:this.fileHeader,fileVersion:this.fileVersion}}setFontFile(e){this.url=e.url,this.type=e.type,this.datas=e.datas,this.info=e.info,this.orientation=e.orientation,this.baseUp=e.baseUp,this.baseDown=e.baseDown,this.fileHeader=e.fileHeader,this.fileVersion=e.fileVersion}releaseFontData(){this.datas={},this.graphicData.clear()}setFontDataToIndexedDb(){return ht(this,null,(function*(){let e=this.getFontFile();return new Promise(((t,i)=>{uh.instance().save(e,(()=>{console.log(`[FontFile] Saved '${this.url}' (${this.fileHeader}) to indexedDb`),t()}),(e=>i(`[FontFile] Failed to save '${this.url}' (${this.fileHeader}) to indexedDb! ${e}`)))}))}))}getFontDataByIndexedDb(){return ht(this,null,(function*(){return new Promise(((e,t)=>{uh.instance().query(this.url,(t=>{e(t)}),(()=>t("[FontFile] Failed to get FontData from IndexedDB")))}))}))}},I_=class extends Yf{constructor(e){super(e),this.isExtend=!1,this.type=1}init(e){pi.ToInt16(e.readBytes(2),0);let t=pi.ToInt16(e.readBytes(2),0),i=pi.ToInt16(e.readBytes(2),0);for(let t=0;t>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:t+=String.fromCharCode(r);break;case 12:case 13:n=e[i++],t+=String.fromCharCode((31&r)<<6|63&n);break;case 14:n=e[i++],s=e[i++],t+=String.fromCharCode((15&r)<<12|(63&n)<<6|(63&s)<<0)}return t}var __=class extends Yf{constructor(e){super(e),this.type=0}init(e){e.readBytes(2),e.readBytes(2);let t=pi.ToInt16(e.readBytes(2),0),i=[];for(let r=0;rs){c?(u+=p.width+n,c=!1):(c=!0,u=0,h-=r+i),fO.set(u,h);let e=p.offset(fO);o.push(e),!c&&(u+=p.width+n)}else{fO.set(u,h);let e=p.offset(fO);o.push(e),u+=p.width+n}else this.addUnsupportedChar(l)}c=!1,u=0,h-=r+i}return o}getNotFoundTextShape(e){let t=Yl.getCode("?");return this.getGraphicDataByCode(t,e)}generateShapes(e,t=mO.DEFAULT_SIZE,i=0,r=0,n=0){return this.getGraphicData(e,t,i,r,n)}addUnsupportedChar(e){this.unsupportedChars[e]||(this.unsupportedChars[e]=0),this.unsupportedChars[e]++}static checkFontIsLoaded(e){return ht(this,null,(function*(){if(!wi.isBrowser)return!1;let t=!1,i=yield uh.instance().queryAll();if(i.length!==e.length)return!1;for(let r=0;re.setFontDataToIndexedDb()));return yield Promise.all(e).then((()=>{ne.debug("[ShxFont] Saves font data to IndexDB")}))}))}getFontData(){return ht(this,null,(function*(){if(wi.isBrowser){let e=yield uh.instance().queryAll(),t=[],i=new Map;for(let r=0;r{let i=this.parse(e);t&&t(i)})).catch((e=>{r&&r(e)}))}loadFile(e,t){return ht(this,null,(function*(){return new Promise(((i,r)=>{let n=new ui(this.manager);n.setResponseType("arraybuffer"),n.load(e,(t=>{i({url:e,arrayBuffer:t})}),t,(e=>{r(e)}))}))}))}loadAsync(e,t){return ht(this,null,(function*(){return Array.isArray(e)||(e=[e]),(yield Yc.checkFontIsLoaded(e))?Promise.resolve(new Yc):new Promise(((i,r)=>{this.load(e,i,t,r)}))}))}parse(e){return new Yc(e)}static isShxFile(e){var t;return"shx"===(null==(t=e.split(".").pop())?void 0:t.toLowerCase())}},Xf=new A(1,0,0),Y8=new A(0,1,0),gO=new A(0,0,1),HMe=new A(0,0,0),$f=0,b2t="CONTINUOUS",X8=new jn({color:$f}),Na=new vr({color:$f}),w_=new or({color:$f}),UMe=new Be,$8=new Be,Xc=new Be,ds=new A,R_=new A,M_=new le,BMe=new Hr,x2t=e=>void 0!==e.viewDirectionFromTarget,I2t=e=>{if(e){let t=e.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);if(t&&t.length>0){let i=t[1],r=e.replace("data:"+i+";","").split(",");if(r&&2===r.length&&"base64"===r[0]){let e=r[1];return KRe.decode(e)}}}return null},eE={Math:{}};eE.Math.angle2=function(e,t){let i=new le(e.x,e.y),r=new le(t.x,t.y);return r.sub(i),r.normalize(),r.y<0?-Math.acos(r.x):Math.acos(r.x)},eE.Math.polar=function(e,t,i){return{x:e.x+t*Math.cos(i),y:e.y+t*Math.sin(i)}};var _2t=(e,t,i,r)=>{let n=e?new le(e.x,e.y):new le(0,0),s=t?new le(t.x,t.y):new le(1,0);i=i||1;let a=4*Math.atan(i),o=n.distanceTo(s)/2/Math.sin(a/2),l=eE.Math.polar(e,o,eE.Math.angle2(n,s)+(Math.PI/2-a/2));r=r||Math.max(Math.abs(Math.ceil(a/(Math.PI/18))),6);let h=eE.Math.angle2(l,n),u=a/r,c=[];c.push(new A(n.x,n.y,0));for(let e=1;e<=r-1;e++){let t=eE.Math.polar(l,Math.abs(o),h+u*e);c.push(new A(t.x,t.y,0))}return c},S2t=(e,t,i,r=2*e.length,n)=>{let s=[],a=e.map((e=>[e.x,e.y]));for(let e=0;e<1;e+=1/r){let r=U8(e,t,a,i,n);s.push(new A(r[0],r[1],0))}return s},K8=(e,t=!1)=>{let i=[],r=e.length;for(let n=0;n{let t=[];return e.faceA&&t.push(e.faceA),e.faceB&&t.push(e.faceB),e.faceC&&t.push(e.faceC),e.faceD&&t.push(e.faceD),t},R2t=e=>{let t=[],i=[];e.forEach((e=>{e.polyfaceMeshVertex&&(e.threeDPolylineMesh?t.push(new A(e.x,e.y,e.z)):i.push(w2t(e)))}));let r=[];for(let e=0;e=t.length||i<0){a=!1;break}s.push(t[i])}!a||0===s.length||(s.push(s[0]),r.push(s))}return r},Ri=class extends ci{constructor(e=!1,t=!0){super(),this.timer=Date.now(),this.ignorePaperSpace=!1,this.angBase=0,this.angDir=0,this.header=void 0,this.pointsMaterials={},this.lineBasicMaterials={},this.lineShaderMaterials={},this.meshBasicMaterials={},this.meshTextureMaterials={},this.hatchShaderMaterials=[],this.entityCount=0,this.curveCount=0,this.averageCurveSize=0,this.enableRenderOrder=!1,this.enableLocalCache=!0,this.enableReleaseData=!0,this.enableMerge=!0,this.enableSimplify=!0,this.enableRTC=!0,this.enableWidthLine=!1,this.dxfDataId=void 0,this.compareContext=void 0,this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0},this.blockReferencesCache={},this.blockRecordsCache=void 0,this.entitiesCache=void 0,this.blocksCache=void 0,this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0,this.spatialFiltersCache=void 0,this.entityThreejsCache=void 0,this.entityTypesAndTimes=void 0,this.nonSnapableTypes=new Set(["ATTDEF","ATTRIB","LEADER","MTEXT","MULTILEADER","OLE2FRAME","TEXT"]),this.entityHandlesWithRenderOrder={},this.addViewport=(e,t)=>{if("VIEWPORT"===e.type){t[e.ownerHandle]||(t[e.ownerHandle]=[]);let i=e;t[e.ownerHandle].push(i)}},Ri.abortJobs=!1,this.ignorePaperSpace=e,this.enableLocalCache=t,this.pointsMaterials[$f]=X8,this.lineBasicMaterials[$f]=Na,this.meshBasicMaterials[$f]=w_}setFont(e){return this.font=e,this}download(e,t){return ht(this,null,(function*(){let i=I2t(e);if(!i){let r=Date.now(),n=new ui(this.manager);n.setResponseType("arraybuffer"),n.setPath(this.path),i=yield n.loadAsync(e,t),ne.info(`[DxfLoader] ${e} dxf file downloaded in ${(Date.now()-r)/1e3}s`)}return i}))}load(e,t,i){return ht(this,null,(function*(){return this.enableLocalCache&&t&&(t=t.trim()).length>0&&(this.dxfDataId=t),this.loadAsync(e,i)}))}loadAsync(e,t){return ht(this,null,(function*(){let i=(e,i,r)=>{let n=100*e.loaded/e.total;n=n*(r-i)/100+i,t&&t(new ProgressEvent(e.type,{loaded:n,total:100}))},r=e=>i(e,10,100);if(wi.isBrowser&&this.enableLocalCache&&this.dxfDataId){let e;try{if(this.timer=Date.now(),e=yield this.getDxfDataFromIndexedDb(this.dxfDataId),e){ne.info(`[DxfLoader] Loaded DxfData from indexedDb in ${(Date.now()-this.timer)/1e3}s`);let t=yield this.loadEntities(e,r);return Promise.resolve(t)}}catch(e){ne.warn("[DxfLoader] Failed to parse data from indexedDb",e)}}let n=yield this.parse(e,(e=>i(e,0,50)));return yield this.loadEntities(n,(e=>i(e,50,100)))}))}parse(e,t){return ht(this,null,(function*(){let i=e=>{t&&t(new ProgressEvent("",{loaded:e,total:100}))},r=yield this.download(e,(e=>((e,i,r)=>{let n=100*e.loaded/e.total;n=n*(r-i)/100+i,n>r&&(ne.warn("[DxfLoader] Invalid ProgressEvent:",e),n=r),t&&t(new ProgressEvent(e.type,{loaded:n,total:100}))})(e,0,40)));if(!r)return Promise.reject(`[DxfLoader] Failed to download ${e}`);if(Ri.abortJobs)return Promise.reject("[DXFLoader] Job aborted");this.timer=Date.now(),ne.info("[DxfLoader] Start parsing...");let n=(new I0).parseSync(r);if(i(80),ne.info(`[DxfLoader] Parsed in ${(Date.now()-this.timer)/1e3}s, creating entities...`),Ri.abortJobs)return Promise.reject("[DXFLoader] Job aborted");if(n&&(n.objects.LAYOUT||(ne.warn("[DxfLoader] No layout defined! Will add a default 'Model' layout!"),n.objects.LAYOUT=[{layoutName:Ri.MODEL_LAYOUT_NAME}]),wi.isBrowser&&this.enableLocalCache&&this.dxfDataId)){let e=Date.now();try{yield this.setDxfDataToIndexedDb(this.dxfDataId,n),ne.info(`[DxfLoader] Saved to indexedDb in ${(Date.now()-e)/1e3}s`)}catch(e){ne.warn(`[DxfLoader] Failed to save '${this.dxfDataId}' to indexedDb!`,e)}}return i(100),n}))}parseHeader(e){if(!e)return void ne.error("[DxfLoader]: Invalid header!");this.header=e;let t=e.$ACADVER.toString();"AC1032"!==t&&ne.warn(`[DxfLoader] Unexpected version: ${t}. But we'll try to continue.`),this.angBase=e.$ANGBASE||0,this.angDir=e.$ANGDIR||0}loadEntities(e,t){return ht(this,null,(function*(){let i=Date.now();this.parseHeader(e.header),this.enableRenderOrder&&(this.initRenderOrderInfo(e),this.enableMerge=!1);let r=0,n=e.entities.length;this.entityCount=n,Object.keys(e.blocks).forEach((t=>{var i;this.entityCount+=(null==(i=e.blocks[t].entities)?void 0:i.length)||0}));let s=Math.round(Math.pow(n,.5)),a=Date.now(),o=e=>ht(this,null,(function*(){if(t&&(e%s==0||e===n-1)){t(new ProgressEvent("parseProgress",{loaded:e+1,total:n}));let i=500,r=Date.now();(r-a>i||e===n-1)&&(yield xs.sleep(0),a=r)}})),l={};e.objects.LAYOUT.forEach((e=>{let t=e;l[t.layoutName]=t}));let h={},u=e=>{let t=e.userData.layerName,i=h[t];i||(i=[],h[t]=i),i.push(e)},c={},p={},d=new ur;ei.setSharedVariablesOfObject(d);for(let t=0;te.name===s));a||(a=new ur,ei.setSharedVariablesOfObject(a),a.name=s,a.userData.isLayoutLevelObject=!0,d.add(a)),r++,p[s]||(p[s]={object:a,layerObjects:{}});let h,f=p[s];if(s!==Ri.MODEL_LAYOUT_NAME){let e=l[s];e.directAssociatedLeafObjectSet||(e.directAssociatedLeafObjectSet=new Set),h=e.directAssociatedLeafObjectSet}if(this.enableMerge&&n.geometry){ei.setSharedVariablesOfObject(n);let t=n.userData.layerName;!1===this.getLayerVisible(e,t)&&(n.visible=!1),f.layerObjects[t]||(f.layerObjects[t]=[]),f.layerObjects[t].push(n)}else a.add(n),n.traverse((t=>{if(ei.setSharedVariablesOfObject(t),t.geometry){let i=t.userData.layerName;!1===this.getLayerVisible(e,i)&&(t.visible=!1),u(t),h&&h.add(t)}}));yield o(t)}e.objects.LAYOUT.forEach((t=>{let i=t,r=i.layoutName;if(this.ignorePaperSpace&&r!==Ri.MODEL_LAYOUT_NAME)return;let n=i.associatedBlockName,s=e.blocks[n];s&&this.drawLayout(s,e,i,d,h,c)})),ne.debug(`[DxfLoader] Drew entities in ${(Date.now()-i)/1e3}s`);for(let e in p){let t,i=p[e],r=i.object;if(e!==Ri.MODEL_LAYOUT_NAME){let i=l[e];i.directAssociatedLeafObjectSet||(i.directAssociatedLeafObjectSet=new Set),t=i.directAssociatedLeafObjectSet}for(let e in i.layerObjects){let n=i.layerObjects[e],s=qi.deepMerge(n,void 0,!1,!1,!0),a=s.added,o=s.removed;if(o.length!==n.length){let e=o;o.length>=100&&(e=new Set(o));let i=t=>Array.isArray(e)?e.indexOf(t)>=0:e.has(t);for(let e=0,s=n.length;e{f+=e})),this.enableRTC&&ne.debug(`[DxfLoader] Totally rebased ${this.statsInfo.rebasedEntityCount}(out of ${f}) entities`),this.enableMerge){let e=qi.mergeInfo;ne.debug(`[DxfLoader] Inner merged ${e.removedObjects} objects to ${e.mergedMeshes} meshes, ${e.mergedLines} lines, ${e.mergedPoints} points, ${e.mergedUnknownTypeObjects?e.mergedUnknownTypeObjects+" unknown type,":""} in ${e.elapsedTime/1e3}s`)}let m=(e,t,...i)=>{Object.keys(t).length};m(0,this.statsInfo.unsupportedEntityTypes),m(0,this.statsInfo.unsupportedTextStyles),m(0,this.statsInfo.unsupportedHatchPatterns),m(0,this.statsInfo.invisibleEntities),m(0,this.statsInfo.ignoredFrozenLayersAndEntityCount),m(0,this.statsInfo.ignoredInserts),this.ignorePaperSpace&&m(0,this.statsInfo.ignoredPaperSpaceEntityTypesAndCount),this.font&&this.font.unsupportedChars&&m(0,this.font.unsupportedChars),this.enableReleaseData&&(this.releaseCachedData(),this.releaseDxfData(e)),ne.info(`[DxfLoader] loadEntities() done in ${(Date.now()-i)/1e3}s`);let g=Dn(Br({},e),{threejsObject:d,layersAndThreejsObjects:h,loadedEntityCount:r,layoutViewportsMap:c});return Promise.resolve(g)}))}loadEntitiesForCompare(e,t,i,r){return ht(this,null,(function*(){let n=e.entities.length,s=t.entities.length,a=()=>ht(this,null,(function*(){var a;let o=this.compareContext,l=o.isTheFirstFile,h=l?e:t,u=new ur,c=l?n:s,p=h.entities.length;this.entityCount=p,Object.keys(h.blocks).forEach((e=>{var t;this.entityCount+=(null==(t=h.blocks[e].entities)?void 0:t.length)||0}));let d=Math.round(Math.pow(c,.5)),f=Date.now(),m=e=>ht(this,null,(function*(){if(r&&(e%d==0||e===c-1)){let t=e+1;l||(t+=n),r(new ProgressEvent("parseProgress",{loaded:t,total:n+s}));let i=500,a=Date.now();(a-f>i||e===c-1)&&(yield xs.sleep(0),f=a)}}));this.parseHeader(h.header);let g={};for(let e=0;e{if(e.geometry){let t=e.userData.layerName;!1===this.getLayerVisible(h,t)&&(e.visible=!1);let i=g[t];i||(i=[],g[t]=i),i.push(e)}})),yield m(e)}let y=h;y.threejsObject=u,u.updateMatrixWorld(!0),y.layersAndThreejsObjects=g,y.layoutViewportsMap={},l&&(o.preservedHandles||(o.preservedHandles=new Set));for(let e in i){let t=i[e];l&&("Added"===t.type||"Modified"===t.type)&&(null==(a=o.preservedHandles)||a.add(t.handle),t.parentHandles&&t.parentHandles.forEach((e=>{var t;return null==(t=o.preservedHandles)?void 0:t.add(e)})));let r=this.entityThreejsCache&&this.entityThreejsCache[t.handle];t.parentHandles&&(r=this.entityThreejsCache&&this.entityThreejsCache[t.parentHandles[t.parentHandles.length-1]]),r&&(r=this.setObjectColorByChange(r,t)),"NoChange"!==t.type&&r&&("Added"===t.type?!l&&(t.box=(new Dt).setFromObject(r)):"Removed"===t.type?l&&(t.box=(new Dt).setFromObject(r)):"Modified"===t.type&&(t.box?t.box.union((new Dt).setFromObject(r)):t.box=(new Dt).setFromObject(r)))}Ri.merge(y)})),o=Date.now();this.compareContext={changes:i,isTheFirstFile:!0},_t.printMemory("Before loading entities for first dxf"),yield a(),ne.info(`[DxfLoader] loadEntities for first dxf in ${(Date.now()-o)/1e3}s`),_t.printMemory("After loading entities for first dxf"),this.releaseCachedData(!1),this.releaseDxfData(e),_t.printMemory("Before loading entities for second dxf"),o=Date.now(),this.compareContext.isTheFirstFile=!1,yield a(),ne.info(`[DxfLoader] loadEntities for second dxf in ${(Date.now()-o)/1e3}s`);for(let e of Object.values(i))e.box||delete i[e.handle];this.compareContext.preservedHandles=void 0,this.enableReleaseData&&(this.releaseCachedData(),this.releaseDxfData(t)),_t.printMemory("After loading entities for second dxf")}))}setObjectColorByChange(e,t){let i=(e,t)=>{e.traverse((e=>{if(e.material)if(e.material instanceof vr)e.material=this.getLineBasicMaterial(t);else if(e.material instanceof or)e.material=this.getMeshBasicMaterial(t);else if(e.material instanceof jn)e.material=this.getPointsMaterial(t);else if(e.material instanceof Yt){let i=e.material.clone();this.updateMaterialUniforms(i),i.uniforms.u_color.value.set(t),e.material=i}}))},r=(e=>{var t;let i=qn.ENTITY_COLOR_NO_CHANGE;return"Added"===e.type?i=qn.ENTITY_COLOR_ADDED:"Removed"===e.type?i=qn.ENTITY_COLOR_REMOVED:"Modified"===e.type&&(i=null!=(t=this.compareContext)&&t.isTheFirstFile?qn.ENTITY_COLOR_REMOVED:qn.ENTITY_COLOR_ADDED),i})(t);return e.traverse((n=>{t.parentHandles?n.userData&&n.userData.handle&&n.userData.handle===t.handle&&(i(n,r),e=n):i(n,r)})),e}releaseCachedData(e=!0){e&&(this.pointsMaterials={},this.lineBasicMaterials={},this.lineShaderMaterials={},this.meshBasicMaterials={},this.meshTextureMaterials={},this.hatchShaderMaterials=[]),this.header=void 0,this.blockReferencesCache={},this.blockRecordsCache=void 0,this.blocksCache=void 0,this.entitiesCache=void 0,this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0,this.spatialFiltersCache=void 0,this.entityThreejsCache=void 0,this.entityTypesAndTimes=void 0,this.entityHandlesWithRenderOrder={},this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0}}releaseEntity(e){e.vertices&&(e.vertices=void 0),e.knotValues&&(e.knotValues=void 0),e.controlPoints&&(e.controlPoints=void 0),e.binaryData&&(e.binaryData=void 0),e.text&&(e.text=void 0),e.extendedData&&(e.extendedData=void 0),e.contextData&&(e.contextData=void 0);let t=e;t.boundaryPaths&&(t.boundaryPaths=[]),t.patternLines&&(t.patternLines=void 0)}releaseDxfData(e){delete e.objects.DICTIONARY,delete e.objects.SORTENTSTABLE,delete e.objects.XRECORD,delete e.tables.dimStyle,delete e.tables.lineType,delete e.tables.style,delete e.tables.blockRecord,e.entities=[],e.blocks={}}drawEntity(e,t,i,r=!1){if(this.compareContext&&this.compareContext.preservedHandles&&this.compareContext.preservedHandles.has(e.handle)&&E0.includes(e.type)&&(r=!0),!r&&this.compareContext&&this.compareContext.preservedHandles&&!E0.includes(e.type)&&!this.compareContext.preservedHandles.has(e.handle)&&(!i||i&&!this.compareContext.preservedHandles.has(i.handle)))return;if(!0===this.getLayerFrozen(t,e)){let t=e.layer;return this.statsInfo.ignoredFrozenLayersAndEntityCount[t]||(this.statsInfo.ignoredFrozenLayersAndEntityCount[t]=0),void this.statsInfo.ignoredFrozenLayersAndEntityCount[t]++}if(!1===e.visible||e.invisible)return this.statsInfo.invisibleEntities[e.type]||(this.statsInfo.invisibleEntities[e.type]=0),void this.statsInfo.invisibleEntities[e.type]++;if(this.ignorePaperSpace&&e.inPaperSpace)return this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]||(this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]=0),void this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]++;this.entityThreejsCache||(this.entityThreejsCache={});let n,s=Date.now(),a=!1;if(!this.compareContext&&this.entityThreejsCache[e.handle])n=this.entityThreejsCache[e.handle].clone(),a=!0;else if(!this.statsInfo.unsupportedEntity[e.handle]){if("CIRCLE"===e.type||"ARC"===e.type)n=this.drawArc(e,t,i);else if("LINE"===e.type||"POLYLINE"===e.type)n=this.drawLine(e);else if("XLINE"===e.type)n=this.drawXLine(e);else if("SEQEND"!==e.type)if("RAY"===e.type)n=this.drawRay(e);else if("LWPOLYLINE"===e.type)n=this.drawLWPolyline(e,t,i);else if("3DFACE"===e.type)n=this.draw3DFace(e);else if("TEXT"===e.type)n=this.drawText(e,t,i);else if("SOLID"===e.type)n=this.drawSolid(e,t,i);else if("POINT"===e.type)n=this.drawPoint(e,t,i);else if("INSERT"===e.type)n=this.drawInsert(e,t,r);else if("SPLINE"===e.type)n=this.drawSpline(e,i);else if("MTEXT"===e.type)n=this.drawMText(e,t,i);else if("ELLIPSE"===e.type)n=this.drawEllipse(e,t,i);else if("DIMENSION"===e.type)n=this.drawDimension(e,t);else if("REGION"!==e.type)if("ATTDEF"===e.type)n=this.drawAttDef(e,t,i);else if("ATTRIB"===e.type){if(!i)for(let r=0;r{ei.setSharedVariablesOfObject(n),n.matrixAutoUpdate=!1,n.updateMatrix(),n.geometry&&(!1===s&&(n.userData.layerVisible=!1),n.userData.layerName=r,this.setMaterial(n,e,t,i))})),a||(this.nonSnapableTypes.has(e.type)&&n.traverse((e=>{e.layers.set(10)})),this.enableRenderOrder&&(this.entityHandlesWithRenderOrder[e.handle]?n.renderOrder=parseInt(this.entityHandlesWithRenderOrder[e.handle],16)+.1:n.renderOrder=parseInt(e.handle,16)))}return E0.includes(e.type)||(this.entityTypesAndTimes||(this.entityTypesAndTimes={}),this.entityTypesAndTimes[e.type]||(this.entityTypesAndTimes[e.type]={createCount:0,totalTime:0,averageTime:0}),this.entityTypesAndTimes[e.type].createCount++,this.entityTypesAndTimes[e.type].totalTime+=Date.now()-s),n?this.statsInfo.entityTypesAndMeshCount[e.type]?this.statsInfo.entityTypesAndMeshCount[e.type]++:this.statsInfo.entityTypesAndMeshCount[e.type]=1:(this.statsInfo.unsupportedEntityTypes[e.type]?this.statsInfo.unsupportedEntityTypes[e.type]++:this.statsInfo.unsupportedEntityTypes[e.type]=1,E0.includes(e.type)||(this.statsInfo.unsupportedEntity[e.handle]?this.statsInfo.unsupportedEntity[e.handle]++:this.statsInfo.unsupportedEntity[e.handle]=1)),n}drawEllipse(e,t,i){if(!e.majorAxisEndPoint||!e.center||void 0===e.axisRatio||void 0===e.startAngle||void 0===e.endAngle)return;let r=e.startAngle,n=e.endAngle;if(e.extrusionDirection&&e.extrusionDirection.z<0&&(r=2*Math.PI-e.endAngle,n=2*Math.PI-e.startAngle),sr.areNumbersEqual(r,n,1e-5))return void ne.warn("[DxfLoader] Ellipse entity (handle '%s') contains the same start and end angle, ignored!",e.handle);let s=n-r;for(;s>2*Math.PI;)s-=2*Math.PI;Math.abs(s)<=1e-5&&(n=sr.floorNumber(r+2*Math.PI,5));let a=Math.sqrt(Math.pow(e.majorAxisEndPoint.x,2)+Math.pow(e.majorAxisEndPoint.y,2)),o=a*e.axisRatio,l=Math.atan2(e.majorAxisEndPoint.y,e.majorAxisEndPoint.x),h=new wp(e.center.x,e.center.y,a,o,r,n,!1,l),u=1,c=i;null!=c&&c.xScale&&null!=c&&c.yScale&&(u=Math.max(Math.abs(c.xScale),Math.abs(c.yScale)));let p=this.getDivision(r,n,Math.max(a,o)*u),d=h.getPoints(p),f=[],m=d.length;for(let e=0;e{e.geometry&&e.geometry.translate(u,c,0)})),e.rotation&&(a.rotation.z=e.rotation*Math.PI/180),e.directionVector){let t=e.directionVector,i=new A(t.x,t.y,t.z),r=i.clone().cross(Xf),n=new A(1,0,0).angleTo(i);a.rotateZ(r.z>0?-n:n)}return s.lineLength>1?a.position.y-=o.y+s.style.textHeight:a.position.y-=o.y,a}getMTextGroup(e,t,i,r,n){var s;if(0===e.length)return;let a=(n?n.style.textHeight:t.textHeight)||0;if(t.textStyle){let e=i.tables.style.styles[t.textStyle];a=a||e.textHeight}let o=a/1.5,l=a/2,h=new ur;for(let a=0;a{n&&n[n.length-1]&&n[n.length-1].colorIndex===e.colorIndex?n[n.length-1].text+=e.text:n.push(e)})),r=e.lineLength}else if("object"==typeof a)if(a.S&&3===a.S.length){let e=a.S[0]+"/"+a.S[2],t=this.getTextLineNum(e);n&&n[n.length-1]&&void 0===n[n.length-1].colorIndex?n[n.length-1].text+=e:n.push({text:a.S[0]+"/"+a.S[2],lineNum:r}),r+=t}else if(void 0!==a.C&&(s++,"string"==typeof e[s])){let t=this.getTextLineNum(e[s]);n&&n[n.length-1]&&n[n.length-1].colorIndex===a.C?n[n.length-1].text+=e[s]:n.push({colorIndex:a.C,text:e[s],lineNum:r}),r+=t}}return{text:n,lineLength:r,style:i}}getTextLineNum(e){let t=e.match(new RegExp("\\n","g"));return t?t.length:0}draw3DFace(e){if(!e.vertices||0===e.vertices.length)return void ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=e.vertices.map((e=>new A(e.x,e.y,e.z)));if(0===t.length)return;sr.areVector3sEqual(t[0],t[t.length-1])||t.push(t[0]);let i=new A,r=!1;this.enableRTC&&(r=kt.checkAndRebasePositionsOnRTC(t,i));let n=(new lt).setFromPoints(t),s=new Ir(n,Na);return r&&(this.setRTCUserData(s),s.position.x+=i.x,s.position.y+=i.y),s.renderOrder=2,s}drawSpline(e,t){if(!e.controlPoints||!e.degreeOfSplineCurve||!e.knotValues)return;let i=1/0,r=1/0,n=-1/0,s=-1/0;for(let t of e.controlPoints)t.xn&&(n=t.x),t.y>s&&(s=t.y);let a=1,o=t;null!=o&&o.xScale&&null!=o&&o.yScale&&(a=Math.max(Math.abs(o.xScale),Math.abs(o.yScale)));let l=Math.max(n-i,s-r),h=this.getBSplineInterpolationsPerSplineSegment(e.controlPoints.length,l*a),u=S2t(e.controlPoints,e.degreeOfSplineCurve,e.knotValues,h),c=new A,p=!1;this.enableRTC&&(p=kt.checkAndRebasePositionsOnRTC(u,c));let d=kt.getAdjacentNonRepeatPoints(u);if(d.length<2)return void ne.warn("[DxfLoader] Spline entity (handle '%s') contains less than 2 points, ignored!",e.handle);let f=(new lt).setFromPoints(d),m=new Ir(f,Na);return p&&(this.setRTCUserData(m),m.position.x+=c.x,m.position.y+=c.y),m}drawXLine(e){if(!e.vertices||0===e.vertices.length)return void ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=_t.arrayOrObjectToVector3(e.directionVector),i=new A(e.vertices[0].x,e.vertices[0].y,0),r=[];if(r.push(t.clone().multiplyScalar(-1e6).add(i)),r.push(t.clone().multiplyScalar(1e6).add(i)),0===r.length)return;let n=new A,s=!1;this.enableRTC&&(s=kt.checkAndRebasePositionsOnRTC(r,n));let a=(new lt).setFromPoints(r),o=new Ir(a,Na);return s&&(this.setRTCUserData(o),o.position.x+=n.x,o.position.y+=n.y),o.renderOrder=2,o}drawRay(e){if(!e.vertices||0===e.vertices.length)return void ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=_t.arrayOrObjectToVector3(e.directionVector),i=e.vertices.map((e=>new A(e.x,e.y,0)));if(i.push(t.multiplyScalar(1e6).add(i[0])),0===i.length)return;let r=new A,n=!1;this.enableRTC&&(n=kt.checkAndRebasePositionsOnRTC(i,r));let s=(new lt).setFromPoints(i),a=new Ir(s,Na);return n&&(this.setRTCUserData(a),a.position.x+=r.x,a.position.y+=r.y),a.renderOrder=2,a}drawLine(e){if(!e.vertices||0===e.vertices.length)return void ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=[];if(e.isPolyfaceMesh)t=R2t(e.vertices);else{let i=K8(e.vertices,e.shape);e.shape&&i.length>0&&i.push(i[0]),i.length>0&&(t=[i])}if(0===t.length)return;let i=[];for(let e=0;e0){if(this.enableRTC){let e=0;t.forEach((t=>{t.forEach((t=>{n.add(t),e++}))})),n.divideScalar(e),s=kt.shouldRebasePositionOnRTC(n)}let e=[],i=[],a=0,o=0,l=0,h=0;t.forEach((t=>{for(let r=0;r0&&i.push(a+r-1,a+r);a=t.length}));let u=(new lt).setFromPoints(e);u.setIndex(i),r=new li(u,Na)}if(i.length>0){this.enableRTC&&(s=kt.checkAndRebasePositionsOnRTC(i,n));let e=(new lt).setFromPoints(i);r=new nn(e,X8)}return r?(s&&(this.setRTCUserData(r),r.position.x+=n.x,r.position.y+=n.y),r):void 0}drawLWPolyline(e,t,i){var r;if(!e.vertices||e.vertices.length<2)return void ne.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);let n=e;if(void 0!==n.extrusionDirectionX&&void 0!==n.extrusionDirectionY&&void 0!==n.extrusionDirectionZ){ds.set(n.extrusionDirectionX,n.extrusionDirectionY,n.extrusionDirectionZ);let e=Ri.getOcsMatrix(ds).invert(),t=0;void 0!==n.elevation&&n.elevation>0&&(t=n.elevation),n.vertices.forEach((i=>{let r=ds.set(i.x,i.y,t).applyMatrix4(e);i.x=r.x,i.y=r.y}))}let s=K8(e.vertices,e.shape);if(e.shape&&s.length>0&&!sr.areVector3sEqual(s[0],s[s.length-1])&&s.push(s[0]),s.length<2)return void ne.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);null!=(r=e.extendedData)&&r.outlines&&e.extendedData.outlines.forEach((e=>{let t=e.map((e=>new A(e[0],e[1],0)));sr.areVectorsClose(t[0],t[t.length-1])||t.push(t[0]),s.push(...t)}));let a=new A,o=!1;this.enableRTC&&(o=kt.checkAndRebasePositionsOnRTC(s,a));let l,h=kt.getAdjacentNonRepeatPoints(s);if(!(h.length<2)){if(this.enableWidthLine&&void 0!==n.constantWidth&&n.constantWidth>1){let r=t.tables.lineType.lineTypes[this.getLineType(e,t,i)];if(!r||!r.pattern||0===r.pattern.length){let t=kt.convertWidthLineToMeshGeometry(h,n.constantWidth);if(t){let e=new rt(t,w_);l=new ur,l.add(e);let i=ei.createOutlineSync(t,e.matrix,Na);i.layers.set(10),l.add(i)}else ne.warn("[DxfLoader] Failed to convert width line to mesh geometry: %s ",e.handle)}}return l||(l=new Ir((new lt).setFromPoints(h),Na)),o&&(this.setRTCUserData(l),l.position.x+=a.x,l.position.y+=a.y,l.position.z+=a.z),l}ne.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle)}drawMLeader(e,t,i){var r,n,s,a,o,l,h,u;let c=t.tables.dimStyle.dimStyles[e.dimensionStyle]||this.getDefaultDimensionStyle(t),p=null==(r=e.contextData)?void 0:r.defaultTextContents;if(!p)return;let d=new ur,f=lO(p),m=this.mtextContentAndFormattingToTextAndStyle(f,e),g=this.getMTextGroup(m.text,e,t,i,m);if(g){null!=(n=e.contextData)&&n.textLocation&&(g.position.x+=e.contextData.textLocation.x,g.position.y+=e.contextData.textLocation.y);let t=(null==(s=e.contextData)?void 0:s.textWidth)||1;switch(m.style.horizontalAlignment){case"left":default:break;case"center":t&&(g.position.x+=t/2);break;case"right":t&&(g.position.x+=t)}let i=(new Dt).setFromObject(g).getSize(ds),r=i.x,h=i.y,u=0,c=0;switch(null==(a=e.contextData)?void 0:a.textAttachment){case 1:u=0,c=0;break;case 2:u-=r/2,c=0;break;case 3:u-=r,c=0;break;case 4:u=0,c+=h/2;break;case 5:u-=r/2,c+=h/2;break;case 6:u-=r,c+=h/2;break;case 7:u=0,c+=h;break;case 8:u-=r/2,c+=h;break;case 9:u-=r,c+=h;break;default:return}if(g.traverse((e=>{e.geometry&&e.geometry.translate(u,c,0)})),null!=(o=e.contextData)&&o.textRotation&&(g.rotation.z=e.contextData.textRotation*Math.PI/180),null!=(l=e.contextData)&&l.textDirection){let t=e.contextData.textDirection,i=new A(t.x,t.y,t.z),r=i.clone().cross(new A(1,0,0)),n=new A(1,0,0).angleTo(i);g.rotateZ(r.z>0?-n:n)}g.renderOrder=5,d.add(g)}if(0===e.leaderLineType)return g;{let i=[],r=null==(h=e.contextData)?void 0:h.leaders[0];if(!r)return d;let n=r.lastLeaderLinePoint;if(e.enableDogLeg){let e=new A(n.x,n.y,n.z),t=r.doglegLength,s=new A(r.doglegVector.x,r.doglegVector.y,r.doglegVector.z).multiplyScalar(t),a=e.clone().add(s);i.push(a,e)}let s=(null==(u=e.contextData)?void 0:u.leaders[0].leaderLines)||[];for(let r=0;rnew A(e.x,e.y,e.z))),o=new A(n.x,n.y,n.z);for(let e=0;e0?(l.add(p),qi.merge(l,!1),l):p}drawDefaultLeadArrow(e,t,i,r){let n=i*(e.x-t.x),s=i*(e.y-t.y),a=s,o=-n,l=new A(t.x+n+a/6,t.y+s+o/6,0),h=new A(t.x+n-a/6,t.y+s-o/6,0);r.push(t,l),r.push(t,h),r.push(l,h)}getBlockByHandle(e,t){if(!this.blocksCache){this.blocksCache={};for(let t in e){let i=e[t];this.blocksCache[i.ownerHandle]||(this.blocksCache[i.ownerHandle]=i)}}return this.blocksCache[t]}static transformAngleByOcsMatrix(e,t){let i=ds.set(1*Math.cos(t),1*Math.sin(t),0).applyMatrix4(e);return Math.atan2(i.y,i.x)}static getArcAnglesByOcsMatrix(e,t,i){let r,n=sr.getArcAngleSpanRad(t,i),s=Ri.transformAngleByOcsMatrix(e,t),a=Ri.transformAngleByOcsMatrix(e,i);if(sr.areNumbersClose(n,Math.PI)){n=1;let i=Ri.transformAngleByOcsMatrix(e,t+n);r=sr.getArcAngleSpanRad(s,i)}else{if(sr.areNumbersClose(n,2*Math.PI))return[s,s+2*Math.PI];r=sr.getArcAngleSpanRad(s,a)}return sr.areNumbersClose(n,r,1e-8)?[s,a]:[a,s]}drawArc(e,t,i){var r,n,s;if(!e.radius||e.radius<.001)return void ne.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is undefined, ignored!`);if(!e.radius||e.radius<.001)return void ne.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is too small, ignored!`);let a=new A(0,0,1);void 0!==e.extrusionDirectionX&&void 0!==e.extrusionDirectionY&&void 0!==e.extrusionDirectionZ&&a.set(e.extrusionDirectionX,e.extrusionDirectionY,e.extrusionDirectionZ);let o,l,h=Ri.getOcsMatrix(a);if("CIRCLE"===e.type)o=e.startAngle||0,l=o+2*Math.PI;else{if(null==e.startAngle||null==e.endAngle||(o=e.startAngle,l=e.endAngle,sr.areNumbersEqual(o,l,.001)))return;if(!sr.areNumbersClose(sr.getArcAngleSpanRad(o,l),2*Math.PI)){let e=Ri.getArcAnglesByOcsMatrix(h,o,l);o=e[0],l=e[1]}}let u=new xg(0,0,e.radius,o,l,0!==this.angBase),c=1,p=i;null!=p&&p.xScale&&null!=p&&p.yScale&&(c=Math.max(Math.abs(p.xScale),Math.abs(p.yScale)));let d=this.getDivision(o,l,e.radius*c),f=u.getPoints(d),m=new A,g=!1;this.enableRTC&&(g=kt.checkAndRebasePositionsOnRTC(f,m));let y=(new lt).setFromPoints(f),v=new Ir(y,Na),T=new A;e.center&&(T.x=e.center.x,T.y=e.center.y);let x=new A(null==(r=e.center)?void 0:r.x,null==(n=e.center)?void 0:n.y,null==(s=e.center)?void 0:s.z).applyMatrix4(h.invert());return T.x=x.x,T.y=x.y,v.position.copy(T),g?(this.setRTCUserData(v),v.position.x+=m.x,v.position.y+=m.y):kt.shouldRebasePositionOnRTC(v.position)&&this.setRTCUserData(v),v}addTriangleFacingCamera(e,t,i,r){let n=new A,s=new A;n.subVectors(i,t),s.subVectors(r,t),n.cross(s);let a=new A(t.x,t.y,t.z),o=new A(i.x,i.y,i.z),l=new A(r.x,r.y,r.z);n.z<0?e.push(l,o,a):e.push(a,o,l)}drawSolid(e,t,i){let r=e.points;if(!r||r.length<4)return;if(e.extrusionDirection&&e.extrusionDirection.z){ds.set(0,0,e.extrusionDirection.z);let t=Ri.getOcsMatrix(ds).invert();r.forEach((e=>{let i=ds.set(e.x,e.y,0).applyMatrix4(t);e.x=i.x,e.y=i.y}))}let n=[],s=[];this.addTriangleFacingCamera(n,r[0],r[1],r[2]),s.push(0,1,2),this.addTriangleFacingCamera(n,r[1],r[2],r[3]),s.push(3,4,5);let a=new A,o=!1;this.enableRTC&&(o=kt.checkAndRebasePositionsOnRTC(n,a));let l=(new lt).setFromPoints(n);l.setIndex(s);let h=new rt(l,w_);return o&&(this.setRTCUserData(h),h.position.x+=a.x,h.position.y+=a.y),h}getDefaultTextStyle(e){return e.tables.style.styles.STANDARD||e.tables.style.styles.Standard||{}}getDefaultDimensionStyle(e){return e.tables.dimStyle.dimStyles.STANDARD||e.tables.dimStyle.dimStyles.Standard||{}}getTextEncoding(e){return e.bigFontFile&&e.bigFontFile.toUpperCase().startsWith("GB")?"gbk":"utf8"}getTextMesh(e,t,i,r,n){if(!e)return;t.textStyle&&(this.statsInfo.unsupportedTextStyles[t.textStyle]||(this.statsInfo.unsupportedTextStyles[t.textStyle]=0),this.statsInfo.unsupportedTextStyles[t.textStyle]++);let s,a=(n?n.style.textHeight:t.textHeight)||0,o=.67,l={_TCH_DIM:1.45};if(t.textStyle&&l[t.textStyle]&&(o=l[t.textStyle]),t.xScale&&(o*=t.xScale),t.textStyle){let e=i.tables.style.styles[t.textStyle];o*=(null==e?void 0:e.xScale)||1,a=a||e.textHeight}let h=0;if(t.width&&(h=t.width/o+2),t.contextData&&t.contextData.textWidth&&t.contextData.textHeighte.toThreeGeometry())));r.scale(o,1,1),s=new li(r,Na)}else if(this.font instanceof Zg){let t={font:this.font,height:0,size:a||12,curveSegments:3,bevelSegments:3},i=new JA(e,t);s=new rt(i,w_)}return s}transformTextMesh(e,t){let i=(new Dt).setFromObject(t).getSize(ds),{halign:r,valign:n}=e,s=e.width||i.x,a=i.y;if(void 0===r&&void 0===n&&e.startPoint||[3,5].includes(r)&&e.startPoint?(t.position.x+=e.startPoint.x,t.position.y+=e.startPoint.y,t.position.z+=e.startPoint.z):e.endPoint&&(t.position.x+=e.endPoint.x,t.position.y+=e.endPoint.y,t.position.z+=e.endPoint.z),3!==r&&5!==r){if(e.rotation){let i=e.rotation*Math.PI/180;t.rotateZ(i)}2===e.mirrored?t.rotateY(Math.PI):4===e.mirrored&&t.rotateX(Math.PI)}switch(r){case 0:default:break;case 1:t.translateX(-s/2);break;case 2:t.translateX(-s);break;case 3:if(e.startPoint&&e.endPoint){let i=new A(e.startPoint.x,e.startPoint.y,e.startPoint.z),r=new A(e.endPoint.x,e.endPoint.y,e.endPoint.z),n=(new A).subVectors(i,r),a=n.length()/s;t.scale.multiplyScalar(a);let o=n.clone().cross(Xf),l=n.angleTo(Xf);t.rotateZ(o.z>0?Math.PI-l:l-Math.PI),(2===e.mirrored||4===e.mirrored)&&t.rotateX(Math.PI)}break;case 4:t.translateX(-s/2),t.translateY(-a/2);break;case 5:if(e.startPoint&&e.endPoint){let i=new A(e.startPoint.x,e.startPoint.y,e.startPoint.z),r=new A(e.endPoint.x,e.endPoint.y,e.endPoint.z),n=(new A).subVectors(i,r),a=n.length()/s;t.scale.setX(a);let o=n.clone().cross(Xf),l=n.angleTo(Xf);t.rotateZ(o.z>0?Math.PI-l:l-Math.PI),(2===e.mirrored||4===e.mirrored)&&t.rotateX(Math.PI)}}switch(n){case 0:case 1:default:break;case 2:t.translateY(-a/2);break;case 3:t.translateY(-a)}return t.position.z=0,t}drawText(e,t,i){let r=e.text;if(!r||!this.font)return;let n=t.tables.style.styles[e.textStyle]||this.getDefaultTextStyle(t);r=cO(r,{encoding:this.getTextEncoding(n)}).map((e=>e.text)).join("");let s=this.getTextMesh(r,e,t,i);if(!s)return;let a=s.geometry;if(s instanceof rt&&!a.getIndex()){let e=a.getAttribute("position"),t=[];for(let i=0;ie.text)).join();let n=this.getTextMesh(r,e,t,i);if(!n)return;let s=n.geometry;if(s.hasAttribute("uv")&&s.deleteAttribute("uv"),s.hasAttribute("normal")&&s.deleteAttribute("normal"),this.transformTextMesh(e,n),kt.shouldRebasePositionOnRTC(n.position))this.setRTCUserData(n);else{let e=kt.caculateGeometryCenter(s);e&&kt.shouldRebasePositionOnRTC(e)&&this.setRTCUserData(n)}return n}drawAttrib(e,t,i){let r=e.text;if(!r||!this.font)return;r=cO(r).map((e=>e.text)).join();let n=this.getTextMesh(r,e,t,i);if(!n)return;let s=n.geometry;if(s.hasAttribute("uv")&&s.deleteAttribute("uv"),s.hasAttribute("normal")&&s.deleteAttribute("normal"),this.transformTextMesh(e,n),kt.shouldRebasePositionOnRTC(n.position))this.setRTCUserData(n);else{let e=kt.caculateGeometryCenter(s);e&&kt.shouldRebasePositionOnRTC(e)&&this.setRTCUserData(n)}return n}drawPoint(e,t,i){if(!e.position)return;let r=new lt,n=[new A(e.position.x,e.position.y,e.position.z)];ds.set(0,0,0);let s=ds,a=!1;this.enableRTC&&(a=kt.checkAndRebasePositionsOnRTC(n,s)),r.setFromPoints(n);let o=new nn(r,X8);return a&&(this.setRTCUserData(o),o.position.x+=s.x,o.position.y+=s.y),o}drawDimension(e,t){if(!e.block)return;let i=t.blocks[e.block];if(!i||!i.entities)return;let r=t.tables.dimStyle.dimStyles[e.dimStyleName]||this.getDefaultDimensionStyle(t);r&&r.DIMCLRD>0&&(e.colorIndex=r.DIMCLRD,e.color=b0(e.colorIndex));let n=new ur;for(let r=0;r`,n.userData.entityType=e.type;let s=null==e?void 0:e.insertionPoint;return s&&(n.position.x+=s.x,n.position.y+=s.y),kt.shouldRebasePositionOnRTC(n.position)&&this.setRTCUserData(n),n}drawInsert(e,t,i=!1){if(!e.block)return;let r=t.blocks[e.block];if(!r.entities)return;e.blockPosition=r.position;let n=new ur;for(let s=0;s`,n.userData.entityType=e.type,null!=e&&e.blockPosition&&(n.position.x-=e.blockPosition.x,n.position.y-=e.blockPosition.y,n.updateMatrix());let s=ds.set(1,1,1);e.xScale&&(s.x=e.xScale),e.yScale&&(s.y=e.yScale);let a=new xr;e.rotation&&(a.z=e.rotation*Math.PI/180),BMe.setFromEuler(a,!1);let o=R_.set(0,0,0);e.position&&(o.x=e.position.x,o.y=e.position.y),Xc.compose(o,BMe,s),e.extrusionDirection&&e.extrusionDirection.z<0&&Xc.premultiply(UMe.identity().makeScale(-1,1,1)),$8.copy(n.matrix),n.applyMatrix4(Xc),kt.shouldRebasePositionOnRTC(n.position)&&this.setRTCUserData(n);let l=this.findSpatialFilterByHandle(e.handle,t);if(l){let t=this.drawSpatialFilter(l),i=l;i&&i.clipPolylines&&i.clipPolylines.length>0&&(n.userData.spatialFilterHandle=l.handle,this.cloneMaterialsForSpatialFilter(n),t&&t.applyMatrix4($8.invert()),ne.debug("[DxfLoader] Spatial filter:",e.associatedSpatialFilter))}return n}drawSpatialFilter(e){let t=e;if(t.threejsObject)return t.threejsObject.clone();let i=e.invertBlockMatrix;Xc.set(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8],i[9],i[10],i[11],0,0,0,1);let r=[];e.vertices.forEach((e=>{r.push(new A(e.x,e.y,0))}));let n={polyline:[],bConcave:!1,bReversed:!1};if(2===e.numberOfPointsOnClipBoundary)n.polyline=r;else{let t=e.numberOfPointsOnClipBoundary,i=3;if(te;n--){let o=r[n];if(sr.areVector3sEqual(i,o)&&e+10)break;s.push(i)}if(a>0)for(let e=a+1;e{o.push(new le(e.x,e.y)),l.push([e.x,e.y])})),!kt.isConvex(o)){ne.warn(`[DxfLoader] Concave polygon is not supported for spatial filter (handle '${e.handle}'), converting to convex polygon!`);let t=(0,kMe.default)(l,1/0);s=[],t.forEach((e=>{s.push(new A(e[0],e[1],0))}))}sr.areVector3sEqual(s[0],s[s.length-1])||s.push(s[0]),n.polyline=s,n.bReversed=a>0}return this.enableReleaseData&&(e.vertices=[],e.matrix=[],e.invertBlockMatrix=[]),t.localMatrix=Xc.clone(),t.clipPolylines=[],void t.clipPolylines.push(n)}drawLayout(e,t,i,r,n,s){if(!e.entities)return;let a;if(i.layoutName!==Ri.MODEL_LAYOUT_NAME){let e=i;e.directAssociatedLeafObjectSet||(e.directAssociatedLeafObjectSet=new Set),a=e.directAssociatedLeafObjectSet}let o=new ur;ei.setSharedVariablesOfObject(o);for(let i=0;i{if(e.geometry){let i=e.userData.layerName;!1===this.getLayerVisible(t,i)&&(e.visible=!1);let r=n[i];r||(r=[],n[i]=r),r.push(e),a&&a.add(e)}})))}if(0===o.children.length)return;o.userData.layerName=e.layer;let l=i.layoutName,h=r.children.find((e=>e.name===l));h||(h=new ur,ei.setSharedVariablesOfObject(h),h.name=l,h.userData.isLayoutLevelObject=!0,r.add(h)),h.add(o),e.position&&o.position.set(e.position.x,e.position.y,e.position.z||0),o.matrixAutoUpdate=!1,o.updateMatrix()}convertEdgeToPoints(e){let t=[];switch(e.type){case 1:{let i=e;t.push(new le(i.startPoint.x,i.startPoint.y)),t.push(new le(i.endPoint.x,i.endPoint.y));break}case 2:{let i=e,r=i.startAngle*_r.DEG2RAD,n=i.endAngle*_r.DEG2RAD;i.bCounterclockwise||(r=2*Math.PI-r,n=2*Math.PI-n);let s=new xg(i.center.x,i.center.y,i.radius,r,n,!i.bCounterclockwise),a=this.getDivision(r,n,i.radius);t.push(...s.getPoints(a));break}case 3:{let i=e,r=Math.sqrt(Math.pow(i.majorAxisEndPoint.x,2)+Math.pow(i.majorAxisEndPoint.y,2)),n=r*i.minorRatio,s=Math.atan2(i.majorAxisEndPoint.y,i.majorAxisEndPoint.x),a=i.startAngle*_r.DEG2RAD,o=i.endAngle*_r.DEG2RAD;i.bCounterclockwise||(a=2*Math.PI-a,o=2*Math.PI-o);let l=new wp(i.center.x,i.center.y,r,n,a,o,!i.bCounterclockwise,s),h=this.getDivision(a,o,Math.max(r,n));t.push(...l.getPoints(h));break}case 4:{let i=e;t.push(...i.controlPoints);break}case 0:{let i=e;t.push(...K8(i.points,i.isClosed));break}}return t}drawHatch(e,t,i){var r;let n=e;if(0==n.boundaryPaths.length)return;let s=[],a=[],o=[];if(n.boundaryPaths.forEach(((e,t)=>{if(this.IsfilteredByPathTypeFlag(e.pathTypeFlag)){let i="[DxfLoader] The %d path type flag is filtered at the %dth boundrayPath (hatch handle '%s')";return void ne.info(i,e.pathTypeFlag,t,n.handle)}let i=e.edges;if(0===i.length)return;let r=[];for(let e=0;e31&&!(e=>{for(let t=1;tnew le(_t.roundNumber(e.x,7),_t.roundNumber(e.y,7))));if((null==l?void 0:l.length)>0){s.push(l);let e=(new rs).setFromPoints(l);a.push(e);let t=e.getSize(M_),i=t.x*t.y;o.push({area:i,index:s.length-1})}})),0===s.length)return;let l=new le,h=this.checkAndRebasePolygonsOnRTC(s,l);o.sort(((e,t)=>e.area-t.area));let u=[];o.forEach((e=>{u.push(e.index)}));let c,p=this.buildContainHierarchyTree(s,a,u),d=[];if(this.buildHatchGeometry(s,p,d),d.length>0&&(c=zo(d)),!c||!c.getIndex()||0===(null==(r=c.getIndex())?void 0:r.count))return void ne.warn("[DxfLoader] Failed to convert hatch boundaries!");let f=new rt(c,w_);f.layers.set(10),this.setHatchMaterial(f,n,t,l,i);let m=f;return h?(this.setRTCUserData(f),m.position.x+=l.x,m.position.y+=l.y):kt.shouldRebasePositionOnRTC(m.position)&&this.setRTCUserData(m),m}drawOle2frame(e,t){let{leftUpX:i,leftUpY:r,rightDownX:n,rightDownY:s}=e;if(!(i&&r&&n&&s))return;let a=[new le(i,r),new le(i,s),new le(n,s),new le(n,r),new le(i,r)],o=new A,l=!1;this.enableRTC&&(l=kt.checkAndRebasePositionsOnRTC(a,o));let h=(new lt).setFromPoints(a),u=this.getLineBasicMaterial(16777215),c=new Ir(h,u);l&&(this.setRTCUserData(c),c.position.x+=o.x,c.position.y+=o.y);let p=new ur;p.add(c);let d,f,m=t.objects.DICTIONARY;for(let t of m){let i=t;for(let t in i.entries)if(i.entries[t]===e.handle){d=t;break}}if(d)if(this.meshTextureMaterials[d])f=this.meshTextureMaterials[d];else for(let e=0;e1?p:c}static getOcsMatrix(e){let t=Xf,i=Y8,r=gO,n=new A(0,1,0),s=new A(0,0,1);return sr.areVectorsClose(e,s)?Xc.identity():(r=e.clone().normalize(),sr.areVectorsClose(r,s)||(t=Math.abs(r.x)<1/64&&Math.abs(r.y)<1/64?n.cross(r).normalize():s.cross(r).normalize(),i=r.clone().cross(t).normalize()),Xc.set(t.x,t.y,t.z,0,i.x,i.y,i.z,0,r.x,r.y,r.z,0,0,0,0,1))}static getDcs2WcsMatrix(e,t){let i;i=x2t(e)?e.viewDirectionFromTarget:e.viewDirection;let r,n,s,a=new A(sr.roundNumber(i.x,7),sr.roundNumber(i.y,7),i.z),o=new A(e.viewTarget.x,e.viewTarget.y,e.viewTarget.z),l=e.viewTwistAngle;s=a.clone().normalize(),r=gO.clone().cross(a),r.length()>0?(r.normalize(),n=s.clone().cross(r)):s.z<0?(r=Xf.clone().negate(),n=Y8,s=gO.clone().negate()):(r=Xf,n=Y8,s=gO);let h=new Be,u=Xc.identity();return u.makeBasis(r,n,s),h.premultiply(u),h.premultiply(Xc.identity().compose(o.clone(),(new Hr).setFromAxisAngle(new A(0,0,1),_r.degToRad(t?l:-l)),new A(1,1,1))),h}getViewportMsToPsMatrix(e){let t=new A(e.centerPoint_dcs.x,e.centerPoint_dcs.y,0),i=new A(e.centerPoint.x,e.centerPoint.y,e.centerPoint.z),r=e.viewHeight/e.height_paperSpace,n=Ri.getDcs2WcsMatrix(e,this.angDir),s=new Be;s.setPosition(HMe.clone().sub(i));let a=UMe.identity();a.scale(ds.set(r,r,r));let o=$8.identity().setPosition(HMe.clone().sub(i));a.premultiply(o.clone().invert()).multiply(o),s.multiply(a);let l=Xc.identity();l.setPosition(t),n.multiply(l);let h=Xc.identity();return s.invert().multiply(h).multiply(n.invert())}drawViewport(e,t,i){let r=e;if("1"==r.viewportId)return e.psBBox=new Dt,void(e.msToPsMatrix=new Be);let n=[],s=r.centerPoint,a=r.width_paperSpace/2,o=r.height_paperSpace/2;n.push(new A(s.x-a,s.y-o,0)),n.push(new A(s.x-a,s.y+o,0)),n.push(new A(s.x+a,s.y+o,0)),n.push(new A(s.x+a,s.y-o,0)),n.push(n[0]),e.psBBox=new Dt(n[0],n[2]),e.msToPsMatrix=this.getViewportMsToPsMatrix(r);let l=new A,h=!1;this.enableRTC&&(h=kt.checkAndRebasePositionsOnRTC(n,l));let u=(new lt).setFromPoints(n),c=new Ir(u,Na);h&&(this.setRTCUserData(c),c.position.x+=l.x,c.position.y+=l.y),c.userData.entityType=e.type;let p=new ur;p.add(c);let d=e.psBBox.clone();d.applyMatrix4(e.msToPsMatrix.clone().invert()),d.min.z=0,d.max.z=0;let f=[];f.push(d.min),f.push(new A(d.min.x,d.max.y,0)),f.push(d.max),f.push(new A(d.max.x,d.min.y,0)),f.push(f[0]);let m=new A,g=!1;this.enableRTC&&(g=kt.checkAndRebasePositionsOnRTC(f,m));let y=(new lt).setFromPoints(f),v=new Ir(y,Na);return g&&(this.setRTCUserData(v),v.position.x+=m.x,v.position.y+=m.y),v.userData.entityType=e.type,v.userData.inPaperSpace=!0,p.add(v),c}getColor(e,t,i){var r,n,s,a,o,l;if(this.compareContext){let t=e.compareChangeType;return"Added"===t?qn.ENTITY_COLOR_ADDED:"Removed"===t?qn.ENTITY_COLOR_REMOVED:"Modified"===t?this.compareContext.isTheFirstFile?qn.ENTITY_COLOR_REMOVED:qn.ENTITY_COLOR_ADDED:qn.ENTITY_COLOR_NO_CHANGE}let h=e;if(h&&h.isGradientColor){let t=h.gradientColors;if(t&&t.length>=2){if(t[0]!==t[1]){let t=`[DxfLoader] Gradient colors are not supported for hatch '${e.handle}', will use the first color!`;ne.warn(t)}return t[0]}}if(e.isTrueColor||e.colorIndex>0&&e.colorIndex<256)return e.color;if(0===e.colorIndex)return i?this.getColor(i,t):null==(n=null==(r=t.tables)?void 0:r.layer)?void 0:n.layers[0].color;if(256===e.colorIndex){let r=null==(a=null==(s=t.tables)?void 0:s.layer)?void 0:a.layers,n=r&&r[e.layer],h=r&&i&&r[i.layer],u=$f;return u=n&&"0"!==n.name?n.color:h?h.color:n?n.color:null==(l=null==(o=t.tables)?void 0:o.layer)?void 0:l.layers[0].color,u}return ne.warn("[DxfLoader] Unknown colorIndex"),$f}getLineType(e,t,i){var r,n;if(i&&"DIMENSION"===i.type)return this.getLineType(i,t);if(e.lineType!==QA&&e.lineType!==D8)return e.lineType;if(e.lineType===D8)return i?this.getLineType(i,t):e.lineType;let s=null==(n=null==(r=t.tables)?void 0:r.layer)?void 0:n.layers,a=b2t;if("0"!==e.layer){let t=s&&s[e.layer];if(t)return t.lineType}else if(i){let e=s&&s[i.layer];if(e)return e.lineType}return a}getLayerName(e,t,i){var r,n;let s=null==(n=null==(r=t.tables)?void 0:r.layer)?void 0:n.layers,a=s&&s[e.layer],o=s&&i&&s[i.layer],l=a.name;return a&&"0"===a.name&&o&&(l=o.name),l||"0"}setMaterial(e,t,i,r){let n=e;if(!n.geometry||(this.setRenderOrderByObjectType(e),"OLE2FRAME"===t.type))return;if("MTEXT"===t.type)return void(e.renderOrder=5);if("HATCH"===t.type)return M_.set(0,0),void this.setHatchMaterial(e,t,i,M_,r);let s,a=this.getColor(t,i,r);if("LWPOLYLINE"===t.type&&(n.isMesh?(s=this.getMeshBasicMaterial(a),e.renderOrder=1):e.userData.isOutline&&(s=this.getLineBasicMaterial(a),e.renderOrder=3),s))n.material=s;else{if("SOLID"===t.type)s=this.getMeshBasicMaterial(a);else if("TEXT"===t.type||"ATTDEF"===t.type||"ATTRIB"===t.type)s=this.getLineBasicMaterial(a),e.renderOrder=5;else if("LEADER"===t.type||"MULTILEADER"===t.type||"VIEWPORT"===t.type)s=this.getLineBasicMaterial(a);else if("POINT"===t.type)s=this.getPointsMaterial(a);else{if(e.material instanceof jn)return s=this.getPointsMaterial(a),void(n.material=s);let o=i.tables.lineType.lineTypes[this.getLineType(t,i,r)],l=t.lineTypeScale||1;o&&o.pattern&&0!==o.pattern.length?(s=this.getLineShaderMaterial(o,a,l),e.renderOrder=3):s=this.getLineBasicMaterial(a)}n.material=s}}setHatchMaterial(e,t,i,r,n){let s=e;if(!s.geometry)return;let a=this.getColor(t,i,n);if(s.isLine)return void(s.material=this.getLineBasicMaterial(a));let o,l=-1;if(t.solidFill)o=this.getMeshBasicMaterial(a);else{if(s.material instanceof Yt){o=s.material;let e=new je(a);s.material.uniforms.u_color.value.equals(e)||(o=s.material.clone(),this.updateMaterialUniforms(o),o.uniforms.u_color.value.set(a))}else o=this.getHatchShaderMaterial(t,a,r);l=0}o||(o=this.getMeshBasicMaterial(a),l=-1),s.material=o,s.renderOrder=l}setRenderOrderByObjectType(e){let t=e,i=0;t.isMesh?i=-1:t.isLine?i=2:t.isPoints&&(i=4),e.renderOrder=i}getPointsMaterial(e){return this.pointsMaterials[e]||(this.pointsMaterials[e]=new jn({size:.2,color:e})),this.pointsMaterials[e]}getLineBasicMaterial(e){return this.lineBasicMaterials[e]||(this.lineBasicMaterials[e]=new vr({color:e})),this.lineBasicMaterials[e]}getLineShaderMaterial(e,t,i){let r=`${e.name}_${t}_${i}`;if(!this.lineShaderMaterials[r]){let n=this.getLineTypeScales(),s=n.ltScale*n.celtScale*i;this.lineShaderMaterials[r]=oO.createLineShaderMaterial(e.pattern,t,s,Ri.viewportScaleUniform,Ri.cameraZoomUniform)}return this.lineShaderMaterials[r]}getMeshBasicMaterial(e){return this.meshBasicMaterials[e]||(this.meshBasicMaterials[e]=new or({color:e})),this.meshBasicMaterials[e]}getHatchShaderMaterial(e,t,i){if(!e.patternLines||e.patternLines.length<1)return;let r=this.findMatchedHatchShaderMaterial(e,t);if(r)return r;let n=2;e.patternLines.forEach((e=>{n=Math.max(e.dashPattern.length,n)}));let s=0,a=[],o=new le;for(let t of e.patternLines){let r=new le(t.origin.x,t.origin.y).sub(i).rotateAround(o,-_r.degToRad(e.patternAngle)),l=new le(t.delta.x,t.delta.y).rotateAround(o,-_r.degToRad(t.angle));if(0===l.y)return void ne.warn("[DxfLoader] delta.y is equal to zero !");let h=t.dashPattern.length,u=!0,c=0;for(let e=0;e0&&(u=!1),c+=Math.abs(i)}let p=u?.05:.005,d=[],f=[],m=0;f[0]=m;for(let e=0;eRi.maxFragmentUniforms){ne.warn("[DxfLoader] There will be warning in fragment shader when number of uniforms exceeds 1024, so extra hatch line patterns are ignored here!");break}a.push(g)}let l=MMe(a,e.patternAngle,Ri.cameraZoomUniform,new je(t));return l.defines={MAX_PATTERN_SEGMENT_COUNT:n},this.hatchShaderMaterials.push({patternLines:e.patternLines,patternAngle:e.patternAngle,color:t,material:l}),l}getDivision(e,t,i){let r=Math.round(5e4/this.entityCount);r=Math.max(r,2),r=Math.min(r,10);let n=5*r,s=2*r;if(this.averageCurveSize){s*=Math.pow(i/this.averageCurveSize,.5),s=Math.max(s,r),s=Math.min(s,n)}let a=t-e;a<0&&(a+=2*Math.PI),s=Math.ceil(s*(a/Math.PI));let o=8;return a<.087?o=2:a<.174?o=3:a<.52?o=4:a<1.57?o=5:a<3.14?o=6:a<4.71&&(o=7),s=Math.max(s,o),this.averageCurveSize=(this.averageCurveSize*this.curveCount+i)/(this.curveCount+1),this.curveCount++,Math.max(s,12)}getBSplineInterpolationsPerSplineSegment(e,t){let i=1;this.averageCurveSize&&(i=Math.pow(t/this.averageCurveSize,.5),i=Math.max(i,.5),i=Math.min(i,2)),this.averageCurveSize=(this.averageCurveSize*this.curveCount+t)/(this.curveCount+1),this.curveCount++;let r=2*e*i;if(e>20){r/=Math.log10(e)}return r}getSimplifyTolerance(){return.03}setDxfDataToIndexedDb(e,t){return ht(this,null,(function*(){let i={dxfDataId:e,dxf:t};return new Promise(((t,r)=>{QT.instance().add(i,(()=>{ne.info(`[DxfLoader] Saved '${e}' to indexedDb`),t()}),(e=>{r(e)}))}))}))}getDxfDataFromIndexedDb(e){return ht(this,null,(function*(){return new Promise(((t,i)=>{QT.instance().query(e,(e=>{e&&e.length>0&&t(e[0].dxf),t(void 0)}),(()=>i()))}))}))}buildContainHierarchyTree(e,t,i){var r;let n=new Map,s=i.length;for(let e=0;e{0===e.children.length?r.push(e.index):n.set(e.index,e.children.map((e=>e.index)))}));let s=e=>{try{let t=new Dp(e);t.hasAttribute("uv")&&t.deleteAttribute("uv"),t.hasAttribute("normal")&&t.deleteAttribute("normal"),i.push(t)}catch(t){ne.warn(`[DxfLoader] triangulate shape error: ${e.getPoints().map((e=>e.toArray())).toString()}`)}};r.forEach((t=>{let i=e[t];if(0===i.length)return;let r=new Qa(i);s(r)}));let a=e=>e.map((e=>e.toArray()));for(let t of n){let i=new Qa(e[t[0]]),r={regions:[],inverted:!1},n=this.findIntersectHole(e,t[1]);n.forEach((t=>{let n={regions:[],inverted:!1};try{t.forEach(((t,s)=>{if(Xl.epsilon(sr.getVector2RelativeEps(e[t][0]),1e-6),0===s)n=Xl.segments({regions:[a(e[t])],inverted:!1});else{let s=Xl.segments({regions:[a(e[t])],inverted:!1}),o=Xl.combine(n,s);r=Xl.polygon(Xl.selectUnion(o)),r.regions.length>0?r.regions.forEach((e=>{if(0===e.length)return;let t=e.map((e=>new le(e[0],e[1])));i.holes.push(new ku(t))})):ne.warn("[DxfLoader] mergedHoles.regions is empty")}}))}catch(e){ne.warn(`[DxfLoader] polybooljs has error: ${e}, epsilon is ${Xl.epsilon()}`)}}));let o=n.flat(2);for(let r=0;r{t.children.forEach((t=>{this.buildHatchGeometry(e,t,i)}))}))}findIntersectHole(e,t){let i=t.length,r=[];for(let n=0;n{e.forEach((e=>{t.add(e),i++}))})),t.divideScalar(i);let r=!1;if(this.enableRTC&&kt.shouldRebasePositionOnRTC(t)){r=!0;for(let i=0;i{i.entries[e]&&"ACAD_SORTENTS"===i.entries[e]&&t.add(e)}))}if(0===t.size)return;let r=e.objects.SORTENTSTABLE;if(r)for(let e=0;eMath.abs(e-t)<1e-5,n=(e,t)=>r(e.angle,t.angle)&&r(e.delta.x,t.delta.x)&&r(e.delta.y,t.delta.y)&&r(e.origin.x,t.origin.x)&&r(e.origin.y,t.origin.y)&&((e,t)=>{if(e.length!==t.length)return!1;for(let i=0;ir.color===t&&r.patternAngle===e.patternAngle&&((e,t)=>{if(e.length!==t.length)return!1;for(let i=0;i{t[e.handle]=e.layoutHandle}))}let i=this.blockRecordsCache[t.ownerHandle];if(i){let t=e.objects.LAYOUT.find((e=>e.handle===i));if(t)return t}if(!this.entitiesCache){this.entitiesCache={};let t=this.entitiesCache;Object.values(e.entities).forEach((e=>{t[e.handle]=e}))}let r=this.entitiesCache[t.ownerHandle];return r?this.getLayout(e,r):(ne.warn("[DxfLoader] Failed to find layout name for entity:",t),e.objects.LAYOUT.find((e=>e.layoutName===Ri.MODEL_LAYOUT_NAME)))}getLayerVisible(e,t){var i,r,n;let s=null==(r=null==(i=e.tables)?void 0:i.layer)?void 0:r.layers;return s&&(null==(n=s[t])?void 0:n.visible)}getLayerFrozen(e,t){var i,r,n;let s=null==(r=null==(i=e.tables)?void 0:i.layer)?void 0:r.layers;return s&&(null==(n=s[t.layer])?void 0:n.frozen)}updateMaterialUniforms(e){e instanceof Yt&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=Ri.cameraZoomUniform),e.uniforms.u_viewportScale&&(e.uniforms.u_viewportScale=Ri.viewportScaleUniform))}cloneMaterialsForSpatialFilter(e){let t=new Map,i=e=>{let i;return Array.isArray(e)?(i=[],e.forEach((e=>{if(t.has(e.id))i.push(t.get(e.id));else{let r=e.clone();this.updateMaterialUniforms(r),t.set(e.id,r),i.push(r)}}))):e&&(t.has(e.id)?i=t.get(e.id):(i=e.clone(),this.updateMaterialUniforms(i),t.set(e.id,i))),i};e.traverse((e=>{e.material&&(e.material=i(e.material))}))}getLineTypeScales(){let e={ltScale:1,celtScale:1};return this.header&&(e.ltScale=this.header.$LTSCALE||1,e.celtScale=this.header.$CELTSCALE||1),e}static getDxfUnits(e){switch(e||0){case 0:return"Unitless";case 1:return"Inches";case 2:return"Feet";case 4:return"Millimeters";case 5:return"Centimeters";case 6:return"Meters";default:ne.warn(`[DxfLoader] Unsupported $INSUNITS '${e}'`)}return"Unitless"}static computeLineDistance(e){let t=!0===e.isLineSegments,i=e.geometry,r=e.matrixWorld;if(i.index&&(ne.debug(`[DxfLoader] Line with id '${e.id}' contains index buffer, going to convert it to non-indexed.`),i=kt.convertGeometryWithIndexedToNonIndexed(i)),null===i.index){let e=i.attributes.position;if(!e||0===e.count)return;let n=[];if(t)for(let t=0,i=e.count;t{let t=e;t.isLine&&t.material instanceof Yt&&Ri.computeLineDistance(t)})),ne.debug(`[DxfLoader] Computed line distances in ${(Date.now()-t)/1e3}s`)}static merge(e){let t={};e.objects.LAYOUT.forEach((e=>{var i;let r=e;t[r.layoutName]=r,null==(i=r.directAssociatedLeafObjectSet)||i.clear()}));let i=Date.now(),r={},n={},s=0,a=0,o=()=>{let e=Date.now();for(let e in r){let t=r[e];Ri.removeEmptyObjectsFromRemovingMarkedObjects(t.children,t.object),t.children=[]}s=0,a+=Date.now()-e};for(let i in e.layersAndThreejsObjects){let l=e.layersAndThreejsObjects[i];if(l.length<=1)continue;let h=Date.now(),u={};for(let e of l){let t,i=e;for(;i;){if(i.userData.isLayoutLevelObject){t=i;break}i=i.parent}if(!t)continue;let r=t.name;u[r]||(u[r]={object:t,children:[]}),u[r].children.push(e)}let c=[];for(let e in u){let i;if(e!==Ri.MODEL_LAYOUT_NAME){let r=t[e];r.directAssociatedLeafObjectSet||(r.directAssociatedLeafObjectSet=new Set),i=r.directAssociatedLeafObjectSet}let l=u[e],h=qi.deepMerge(l.children,l.object,!1,!1,!0),p=h.added,d=h.removed;r[e]||(r[e]={object:l.object,children:[]}),n[e]||(n[e]={object:l.object,children:[]});let f=d.length>15e3;if(f){let e=Date.now();Ri.removeEmptyObjectsFromRemovingMarkedObjects(d,l.object),a+=Date.now()-e}else s+=d.length;if(d.length===l.children.length)f||d.forEach((t=>{r[e].children.push(t)}));else{let t=d;d.length>=100&&(t=new Set(d));let n=e=>Array.isArray(t)?t.indexOf(e)>=0:t.has(e);for(let t=0;t15e3&&o()}e.layersAndThreejsObjects[i]=c,ne.debug(`[DxfLoader] Merged layer '${i}' in ${(Date.now()-h)/1e3}s`)}s>0&&o();for(let t in n){let i=n[t];e.threejsObject.children.find((e=>e.name===t))||e.threejsObject.add(i.object),i.children.forEach((e=>{i.object.add(e),e.updateWorldMatrix(!1,!1)})),i.children=[]}ne.debug(`[DxfLoader] MergeUtils.deepMerge costed ${qi.mergeInfo.elapsedTime/1e3}s`),ne.debug(`[DxfLoader] The remove operation of deep merge costed ${a/1e3}s`),ne.debug(`[DxfLoader] Deep merge totally costed ${(Date.now()-i)/1e3}s`);let l=qi.mergeInfo;ne.debug(`[DxfLoader] Totally merged ${l.removedObjects} objects to ${l.mergedMeshes} meshes, ${l.mergedLines} lines, ${l.mergedPoints} points, ${l.mergedUnknownTypeObjects?l.mergedUnknownTypeObjects+" unknown type,":""} `)}static statLayoutAndLayerObjects(e){let t=new WeakSet,i=0;for(let r in e.layersAndThreejsObjects)e.layersAndThreejsObjects[r].forEach((e=>{e.geometry&&(i++,t.has(e)?console.warn(e):t.add(e))}));let r=new WeakSet,n=0;if(e.threejsObject.traverse((e=>{e.geometry&&(n++,r.has(e)?console.warn(e):r.add(e))})),i!=n)for(let t in e.layersAndThreejsObjects)e.layersAndThreejsObjects[t].forEach((e=>{e.geometry&&(r.has(e)||console.warn(e))}));ne.info(`[DxfLoader] The count of layer objects is ${i},The count of layout objects is ${n} `)}static removeEmptyObjectsFromRemovingMarkedObjects(e,t){if(0===e.length)return;let i=e=>{let r=[];for(let i of e){i.userData.validCount=0;let e=i.parent;e&&e!==t&&(void 0===e.userData.validCount&&(e.userData.validCount=e.children.length),0==--e.userData.validCount&&r.push(e))}r.length>0&&i(r)};i(e),this.removeEmptyObjectsFromMark(t)}static removeEmptyObjectsFromMark(e){if(0===e.userData.validCount||ei.isEmptyObject(e))return e.removeFromParent(),!0;for(let t=0;t>3]&128>>t)>>7-t}setBit(e,t){var i=e>>3,r=this.u8[i],n=7&e;this.u8[i]=t?r|128>>n:r&~(128>>n)}getInt12(e){var t=e/8|0,i=this.u8[t],r=this.u8[t+1],n=this.u8[t+2],s=e%8,a=8-s,o=Math.min(12-a,8);return(((i&=~(255<>12-s)-2048}setInt12(e,t){var i=e/8|0,r=e%8,n=(t+=2048)<<12-r,s=(16711680&n)>>16,a=(65280&n)>>8,o=255&n,l=8-r,h=Math.min(12-l,8),u=Math.max(12-l-h,0),c=255<>8-(2-n))))<<8)+(r&=255<<8-Math.max(6-s,0))>>10-n)-32}setInt6(e,t){var i=e/8|0,r=e%8,n=(t+=32)<<10-r,s=(65280&n)>>8,a=255&n,o=8-r,l=Math.max(6-o,0),h=(255<>8-(2-r));this.u8[i]=(this.u8[i]&h)+s;var u=~(255<<8-l);this.u8[i+1]=(this.u8[i+1]&u)+a}test(){var e,t,i=new ArrayBuffer(3),r=new R0(i);for(t=0;t<12;t++)for(e=-2048;e<2048;e++)if(r.setInt12(t,e),r.getInt12(t)!=e){console.log("12-bit prob at",t,e),console.log("expected",e,"got",r.getInt12(t));break}for(t=0;t<18;t++)for(e=-32;e<32;e++)if(r.setInt6(t,e),r.getInt6(t)!=e){console.log("6-bit prob at",t,e),console.log("expected",e,"got",r.getInt6(t));break}return r}},GMe=(e=>(e[e.NULL=0]="NULL",e[e.POINT=1]="POINT",e[e.POLYLINE=3]="POLYLINE",e[e.POLYGON=5]="POLYGON",e))(GMe||{}),vO=class{parse(e){var t={},i=new DataView(e),r=0;if(t.fileCode=i.getInt32(r,!1),9994!=t.fileCode)throw new Error("Unknown file code: "+t.fileCode);for(r+=24,t.wordLength=i.getInt32(r,!1),t.byteLength=2*t.wordLength,r+=4,t.version=i.getInt32(r,!0),r+=4,t.shapeType=i.getInt32(r,!0),r+=4,t.minX=i.getFloat64(r,!0),t.minY=i.getFloat64(r+8,!0),t.maxX=i.getFloat64(r+16,!0),t.maxY=i.getFloat64(r+24,!0),t.minZ=i.getFloat64(r+32,!0),t.maxZ=i.getFloat64(r+40,!0),t.minM=i.getFloat64(r+48,!0),t.maxM=i.getFloat64(r+56,!0),r+=64,t.records=[];rn.push(...e)));let s=new lt;s.setFromPoints(e),s.setIndex(n),t.push(s);let a=new lt;e.length>2&&!e[0].equals(e[e.length-1])&&e.push(e[0]),a.setFromPoints(e),i.push(a)}else{let t=new lt;t.setFromPoints(e),i.push(t)}}}var p=new cr;for(r=0;r1023||Math.abs(s-e[o+1])>1023?(i.push(r),a+=1,r=[],n=e[o],s=e[o+1],r.push(n,s),a+=4,o++):(r.push((e[o]-n)/8,(e[o+1]-s)/8),n+=8*((e[o]-n)/8|0),s+=8*((e[o+1]-s)/8|0),a+=2,o++):(i.push(r),t.push(i),i=[],r=[],a+=3);return this.storeDeltas(a,t)}deltaEncode6(e){var t=[],i=[],r=[],n=0,s=0,a=0,o=0;for(a=0;a31||Math.abs(s-e[a+1])>31?(i.push(r),o+=1,r=[],n=e[a],s=e[a+1],r.push(n,s),o+=4,a++):(r.push(e[a]-n,e[a+1]-s),n+=e[a]-n,s+=e[a+1]-s,o+=2,a++):(i.push(r),t.push(i),i=[],r=[],o+=3);return this.storeDeltas6(o,t)}storeDeltas(e,t){for(var i=new ArrayBuffer(e),r=new DataView(i),n=0,s=0;s{this.updateProgress(i,50);let e=(new vO).parse(n.response),r=(new yO).createModel(e);this.updateProgress(i,99),t(r)},n.onerror=r,n.open("GET",e),n.send(null)}))}updateProgress(e,t){if(e){e(new ProgressEvent("progress",{lengthComputable:!0,loaded:t,total:100}))}}},M2t="three/js/libs/draco/gltf/",$c=class{constructor(e){this.manager=e}loadLocalModel(e,t,i){return ht(this,null,(function*(){let r=t.toLowerCase();return r.endsWith("fbx")?this.loadFbx(e,i):r.endsWith("obj")?this.loadObj(e,i):r.endsWith("stl")?this.loadStl(e,i):r.endsWith("ifc")?this.loadIfc(e,i):r.endsWith("shp")?this.loadShp(e,i):r.endsWith("dae")?this.loadDae(e,i):r.endsWith("dxf")?this.loadDxf(e,i):r.endsWith("jpg")||r.endsWith("jpeg")||r.endsWith("png")?this.loadImage(e,i):this.loadGltf(e,i)}))}loadModel(e,t,i){return ht(this,null,(function*(){let r=e;if(!r)return Promise.resolve();let n=(null==t?void 0:t.toLowerCase())||"";if(!n){let e=r.split("?")[0].toLowerCase();if(e){let t=e.lastIndexOf(".");-1!==t&&(n=e.slice(t+1))}}return n.endsWith("fbx")?this.loadFbx(r,i):n.endsWith("obj")?this.loadObj(r,i):n.endsWith("stl")?this.loadStl(r,i):n.endsWith("ifc")?this.loadIfc(r,i):n.endsWith("shp")?this.loadShp(r,i):n.endsWith("dae")?this.loadDae(r,i):n.endsWith("dxf")?this.loadDxf(r,i):n.endsWith("jpg")||n.endsWith("jpeg")||n.endsWith("png")?this.loadImage(r,i):this.loadGltf(r,i)}))}loadGltf(e,t){return ht(this,null,(function*(){let i=this.getGltfLoader();-1!==e.indexOf("#")&&console.warn(`[LoadingHelper] '#' is not allowed in filename ${e}`),e=e.replace(/#/g,encodeURIComponent("#"));let r=yield i.loadAsync(e,t);return Promise.resolve(r.scene)}))}parseGltf(e,t,i,r){return this.getGltfLoader().parse(e,t,(e=>i(e.scene)),r)}loadFbx(e,t){return ht(this,null,(function*(){let i=yield new lA(this.manager).loadAsync(e,t);return Promise.resolve(i)}))}loadObj(e,t){return ht(this,null,(function*(){let i=new VA(this.manager),r=new kA(this.manager),n=e.replace(".obj",".mtl"),s=yield r.loadAsync(n,t);s.preload(),i.setMaterials(s);let a=yield i.loadAsync(e,t);return Promise.resolve(a)}))}loadStl(e,t){return ht(this,null,(function*(){let i=yield new WA(this.manager).loadAsync(e,t);return Promise.resolve(new rt(i))}))}loadIfc(e,t){return ht(this,null,(function*(){let i=new BA(this.manager),r=i.ifcManager;r&&"function"==typeof r.setWasmPath&&r.setWasmPath("../three/js/libs/ifc/");let n=yield i.loadAsync(e,t);return Promise.resolve(n.mesh)}))}loadShp(e,t){return ht(this,null,(function*(){let i=new TO;return new Promise(((r,n)=>{i.load(e,(e=>{r(e)}),t,(e=>{n(e)}))}))}))}loadDae(e,t){return ht(this,null,(function*(){let i=yield new nA(this.manager).loadAsync(e,t);return Promise.resolve(i.scene)}))}loadDxf(e,t){return ht(this,null,(function*(){this.font||console.warn("[LoadingHelper] Should set font first!");let i=new Er;try{let r=yield i.loadAsync(e,t);return Promise.resolve(r.threejsObject)}catch(e){let t=new ErrorEvent("");return Promise.reject(t)}}))}loadPly(e,t){return ht(this,null,(function*(){let i=yield new jA(this.manager).loadAsync(e,t);return Promise.resolve(new rt(i))}))}loadImage(e,t){return ht(this,null,(function*(){let i=yield new bs(this.manager).loadAsync(e,t);if(!i)return Promise.reject("Failed to load image!");let r=i.image,n=r&&r.height||10,s=r&&r.width||10;n*=10/s,s=10;let a=new or({map:i,side:gi,transparent:!0}),o=new ts(s,n),l=new rt(o,a);return Promise.resolve(l)}))}loadDxfDataAsync(e,t,i,r,n,s){return ht(this,null,(function*(){var a;this.font||console.warn("[LoadingHelper] Should set font first!");let o=new Er(n,s);return o.setFont(this.font),o.manager.onLoad=()=>{r&&r()},this.font&&this.font.getFontData&&(yield null==(a=this.font)?void 0:a.getFontData()),o.load(e,t,i)}))}setFont(e){this.font=e}getGltfLoader(){if(!this.gltfLoader){this.gltfLoader=new $u(this.manager);let e=new sA(this.manager);e.setDecoderPath(M2t),this.gltfLoader.setDRACOLoader(e)}return this.gltfLoader}},tE=class{constructor(e){this.running=!1,this.workers=[];let t=1;e?t=e:window.navigator&&(t=Math.max(t,window.navigator.hardwareConcurrency-1));for(let e=0;e{let r=this.workers.length,n=e.length,s=[],a=Math.floor(n/r),o=n%r,l=0,h=0;for(let i=0;i=h)break;ne.debug("startIndex: "+l+" endIndex: "+h),s.push(r.generate(e.slice(l,h),t))}Promise.allSettled(s).then((()=>{this.running=!1,i()}))}));ne.warn("[BVHHelper] Worker has been disposed.")}}))}dispose(){for(let e=0;e{e.traverse((e=>{let r=e;if(r.isMesh&&r.geometry&&qi.isMergedMesh(r)&&!(r instanceof rn)){if(i.has(r.geometry.id))return;r.geometry.index&&t.saveOriginalIndex&&(r.geometry.userData.originalIndex=r.geometry.index.array.slice()),r.geometry.boundsTree=new Pc(r.geometry,t),i.add(r.geometry.id)}}))}))}static createMeshBvhAsync(e,t={}){let i=new Set,r=[];e.forEach((e=>{e.traverse((e=>{let t=e;if(t.isMesh&&t.geometry&&qi.isMergedMesh(t)&&!(t instanceof rn)){if(i.has(t.geometry.id))return;r.push(t.geometry),i.add(t.geometry.id)}}))}));let n=new tE;n.generate(r,t).then((()=>{n.dispose()}))}},D2t=(e=>(e[e.NONE=-1]="NONE",e[e.ROTATE=0]="ROTATE",e[e.DOLLY=1]="DOLLY",e[e.PAN=2]="PAN",e[e.TOUCH_ROTATE=3]="TOUCH_ROTATE",e[e.TOUCH_DOLLY=4]="TOUCH_DOLLY",e))(D2t||{}),C2t=(e=>(e.LEFT="ArrowLeft",e.UP="ArrowUp",e.RIGHT="ArrowRight",e.BOTTOM="ArrowDown",e))(C2t||{});function rE(e){return{type:e}}var hh={movable:!1,startDistBetweenFingers:0,scale:1},iE=2*Math.PI,VMe=1e-6,EO=class extends Bo{constructor(e,t,i=!1){super(),this.enabled=!0,this.target=new A,this.enableZoom=!1,this.enablePan=!1,this.enableRotate=!0,this.state=-1,this.rotateSpeed=1,this.zoomSpeed=1,this.panSpeed=1,this.scale=1,this.minZoom=0,this.maxZoom=1/0,this.screenSpacePanning=!0,this.autoRotate=!0,this.autoRotateSpeed=2,this.enableDamping=!1,this.dampingFactor=.05,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minDistance=0,this.maxDistance=1/0,this.keyPanSpeed=7,this.minFov=50,this.maxFov=95,this.zoomChanged=!1,this.panOffset=new A,this.pointerPositions={},this.rotateStart=new le,this.rotateEnd=new le,this.rotateDelta=new le,this.dollyStart=new le,this.dollyEnd=new le,this.dollyDelta=new le,this.panStart=new le,this.panEnd=new le,this.panDelta=new le,this.pointers=[],this.spherical=new ff,this.sphericalDelta=new ff,this.update=function(e){let t=new A,i=new A,r=new Hr;return function(){let n=e.quat,s=n.clone().invert(),a=e.object.position;t.copy(a).sub(e.target),t.applyQuaternion(n),e.spherical.setFromVector3(t),e.autoRotate&&-1===e.state&&(e.isVRMode?e.sphericalDelta.theta+=iE/60/60*e.autoRotateSpeed:e.sphericalDelta.theta-=iE/60/60*e.autoRotateSpeed),e.enableDamping?(e.spherical.theta+=e.sphericalDelta.theta*e.dampingFactor,e.spherical.phi+=e.sphericalDelta.phi*e.dampingFactor):(e.spherical.theta+=e.sphericalDelta.theta,e.spherical.phi+=e.sphericalDelta.phi);let o=e.minAzimuthAngle,l=e.maxAzimuthAngle;return isFinite(o)&&isFinite(l)&&(o<-Math.PI?o+=iE:o>Math.PI&&(o-=iE),l<-Math.PI?l+=iE:l>Math.PI&&(l-=iE),e.spherical.theta=o<=l?Math.max(o,Math.min(l,e.spherical.theta)):e.spherical.theta>(o+l)/2?Math.max(o,e.spherical.theta):Math.min(l,e.spherical.theta)),e.spherical.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,e.spherical.phi)),e.spherical.makeSafe(),e.spherical.radius*=e.scale,e.spherical.radius=Math.max(e.minDistance,Math.min(e.maxDistance,e.spherical.radius)),!0===e.enableDamping?e.target.addScaledVector(e.panOffset,e.dampingFactor):e.target.add(e.panOffset),t.setFromSpherical(e.spherical),t.applyQuaternion(s),a.copy(e.target).add(t),e.object.lookAt(e.target),!0===e.enableDamping?(e.sphericalDelta.theta*=1-e.dampingFactor,e.sphericalDelta.phi*=1-e.dampingFactor,e.panOffset.multiplyScalar(1-e.dampingFactor)):(e.sphericalDelta.set(0,0,0),e.panOffset.set(0,0,0)),e.scale=1,!!(e.zoomChanged||i.distanceToSquared(e.object.position)>VMe||8*(1-r.dot(e.object.quaternion))>VMe)&&(e.dispatchEvent(rE("change")),i.copy(e.object.position),r.copy(e.object.quaternion),e.zoomChanged=!1,!0)}}(this),this.onContextMenu=function(e){return t=>{!1!==e.enabled&&t.preventDefault()}}(this),this.onPointerDown=function(e){return t=>{!1!==e.enabled&&(0===e.pointers.length&&(e.domElement.setPointerCapture(t.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),e.addPointer(t),"touch"===t.pointerType?e.onTouchStart(t):e.onMouseDown(t))}}(this),this.onPointerMove=function(e){return t=>{!1!==e.enabled&&("touch"===t.pointerType?e.onTouchMove(t):e.onMouseMove(t))}}(this),this.onPointerUp=function(e){return t=>{e.removePointer(t),0===e.pointers.length&&(e.domElement.releasePointerCapture(t.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),"touch"===t.pointerType&&e.handlerTouchEnd(t),e.dispatchEvent(rE("end")),e.state=-1}}(this),this.onPointerCancel=function(e){return t=>{e.removePointer(t),e.handlerTouchEnd(t)}}(this),this.onMouseWheel=function(e){return t=>{!1===e.enabled||!1===e.enableZoom||-1!==e.state||(t.preventDefault(),t.stopPropagation(),e.dispatchEvent(rE("start")),e.handleMouseWheel(t),e.dispatchEvent(rE("end")))}}(this),this.pan=function(e){let t=new A;return function(i,r){let n=e.domElement;if(e.object instanceof Xr){let s=e.object.position;t.copy(s).sub(e.target);let a=t.length();a*=Math.tan(e.object.fov/2*Math.PI/180),e.panLeft(2*i*a/n.clientHeight,e.object.matrix),e.panUp(2*r*a/n.clientHeight,e.object.matrix)}else console.warn("WARNING: VRControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1}}(this),this.panLeft=function(e){let t=new A;return function(i,r){t.setFromMatrixColumn(r,0),t.multiplyScalar(-i),e.panOffset.add(t)}}(this),this.panUp=function(e){let t=new A;return function(i,r){!0===e.screenSpacePanning?t.setFromMatrixColumn(r,1):(t.setFromMatrixColumn(r,0),t.crossVectors(e.object.up,t)),t.multiplyScalar(i),e.panOffset.add(t)}}(this),this.onKeyDown=e=>{!1===this.enabled||!1===this.enablePan||this.handleKeyDown(e)},this.object=e,this.domElement=t,this.isVRMode=i,this.quat=(new Hr).setFromUnitVectors(this.object.up,new A(0,1,0)),this.domElement&&this.domElement.style&&(this.domElement.style.touchAction="none"),this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerCancel),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this.domElementKeyEvents&&this.domElementKeyEvents.removeEventListener("keydown",this.onKeyDown)}addPointer(e){this.pointers.push(e)}removePointer(e){delete this.pointerPositions[e.pointerId];for(let t=0;t0&&this.dollyOut(t),this.update()}handleMouseDownRotate(e){this.rotateStart.set(e.clientX,e.clientY)}handleMouseDownDolly(e){this.dollyStart.set(e.clientX,e.clientY)}handleMouseDownPan(e){this.panStart.set(e.clientX,e.clientY)}handleTouchStartRotate(){if(1===this.pointers.length)this.rotateStart.set(this.pointers[0].pageX,this.pointers[0].pageY);else{let e=.5*(this.pointers[0].pageX+this.pointers[1].pageX),t=.5*(this.pointers[0].pageY+this.pointers[1].pageY);this.rotateStart.set(e,t)}}handleTouchStartDolly(e){if(e.length<2)return;let t=e[0],i=e[1];hh.startDistBetweenFingers=this.getDist([t.pageX,t.pageY],[i.pageX,i.pageY]),hh.movable=!0,hh.scale=1}updateRotate(){let e=this.isVRMode,t=this.sphericalDelta;this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);let i=this.domElement;e?(t.theta+=2*Math.PI*this.rotateDelta.x/i.clientHeight,t.phi+=2*Math.PI*this.rotateDelta.y/i.clientHeight):(t.theta-=2*Math.PI*this.rotateDelta.x/i.clientHeight,t.phi-=2*Math.PI*this.rotateDelta.y/i.clientHeight),this.rotateStart.copy(this.rotateEnd)}handleMouseMoveRotate(e){this.rotateEnd.set(e.clientX,e.clientY),this.updateRotate()}dollyOut(e){this.object instanceof Xr?this.scale/=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}dollyIn(e){this.object instanceof Xr?this.scale*=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}handleMouseMoveDolly(e){this.dollyEnd.set(e.clientX,e.clientY),this.dollyDelta.subVectors(this.dollyEnd,this.dollyStart);let t=Math.pow(.95,this.zoomSpeed);this.dollyDelta.y>0?this.dollyOut(t):this.dollyIn(t),this.dollyStart.copy(this.dollyEnd)}handleMouseMovePan(e){this.panEnd.set(e.clientX,e.clientY),this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd)}getSecondPointerPosition(e){let t=e.pointerId===this.pointers[0].pointerId?this.pointers[1]:this.pointers[0];return this.pointerPositions[t.pointerId]}handleTouchMoveRotate(e){if(1==this.pointers.length)this.rotateEnd.set(e.pageX,e.pageY);else{let t=this.getSecondPointerPosition(e),i=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this.rotateEnd.set(i,r)}this.updateRotate()}updateFov(e){var t;let i=this.object;if(!(i&&i instanceof Xr))return void console.warn("WARNING: VRControls.js encountered an unknown camera type - updateFov disabled.");let r=this.minFov,n=this.maxFov,s=e=>{let t=i.fov+e;t=Math.min(t,n),t=Math.max(t,r),i.fov!==t&&(i.fov=t,i.updateProjectionMatrix(),this.dispatchEvent({type:"change"}))},a=e/20;for(let e=0;e<20;++e)setTimeout((()=>s(a)),5*e);this.autoRotate&&(null==(t=this.controlsHelper)||t.delayAutoRotate())}handleTouchMoveDolly(e){if(!hh.movable||this.pointers.length<2)return;let t=this.getSecondPointerPosition(e),i=[e.pageX,e.pageY],r=[t.x,t.y],n=hh.startDistBetweenFingers,s=this.getDist(i,r);if(!n||!s||Math.abs(n-s)<10)return;let a=s/n;console.log(a);a=Math.min(a,3),a=Math.max(a,1/3);let o=a-hh.scale;if(Math.abs(o)<.05)return;let l=0;l=o>0?10*-o:10*(hh.scale/a-1),this.updateFov(l),hh.scale=a}handleKeyDown(e){let t=!1;switch(e.code){case"ArrowUp":this.pan(0,this.keyPanSpeed),t=!0;break;case"ArrowDown":this.pan(0,-this.keyPanSpeed),t=!0;break;case"ArrowLeft":this.pan(this.keyPanSpeed,0),t=!0;break;case"ArrowRight":this.pan(-this.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),this.update())}listenToKeyEvents(e){e.addEventListener("keydown",this.onKeyDown),this.domElementKeyEvents=e}},M0=class extends Ks{constructor(e){super(),this.enable=!0,this.mouseDownPositionX=0,this.mouseDownPositionY=0,this.downClickTime=0,this.upClickTime=0,this.handleClick=e=>{if(!this.enable)return;this.stop(e);let t=this.getBaseEvent(e);this.dispatchEvent("click",t)},this.handlePointerDown=e=>{if(!this.enable)return;this.stop(e);let t,i=this.getBaseEvent(e);this.mouseDownPositionX=i.x,this.mouseDownPositionY=i.y,this.downClickTime=i.timestamp,0===i.button&&this.downClickTime-this.upClickTime<300&&(t&&clearTimeout(t),t=setTimeout((()=>{this.dispatchEvent("dblclick",i)}),300)),this.dispatchEvent("pointerdown",i),"touch"===e.pointerType?this.dispatchEvent("touchstart",i):this.dispatchEvent("mousedown",i)},this.handlePointerMove=e=>{if(!this.enable)return;this.stop(e);let t=this.getBaseEvent(e);(Math.abs(t.x-this.mouseDownPositionX)>5||Math.abs(t.y-this.mouseDownPositionY)>5)&&(this.dispatchEvent("pointermove",t),"touch"===e.pointerType?this.dispatchEvent("touchmove",t):this.dispatchEvent("mousemove",t))},this.handlePointerUp=e=>{if(!this.enable)return;this.stop(e);let t=this.getBaseEvent(e);this.upClickTime=t.timestamp,this.dispatchEvent("pointerup",t),"touch"===e.pointerType?this.dispatchEvent("touchend",t):this.dispatchEvent("mouseup",t),this.mouseDownPositionX=-1,this.mouseDownPositionY=-1},this.handlePointerCancel=e=>{this.enable&&(this.stop(e),this.dispatchEvent("pointercancel",this.getBaseEvent(e)))},this.handleMouseWheel=e=>{this.enable&&(this.stop(e),this.dispatchEvent("wheel",this.getBaseEvent(e)))},this.handleContextMenu=e=>{if(this.enable)return this.stop(e),this.dispatchEvent("contextmenu",this.getBaseEvent(e)),!1},this.handlePointerEnter=e=>{this.enable&&(this.stop(e),this.dispatchEvent("pointerenter",this.getBaseEvent(e)))},this.handlePointerLeave=e=>{this.enable&&(this.stop(e),this.dispatchEvent("pointerleave",this.getBaseEvent(e)))},this.handleResize=e=>{this.enable&&(this.stop(e),this.dispatchEvent("resize",this.getBaseEvent(e)))},this.handleKeydown=e=>{this.enable&&this.dispatchEvent("keydown",this.getBaseEvent(e))},this.handleKeyup=e=>{this.enable&&this.dispatchEvent("keyup",this.getBaseEvent(e))},this.style={},this.element=e,this.bindEvents()}setEnable(e){this.enable=e}setCursor(e){this.element.style&&(this.element.style.cursor=e||"default")}bindEvents(){this.element.style.touchAction="none",this.element.style.userSelect="none",this.element.style.webkitUserSelect="none",this.element.addEventListener("click",this.handleClick),this.element.addEventListener("pointerdown",this.handlePointerDown),this.element.addEventListener("pointermove",this.handlePointerMove),this.element.addEventListener("pointerup",this.handlePointerUp),this.element.addEventListener("pointercancel",this.handlePointerCancel),this.element.addEventListener("pointerenter",this.handlePointerEnter),this.element.addEventListener("pointerleave",this.handlePointerLeave),this.element.addEventListener("contextmenu",this.handleContextMenu),this.element.addEventListener("wheel",this.handleMouseWheel),window.addEventListener("resize",this.handleResize),window.addEventListener("keydown",this.handleKeydown),window.addEventListener("keyup",this.handleKeyup)}unBindEvents(){this.element.removeEventListener("pointerdown",this.handlePointerDown),this.element.removeEventListener("pointermove",this.handlePointerMove),this.element.removeEventListener("pointerup",this.handlePointerUp),this.element.removeEventListener("pointerenter",this.handlePointerEnter),this.element.removeEventListener("pointerleave",this.handlePointerLeave),this.element.removeEventListener("contextmenu",this.handleContextMenu),this.element.removeEventListener("wheel",this.handleMouseWheel),window.removeEventListener("resize",this.handleResize),window.removeEventListener("keydown",this.handleKeydown),window.removeEventListener("keyup",this.handleKeyup),this.element.style.touchAction="",this.element.style.userSelect="",this.element.style.webkitUserSelect=""}getBaseEvent(e){let t={x:0,y:0,pageX:0,pageY:0,clientX:0,clientY:0,deltaX:0,deltaY:0,movementX:0,movementY:0,deltaMode:0,pointerId:0,timestamp:0,buttons:0,pointerType:"mouse",altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1};if(t.timestamp=e.timeStamp,bO(e,"clientX"))if(t.altKey=e.altKey,t.ctrlKey=e.ctrlKey,t.shiftKey=e.shiftKey,t.clientX=e.clientX,t.clientY=e.clientY,t.button=e.button,bO(e,"pointerId")){t.pointerType=e.pointerType,t.buttons=e.buttons,t.pageX=e.pageX,t.pageY=e.pageY,t.pointerId=e.pointerId;let i=Ci.getScreenPointByEvent(e,this.element);t.x=i.x,t.y=i.y,t.movementX=e.movementX,t.movementY=e.movementY}else bO(e,"deltaX")&&(t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY);else bO(e,"code")&&(t.altKey=e.altKey,t.ctrlKey=e.ctrlKey,t.shiftKey=e.shiftKey,t.metaKey=e.metaKey,t.code=e.code);return t}stop(e){e.preventDefault(),e.stopPropagation()}getBoundingClientRect(){return this.element.getBoundingClientRect()}};function bO(e,t){return void 0!==e[t]}var Dr={LEFT:1,RIGHT:2,MIDDLE:4},et=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768});function Kf(e){return e.isPerspectiveCamera}function ph(e){return e.isOrthographicCamera}var D0=2*Math.PI,Z8=Math.PI/2,nE=Math.PI/180;function C0(e,t,i){return Math.max(t,Math.min(i,e))}function Sn(e,t=1e-5){return Math.abs(e)0==d>u&&(d=u,i.value=(d-u)/s),d}function Q8(e,t,i,r,n=1/0,s,a){let o=2/(r=Math.max(1e-4,r)),l=o*s,h=1/(1+l+.48*l*l+.235*l*l*l),u=t.x,c=t.y,p=t.z,d=e.x-u,f=e.y-c,m=e.z-p,g=u,y=c,v=p,T=n*r,x=d*d+f*f+m*m;if(x>T*T){let e=Math.sqrt(x);d=d/e*T,f=f/e*T,m=m/e*T}u=e.x-d,c=e.y-f,p=e.z-m;let b=(i.x+o*d)*s,_=(i.y+o*f)*s,E=(i.z+o*m)*s;i.x=(i.x-o*b)*h,i.y=(i.y-o*_)*h,i.z=(i.z-o*E)*h,a.x=u+(d+b)*h,a.y=c+(f+_)*h,a.z=p+(m+E)*h;let w=g-e.x,S=y-e.y,I=v-e.z;return w*(a.x-g)+S*(a.y-y)+I*(a.z-v)>0&&(a.x=g,a.y=y,a.z=v,i.x=(a.x-g)/s,i.y=(a.y-y)/s,i.z=(a.z-v)/s),a}function xO(e,t){t.set(0,0),e.forEach((e=>{t.x+=e.clientX,t.y+=e.clientY})),t.x/=e.length,t.y/=e.length}function IO(e,t){return!!ph(e)&&(console.warn(`${t} is not supported in OrthographicCamera`),!0)}var Cr,zMe,wO,eG,yo,Nr,an,oE,dh,fh,A0,jMe,WMe,Kc,C_,lE,qMe,tG,YMe,rG,iG,RO,_O=class{constructor(){this._listeners={}}addEventListener(e,t){let i=this._listeners;void 0===i[e]&&(i[e]=[]),-1===i[e].indexOf(t)&&i[e].push(t)}hasEventListener(e,t){let i=this._listeners;return void 0!==i[e]&&-1!==i[e].indexOf(t)}removeEventListener(e,t){let i=this._listeners[e];if(void 0!==i){let e=i.indexOf(t);-1!==e&&i.splice(e,1)}}removeAllEventListeners(e){e?Array.isArray(this._listeners[e])&&(this._listeners[e].length=0):this._listeners={}}dispatchEvent(e){let t=this._listeners[e.type];if(void 0!==t){e.target=this;let i=t.slice(0);for(let t=0,r=i.length;t{},this._enabled=!0,this._state=et.NONE,this._viewport=null,this._dollyControlAmount=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=wi.isBrowser?new DOMRect:{x:0,y:0,width:0,height:0,left:0,right:0,top:0,bottom:0},this._activePointers=[],this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new Cr.Vector3,this._focalOffsetVelocity=new Cr.Vector3,this._zoomVelocity={value:0},this._truckInternal=(e,t,i)=>{if(Kf(this._camera)){let r=Nr.copy(this._camera.position).sub(this._target),n=this._camera.getEffectiveFOV()*nE,s=r.length()*Math.tan(.5*n),a=this.truckSpeed*e*s/this._elementRect.height,o=this.truckSpeed*t*s/this._elementRect.height;this.verticalDragToForward?(i?this.setFocalOffset(this._focalOffsetEnd.x+a,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(a,0,!0),this.forward(-o,!0)):i?this.setFocalOffset(this._focalOffsetEnd.x+a,this._focalOffsetEnd.y+o,this._focalOffsetEnd.z,!0):this.truck(a,o,!0)}else if(ph(this._camera)){let r=this._camera,n=e*(r.right-r.left)/r.zoom/this._elementRect.width,s=t*(r.top-r.bottom)/r.zoom/this._elementRect.height;i?this.setFocalOffset(this._focalOffsetEnd.x+n,this._focalOffsetEnd.y+s,this._focalOffsetEnd.z,!0):this.truck(n,s,!0)}},this._rotateInternal=(e,t)=>{let i=D0*this.azimuthRotateSpeed*e/this._elementRect.height,r=D0*this.polarRotateSpeed*t/this._elementRect.height;this.rotate(i,r,!0)},this._dollyInternal=(e,t,i)=>{let r=Math.pow(.95,-e*this.dollySpeed),n=this._sphericalEnd.radius*r,s=this._sphericalEnd.radius,a=s*(e>=0?-1:1);this.dollyTo(n),this.infinityDolly&&(n{let r=Math.pow(.95,e*this.dollySpeed),n=this._zoomEnd;this.zoomTo(this._zoom*r),this.dollyToCursor&&(this._dollyControlAmount+=this._zoomEnd-n,this._dollyControlCoord.set(t,i))},void 0===Cr&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=e,this._yAxisUpSpace=(new Cr.Quaternion).setFromUnitVectors(this._camera.up,wO),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=et.NONE,this._target=new Cr.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new Cr.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=(new Cr.Spherical).setFromVector3(Nr.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._nearPlaneCorners=[new Cr.Vector3,new Cr.Vector3,new Cr.Vector3,new Cr.Vector3],this._updateNearPlaneCorners(),this._boundary=new Cr.Box3(new Cr.Vector3(-1/0,-1/0,-1/0),new Cr.Vector3(1/0,1/0,1/0)),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlAmount=0,this._dollyControlCoord=new Cr.Vector2,this.mouseButtons={left:et.ROTATE,middle:et.DOLLY,right:et.TRUCK,wheel:Kf(this._camera)?et.DOLLY:ph(this._camera)?et.ZOOM:et.NONE},this.touches={one:et.TOUCH_ROTATE,two:Kf(this._camera)?et.TOUCH_DOLLY_TRUCK:ph(this._camera)?et.TOUCH_ZOOM_TRUCK:et.NONE,three:et.TOUCH_TRUCK};let i=new Cr.Vector2,r=new Cr.Vector2,n=new Cr.Vector2,s=e=>{if(!this._enabled||!this._domElement)return;let t="mouse"!==e.pointerType?null:(e.buttons&Dr.LEFT)===Dr.LEFT?Dr.LEFT:(e.buttons&Dr.MIDDLE)===Dr.MIDDLE?Dr.MIDDLE:(e.buttons&Dr.RIGHT)===Dr.RIGHT?Dr.RIGHT:null;if(null!==t){let e=this._findPointerByMouseButton(t);e&&this._activePointers.splice(this._activePointers.indexOf(e),1)}let i={pointerId:e.pointerId,clientX:e.clientX,clientY:e.clientY,deltaX:0,deltaY:0,mouseButton:t};this._activePointers.push(i),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("pointerup",h),this._domElement.addEventListener("pointermove",o),this._domElement.addEventListener("pointerup",h),f(e)},a=e=>{if(!this._enabled||!this._domElement)return;let t=(e.buttons&Dr.LEFT)===Dr.LEFT?Dr.LEFT:(e.buttons&Dr.MIDDLE)===Dr.MIDDLE?Dr.MIDDLE:(e.buttons&Dr.RIGHT)===Dr.RIGHT?Dr.RIGHT:null;if(null!==t){let e=this._findPointerByMouseButton(t);e&&this._activePointers.splice(this._activePointers.indexOf(e),1)}let i={pointerId:0,clientX:e.clientX,clientY:e.clientY,deltaX:0,deltaY:0,mouseButton:(e.buttons&Dr.LEFT)===Dr.LEFT?Dr.LEFT:(e.buttons&Dr.MIDDLE)===Dr.LEFT?Dr.MIDDLE:(e.buttons&Dr.RIGHT)===Dr.LEFT?Dr.RIGHT:null};this._activePointers.push(i),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("mouseup",u),this._domElement.addEventListener("mousemove",l),this._domElement.addEventListener("mouseup",u),f(e)},o=e=>{let t=e.pointerId,i=this._findPointerById(t);if(i){if(i.clientX=e.clientX,i.clientY=e.clientY,i.deltaX=e.movementX,i.deltaY=e.movementY,"touch"===e.pointerType)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=0,(e.buttons&Dr.LEFT)===Dr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&Dr.MIDDLE)===Dr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&Dr.RIGHT)===Dr.RIGHT&&(this._state=this._state|this.mouseButtons.right);m()}},l=e=>{let t=this._findPointerById(0);t&&(t.clientX=e.clientX,t.clientY=e.clientY,t.deltaX=e.movementX,t.deltaY=e.movementY,this._state=0,(e.buttons&Dr.LEFT)===Dr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&Dr.MIDDLE)===Dr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&Dr.RIGHT)===Dr.RIGHT&&(this._state=this._state|this.mouseButtons.right),m())},h=e=>{let t=e.pointerId,i=this._findPointerById(t);if(i&&this._activePointers.splice(this._activePointers.indexOf(i),1),"touch"===e.pointerType)switch(this._activePointers.length){case 0:this._state=et.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=et.NONE;g()},u=()=>{let e=this._findPointerById(0);e&&this._activePointers.splice(this._activePointers.indexOf(e),1),this._state=et.NONE,g()},c=-1,p=e=>{if(!this._enabled||this.mouseButtons.wheel===et.NONE)return;if(this.dollyToCursor||this.mouseButtons.wheel===et.ROTATE||this.mouseButtons.wheel===et.TRUCK){let e=performance.now();c-e<1e3&&this._getClientRect(this._elementRect),c=e}let t=A2t?-1:-3,i=1===e.deltaMode?e.deltaY/t:e.deltaY/(10*t),r=this.dollyToCursor?(e.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,n=this.dollyToCursor?(e.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case et.ROTATE:this._rotateInternal(e.deltaX,e.deltaY),this._isUserControllingRotate=!0;break;case et.TRUCK:this._truckInternal(e.deltaX,e.deltaY,!1),this._isUserControllingTruck=!0;break;case et.OFFSET:this._truckInternal(e.deltaX,e.deltaY,!0),this._isUserControllingOffset=!0;break;case et.DOLLY:this._dollyInternal(-i,r,n),this._isUserControllingDolly=!0;break;case et.ZOOM:this._zoomInternal(-i,r,n),this._isUserControllingZoom=!0}this.dispatchEvent({type:"control"})},d=e=>{if(this._domElement&&this._enabled&&this.mouseButtons.right===Zf.ACTION.NONE){let t=e instanceof PointerEvent?e.pointerId:(MouseEvent,0),i=this._findPointerById(t);return i&&this._activePointers.splice(this._activePointers.indexOf(i),1),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mousemove",l),void this._domElement.removeEventListener("mouseup",u)}},f=e=>{if(this._enabled){if(xO(this._activePointers,yo),this._getClientRect(this._elementRect),i.copy(yo),r.copy(yo),this._activePointers.length>=2){let e=yo.x-this._activePointers[1].clientX,t=yo.y-this._activePointers[1].clientY,i=Math.sqrt(e*e+t*t);n.set(0,i);let s=.5*(this._activePointers[0].clientX+this._activePointers[1].clientX),a=.5*(this._activePointers[0].clientY+this._activePointers[1].clientY);r.set(s,a)}if("pointerType"in e&&"touch"===e.pointerType)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=0,(e.buttons&Dr.LEFT)===Dr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&Dr.MIDDLE)===Dr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&Dr.RIGHT)===Dr.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&et.ROTATE)===et.ROTATE||(this._state&et.TOUCH_ROTATE)===et.TOUCH_ROTATE||(this._state&et.TOUCH_DOLLY_ROTATE)===et.TOUCH_DOLLY_ROTATE||(this._state&et.TOUCH_ZOOM_ROTATE)===et.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&et.TRUCK)===et.TRUCK||(this._state&et.TOUCH_TRUCK)===et.TOUCH_TRUCK||(this._state&et.TOUCH_DOLLY_TRUCK)===et.TOUCH_DOLLY_TRUCK||(this._state&et.TOUCH_ZOOM_TRUCK)===et.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&et.DOLLY)===et.DOLLY||(this._state&et.TOUCH_DOLLY)===et.TOUCH_DOLLY||(this._state&et.TOUCH_DOLLY_TRUCK)===et.TOUCH_DOLLY_TRUCK||(this._state&et.TOUCH_DOLLY_OFFSET)===et.TOUCH_DOLLY_OFFSET||(this._state&et.TOUCH_DOLLY_ROTATE)===et.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&et.ZOOM)===et.ZOOM||(this._state&et.TOUCH_ZOOM)===et.TOUCH_ZOOM||(this._state&et.TOUCH_ZOOM_TRUCK)===et.TOUCH_ZOOM_TRUCK||(this._state&et.TOUCH_ZOOM_OFFSET)===et.TOUCH_ZOOM_OFFSET||(this._state&et.TOUCH_ZOOM_ROTATE)===et.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&et.OFFSET)===et.OFFSET||(this._state&et.TOUCH_OFFSET)===et.TOUCH_OFFSET||(this._state&et.TOUCH_DOLLY_OFFSET)===et.TOUCH_DOLLY_OFFSET||(this._state&et.TOUCH_ZOOM_OFFSET)===et.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})}},m=()=>{if(!this._enabled)return;xO(this._activePointers,yo);let e=!!wi.isBrowser&&(this._domElement&&document.pointerLockElement===this._domElement),t=e?-this._activePointers[0].deltaX:r.x-yo.x,s=e?-this._activePointers[0].deltaY:r.y-yo.y;if(r.copy(yo),((this._state&et.ROTATE)===et.ROTATE||(this._state&et.TOUCH_ROTATE)===et.TOUCH_ROTATE||(this._state&et.TOUCH_DOLLY_ROTATE)===et.TOUCH_DOLLY_ROTATE||(this._state&et.TOUCH_ZOOM_ROTATE)===et.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(t,s),this._isUserControllingRotate=!0),(this._state&et.DOLLY)===et.DOLLY||(this._state&et.ZOOM)===et.ZOOM){let e=this.dollyToCursor?(i.x-this._elementRect.x)/this._elementRect.width*2-1:0,t=this.dollyToCursor?(i.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&et.DOLLY)===et.DOLLY?(this._dollyInternal(s*SO,e,t),this._isUserControllingDolly=!0):(this._zoomInternal(s*SO,e,t),this._isUserControllingZoom=!0)}if((this._state&et.TOUCH_DOLLY)===et.TOUCH_DOLLY||(this._state&et.TOUCH_ZOOM)===et.TOUCH_ZOOM||(this._state&et.TOUCH_DOLLY_TRUCK)===et.TOUCH_DOLLY_TRUCK||(this._state&et.TOUCH_ZOOM_TRUCK)===et.TOUCH_ZOOM_TRUCK||(this._state&et.TOUCH_DOLLY_OFFSET)===et.TOUCH_DOLLY_OFFSET||(this._state&et.TOUCH_ZOOM_OFFSET)===et.TOUCH_ZOOM_OFFSET||(this._state&et.TOUCH_DOLLY_ROTATE)===et.TOUCH_DOLLY_ROTATE||(this._state&et.TOUCH_ZOOM_ROTATE)===et.TOUCH_ZOOM_ROTATE){let e=yo.x-this._activePointers[1].clientX,t=yo.y-this._activePointers[1].clientY,i=Math.sqrt(e*e+t*t),s=n.y-i;n.set(0,i);let a=this.dollyToCursor?(r.x-this._elementRect.x)/this._elementRect.width*2-1:0,o=this.dollyToCursor?(r.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&et.TOUCH_DOLLY)===et.TOUCH_DOLLY||(this._state&et.TOUCH_DOLLY_ROTATE)===et.TOUCH_DOLLY_ROTATE||(this._state&et.TOUCH_DOLLY_TRUCK)===et.TOUCH_DOLLY_TRUCK||(this._state&et.TOUCH_DOLLY_OFFSET)===et.TOUCH_DOLLY_OFFSET?(this._dollyInternal(s*SO,a,o),this._isUserControllingDolly=!0):(this._zoomInternal(s*SO,a,o),this._isUserControllingZoom=!0)}((this._state&et.TRUCK)===et.TRUCK||(this._state&et.TOUCH_TRUCK)===et.TOUCH_TRUCK||(this._state&et.TOUCH_DOLLY_TRUCK)===et.TOUCH_DOLLY_TRUCK||(this._state&et.TOUCH_ZOOM_TRUCK)===et.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(t,s,!1),this._isUserControllingTruck=!0),((this._state&et.OFFSET)===et.OFFSET||(this._state&et.TOUCH_OFFSET)===et.TOUCH_OFFSET||(this._state&et.TOUCH_DOLLY_OFFSET)===et.TOUCH_DOLLY_OFFSET||(this._state&et.TOUCH_ZOOM_OFFSET)===et.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(t,s,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},g=()=>{xO(this._activePointers,yo),r.copy(yo),0===this._activePointers.length&&this._domElement&&(this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mouseup",u),this.dispatchEvent({type:"controlend"}))};this._addAllEventListeners=e=>{this._domElement=e,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",s),O2t&&this._domElement.addEventListener("mousedown",a),this._domElement.addEventListener("pointercancel",h),this._domElement.addEventListener("wheel",p),this._domElement.addEventListener("contextmenu",d)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",s),this._domElement.removeEventListener("mousedown",a),this._domElement.removeEventListener("pointercancel",h),this._domElement.removeEventListener("wheel",p),this._domElement.removeEventListener("contextmenu",d),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mouseup",u))},this.cancel=()=>{this._state!==et.NONE&&(this._state=et.NONE,this._activePointers.length=0,g())},t&&this.connect(t),this.update(0)}static install(e){Cr=e.THREE,zMe=Object.freeze(new Cr.Vector3(0,0,0)),wO=Object.freeze(new Cr.Vector3(0,1,0)),eG=Object.freeze(new Cr.Vector3(0,0,1)),yo=new Cr.Vector2,Nr=new Cr.Vector3,an=new Cr.Vector3,oE=new Cr.Vector3,dh=new Cr.Vector3,fh=new Cr.Vector3,A0=new Cr.Vector3,jMe=new Cr.Vector3,WMe=new Cr.Vector3,Kc=new Cr.Spherical,C_=new Cr.Spherical,lE=new Cr.Box3,qMe=new Cr.Box3,tG=new Cr.Sphere,YMe=new Cr.Quaternion,rG=new Cr.Quaternion,iG=new Cr.Matrix4,RO=new Cr.Raycaster}static get ACTION(){return et}get camera(){return this._camera}set camera(e){this._camera=e,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._domElement&&(e?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(e){this._spherical.radius===e&&this._sphericalEnd.radius===e||(this._spherical.radius=e,this._sphericalEnd.radius=e,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(e){this._spherical.theta===e&&this._sphericalEnd.theta===e||(this._spherical.theta=e,this._sphericalEnd.theta=e,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(e){this._spherical.phi===e&&this._sphericalEnd.phi===e||(this._spherical.phi=e,this._sphericalEnd.phi=e,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(e){this._boundaryEnclosesCamera=e,this._needsUpdate=!0}addEventListener(e,t){super.addEventListener(e,t)}removeEventListener(e,t){super.removeEventListener(e,t)}rotate(e,t,i=!1){return this.rotateTo(this._sphericalEnd.theta+e,this._sphericalEnd.phi+t,i)}rotateAzimuthTo(e,t=!1){return this.rotateTo(e,this._sphericalEnd.phi,t)}rotatePolarTo(e,t=!1){return this.rotateTo(this._sphericalEnd.theta,e,t)}rotateTo(e,t,i=!1){this._isUserControllingRotate=!1;let r=C0(e,this.minAzimuthAngle,this.maxAzimuthAngle),n=C0(t,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=r,this._sphericalEnd.phi=n,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,i||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);let s=!i||wn(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&wn(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(s)}dolly(e,t=!1){return this.dollyTo(this._sphericalEnd.radius-e,t)}dollyTo(e,t=!1){this._isUserControllingDolly=!1;let i=this._sphericalEnd.radius,r=C0(e,this.minDistance,this.maxDistance);if(this.colliderMeshes.length>=1){let e=this._collisionTest(),t=wn(e,this._spherical.radius);if(!(i>r)&&t)return Promise.resolve();this._sphericalEnd.radius=Math.min(r,e)}else this._sphericalEnd.radius=r;this._needsUpdate=!0,t||(this._spherical.radius=this._sphericalEnd.radius);let n=!t||wn(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(n)}zoom(e,t=!1){return this.zoomTo(this._zoomEnd+e,t)}zoomTo(e,t=!1){this._isUserControllingZoom=!1,this._zoomEnd=C0(e,this.minZoom,this.maxZoom),this._needsUpdate=!0,t||(this._zoom=this._zoomEnd);let i=!t||wn(this._zoom,this._zoomEnd,this.restThreshold);return this._createOnRestPromise(i)}pan(e,t,i=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(e,t,i)}truck(e,t,i=!1){this._camera.updateMatrix(),dh.setFromMatrixColumn(this._camera.matrix,0),fh.setFromMatrixColumn(this._camera.matrix,1),dh.multiplyScalar(e),fh.multiplyScalar(-t);let r=Nr.copy(dh).add(fh),n=an.copy(this._targetEnd).add(r);return this.moveTo(n.x,n.y,n.z,i)}forward(e,t=!1){Nr.setFromMatrixColumn(this._camera.matrix,0),Nr.crossVectors(this._camera.up,Nr),Nr.multiplyScalar(e);let i=an.copy(this._targetEnd).add(Nr);return this.moveTo(i.x,i.y,i.z,t)}elevate(e,t=!1){return Nr.copy(this._camera.up).multiplyScalar(e),this.moveTo(this._targetEnd.x+Nr.x,this._targetEnd.y+Nr.y,this._targetEnd.z+Nr.z,t)}moveTo(e,t,i,r=!1){this._isUserControllingTruck=!1;let n=Nr.set(e,t,i).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,n,this.boundaryFriction),this._needsUpdate=!0,r||this._target.copy(this._targetEnd);let s=!r||wn(this._target.x,this._targetEnd.x,this.restThreshold)&&wn(this._target.y,this._targetEnd.y,this.restThreshold)&&wn(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(s)}lookInDirectionOf(e,t,i,r=!1){let n=Nr.set(e,t,i).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(n.x,n.y,n.z,r)}fitToBox(e,t,{cover:i=!1,paddingLeft:r=0,paddingRight:n=0,paddingBottom:s=0,paddingTop:a=0}={}){let o=[],l=e.isBox3?lE.copy(e):lE.setFromObject(e);l.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());let h=J8(this._sphericalEnd.theta,Z8),u=J8(this._sphericalEnd.phi,Z8);o.push(this.rotateTo(h,u,t));let c=Nr.setFromSpherical(this._sphericalEnd).normalize(),p=YMe.setFromUnitVectors(c,eG),d=wn(Math.abs(c.y),1);d&&p.multiply(rG.setFromAxisAngle(wO,h)),p.multiply(this._yAxisUpSpaceInverse);let f=qMe.makeEmpty();an.copy(l.min).applyQuaternion(p),f.expandByPoint(an),an.copy(l.min).setX(l.max.x).applyQuaternion(p),f.expandByPoint(an),an.copy(l.min).setY(l.max.y).applyQuaternion(p),f.expandByPoint(an),an.copy(l.max).setZ(l.min.z).applyQuaternion(p),f.expandByPoint(an),an.copy(l.min).setZ(l.max.z).applyQuaternion(p),f.expandByPoint(an),an.copy(l.max).setY(l.min.y).applyQuaternion(p),f.expandByPoint(an),an.copy(l.max).setX(l.min.x).applyQuaternion(p),f.expandByPoint(an),an.copy(l.max).applyQuaternion(p),f.expandByPoint(an),f.min.x-=r,f.min.y-=s,f.max.x+=n,f.max.y+=a,p.setFromUnitVectors(eG,c),d&&p.premultiply(rG.invert()),p.premultiply(this._yAxisUpSpace);let m=f.getSize(Nr),g=f.getCenter(an).applyQuaternion(p);if(Kf(this._camera)){let e=this.getDistanceToFitBox(m.x,m.y,m.z,i);o.push(this.moveTo(g.x,g.y,g.z,t)),o.push(this.dollyTo(e,t)),o.push(this.setFocalOffset(0,0,0,t))}else if(ph(this._camera)){let e=this._camera,r=e.right-e.left,n=e.top-e.bottom,s=i?Math.max(r/m.x,n/m.y):Math.min(r/m.x,n/m.y);o.push(this.moveTo(g.x,g.y,g.z,t)),o.push(this.zoomTo(s,t)),o.push(this.setFocalOffset(0,0,0,t))}return Promise.all(o)}fitToSphere(e,t){let i=[],r=e instanceof Cr.Sphere?tG.copy(e):Zf.createBoundingSphere(e,tG);if(i.push(this.moveTo(r.center.x,r.center.y,r.center.z,t)),Kf(this._camera)){let e=this.getDistanceToFitSphere(r.radius);i.push(this.dollyTo(e,t))}else if(ph(this._camera)){let e=this._camera.right-this._camera.left,n=this._camera.top-this._camera.bottom,s=2*r.radius,a=Math.min(e/s,n/s);i.push(this.zoomTo(a,t))}return i.push(this.setFocalOffset(0,0,0,t)),Promise.all(i)}setLookAt(e,t,i,r,n,s,a=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1;let o=an.set(r,n,s),l=Nr.set(e,t,i);this._targetEnd.copy(o),this._sphericalEnd.setFromVector3(l.sub(o).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,a||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let h=!a||wn(this._target.x,this._targetEnd.x,this.restThreshold)&&wn(this._target.y,this._targetEnd.y,this.restThreshold)&&wn(this._target.z,this._targetEnd.z,this.restThreshold)&&wn(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&wn(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&wn(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(h)}lerpLookAt(e,t,i,r,n,s,a,o,l,h,u,c,p,d=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1;let f=Nr.set(r,n,s),m=an.set(e,t,i);Kc.setFromVector3(m.sub(f).applyQuaternion(this._yAxisUpSpace));let g=oE.set(h,u,c),y=an.set(a,o,l);C_.setFromVector3(y.sub(g).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(f.lerp(g,p));let v=C_.theta-Kc.theta,T=C_.phi-Kc.phi,x=C_.radius-Kc.radius;this._sphericalEnd.set(Kc.radius+x*p,Kc.phi+T*p,Kc.theta+v*p),this.normalizeRotations(),this._needsUpdate=!0,d||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let b=!d||wn(this._target.x,this._targetEnd.x,this.restThreshold)&&wn(this._target.y,this._targetEnd.y,this.restThreshold)&&wn(this._target.z,this._targetEnd.z,this.restThreshold)&&wn(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&wn(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&wn(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(b)}setPosition(e,t,i,r=!1){return this.setLookAt(e,t,i,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,r)}setTarget(e,t,i,r=!1){let n=this.getPosition(Nr),s=this.setLookAt(n.x,n.y,n.z,e,t,i,r);return this._sphericalEnd.phi=C0(this.polarAngle,this.minPolarAngle,this.maxPolarAngle),s}setFocalOffset(e,t,i,r=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(e,t,i),this._needsUpdate=!0,r||this._focalOffset.copy(this._focalOffsetEnd);let n=!r||wn(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&wn(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&wn(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(n)}setOrbitPoint(e,t,i){this._camera.updateMatrixWorld(),dh.setFromMatrixColumn(this._camera.matrixWorldInverse,0),fh.setFromMatrixColumn(this._camera.matrixWorldInverse,1),A0.setFromMatrixColumn(this._camera.matrixWorldInverse,2);let r=Nr.set(e,t,i),n=r.distanceTo(this._camera.position),s=r.sub(this._camera.position);dh.multiplyScalar(s.x),fh.multiplyScalar(s.y),A0.multiplyScalar(s.z),Nr.copy(dh).add(fh).add(A0),Nr.z=Nr.z+n,this.dollyTo(n,!1),this.setFocalOffset(-Nr.x,Nr.y,-Nr.z,!1),this.moveTo(e,t,i,!1)}setBoundary(e){if(!e)return this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),void(this._needsUpdate=!0);this._boundary.copy(e),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(e,t,i,r){null!==e?(this._viewport=this._viewport||new Cr.Vector4,"number"==typeof e?this._viewport.set(e,t,i,r):this._viewport.copy(e)):this._viewport=null}getDistanceToFitBox(e,t,i,r=!1){if(IO(this._camera,"getDistanceToFitBox"))return this._spherical.radius;let n=e/t,s=this._camera.getEffectiveFOV()*nE,a=this._camera.aspect;return.5*((r?n>a:nt.pointerId===e))}_findPointerByMouseButton(e){return this._activePointers.find((t=>t.mouseButton===e))}_encloseToBoundary(e,t,i){let r=t.lengthSq();if(0===r)return e;let n=an.copy(t).add(e),s=this._boundary.clampPoint(n,oE).sub(n),a=s.lengthSq();if(0===a)return e.add(t);if(a===r)return e;if(0===i)return e.add(t).add(s);{let r=1+i*a/t.dot(s);return e.add(an.copy(t).multiplyScalar(r)).add(s.multiplyScalar(1-i))}}_updateNearPlaneCorners(){if(Kf(this._camera)){let e=this._camera,t=e.near,i=e.getEffectiveFOV()*nE,r=Math.tan(.5*i)*t,n=r*e.aspect;this._nearPlaneCorners[0].set(-n,-r,0),this._nearPlaneCorners[1].set(n,-r,0),this._nearPlaneCorners[2].set(n,r,0),this._nearPlaneCorners[3].set(-n,r,0)}else if(ph(this._camera)){let e=this._camera,t=1/e.zoom,i=e.left*t,r=e.right*t,n=e.top*t,s=e.bottom*t;this._nearPlaneCorners[0].set(i,n,0),this._nearPlaneCorners[1].set(r,n,0),this._nearPlaneCorners[2].set(r,s,0),this._nearPlaneCorners[3].set(i,s,0)}}_collisionTest(){let e=1/0;if(!(this.colliderMeshes.length>=1)||IO(this._camera,"_collisionTest"))return e;let t=Nr.setFromSpherical(this._spherical).divideScalar(this._spherical.radius);iG.lookAt(zMe,t,this._camera.up);for(let i=0;i<4;i++){let r=an.copy(this._nearPlaneCorners[i]);r.applyMatrix4(iG);let n=oE.addVectors(this._target,r);RO.set(n,t),RO.far=this._spherical.radius+1;let s=RO.intersectObjects(this.colliderMeshes);0!==s.length&&s[0].distance{let t=()=>{this.removeEventListener("rest",t),e()};this.addEventListener("rest",t)})))}_addAllEventListeners(e){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(e){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(e){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(e,t=new Cr.Sphere){let i=t,r=i.center;lE.makeEmpty(),e.traverseVisible((e=>{e.isMesh&&lE.expandByObject(e)})),lE.getCenter(r);let n=0;return e.traverseVisible((e=>{if(!e.isMesh)return;let t=e,i=t.geometry.clone();if(i.applyMatrix4(t.matrixWorld),i.isBufferGeometry){let e=i.attributes.position;for(let t=0,i=e.count;t{if(this.enabled){switch(e.code){case this.keys.up:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(0,1),this._isUserControllingRotate=!0):(this._truckInternal(0,this.keyTruckSpeed,!1),this._isUserControllingTruck=!0);break;case this.keys.bottom:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(0,-1),this._isUserControllingRotate=!0):(this._truckInternal(0,-this.keyTruckSpeed,!1),this._isUserControllingTruck=!0);break;case this.keys.left:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(1,0),this._isUserControllingRotate=!0):(this._truckInternal(this.keyTruckSpeed,0,!1),this._isUserControllingTruck=!0);break;case this.keys.right:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(-1,0),this._isUserControllingRotate=!0):(this._truckInternal(-this.keyTruckSpeed,0,!1),this._isUserControllingTruck=!0)}this.dispatchEvent({type:"control"})}},this.onKeyUp=e=>{this.dispatchEvent({type:"controlend"})},this.dollySpeedBackup=this.dollySpeed,this.azimuthRotateSpeedBackup=this.azimuthRotateSpeed,this.polarRotateSpeedBackup=this.polarRotateSpeed,this.truckSpeedBackup=this.truckSpeed}get enableZoom(){return!!this.dollySpeed}set enableZoom(e){e?this.dollySpeed=this.dollySpeedBackup:(this.dollySpeedBackup=this.dollySpeed,this.dollySpeed=0)}get enableRotate(){return!!this.azimuthRotateSpeed||!!this.polarRotateSpeed}set enableRotate(e){e?(this.azimuthRotateSpeed=this.azimuthRotateSpeedBackup,this.polarRotateSpeed=this.polarRotateSpeedBackup):(this.azimuthRotateSpeedBackup=this.azimuthRotateSpeed,this.polarRotateSpeedBackup=this.polarRotateSpeed,this.azimuthRotateSpeed=0,this.polarRotateSpeed=0)}get enableTruck(){return!!this.truckSpeed}set enableTruck(e){e?this.truckSpeed=this.truckSpeedBackup:(this.truckSpeedBackup=this.truckSpeed,this.truckSpeed=0)}listenToKeyEvents(){var e,t;null==(e=this._domElement)||e.addEventListener("keydown",this.onKeyDown),null==(t=this._domElement)||t.addEventListener("keyup",this.onKeyUp)}stopListenToKeyEvents(){var e,t;null==(e=this._domElement)||e.removeEventListener("keydown",this.onKeyDown),null==(t=this._domElement)||t.removeEventListener("keyup",this.onKeyUp)}dispose(){super.dispose(),this.stopListenToKeyEvents()}},XMe=class{constructor(e,t,i,r,n){this.targetPixelHeight=100,this.canvasHeight=800,this.camera=e,this.object=i,this.targetPixelHeight=r,this.canvasHeight=n,this.adjustSize(),t.addEventListener("update",(()=>{this.adjustSize()}))}adjustSize(){let e=new Dt;if(this.object.updateMatrix(),e.expandByObject(this.object),!e)return;let t=e.max.x-e.min.x,i=this.camera.position.distanceTo(this.object.position),r=P2t(t,i,this.canvasHeight);if(Math.abs(r-this.targetPixelHeight)<5)return;let n=this.object.scale.x;n*=this.targetPixelHeight/r,this.object.scale.set(n,n,n),this.object.updateMatrix()}},P2t=(e,t,i=800,r=45)=>{let n=r*(Math.PI/180);return i*(e/(2*Math.tan(n/2)*t))},tl=class extends Aa{constructor(e){super(_t.guid()),this.needsFrustumCulled=!1,this.snapType="Dot",this.snapLineVisible=!1,this.snapType=e,this.drawSnapFunctions={Dot:this.drawDot.bind(this),Square:this.drawSquare.bind(this),Cross:this.drawCross.bind(this),Triangle:this.drawTriangle.bind(this),Perpendicular:this.drawPerpendicular.bind(this)}}setSnapLineVisible(e){this.snapLineVisible=e}draw(e,t){this.osnapInfo&&(this.snapLineVisible&&this.drawSnapLine(e,t),e.save(),e.fillStyle=tl.FILL_COLOR,e.strokeStyle=tl.LINE_COLOR,e.lineWidth=tl.LINE_WIDTH,e.beginPath(),this.drawSnapFunctions[this.snapType](e,t),MO&&this.drawDebug(e,t),e.closePath(),e.fill(),e.stroke(),e.restore())}drawDebug(e,t){null==MO||MO.forEach((i=>{let r=this.transToScreenCoord(i.start,t),n=this.transToScreenCoord(i.end,t);e.moveTo(r.x,r.y),e.lineTo(n.x,n.y)}))}drawSelect(e,t){}isPointInPath(e){return!1}drawSnapLine(e,t){e.save(),e.strokeStyle=tl.SNAP_LINE_COLOR,e.lineWidth=tl.LINE_WIDTH;let i=this.transToScreenCoord(this.osnapInfo.line.start,t),r=this.transToScreenCoord(this.osnapInfo.line.end,t);e.moveTo(i.x,i.y),e.lineTo(r.x,r.y),e.stroke(),e.restore()}drawDot(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t);e.arc(i.x,i.y,tl.SNAP_ICON_SIZE/3,0,2*Math.PI)}drawSquare(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),r=tl.SNAP_ICON_SIZE/1.2,n=tl.SNAP_ICON_SIZE/1.2;e.rect(i.x-r/2,i.y-n/2,r,n)}drawTriangle(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),r=tl.SNAP_ICON_SIZE/1.2/2,n=new le(0,-r).add(i),s=new le(-.87*r,r/2).add(i),a=new le(.87*r,r/2).add(i);e.moveTo(n.x,n.y),e.lineTo(s.x,s.y),e.lineTo(a.x,a.y),e.closePath()}drawCross(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),r=tl.SNAP_ICON_SIZE/1.2/2,n=new le(-r,-r).add(i),s=new le(r,r).add(i),a=new le(r,-r).add(i),o=new le(-r,r).add(i);e.moveTo(n.x,n.y),e.lineTo(s.x,s.y),e.moveTo(a.x,a.y),e.lineTo(o.x,o.y)}drawPerpendicular(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),r=tl.SNAP_ICON_SIZE/1.2/2;[new le(0,0).add(i),new le(-r,0).add(i),new le(0,0).add(i),new le(0,r).add(i),new le(r,r).add(i),new le(-r,r).add(i),new le(-r,r).add(i),new le(-r,-r).add(i)].forEach(((t,i)=>{0===i?e.moveTo(t.x,t.y):e.lineTo(t.x,t.y)}))}update(e){this.osnapInfo=e}getClassType(){return"SnapDrawable"}},rl=tl;rl.LINE_COLOR="rgba(255, 240, 0, 0.8)",rl.FILL_COLOR="rgba(135, 206, 250, 0.5)",rl.SNAP_LINE_COLOR="rgba(255, 240, 0, 0.3)",rl.LINE_WIDTH=2.5,rl.SNAP_ICON_SIZE=10,wr._registerDrawableClass(rl);var N2t=(e=>(e[e.None=0]="None",e[e.PointOnLine=1]="PointOnLine",e[e.StartPoint=2]="StartPoint",e[e.EndPoint=4]="EndPoint",e[e.MiddlePoint=8]="MiddlePoint",e[e.FootOfPerpendicular=16]="FootOfPerpendicular",e[e.Intersection=32]="Intersection",e))(N2t||{}),L2t=1e-5,DO=class{constructor(e){var t;this.drawableList=new Xu("snap"),this.markers={},this.activeOSnapType=0,this.snapTolerance=1,this.overlayRender=e,null==(t=this.overlayRender)||t.addDrawableList(this.drawableList),this.initOSnapMarkers()}initOSnapMarkers(){let e=new rl("Square"),t=new rl("Triangle"),i=new rl("Dot"),r=new rl("Cross"),n=new rl("Perpendicular");this.markers[2]=e,this.markers[4]=e,this.markers[8]=t,this.markers[1]=i,this.markers[32]=r,this.markers[16]=n,Object.values(this.markers).forEach((e=>{e.visible=!1,this.drawableList.addDrawable(e)}))}updateSnapTolerance(e){this.snapTolerance=e}getSnapTolerance(){return this.snapTolerance}getMarker(e){return this.markers[e]}deactivate(){this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1),this.activeOSnapType=0}destroy(){}handleSnap(e,t,i,r){if(null==t||!t.length)return void this.activateMarker(0);let n=this.getInteractionLines(e,t);if(n){let t=this.getSnapInfo(e,n,r);return t&&0!==t.type?(this.activateMarker(t.type,i,t),t.point):void this.activateMarker(0)}this.activateMarker(0)}activateMarker(e,t=!1,i){var r;this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1),this.activeOSnapType=e;let n=this.markers[e];n&&i&&(n.setSnapLineVisible(t),n.update(i),n.visible=!0),null==(r=this.overlayRender)||r.render()}getFootOfPerpendicular(e,t,i=L2t){let{start:r,end:n}=t,s=r.x-n.x,a=r.y-n.y,o=r.z-n.z;if(r.distanceTo(n)t.type-e.type)),n[0]}},nG=kn(ql(),1),mh=class{constructor(e,t,i){this.follow=e=>{let{x:t,y:i}=Ci.getScreenPointByEvent(e,this.parentNode);this.node.style.left=t+15+"px",this.node.style.top=i-30+"px"},this.show=()=>this.node.hasAttribute("hidden")&&this.node.removeAttribute("hidden"),this.hide=()=>!this.node.hasAttribute("hidden")&&this.node.setAttribute("hidden",""),this.destroy=()=>{this.target?this.target.removeEventListener(Mf,this.follow):document.removeEventListener(Mf,this.follow),this.parentNode.removeChild(this.node)},this.node=document.createElement("div"),this.node.id=e,t&&this.node.append(t),this.childNode=document.createElement("div"),this.target=null==i?void 0:i.target,this.parentNode=(null==i?void 0:i.parentNode)||document.body,null!=i&&i.followPointer&&(this.node.classList.add("follow-tooltip"),this.target?this.target.addEventListener(Mf,this.follow):document.addEventListener(Mf,this.follow)),this.parentNode.appendChild(this.node),(null==i||!i.showOnCreate)&&this.node.setAttribute("hidden","")}setContent(e){this.node.textContent&&(this.node.textContent=null),(0,nG.forEach)(this.node.children,(e=>{this.node.removeChild(e)})),this.node.append(e),this.node.appendChild(this.childNode)}updateChildContent(e){this.childNode.textContent&&(this.childNode.textContent=null),(0,nG.forEach)(this.childNode.children,(e=>{this.childNode.removeChild(e)})),this.childNode.append(e)}},CO=class{constructor(e){this.mouseDown=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.tempEnableRotate=!1,this.actived=!1,this.isResolvedOrRejected=!1,this.mousedown=e=>{var t,i;if(0===e.button){this.mouseDown=!0;let r=new le(e.x,e.y);this.mouseDownPositionX=r.x,this.mouseDownPositionY=r.y,null==(t=this.tooltip)||t.hide(),null==(i=this.tooltip)||i.destroy(),this.tooltip=void 0}},this.mousemove=e=>{if(!this.mouseDown)return;let t=new le(e.x,e.y);if(this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(t.x-this.mouseDownPositionX)>=5||Math.abs(t.y-this.mouseDownPositionY)>=5)){this.mouseMove=!0;let e=new le(Math.min(this.mouseDownPositionX,t.x),Math.min(this.mouseDownPositionY,t.y)),i=new le(Math.max(this.mouseDownPositionX,t.x),Math.max(this.mouseDownPositionY,t.y));this.drawRect(e,i)}},this.mouseup=e=>{if(this.mouseDown&&this.mouseMove){let t=new le(e.x,e.y),i=new le(Math.min(this.mouseDownPositionX,t.x),Math.min(this.mouseDownPositionY,t.y)),r=new le(Math.max(this.mouseDownPositionX,t.x),Math.max(this.mouseDownPositionY,t.y)),n=new rs(i,r);this.deactivate(),this.setRectDomVisible(!1),this.resolve&&(this.resolve(n),this.isResolvedOrRejected=!0)}this.mouseDown=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1},this.viewer=e,this.input=e.getInputManager()}get viewerContainer(){return this.viewer.viewerContainer}isActived(){return this.actived}activate(){var e;if(this.isActived())return void(this.reject&&(this.reject("BoxSelectHelper is already actived!"),this.isResolvedOrRejected=!0));this.actived=!0,this.input.addEventListener("pointerdown",this.mousedown),this.input.addEventListener("pointermove",this.mousemove),this.input.addEventListener("pointerup",this.mouseup);let t=this.viewer.controls;this.tempKey=t.mouseButtons.left,this.tempEnableRotate=t.enableRotate,t.mouseButtons.left=et.NONE,t.enableRotate=!1;let i=this.viewer.translate;if(i){this.tooltip=new mh("box-select-tooltip",i("Tooltip.boxSelect"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewerContainer});let t=document.getElementById("box-select-tooltip");t&&(t.style.pointerEvents="none");let r=i("Tooltip.boxSelect");r&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(r))}}deactivate(){var e,t;this.actived=!1,this.input.removeEventListener("pointerdown",this.mousedown),this.input.removeEventListener("pointermove",this.mousemove),this.input.removeEventListener("pointerup",this.mouseup),null==(e=this.tooltip)||e.hide(),null==(t=this.tooltip)||t.destroy(),this.tooltip=void 0,this.viewer.controls.mouseButtons.left=this.tempKey,this.viewer.controls.enableRotate=this.tempEnableRotate}drawRect(e,t){this.rectDom||(this.rectDom=document.createElement("div"),this.rectDom.style.cssText=`position: absolute;border: ${CO.BORDER_WIDTH} solid ${CO.BORDER_COLOR};`,this.viewerContainer.appendChild(this.rectDom)),this.setRectDomVisible(!0),this.rectDom.style.left=`${e.x}px`,this.rectDom.style.top=`${e.y}px`;let i=Math.abs(t.x-e.x),r=Math.abs(t.y-e.y);this.rectDom.style.width=`${i}px`,this.rectDom.style.height=`${r}px`}setRectDomVisible(e){this.rectDom&&(this.rectDom.style.display=e?"inline-block":"none")}select(){return ht(this,null,(function*(){return new Promise(((e,t)=>{this.resolve=e,this.reject=t,this.activate()}))}))}destroy(){var e;this.deactivate(),null==(e=this.rectDom)||e.remove(),this.rectDom=void 0,this.isResolvedOrRejected||this.reject&&this.reject("BoxSelectHelper is not done for some reason!")}},Jf=CO;Jf.BORDER_COLOR="#fff000",Jf.BORDER_WIDTH="2px";var $Me=kn(ql(),1),cE=class{constructor(e){this.history=[],this.step=0,this.maxCount=50,this.maxCount=e||this.maxCount}addRecord(e,t){this.history.length===this.maxCount&&this.history.shift(),this.step!==this.history.length&&this.history.splice(this.step),this.history.push({type:e,payload:(0,$Me.cloneDeep)(t)}),this.step++}undo(){if(0!==this.step)return this.step--,this.history[this.step]}redo(){if(this.step!==this.history.length)return this.step++,this.history[this.step-1]}clear(){this.history=[],this.step=0}destroy(){this.clear(),this.maxCount=0}};function Zc(e){return(Zc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Kl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function KMe(e,t){for(var i=0;ie.length)&&(t=e.length);for(var i=0,r=new Array(t);i1&&void 0!==arguments[1]?arguments[1]:{};Kl(this,e),this.init(t,i)}return Zl(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||F2t,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),i=0;i1?t-1:0),r=1;r-1?e.replace(/###/g,"."):e}function n(){return!e||"string"==typeof e}for(var s="string"!=typeof t?[].concat(t):t.split(".");s.length>1;){if(n())return{};var a=r(s.shift());!e[a]&&i&&(e[a]=new i),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return n()?{}:{obj:e,k:r(s.shift())}}function eDe(e,t,i){var r=hG(e,t,Object);r.obj[r.k]=i}function B2t(e,t,i,r){var n=hG(e,t,Object),s=n.obj,a=n.k;s[a]=s[a]||[],r&&(s[a]=s[a].concat(i)),r||s[a].push(i)}function NO(e,t){var i=hG(e,t),r=i.obj,n=i.k;if(r)return r[n]}function tDe(e,t,i){var r=NO(e,i);return void 0!==r?r:NO(t,i)}function dDe(e,t,i){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?i&&(e[r]=t[r]):dDe(e[r],t[r],i):e[r]=t[r]);return e}function hE(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var k2t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function G2t(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return k2t[e]})):e}var FO="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,V2t=[" ",",","?","!",";"];function z2t(e,t,i){t=t||"",i=i||"";var r=V2t.filter((function(e){return t.indexOf(e)<0&&i.indexOf(e)<0}));if(0===r.length)return!0;var n=new RegExp("(".concat(r.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),s=!n.test(e);if(!s){var a=e.indexOf(i);a>0&&!n.test(e.substring(0,a))&&(s=!0)}return s}function rDe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function OO(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(i),n=e,s=0;ss+a;)a++,l=n[o=r.slice(s,s+a).join(i)];if(void 0===l)return;if(t.endsWith(o)){if("string"==typeof l)return l;if(o&&"string"==typeof l[o])return l[o]}var h=r.slice(s+a).join(i);return h?fDe(l,h,i):void 0}n=n[r[s]]}return n}}var q2t=function(e){uE(i,em);var t=j2t(i);function i(e){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return Kl(this,i),r=t.call(this),FO&&em.call(Jc(r)),r.data=e||{},r.options=n,void 0===r.options.keySeparator&&(r.options.keySeparator="."),void 0===r.options.ignoreJSONStructure&&(r.options.ignoreJSONStructure=!0),r}return Zl(i,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,s=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure,a=[e,t];i&&"string"!=typeof i&&(a=a.concat(i)),i&&"string"==typeof i&&(a=a.concat(n?i.split(n):i)),e.indexOf(".")>-1&&(a=e.split("."));var o=NO(this.data,a);return o||!s||"string"!=typeof i?o:fDe(this.data&&this.data[e]&&this.data[e][t],i,n)}},{key:"addResource",value:function(e,t,i,r){var n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},s=this.options.keySeparator;void 0===s&&(s=".");var a=[e,t];i&&(a=a.concat(s?i.split(s):i)),e.indexOf(".")>-1&&(r=t,t=(a=e.split("."))[1]),this.addNamespaces(t),eDe(this.data,a,r),n.silent||this.emit("added",e,t,i,r)}},{key:"addResources",value:function(e,t,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var n in i)("string"==typeof i[n]||"[object Array]"===Object.prototype.toString.apply(i[n]))&&this.addResource(e,t,n,i[n],{silent:!0});r.silent||this.emit("added",e,t,i)}},{key:"addResourceBundle",value:function(e,t,i,r,n){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},a=[e,t];e.indexOf(".")>-1&&(r=i,i=t,t=(a=e.split("."))[1]),this.addNamespaces(t);var o=NO(this.data,a)||{};r?dDe(o,i,n):o=OO(OO({},o),i),eDe(this.data,a,o),s.silent||this.emit("added",e,t,i)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?OO(OO({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),i}(),mDe={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,i,r,n){var s=this;return e.forEach((function(e){s.processors[e]&&(t=s.processors[e].process(t,i,r,n))})),t}};function iDe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function La(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Kl(this,i),r=t.call(this),FO&&em.call(Jc(r)),U2t(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,Jc(r)),r.options=n,void 0===r.options.keySeparator&&(r.options.keySeparator="."),r.logger=yh.create("translator"),r}return Zl(i,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var i=this.resolve(e,t);return i&&void 0!==i.res}},{key:"extractFromKey",value:function(e,t){var i=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===i&&(i=":");var r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,n=t.ns||this.options.defaultNS||[],s=i&&e.indexOf(i)>-1,a=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||z2t(e,i,r));if(s&&!a){var o=e.match(this.interpolator.nestingRegexp);if(o&&o.length>0)return{key:e,namespaces:n};var l=e.split(i);(i!==r||i===r&&this.options.ns.indexOf(l[0])>-1)&&(n=l.shift()),e=l.join(r)}return"string"==typeof n&&(n=[n]),{key:e,namespaces:n}}},{key:"translate",value:function(e,t,r){var n=this;if("object"!==Zc(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var s=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,a=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=this.extractFromKey(e[e.length-1],t),l=o.key,h=o.namespaces,u=h[h.length-1],c=t.lng||this.language,p=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&"cimode"===c.toLowerCase()){if(p){var d=t.nsSeparator||this.options.nsSeparator;return s?(f.res="".concat(u).concat(d).concat(l),f):"".concat(u).concat(d).concat(l)}return s?(f.res=l,f):l}var f=this.resolve(e,t),m=f&&f.res,g=f&&f.usedKey||l,y=f&&f.exactUsedKey||l,v=Object.prototype.toString.apply(m),T=["[object Number]","[object Function]","[object RegExp]"],x=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject,_="string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m;if(b&&m&&_&&T.indexOf(v)<0&&("string"!=typeof x||"[object Array]"!==v)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var E=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,m,La(La({},t),{},{ns:h})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return s?(f.res=E,f):E}if(a){var w="[object Array]"===v,S=w?[]:{},I=w?y:g;for(var M in m)if(Object.prototype.hasOwnProperty.call(m,M)){var A="".concat(I).concat(a).concat(M);S[M]=this.translate(A,La(La({},t),{joinArrays:!1,ns:h})),S[M]===A&&(S[M]=m[M])}m=S}}else if(b&&"string"==typeof x&&"[object Array]"===v)(m=m.join(x))&&(m=this.extendTranslation(m,e,t,r));else{var D=!1,O=!1,R=void 0!==t.count&&"string"!=typeof t.count,C=i.hasDefaultValue(t),N=R?this.pluralResolver.getSuffix(c,t.count,t):"",P=t["defaultValue".concat(N)]||t.defaultValue;!this.isValidLookup(m)&&C&&(D=!0,m=P),this.isValidLookup(m)||(O=!0,m=l);var L=t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,F=L&&O?void 0:m,U=C&&P!==m&&this.options.updateMissing;if(O||D||U){if(this.logger.log(U?"updateKey":"missingKey",c,u,l,U?P:m),a){var k=this.resolve(l,La(La({},t),{},{keySeparator:!1}));k&&k.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var B=[],H=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&H&&H[0])for(var G=0;G1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!a.isValidLookup(t)){var l=a.extractFromKey(e,o),h=l.key;i=h;var u=l.namespaces;a.options.fallbackNS&&(u=u.concat(a.options.fallbackNS));var c=void 0!==o.count&&"string"!=typeof o.count,p=c&&!o.ordinal&&0===o.count&&a.pluralResolver.shouldUseIntlApi(),d=void 0!==o.context&&("string"==typeof o.context||"number"==typeof o.context)&&""!==o.context,f=o.lngs?o.lngs:a.languageUtils.toResolveHierarchy(o.lng||a.language,o.fallbackLng);u.forEach((function(e){a.isValidLookup(t)||(s=e,!nDe["".concat(f[0],"-").concat(e)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(s)&&(nDe["".concat(f[0],"-").concat(e)]=!0,a.logger.warn('key "'.concat(i,'" for languages "').concat(f.join(", "),'" won\'t get resolved as namespace "').concat(s,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach((function(i){if(!a.isValidLookup(t)){n=i;var s,l=[h];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(l,h,i,e,o);else{var u;c&&(u=a.pluralResolver.getSuffix(i,o.count,o));var f="_zero";if(c&&(l.push(h+u),p&&l.push(h+f)),d){var m="".concat(h).concat(a.options.contextSeparator).concat(o.context);l.push(m),c&&(l.push(m+u),p&&l.push(m+f))}}for(;s=l.pop();)a.isValidLookup(t)||(r=s,t=a.getResource(i,e,s,o))}})))}))}})),{res:t,usedKey:i,exactUsedKey:r,usedLng:n,usedNS:s}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,i,r):this.resourceStore.getResource(e,t,i,r)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&t===i.substring(0,t.length)&&void 0!==e[i])return!0;return!1}}]),i}();function uG(e){return e.charAt(0).toUpperCase()+e.slice(1)}var $2t=function(){function e(t){Kl(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=yh.create("languageUtils")}return Zl(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length||(t.pop(),"x"===t[t.length-1].toLowerCase())?null:this.formatLanguageCode(t.join("-"))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],i=e.split("-");return this.options.lowerCaseLng?i=i.map((function(e){return e.toLowerCase()})):2===i.length?(i[0]=i[0].toLowerCase(),i[1]=i[1].toUpperCase(),t.indexOf(i[1].toLowerCase())>-1&&(i[1]=uG(i[1].toLowerCase()))):3===i.length&&(i[0]=i[0].toLowerCase(),2===i[1].length&&(i[1]=i[1].toUpperCase()),"sgn"!==i[0]&&2===i[2].length&&(i[2]=i[2].toUpperCase()),t.indexOf(i[1].toLowerCase())>-1&&(i[1]=uG(i[1].toLowerCase())),t.indexOf(i[2].toLowerCase())>-1&&(i[2]=uG(i[2].toLowerCase()))),i.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,i=this;return e?(e.forEach((function(e){if(!t){var r=i.formatLanguageCode(e);(!i.options.supportedLngs||i.isSupportedCode(r))&&(t=r)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var r=i.getLanguagePartFromCode(e);if(i.isSupportedCode(r))return t=r;t=i.options.supportedLngs.find((function(e){if(0===e.indexOf(r))return e}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var i=e[t];return i||(i=e[this.getScriptPartFromCode(t)]),i||(i=e[this.formatLanguageCode(t)]),i||(i=e[this.getLanguagePartFromCode(t)]),i||(i=e.default),i||[]}},{key:"toResolveHierarchy",value:function(e,t){var i=this,r=this.getFallbackCodes(t||this.options.fallbackLng||[],e),n=[],s=function(e){e&&(i.isSupportedCode(e)?n.push(e):i.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&s(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&s(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&s(this.getLanguagePartFromCode(e))):"string"==typeof e&&s(this.formatLanguageCode(e)),r.forEach((function(e){n.indexOf(e)<0&&s(i.formatLanguageCode(e))})),n}}]),e}(),K2t=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],Z2t={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},J2t=["v1","v2","v3"],aDe={zero:0,one:1,two:2,few:3,many:4,other:5};function Q2t(){var e={};return K2t.forEach((function(t){t.lngs.forEach((function(i){e[i]={numbers:t.nr,plurals:Z2t[t.fc]}}))})),e}var eNt=function(){function e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Kl(this,e),this.languageUtils=t,this.options=i,this.logger=yh.create("pluralResolver"),(!this.options.compatibilityJSON||"v4"===this.options.compatibilityJSON)&&("undefined"==typeof Intl||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=Q2t()}return Zl(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.getRule(e,t);return this.shouldUseIntlApi()?i&&i.resolvedOptions().pluralCategories.length>1:i&&i.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,i).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getRule(e,i);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((function(e,t){return aDe[e]-aDe[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):r.numbers.map((function(r){return t.getSuffix(e,r,i)})):[]}},{key:"getSuffix",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getRule(e,i);return r?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(r.select(t)):this.getSuffixRetroCompatible(r,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var i=this,r=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),n=e.numbers[r];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===n?n="plural":1===n&&(n=""));var s=function(){return i.options.prepend&&n.toString()?i.options.prepend+n.toString():n.toString()};return"v1"===this.options.compatibilityJSON?1===n?"":"number"==typeof n?"_plural_".concat(n.toString()):s():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?s():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}},{key:"shouldUseIntlApi",value:function(){return!J2t.includes(this.options.compatibilityJSON)}}]),e}();function oDe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function Qc(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};Kl(this,e),this.logger=yh.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return Zl(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:G2t,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?hE(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?hE(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?hE(t.nestingPrefix):t.nestingPrefixEscaped||hE("$t("),this.nestingSuffix=t.nestingSuffix?hE(t.nestingSuffix):t.nestingSuffixEscaped||hE(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var i="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(i,"g")}},{key:"interpolate",value:function(e,t,i,r){var n,s,a,o=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function h(e){return e.replace(/\$/g,"$$$$")}var u=function(e){if(e.indexOf(o.formatSeparator)<0){var n=tDe(t,l,e);return o.alwaysFormat?o.format(n,void 0,i,Qc(Qc(Qc({},r),t),{},{interpolationkey:e})):n}var s=e.split(o.formatSeparator),a=s.shift().trim(),h=s.join(o.formatSeparator).trim();return o.format(tDe(t,l,a),h,i,Qc(Qc(Qc({},r),t),{},{interpolationkey:a}))};this.resetRegExp();var c=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&void 0!==r.interpolation.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return h(e)}},{regex:this.regexp,safeValue:function(e){return o.escapeValue?h(o.escape(e)):h(e)}}].forEach((function(t){for(a=0;n=t.regex.exec(e);){var i=n[1].trim();if(void 0===(s=u(i)))if("function"==typeof c){var l=c(e,n,r);s="string"==typeof l?l:""}else if(r&&r.hasOwnProperty(i))s="";else{if(p){s=n[0];continue}o.logger.warn("missed to pass in variable ".concat(i," for interpolating ").concat(e)),s=""}else"string"!=typeof s&&!o.useRawValueToEscape&&(s=QMe(s));var h=t.safeValue(s);if(e=e.replace(n[0],h),p?(t.regex.lastIndex+=h.length,t.regex.lastIndex-=n[0].length):t.regex.lastIndex=0,++a>=o.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var i,r,n=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=Qc({},s);function o(e,t){var i=this.nestingOptionsSeparator;if(e.indexOf(i)<0)return e;var r=e.split(new RegExp("".concat(i,"[ ]*{"))),n="{".concat(r[1]);e=r[0],n=(n=this.interpolate(n,a)).replace(/'/g,'"');try{a=JSON.parse(n),t&&(a=Qc(Qc({},t),a))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(i).concat(n)}return delete a.defaultValue,e}for(a.applyPostProcessor=!1,delete a.defaultValue;i=this.nestingRegexp.exec(e);){var l=[],h=!1;if(-1!==i[0].indexOf(this.formatSeparator)&&!/{.*}/.test(i[1])){var u=i[1].split(this.formatSeparator).map((function(e){return e.trim()}));i[1]=u.shift(),l=u,h=!0}if((r=t(o.call(this,i[1].trim(),a),a))&&i[0]===e&&"string"!=typeof r)return r;"string"!=typeof r&&(r=QMe(r)),r||(this.logger.warn("missed to resolve ".concat(i[1]," for nesting ").concat(e)),r=""),h&&(r=l.reduce((function(e,t){return n.format(e,t,s.lng,Qc(Qc({},s),{},{interpolationkey:i[1].trim()}))}),r.trim())),e=e.replace(i[0],r),this.regexp.lastIndex=0}return e}}]),e}();function lDe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function Qf(e){for(var t=1;t-1){var r=e.split("(");t=r[0].toLowerCase().trim();var n=r[1].substring(0,r[1].length-1);if("currency"===t&&n.indexOf(":")<0)i.currency||(i.currency=n.trim());else if("relativetime"===t&&n.indexOf(":")<0)i.range||(i.range=n.trim());else{n.split(";").forEach((function(e){if(e){var t=cG(e.split(":")),r=t[0],n=t.slice(1).join(":");i[r.trim()]||(i[r.trim()]=n.trim()),"false"===n.trim()&&(i[r.trim()]=!1),"true"===n.trim()&&(i[r.trim()]=!0),isNaN(n.trim())||(i[r.trim()]=parseInt(n.trim(),10))}}))}}return{formatName:t,formatOptions:i}}var iNt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Kl(this,e),this.logger=yh.create("formatter"),this.options=t,this.formats={number:function(e,t,i){return new Intl.NumberFormat(t,i).format(e)},currency:function(e,t,i){return new Intl.NumberFormat(t,Qf(Qf({},i),{},{style:"currency"})).format(e)},datetime:function(e,t,i){return new Intl.DateTimeFormat(t,Qf({},i)).format(e)},relativetime:function(e,t,i){return new Intl.RelativeTimeFormat(t,Qf({},i)).format(e,i.range||"day")},list:function(e,t,i){return new Intl.ListFormat(t,Qf({},i)).format(e)}},this.init(t)}return Zl(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},i=t.interpolation;this.formatSeparator=i.formatSeparator?i.formatSeparator:i.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"format",value:function(e,t,i,r){var n=this;return t.split(this.formatSeparator).reduce((function(e,t){var s=rNt(t),a=s.formatName,o=s.formatOptions;if(n.formats[a]){var l=e;try{var h=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},u=h.locale||h.lng||r.locale||r.lng||i;l=n.formats[a](e,u,Qf(Qf(Qf({},o),r),h))}catch(e){n.logger.warn(e)}return l}return n.logger.warn("there was no format function for ".concat(a)),e}),e)}}]),e}();function cDe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function uDe(e){for(var t=1;t3&&void 0!==arguments[3]?arguments[3]:{};return Kl(this,i),s=t.call(this),FO&&em.call(Jc(s)),s.backend=e,s.store=r,s.services=n,s.languageUtils=n.languageUtils,s.options=a,s.logger=yh.create("backendConnector"),s.waitingReads=[],s.maxParallelReads=a.maxParallelReads||10,s.readingCalls=0,s.state={},s.queue=[],s.backend&&s.backend.init&&s.backend.init(n,a.backend,a),s}return Zl(i,[{key:"queueLoad",value:function(e,t,i,r){var n=this,s={},a={},o={},l={};return e.forEach((function(e){var r=!0;t.forEach((function(t){var o="".concat(e,"|").concat(t);!i.reload&&n.store.hasResourceBundle(e,t)?n.state[o]=2:n.state[o]<0||(1===n.state[o]?void 0===a[o]&&(a[o]=!0):(n.state[o]=1,r=!1,void 0===a[o]&&(a[o]=!0),void 0===s[o]&&(s[o]=!0),void 0===l[t]&&(l[t]=!0)))})),r||(o[e]=!0)})),(Object.keys(s).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(s),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,i){var r=e.split("|"),n=r[0],s=r[1];t&&this.emit("failedLoading",n,s,t),i&&this.store.addResourceBundle(n,s,i),this.state[e]=t?-1:2;var a={};this.queue.forEach((function(i){B2t(i.loaded,[n],s),aNt(i,e),t&&i.errors.push(t),0===i.pendingCount&&!i.done&&(Object.keys(i.loaded).forEach((function(e){a[e]||(a[e]={});var t=Object.keys(a[e]);t.length&&t.forEach((function(i){void 0!==t[i]&&(a[e][i]=!0)}))})),i.done=!0,i.errors.length?i.callback(i.errors):i.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,i){var r=this,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return e.length?this.readingCalls>=this.maxParallelReads?void this.waitingReads.push({lng:e,ns:t,fcName:i,tried:n,wait:s,callback:a}):(this.readingCalls++,this.backend[i](e,t,(function(o,l){if(o&&l&&n<5)setTimeout((function(){r.read.call(r,e,t,i,n+1,2*s,a)}),s);else{if(r.readingCalls--,r.waitingReads.length>0){var h=r.waitingReads.shift();r.read(h.lng,h.ns,h.fcName,h.tried,h.wait,h.callback)}a(o,l)}}))):a(null,{})}},{key:"prepareLoading",value:function(e,t){var i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var s=this.queueLoad(e,t,r,n);if(!s.toLoad.length)return s.pending.length||n(),null;s.toLoad.forEach((function(e){i.loadOne(e)}))}},{key:"load",value:function(e,t,i){this.prepareLoading(e,t,{},i)}},{key:"reload",value:function(e,t,i){this.prepareLoading(e,t,{reload:!0},i)}},{key:"loadOne",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("|"),n=r[0],s=r[1];this.read(n,s,"read",void 0,void 0,(function(r,a){r&&t.logger.warn("".concat(i,"loading namespace ").concat(s," for language ").concat(n," failed"),r),!r&&a&&t.logger.log("".concat(i,"loaded namespace ").concat(s," for language ").concat(n),a),t.loaded(e,r,a)}))}},{key:"saveMissing",value:function(e,t,i,r,n){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(i,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null==i||""===i||(this.backend&&this.backend.create&&this.backend.create(e,t,i,r,null,uDe(uDe({},s),{},{isUpdate:n})),e&&e[0]&&this.store.addResource(e[0],t,i,r))}}]),i}();function lNt(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===Zc(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===Zc(e[2])||"object"===Zc(e[3])){var i=e[3]||e[2];Object.keys(i).forEach((function(e){t[e]=i[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,i,r){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function hDe(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function pDe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function vh(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(Kl(this,i),e=t.call(this),FO&&em.call(Jc(e)),e.options=hDe(r),e.services={},e.logger=yh,e.modules={external:[]},hNt(Jc(e)),n&&!e.isInitialized&&!r.isClone){if(!e.options.initImmediate)return e.init(r,n),O0(e,Jc(e));setTimeout((function(){e.init(r,n)}),0)}return e}return Zl(i,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(i=t,t={}),!t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var r=lNt();function n(e){return e?"function"==typeof e?new e:e:null}if(this.options=vh(vh(vh({},r),this.options),hDe(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=vh(vh({},r.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var s;this.modules.logger?yh.init(n(this.modules.logger),this.options):yh.init(null,this.options),this.modules.formatter?s=this.modules.formatter:"undefined"!=typeof Intl&&(s=iNt);var a=new $2t(this.options);this.store=new q2t(this.options.resources,this.options);var o=this.services;o.logger=yh,o.resourceStore=this.store,o.languageUtils=a,o.pluralResolver=new eNt(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),s&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(o.formatter=n(s),o.formatter.init(o,this.options),this.options.interpolation.format=o.formatter.format.bind(o.formatter)),o.interpolator=new tNt(this.options),o.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},o.backendConnector=new oNt(n(this.modules.backend),o.resourceStore,o,this.options),o.backendConnector.on("*",(function(t){for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n1?i-1:0),n=1;n0&&"dev"!==l[0]&&(this.options.lng=l[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");var h=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];h.forEach((function(t){e[t]=function(){var i;return(i=e.store)[t].apply(i,arguments)}}));var u=["addResource","addResources","addResourceBundle","removeResourceBundle"];u.forEach((function(t){e[t]=function(){var i;return(i=e.store)[t].apply(i,arguments),e}}));var c=O_(),p=function(){var t=function(t,r){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),c.resolve(r),i(t,r)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?p():setTimeout(p,0),c}},{key:"loadResources",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:PO,r=i,n="string"==typeof e?e:this.language;if("function"==typeof e&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if(n&&"cimode"===n.toLowerCase())return r();var s=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){s.indexOf(e)<0&&s.push(e)}))};if(n)a(n);else{var o=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);o.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(s,this.options.ns,(function(e){!e&&!t.resolvedLanguage&&t.language&&t.setResolvedLanguage(t.language),r(e)}))}else r(null)}},{key:"reloadResources",value:function(e,t,i){var r=O_();return e||(e=this.languages),t||(t=this.options.ns),i||(i=PO),this.services.backendConnector.reload(e,t,(function(e){r.resolve(),i(e)})),r}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&mDe.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}}},{key:"changeLanguage",value:function(e,t){var i=this;this.isLanguageChangingTo=e;var r=O_();this.emit("languageChanging",e);var n=function(e){i.language=e,i.languages=i.services.languageUtils.toResolveHierarchy(e),i.resolvedLanguage=void 0,i.setResolvedLanguage(e)},s=function(s){!e&&!s&&i.services.languageDetector&&(s=[]);var a="string"==typeof s?s:i.services.languageUtils.getBestMatchFromCodes(s);a&&(i.language||n(a),i.translator.language||i.translator.changeLanguage(a),i.services.languageDetector&&i.services.languageDetector.cacheUserLanguage(a)),i.loadResources(a,(function(e){!function(e,s){s?(n(s),i.translator.changeLanguage(s),i.isLanguageChangingTo=void 0,i.emit("languageChanged",s),i.logger.log("languageChanged",s)):i.isLanguageChangingTo=void 0,r.resolve((function(){return i.t.apply(i,arguments)})),t&&t(e,(function(){return i.t.apply(i,arguments)}))}(e,a)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(s):s(e):s(this.services.languageDetector.detect()),r}},{key:"getFixedT",value:function(e,t,i){var r=this,n=function e(t,n){var s;if("object"!==Zc(n)){for(var a=arguments.length,o=new Array(a>2?a-2:0),l=2;l1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var r=this.resolvedLanguage||this.languages[0],n=!!this.options&&this.options.fallbackLng,s=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;var a=function(e,i){var r=t.services.backendConnector.state["".concat(e,"|").concat(i)];return-1===r||2===r};if(i.precheck){var o=i.precheck(this,a);if(void 0!==o)return o}return!!(this.hasResourceBundle(r,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(r,e)&&(!n||a(s,e)))}},{key:"loadNamespaces",value:function(e,t){var i=this,r=O_();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){i.options.ns.indexOf(e)<0&&i.options.ns.push(e)})),this.loadResources((function(e){r.resolve(),t&&t(e)})),r):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var i=O_();"string"==typeof e&&(e=[e]);var r=this.options.preload||[],n=e.filter((function(e){return r.indexOf(e)<0}));return n.length?(this.options.preload=r.concat(n),this.loadResources((function(e){i.resolve(),t&&t(e)})),i):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:PO,n=vh(vh(vh({},this.options),t),{isClone:!0}),s=new i(n),a=["store","services","language"];return a.forEach((function(t){s[t]=e[t]})),s.services=vh({},this.services),s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},s.translator=new sDe(s.services,s.options),s.translator.on("*",(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new LO(e,t)}));var Fa=LO.createInstance();Fa.createInstance=LO.createInstance;var USr=Fa.createInstance,BSr=Fa.init,kSr=Fa.loadResources,GSr=Fa.reloadResources,VSr=Fa.use,zSr=Fa.changeLanguage,jSr=Fa.getFixedT,Th=Fa.t,WSr=Fa.exists,qSr=Fa.setDefaultNamespace,YSr=Fa.hasLoadedNamespace,XSr=Fa.loadNamespaces,$Sr=Fa.loadLanguages,pG=Fa,pE=(e=>(e.BaseViewer="BaseViewer",e.BimViewer="BimViewer",e.DxfViewer="DxfViewer",e.VRViewer="BaseViewer",e))(pE||{}),tm=class extends Ks{constructor(e){super(),this.name="BaseViewer",this.translate=this.initLocalization(),this.height=0,this.width=0,this.enableOverlayRenderer=!0,this.viewerCfg=e,this.initLogLevel(),this.initLocalization(),wi.isBrowser&&!e.context&&(this.initViewerContainer(),this.initWidgetContainer())}initLogLevel(){let e=this.viewerCfg.logLevel;e&&lpe(e)}initLocalization(){var e;let t=(null==(e=this.viewerCfg)?void 0:e.language)||"cn";return pG.init({lng:t,debug:!1,resources:{en:{translation:Dpe},cn:{translation:Cpe}}}),pG.t}initViewerContainer(){let e=document.getElementById(this.viewerCfg.containerId);e||(ne.error("[BaseViewer] containerId:",this.viewerCfg.containerId,"is not found in dom tree! will append to document body"),e=document.body);let t=document.createElement("div");t.classList.add("viewer-container"),t.style.cssText="width: 100%; height: 100%; position: absolute; overflow: hidden;",e.appendChild(t),this.width=t.clientWidth,this.height=t.clientHeight,this.viewerContainer=t}initWidgetContainer(){var e;let t=document.createElement("div");t.classList.add("widget-container"),null==(e=this.viewerContainer)||e.appendChild(t),this.widgetContainer=t}destroy(){var e,t,i;null==(e=this.widgetContainer)||e.remove(),this.widgetContainer=void 0,null==(t=this.viewerContainer)||t.remove(),this.viewerContainer=void 0,null==(i=this.scene)||i.clear(),this.scene=void 0,this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.overlayRender&&(this.overlayRender.destroy(),this.overlayRender=void 0),this.camera=void 0,this.controls&&(this.controls.dispose(),this.controls=void 0),this.groundPlane&&(this.groundPlane.geometry.dispose(),this.groundPlane.clear(),this.groundPlane=void 0)}getInputManager(){return this.inputManager}getViewConfig(){return this.viewerCfg}enableRender(){}getRaycaster(){}getRaycastableObjectsByMouse(e){return[]}getBBox(){}getActiveSection(){}flyTo(e,t){}is3d(){return!0}deactivateMeasurement(){}setMeasurementVisibility(e,t){return!1}screenshot(e){return ht(this,null,(function*(){}))}showStats(){}hideStats(){}},dE=class{constructor(e){this.viewer=e,this.boxSelectHelper=new Jf(e)}get viewerContainer(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}activate(){var e;null==(e=this.boxSelectHelper)||e.select().then((e=>{this.handleZoomToRect(e.min,e.max)}))}deactivate(){var e;null==(e=this.boxSelectHelper)||e.deactivate(),this.boxSelectHelper=void 0}pickPositionByScreenPoint(e){let t=Ci.screenPoint2NdcPoint(e,this.camera,this.viewerContainer);this.raycaster.setFromCamera(t,this.camera);let i=[];"BimViewer"===this.viewer.name?i=this.viewer.getRaycastableObjectsByMouse({clientX:e.x,clientY:e.y}):"DxfViewer"===this.viewer.name&&(i=[this.viewer.groundPlane]);let r=this.raycaster.intersectObjects(i)||[];if(r.length>0)return r[0].point}handleZoomToRect(e,t){let i=this.pickPositionByScreenPoint(e),r=this.pickPositionByScreenPoint(t);if(i&&r){let e=new A(Math.min(i.x,r.x),Math.min(i.y,r.y),Math.min(i.z,r.z)),t=new A(Math.max(i.x,r.x),Math.max(i.y,r.y),Math.max(i.z,r.z)),n=new Dt(e,t);this.viewer.zoomToBBox(n)}}destroy(){this.deactivate()}},HO=class extends cE{constructor(e,t){super(t),this.manager=e}undo(){let e=super.undo();switch(null==e?void 0:e.type){case"Add":{let t=this.manager.getMarkupById(e.payload.id);t&&this.manager.removeMarkup(t,!1)}break;case"Remove":{let t=this.manager.createMarkup(e.payload);t&&this.manager.addMarkup(t,!1)}break;case"Update":{let{from:t,to:i}=e.payload,r=this.manager.getMarkupById(t.id);r&&this.manager.updateMarkup(r,t,!1)}}return e}redo(){let e=super.redo();switch(null==e?void 0:e.type){case"Add":{let t=this.manager.createMarkup(e.payload);t&&this.manager.addMarkup(t,!1)}break;case"Remove":{let t=this.manager.getMarkupById(e.payload.id);t&&this.manager.removeMarkup(t,!1)}break;case"Update":{let{from:t,to:i}=e.payload,r=this.manager.getMarkupById(i.id);r&&this.manager.updateMarkup(r,i,!1)}}return e}},gDe=new A,P_=class extends Ks{constructor(e,t){var i;super(),this.drawableList=new Xu("markup"),this.lineWidth=2,this.lineColor="#ff0000",this.fillColor="rgba(255, 0, 0, 0.3)",this.fontSize=20,this.mouseDown=!1,this.mouseDownPositionX=void 0,this.mouseDownPositionY=void 0,this.isDrawing=!1,this.tempPoints=[],this.actived=!1,this.undoRedoHelper=new HO(this),this.mousedown=e=>{var t;let i=this.pickThreejsPositionByMouse(e);if(this.mouseDownPositionX=i.x,this.mouseDownPositionY=i.y,0===e.button&&(this.mouseDown=!0),2===e.button&&(this.creatingShape&&this.tempPoints.length<2?(this.removeMarkup(this.creatingShape,!1),this.creatingShape=void 0):null==(t=this.creatingShape)||t.update(this.tempPoints),this.isDrawing&&this.endDraw(this.creatingShape)),this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0,this.render()),!this.isDrawing){let e=this.drawableList.getDrawableByPosition(i);e&&(this.selectedShape=e,e.selected=!0,this.render(),this.textInput&&(this.textInput.style.display="none"))}if(this.isCreateTextMode()&&this.mouseDown&&!this.selectedShape&&((!this.textInitialPosition||this.textInput&&0===this.textInput.value.length)&&(this.textInitialPosition=i.clone()),this.addInput(e.clientX,e.clientY)),this.isCreateLineMode()&&this.mouseDown&&!this.selectedShape){if(this.tempPoints.length>0){let e=this.tempPoints[0];if(gDe.subVectors(e,i).length(){let t=this.pickThreejsPositionByMouse(e);if(this.selectedShape){if(this.mouseDown&&void 0!==this.mouseDownPositionX&&void 0!==this.mouseDownPositionY){this.isEditing()||(this.initialDataForEditing=this.selectedShape.getData());let e=t.x-this.mouseDownPositionX,i=t.y-this.mouseDownPositionY;this.selectedShape.translate(e,i),this.render(),this.mouseDownPositionX=t.x,this.mouseDownPositionY=t.y}}else{if(this.isCreateDotMode())return;if(this.mouseDown&&this.isCreateShapeMode()&&void 0!==this.mouseDownPositionX&&void 0!==this.mouseDownPositionY){let e=new A(this.mouseDownPositionX,this.mouseDownPositionY,0);if(!this.creatingShape){let i=this.creatingShape=this.drawShape(e,t);i&&this.addMarkup(i,!1)}this.creatingShape.update([e,t]),this.isDrawing=!0,this.render()}if(this.isCreateLineMode()&&this.tempPoints.length>0&&this.isDrawing){if(!this.creatingShape){let e=this.creatingShape=this.drawLine([...this.tempPoints,t]);e&&this.addMarkup(e,!1)}let e=this.tempPoints[0];gDe.subVectors(e,t).length(){this.mouseDown=!1,this.selectedShape&&this.isEditing()&&this.endEdit(this.selectedShape),this.isCreateShapeMode()&&this.isDrawing&&this.endDraw(this.creatingShape)},this.keydown=e=>{"Delete"===e.code?this.selectedShape&&this.removeMarkup(this.selectedShape):e.ctrlKey&&"KeyZ"===e.code?this.undo():e.ctrlKey&&"KeyY"===e.code?this.redo():"Escape"===e.code&&this.cancelDraw(this.creatingShape)},this.viewer=e,this.inputManager=t,this.overlayRender=this.viewer.overlayRender,null==(i=this.overlayRender)||i.addDrawableList(this.drawableList)}get viewerCanvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}setMarkupVisibility(e,t){let i=this.drawableList.getDrawables().get(e);return!!i&&(i.visible=t,!0)}setMarkupsVisibility(e){this.drawableList.getDrawables().forEach((t=>t.visible=e))}clearAll(){this.drawableList.clear(),this.textInput&&(this.textInput.style.display="none"),this.undoRedoHelper.clear(),this.isDrawing&&this.endDraw(),this.render()}isMarkupActive(){return this.actived}activate(){this.actived=!0,this.inputManager.addEventListener("pointerdown",this.mousedown),this.inputManager.addEventListener("pointermove",this.mousemove),this.inputManager.addEventListener("pointerup",this.mouseup),this.inputManager.addEventListener("keydown",this.keydown);let e=this.viewer.controls;this.tempKey=e.mouseButtons.left,e.mouseButtons.left=et.NONE,this.tempArrowKeys=e.keys,e.keys={},this.render()}deactivate(){this.actived=!1,this.inputManager.removeEventListener("pointerdown",this.mousedown),this.inputManager.removeEventListener("pointermove",this.mousemove),this.inputManager.removeEventListener("pointerup",this.mouseup),this.inputManager.removeEventListener("keydown",this.keydown),this.viewer.controls.mouseButtons.left=this.tempKey,this.viewer.controls.keys=this.tempArrowKeys,this.textInput&&this.textInput.remove(),this.textInput=void 0,this.textInitialPosition=void 0,this.mouseDown=!1,this.selectedShape=void 0,this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0}getActiveMarkupType(){return this.type}setDrawType(e){this.type=e,this.endDraw()}setLineWidth(e){this.lineWidth=e}getLineWidth(){return this.lineWidth}setLineColor(e){this.lineColor=e}getLineColor(){return this.lineColor}setFillColor(e){this.fillColor=e}getFillColor(){return this.fillColor}setFontSize(e){this.fontSize=e}getFontSize(){return this.fontSize}pickPositionByScreenPoint(e){let t=new A,i=Ci.screenPoint2NdcPoint(e,this.camera,this.viewerCanvas);this.raycaster.setFromCamera(i,this.camera);let r=this.viewer.scene,n=this.raycaster.intersectObject(this.viewer.groundPlane||r)||[];return n.length>0&&t.copy(n[0].point),t}pickThreejsPositionByMouse(e){return this.pickPositionByScreenPoint(new le(e.x,e.y))}isEditing(){return!!this.initialDataForEditing}endEdit(e){this.undoRedoHelper.addRecord("Update",{from:this.initialDataForEditing,to:e.getData()}),this.initialDataForEditing=void 0}endDraw(e){e&&this.undoRedoHelper.addRecord("Add",e.getData()),this.reset()}cancelDraw(e){e&&this.removeMarkup(e,!1),this.reset()}reset(){this.textInput&&(this.textInput.style.display="none",this.textInput.value=""),this.textInitialPosition=void 0,this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0,this.mouseDownPositionX=void 0,this.mouseDownPositionY=void 0,this.render()}render(){var e;null==(e=this.overlayRender)||e.render()}addMarkup(e,t=!0){this.drawableList.addDrawable(e),this.render(),t&&this.undoRedoHelper.addRecord("Add",e.getData())}updateMarkup(e,t,i=!0){this.drawableList.updateDrawable(e,t),this.render(),i&&this.undoRedoHelper.addRecord("Update",e.getData())}removeMarkup(e,t=!0){this.drawableList.removeDrawable(e),this.render(),t&&this.undoRedoHelper.addRecord("Remove",e.getData())}removeMarkupById(e,t=!0){let i=this.getMarkupById(e);return!!i&&(this.drawableList.removeDrawable(i),this.render(),t&&this.undoRedoHelper.addRecord("Remove",i.getData()),!0)}createMarkup(e){return wr.createDrawable(e)}getMarkupById(e){return this.drawableList.getDrawableById(e)}getMarkupData(){return this.drawableList.getDrawableDatas()}setMarkupData(e){this.drawableList.clear(),this.drawableList.setDrawableDatas(e),this.render()}isCreateLineMode(){return["PolylineMarkup","CloudLineMarkup"].includes(this.type)}isCreateDotMode(){return["DotMarkup"].includes(this.type)}isCreateTextMode(){return["TextMarkup"].includes(this.type)}isCreateShapeMode(){return["XMarkup","RectMarkup","CloudRectMarkup","CircleMarkup","EllipseMarkup","ArrowMarkup","DotMarkup"].includes(this.type)}drawShape(e,t){let i=[[e.x,e.y]];return t&&i.push([t.x,t.y]),wr.createDrawable({id:_t.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:i})}drawLine(e){return wr.createDrawable({id:_t.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:e.map((e=>[e.x,e.y]))})}drawText(e,t){return wr.createDrawable({id:_t.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize*this.overlayRender.getPixelSize(1,this.camera),type:this.type,text:t,points:[[e.x,e.y]]})}addInput(e,t){var i;if(!this.textInput){let e,t=document.createElement("textarea");t.style.cssText=`\n position: fixed;\n border: 1px solid red;\n background: transparent;\n outline: none;\n resize: none;\n overflow: hidden;\n z-index: 1000;\n box-sizing: content-box;\n padding: 0px 2px;\n color: ${this.lineColor}`,t.setAttribute("wrap","off"),t.onkeydown=e=>{if("Enter"===e.key){let e=parseInt(t.style.height);t.style.height=`${e+this.fontSize}px`}this.isDrawing=!0},t.onkeyup=t=>{var i;let r=t.target.value,n=(null==(i=this.overlayRender)?void 0:i.measureTextLength(r,`${this.fontSize}px Arial`))||0;n>50&&(e&&clearTimeout(e),e=setTimeout((()=>{t.target.style.width=`${n+4}px`}),0))},t.onchange=e=>{console.log(e)},t.onblur=e=>{let t=e.target.value;if(t.length>0&&this.textInitialPosition){let e=this.creatingShape=this.drawText(this.textInitialPosition,t);e.setTolerance(this.overlayRender.getPixelSize(1,this.camera)),this.addMarkup(e,!1),this.endDraw(this.creatingShape)}},null==(i=this.viewer.viewerContainer)||i.appendChild(t),this.textInput=t}setTimeout((()=>{this.textInput.blur(),this.textInput.focus()}),0),this.textInput.style.width="50px",this.textInput.style.height=`${this.fontSize}px`,this.textInput.style.lineHeight=`${this.fontSize}px`,this.textInput.style.fontSize=`${this.fontSize}px`,this.textInput.style.color=this.lineColor,this.textInput.style.display="inline-block",this.textInput.style.left=e+4+"px",this.textInput.style.top=t-this.fontSize+"px"}undo(){this.undoRedoHelper.undo()}redo(){this.undoRedoHelper.redo()}clearUndoRedo(){this.undoRedoHelper.clear()}destroy(){this.deactivate(),this.clearAll()}},vDe=new A,P0=class extends Aa{constructor(e,t){super(e),this.lineSegments=[],this.boxes=t,this.lineColor="red",this.lineWidth=2,this.calculateCloudLineSegments(t)}calculateCloudLineSegments(e){var t;for(let i=0;it.visible=e)),this.viewer.enableRender()}},Yn=kn(ql(),1);function fE(e){return{all:e=e||new Map,on:function(t,i){var r=e.get(t);r?r.push(i):e.set(t,[i])},off:function(t,i){var r=e.get(t);r&&(i?r.splice(r.indexOf(i)>>>0,1):e.set(t,[]))},emit:function(t,i){var r=e.get(t);r&&r.slice().map((function(e){e(i)})),(r=e.get("*"))&&r.slice().map((function(e){e(t,i)}))}}}var UO=(e=>(e[e.ClickEvent=1]="ClickEvent",e[e.Popup=2]="Popup",e[e.SubMenu=3]="SubMenu",e[e.Switch=4]="Switch",e))(UO||{}),N_=(e=>(e.HomeView="HomeView",e.OrthoMode="OrthoMode",e.Measure="Measure",e.MeasureDistance="MeasureDistance",e.MeasureArea="MeasureArea",e.MeasureAngle="MeasureAngle",e.MeasureCoordinate="MeasureCoordinate",e.MeasureClear="MeasureClear",e.Markup="Markup",e.MarkupArrow="Arrow",e.MarkupRect="Rect",e.MarkupCloudRect="CloudRect",e.MarkupPolyLine="PolyLine",e.MarkupCloudLine="CloudLine",e.MarkupEllipse="Ellipse",e.MarkupCircle="Circle",e.MarkupDot="Dot",e.MarkupText="Text",e.MarkupX="X",e.MarkupStrokeStyle="StrokeStyle",e.MarkupLineWidth="LineWidth",e.MarkupLineWidth2="LineWidth2",e.MarkupLineWidth5="LineWidth5",e.MarkupLineWidth10="LineWidth10",e.MarkupFontSize="FontSize",e.MarkupFontSize14="FontSize14",e.MarkupFontSize18="FontSize18",e.MarkupFontSize24="FontSize24",e.MarkupClear="MarkupClear",e.MarkupQuit="MarkupQuit",e.Section="Section",e.SectionBox="SectionBox",e.SectionPlane="SectionPlane",e.SectionAxis="SectionAxis",e.BimTree="BimTree",e.Viewpoint="Viewpoint",e.Annotation="Annotation",e.Property="Property",e.Settings="Settings",e.Compared="Compared",e.QuitCompare="QuitCompare",e.Fullscreen="FullScreen",e.SceneClear="SceneClear",e.Layers="Layers",e.ZoomToRectangle="ZoomToRectangle",e.Screenshot="GetScreenshot",e))(N_||{}),TDe=[["HomeView","OrthoMode","FullScreen","ZoomToRectangle","GetScreenshot"],["Measure","Markup","Section"],["BimTree","Viewpoint","Annotation","Property","Compared","QuitCompare","Layers"],["Settings"]],Eh=class{constructor(e,t,i=[...TDe]){this.bimViewer=e,this.menuConfig=t,this.groupConfig=i,this.visible=!0,this.menuList=new Map,this.keydown=e=>{this.visible&&"Escape"===e.code&&this.clearActive()},this.init()}init(){var e;let t=document.createElement("div");t.classList.add("toolbar"),this.groupConfig.forEach(((e,i)=>{let r=document.createElement("div");r.classList.add("toolbar-group");let n=document.createElement("div");n.classList.add("toolbar-group-division"),e.forEach((e=>{let t=(0,Yn.get)(this.menuConfig,e);if(t&&!1!==t.visible){let i=this.createToolbarMenu(this.bimViewer,e,t);r.appendChild(i.element)}})),r.hasChildNodes()&&(i&&t.appendChild(n),t.appendChild(r))})),this.element=t,null==(e=this.bimViewer.widgetContainer)||e.appendChild(t),t.oncontextmenu=e=>{e.preventDefault()},window.addEventListener("keydown",this.keydown,!1)}clearActive(){if(this.activateMenuId){let e=this.menuList.get(this.activateMenuId);null==e||e.setActive(!1),this.activateMenuId=void 0}}createToolbarMenu(e,t,i,r){let n=new dG(e,this,t,i,r);if(this.menuList.set(t,n),i.children){let t=document.createElement("div");t.classList.add("toolbar-sub-menu");let r=document.createElement("div");r.classList.add("toolbar-sub-menu-list"),t.appendChild(r),(0,Yn.forIn)(i.children,((t,i)=>{if(t&&!1!==t.visible){let s=this.createToolbarMenu(e,i,t,n);r.appendChild(s.element)}})),n.element.appendChild(t)}return n}updateMenu(e,t){(0,Yn.assign)(this.menuConfig[e],t),this.refresh()}updateMenus(e){(0,Yn.forEach)(e,(({menuId:e,config:t})=>{(0,Yn.assign)(this.menuConfig[e],t)})),this.refresh()}addMenu(e,t,i){if((0,Yn.keys)(this.menuConfig).includes(e))ne.error("[Toolbar]",e,"exists.");else{if((0,Yn.assign)(this.menuConfig,{[e]:t}),i){let[t,r]=i;if(t>this.groupConfig.length-1)this.groupConfig=(0,Yn.concat)(this.groupConfig,[[e]]);else{let i=this.groupConfig[t];this.groupConfig[t]=r>i.length-1?(0,Yn.concat)(i,e):(0,Yn.concat)((0,Yn.take)(i,r),e,(0,Yn.takeRight)(i,i.length-r))}}else this.groupConfig=(0,Yn.concat)(this.groupConfig,[[e]]);this.refresh()}}refresh(){this.destroy(),this.init()}show(){this.element&&(this.element.style.display=""),this.visible=!0}hide(){this.element&&(this.element.style.display="none"),this.visible=!1}destroy(){this.element&&this.element.remove(),this.element=void 0,this.menuList.clear(),window.removeEventListener("keydown",this.keydown,!1)}},dG=class{constructor(e,t,i,r,n){this.bimViewer=e,this.toolbar=t,this.menuId=i,this.eventBus=fE(),this.active=r.defaultActive||!1,this.element=r.customElement&&r.customElement(e,this.menuId,r)||this.createButton(e,this.menuId,r),this.eventBus.on("activeChange",(t=>{t?(this.element.classList.add("active"),(0,Yn.forEach)(r.mutexIds,(e=>{var t;let i=null==(t=this.toolbar)?void 0:t.menuList.get(e);i&&i.active&&i.setActive(!1)})),r.onActive&&r.onActive(e)):(this.element.classList.remove("active"),r.onDeactive&&r.onDeactive(e)),this.element.firstChild instanceof HTMLElement&&LC(this.element.firstChild.classList,r.icon,this.active),n&&n.setActive(t)})),this.element.onclick=t=>{switch(t.stopPropagation(),r.type){case 1:r.onClick&&r.onClick(e,this.toolbar,t);break;case 4:r.onClick&&r.onClick(e,this.toolbar,t),this.active=!this.active,this.toolbar.activateMenuId=this.menuId,this.eventBus.emit("activeChange",this.active)}}}createButton(e,t,i){let r=document.createElement("div");r.id=t,r.classList.add("toolbar-menu"),i.defaultActive&&r.classList.add("active"),i.children&&r.classList.add("toolbar-parent-menu");let{default:n="icon-new",iconFont:s=uo}=i.icon;return r.innerHTML=`
`,r.title=Th(i.menuName),r.innerHTML+=`${r.title}`,r}setActive(e){this.active=e,this.eventBus.emit("activeChange",this.active)}},EDe={Arrow:{menuName:"Toolbar.markupArrow",icon:{default:"icon-arrow",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("ArrowMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},Rect:{defaultActive:!1,menuName:"Toolbar.markupRect",icon:{default:"icon-rectangle",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("RectMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Arrow","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},CloudRect:{defaultActive:!0,menuName:"Toolbar.markupCloudRect",icon:{default:"icon-cloud",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("CloudRectMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","Arrow","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},PolyLine:{menuName:"Toolbar.markupPolyLine",icon:{default:"icon-polyline",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("PolylineMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","Arrow","CloudRect","CloudLine","Ellipse","Circle","Dot","Text","X"]},CloudLine:{menuName:"Toolbar.markupCloudLine",icon:{default:"icon-cloud-segment",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("CloudLineMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","Arrow","Ellipse","Circle","Dot","Text","X"]},Ellipse:{menuName:"Toolbar.markupEllipse",icon:{default:"icon-oval",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("EllipseMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Arrow","Circle","Dot","Text","X"]},Circle:{menuName:"Toolbar.markupCircle",icon:{default:"icon-round",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("CircleMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Dot","Text","X"]},Dot:{menuName:"Toolbar.markupDot",icon:{default:"icon-round",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("DotMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Circle","Text","X"]},X:{menuName:"Toolbar.markupX",icon:{default:"icon-cross",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("XMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","Text"]},Text:{menuName:"Toolbar.markupText",icon:{default:"icon-text",iconFont:"iconfont"},type:4,onActive:e=>{e.activateMarkup("TextMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","X"]},StrokeStyle:{menuName:"Toolbar.markupStroke",icon:{default:"icon-color-red",iconFont:"iconfont"},type:1,onClick:(e,t,i)=>{let r=i.target.parentElement,n=null==r?void 0:r.firstElementChild,s=document.createElement("input");s.setAttribute("type","color"),s.style.position="absolute",s.style.left=`${i.x}px`,s.style.top=`${i.y}px`,s.value=e.getMarkupLineColor(),s.click(),s.oninput=t=>{let i=t.target.value;e.setMarkupLineColor(i),n.style.color=i}}},LineWidth:{menuName:"Toolbar.markupLineWidth",icon:{default:"icon-line",iconFont:"iconfont"},customElement(e,t,i){let r=document.createElement("div");return r.id=t,r.classList.add("toolbar-menu"),i.children&&r.classList.add("toolbar-parent-menu"),r.title=Th(i.menuName),r.innerHTML+=`${r.title}`,r},type:3,children:{LineWidth2:{defaultActive:!0,icon:{default:"icon-line-2",iconFont:"iconfont"},onClick:e=>{e.setMarkupLineWidth(2)},type:4,menuName:"Toolbar.markupLineWidth2",mutexIds:["LineWidth5","LineWidth10"]},LineWidth5:{icon:{default:"icon-line-3",iconFont:"iconfont"},onClick:e=>{e.setMarkupLineWidth(3)},type:4,menuName:"Toolbar.markupLineWidth5",mutexIds:["LineWidth2","LineWidth10"]},LineWidth10:{icon:{default:"icon-line-4",iconFont:"iconfont"},onClick:e=>{e.setMarkupLineWidth(4)},type:4,menuName:"Toolbar.markupLineWidth10",mutexIds:["LineWidth2","LineWidth5"]}}},FontSize:{menuName:"Toolbar.markupFontSize",icon:{default:"icon-font"},customElement(e,t,i){let r=document.createElement("div");return r.id=t,r.classList.add("toolbar-menu"),i.children&&r.classList.add("toolbar-parent-menu"),r.title=Th(i.menuName),r.innerHTML+=`${r.title}`,r},type:3,children:{FontSize14:{icon:{default:"icon-font14",iconFont:"iconfont"},onClick:e=>{e.setMarkupFontSize(14)},type:4,menuName:"",mutexIds:["FontSize18","FontSize24"]},FontSize18:{defaultActive:!0,icon:{default:"icon-font18",iconFont:"iconfont"},onClick:e=>{e.setMarkupFontSize(18)},type:4,menuName:"",mutexIds:["FontSize14","FontSize24"]},FontSize24:{icon:{default:"icon-font24",iconFont:"iconfont"},onClick:e=>{e.setMarkupFontSize(24)},type:4,menuName:"",mutexIds:["FontSize14","FontSize18"]}}},MarkupClear:{icon:{default:"icon-eraser",iconFont:"iconfont"},onClick:e=>{ne.info("[Toolbar]","Clear Markup",e),e.clearMarkups()},type:1,menuName:"Toolbar.clearMarkup"},MarkupQuit:{icon:{default:""},customElement(e,t,i){let r=document.createElement("div");return r.id=t,r.classList.add("toolbar-menu"),i.children&&r.classList.add("toolbar-parent-menu"),r.title=Th(i.menuName),r.innerHTML+=`${r.title}`,r},onClick:(e,t)=>{var i;e.deactivateMarkup(),t.destroy(),null==(i=e.toolbar)||i.show()},type:1,menuName:"Toolbar.quitMarkup"}},pNt=[["Arrow","Rect","CloudRect","PolyLine","Ellipse","Circle","Text","MarkupClear","MarkupQuit"]],BO=class extends Eh{constructor(e,t,i=[...pNt]){super(e,t,i)}},mE=class{constructor(e,t,i=document.body){this.container=i,this.isFollowing=!1,this.diffX=0,this.diffY=0,this.start=e=>{this.isFollowing=!0,this.diffX=e.clientX-this.element.offsetLeft,this.diffY=e.clientY-this.element.offsetTop},this.stop=()=>{this.isFollowing=!1},this.follow=e=>{if(!this.isFollowing)return;let t=e.clientX-this.diffX,i=e.clientY-this.diffY;this.element.style.left=t+"px",this.element.style.top=i+"px"},this.element=document.createElement("div"),this.element.id=e,this.element.classList.add("pop-panel");let r=document.createElement("div");r.classList.add("pop-panel-header"),r.append(t),this.element.appendChild(r),this.header=r;let n=document.createElement("div");n.classList.add("pop-panel-body"),this.element.appendChild(n),this.body=n,r.addEventListener(AB,this.start),r.addEventListener(CB,this.stop),document.body.addEventListener(Mf,this.follow),this.container.appendChild(this.element)}destroy(){document.body.removeEventListener(Mf,this.follow),this.element.removeEventListener(AB,this.start),this.element.removeEventListener(CB,this.stop),this.element.remove()}},Ha=new A(1,0,0),rm=new A(0,1,0),im=new A(0,0,1),bDe=new A(0,1,0),L_=new Be,fG=2,eu=class extends ur{constructor(e=Ha){super(),this.redMaterial=new or({color:16711680,depthTest:!1}),this.greenMaterial=new or({color:65280,depthTest:!1}),this.blueMaterial=new or({color:255,depthTest:!1}),this.highlightMaterial=new or({color:16776960,depthTest:!1}),this.pickableMaterial=new or({color:9807270,depthTest:!1}),this.initIgnoreClipMaterial(),this.initOrUpdateByAxis(e)}initIgnoreClipMaterial(){[this.redMaterial,this.greenMaterial,this.blueMaterial,this.highlightMaterial,this.pickableMaterial].forEach((e=>{e.onBeforeCompile=function(e,t){e.fragmentShader=e.fragmentShader.replace("#include ","").replace("#include ",""),e.vertexShader=e.vertexShader.replace("#include ","").replace("#include ","")}}))}setDirection(e){let t=new Hr;t.setFromUnitVectors(Ha,e),this.applyQuaternion(t)}initOrUpdateByAxis(e){this.clear(),[{actionType:"TranslateX",direction:Ha,material:this.redMaterial},{actionType:"TranslateY",direction:rm,material:this.greenMaterial},{actionType:"TranslateZ",direction:im,material:this.blueMaterial}].forEach((t=>{let{actionType:i,direction:r,material:n}=t,s=this.createTranslateGizmo(i,r,fG,0===r.angleTo(e)?n:this.pickableMaterial);this.add(s)})),[{actionType:"RotateX",direction:Ha,material:this.redMaterial,degree:90},{actionType:"RotateY",direction:rm,material:this.greenMaterial,degree:90},{actionType:"RotateZ",direction:im,material:this.blueMaterial,degree:90}].forEach((t=>{let{actionType:i,direction:r,material:n,degree:s}=t;if(0!==r.angleTo(e)){let e=this.createRotateGizmo(i,r,fG,n,s);this.add(e)}})),this.createSphere(1,this.pickableMaterial)}createTranslateGizmo(e,t,i,r){let n=t.angleTo(bDe),s=bDe.clone().cross(t);L_.makeRotationAxis(s,n);let a=new Rl(i/5,i/5,20*i),o=10*i;a.translate(0,o,0),a.applyMatrix4(L_);let l=new Rl(0,i,3*i),h=2*o;l.translate(0,h,0),l.applyMatrix4(L_);let u=zo([l,a]),c=new rt(u,r);return c.userData.actionType=e,r===this.pickableMaterial&&c.layers.set(11),c}createRotateGizmo(e,t,i,r,n){let s=new A(0,0,1),a=t.clone().cross(s),o=t.angleTo(s);L_.makeRotationAxis(a,o);let l=new Cp(12*i,i/5,8,36,_r.degToRad(n));l.applyMatrix4(L_);let h=new rt(l,r);return h.userData.actionType=e,h}createSphere(e,t){let i=new ro(e,32,16),r=new rt(i,t);r.layers.set(11),this.add(r)}setActiveAxis(e){this.initOrUpdateByAxis(e)}createHoverRotateObjectByAxis(e){let t=Ha;switch(e){case"RotateX":t=Ha;break;case"RotateY":t=rm;break;case"RotateZ":t=im}return this.createRotateGizmo("",t,fG,this.highlightMaterial,360)}setActive(e,t){var i;let r=t.userData.actionType;["RotateX","RotateY","RotateZ"].includes(r)?e?(this.hoverObject=this.createHoverRotateObjectByAxis(r),this.add(this.hoverObject),t.visible=!1):(null==(i=this.hoverObject)||i.removeFromParent(),t.visible=!0,this.hoverObject=void 0):e?(this.originalMaterial=t.material,t.material=this.highlightMaterial):this.originalMaterial&&(t.material=this.originalMaterial)}adjustSize(e){let t=new A;this.getWorldPosition(t);let i=e.position,r=1;e instanceof Ji?r=(e.top-e.bottom)/e.zoom:e instanceof Xr&&(r=t.distanceTo(i)*Math.min(1.9*Math.tan(Math.PI*e.fov/360)/e.zoom,7)),this.scale.set(1,1,1).multiplyScalar(r/180)}},nm=class{constructor(e,t){if(this.mouseDown=!1,this.lastWorldPos=new A,this.mouseMoved=!1,this.dragStarted=!1,this.refrencePlane=new bi,this.isShowSectionPlane=!1,this.mousedown=e=>{0===e.button&&this.camera&&this.selectedObject&&(this.mouseDown=!0)},this.mousemove=e=>{if(this.dragStarted)this.updateRaycasterByMouse(e),this.onDragMove(e);else{this.activateSelectedObject(!1);let t=this.getIntersections(e);t?(this.selectedObject=t.object,this.activateSelectedObject(!0),this.mouseDown&&(this.dragStarted||(this.dragStarted=!0,this.onDragStart(e)))):this.selectedObject=void 0}this.viewer.enableRender()},this.mouseup=e=>{0===e.button&&(this.mouseDown&&this.dragStarted&&(this.onDragEnd(e),this.dragStarted=!1),this.mouseDown=!1,this.selectedObject=void 0)},this.keydown=e=>{"Escape"===e.code&&this.deactivate()},!(e.camera&&e.renderer&&e.controls&&e.scene))throw new Error("Invalid bimViewer!");this.viewer=e,this.inputManager=t,this.scene=e.scene,this.renderer=e.renderer;let i=e.getBBox();if(!i)throw new Error("Need to set sectionBox first!");this.sectionBox=i.clone()}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get isActive(){return!!this.raycaster}get camera(){return this.viewer.camera}get controls(){return this.viewer.controls}setGlobalClippingEnable(e){this.clipPlanes&&(e?(this.renderer.localClippingEnabled=!0,this.renderer.clippingPlanes=this.clipPlanes):(this.renderer.localClippingEnabled=!1,this.renderer.clippingPlanes=[]))}activate(){this.inputManager.addEventListener("pointerdown",this.mousedown),this.inputManager.addEventListener("pointermove",this.mousemove),this.inputManager.addEventListener("pointerup",this.mouseup),this.inputManager.addEventListener("keydown",this.keydown),this.raycaster=this.viewer.getRaycaster()}deactivate(){var e;this.inputManager.removeEventListener("pointerdown",this.mousedown),this.inputManager.removeEventListener("pointermove",this.mousemove),this.inputManager.removeEventListener("pointerup",this.mouseup),this.inputManager.removeEventListener("keydown",this.keydown),this.setGlobalClippingEnable(!1),null==(e=this.selectedObject)||e.removeFromParent(),this.selectedObject=void 0,this.dragStarted=!1,this.raycaster=void 0}getIntersections(e){if(!this.raycaster)return;this.updateRaycasterByMouse(e);let t=this.raycaster.intersectObjects(this.getIntersectObjects())||[];return t.find((e=>e.object&&e.object.parent instanceof eu))||t[0]}updateRaycasterByMouse(e){if(!this.raycaster)return;let t=new le(e.x,e.y),i=Ci.screenPoint2NdcPoint(t,this.camera,this.canvas);this.raycaster&&this.raycaster.layers.disable(11),this.raycaster.setFromCamera(i,this.camera)}destroy(){this.deactivate()}},IDe=new Dt,_De=new Hr,kO=class extends rt{constructor(e,t){super(),this.vertices=[],this.actionType=e,this.geometry=new lt,this.vertices=t,this.geometry.setFromPoints(t),this.geometry.setIndex([0,1,2,0,2,3]),this.material=new or({depthTest:!1,color:kO.normalPlaneColor,transparent:!0,opacity:.1,side:gi}),this.createIgnoreClipMateriasl(this.material),this.geometry.computeVertexNormals(),this.edge=this.createEdge(t),this.add(this.edge)}createIgnoreClipMateriasl(e){e.onBeforeCompile=function(e,t){e.fragmentShader=e.fragmentShader.replace("#include ","").replace("#include ",""),e.vertexShader=e.vertexShader.replace("#include ","").replace("#include ","")}}createEdge(e){let t=new lt;t.setFromPoints(e),t.setIndex([0,1,1,2,2,3,3,0]);let i=new vr({color:kO.normalLineColor});this.createIgnoreClipMateriasl(i);let r=new Ir(t,i);return r.layers.set(11),r}update(e){this.geometry.setFromPoints(e),this.geometry.computeBoundingSphere(),this.geometry.computeVertexNormals(),this.edge.geometry.setFromPoints(e),this.vertices=e}rotatePlane(e,t){let i=this.getPlaneCenter();_De.setFromAxisAngle(e,t),this.vertices=this.vertices.map((e=>e.sub(i).applyQuaternion(_De).add(i))),this.update(this.vertices)}setDirection(e){let t=new Hr;t.setFromUnitVectors(Ha,e);let i=this.getPlaneCenter();this.vertices=this.vertices.map((e=>e.sub(i).applyQuaternion(t).add(i))),this.update(this.vertices)}getPlaneNormal(){let[e,t,i]=this.vertices,r=new A;return hn.getNormal(e,t,i,r),r}setActive(e){this.material.opacity=e?.2:.1}getPlaneCenter(){IDe.setFromPoints(this.vertices);let e=new A;return IDe.getCenter(e),e}},on=kO;on.normalPlaneColor=new je(0,.855,.718),on.activePlaneColor=new je(1,1,0),on.normalLineColor=16777215;var SDe=(e=>(e.X="X",e.Y="Y",e.Z="Z",e))(SDe||{}),GO=class extends nm{constructor(e,t){super(e,t),this.activeAxis="X",this.center=new A,this.sectionBox.getCenter(this.center),this.axisInfoMap={X:{normal:new A(1,0,0)},Y:{normal:new A(0,1,0)},Z:{normal:new A(0,0,1)}},this.viewer.addEventListener("RenderAfter",(()=>{var e;this.isActive&&(null==(e=this.gizmo)||e.adjustSize(this.camera))}))}activate(){super.activate(),this.setActiveAxis("X")}deactivate(){var e,t;super.deactivate(),null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.setGlobalClippingEnable(!1),this.planeMesh=void 0,this.gizmo=void 0}resetSection(){var e,t;null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.setGlobalClippingEnable(!1),this.planeMesh=void 0,this.gizmo=void 0,this.setActiveAxis("X")}setActiveAxis(e){this.activeAxis=e,this.initOrUpdateGizmo(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.setGlobalClippingEnable(!0),this.viewer.enableRender()}setSectionVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.isShowSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlane(){switch(this.activeAxis){case"X":this.clipPlane=new bi(new A(-1,0,0),this.center.x);break;case"Y":this.clipPlane=new bi(new A(0,-1,0),this.center.y);break;case"Z":this.clipPlane=new bi(new A(0,0,-1),this.center.z)}this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlane(){var e;let t=new A;this.sectionBox.getSize(t);let i=t.length(),r=this.center,n=(new Dt).setFromCenterAndSize(r,new A(i,i,i)),{min:s,max:a}=n;switch(null==(e=this.planeMesh)||e.removeFromParent(),this.activeAxis){case"X":this.planeMesh=new on("X",[new A(r.x,a.y,s.z),new A(r.x,a.y,a.z),new A(r.x,s.y,a.z),new A(r.x,s.y,s.z)]);break;case"Y":this.planeMesh=new on("Y",[new A(a.x,r.y,s.z),new A(s.x,r.y,s.z),new A(s.x,r.y,a.z),new A(a.x,r.y,a.z)]);break;case"Z":this.planeMesh=new on("Z",[new A(a.x,a.y,r.z),new A(s.x,a.y,r.z),new A(s.x,s.y,r.z),new A(a.x,s.y,r.z)])}this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var e,t;null==(e=this.gizmo)||e.removeFromParent();let i=this.axisInfoMap[this.activeAxis].normal;this.gizmo=new eu,this.gizmo.setDirection(i),this.sectionBox.getCenter(this.gizmo.position),null==(t=this.scene)||t.add(this.gizmo)}onDragStart(e){var t;if(this.selectedObject instanceof on)return;this.controls&&this.dragStarted&&this.selectedObject&&!(this.selectedObject instanceof on)&&(this.controls.enableRotate=!1),ne.info("[AxisPlaneSection] onDragStart:",e);let i=new A;this.sectionBox.getCenter(i),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),i),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var t,i,r;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||this.selectedObject&&this.selectedObject instanceof on)return;let n=new A;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,n);let s=this.selectedObject.userData.actionType,a=(new A).subVectors(this.lastWorldPos,this.center).normalize(),o=(new A).subVectors(n,this.center).normalize(),l=(new A).subVectors(n,this.lastWorldPos).projectOnVector(Ha.clone().applyQuaternion(this.gizmo.quaternion)),h=a.angleTo(o),u=(new A).crossVectors(a,o),c=new A;this.sectionBox.getSize(c);let p,d=Math.max(c.x,c.y,c.z);switch(s){case"TranslateX":case"TranslateY":case"TranslateZ":p=(new A).addVectors(this.gizmo.position,l),this.sectionBox.clone().setFromCenterAndSize(this.center,new A(d,d,d)).containsPoint(p)&&(null==(i=this.gizmo)||i.position.add(l),null==(r=this.planeMesh)||r.position.add(l));break;case"RotateX":{let e=Ha.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(h=-h),this.gizmo.rotateX(h),this.planeMesh.rotatePlane(e,h)}break;case"RotateY":{let e=rm.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(h=-h),this.gizmo.rotateY(h),this.planeMesh.rotatePlane(e,h)}break;case"RotateZ":{let e=im.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(h=-h),this.gizmo.rotateZ(h),this.planeMesh.rotatePlane(e,h)}}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=n}onDragEnd(e){this.selectedObject instanceof on||(this.controls&&!this.controls.enableRotate&&(this.controls.enableRotate=!0),this.activateSelectedObject(!1),this.dragStarted=!1,this.selectedObject=void 0,ne.info("[AxisPlaneSection] onDragEnd:",e))}getIntersectObjects(){return this.planeMesh&&this.gizmo?[this.planeMesh,this.gizmo]:[]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof on?this.selectedObject.setActive(e):this.selectedObject.parent instanceof eu&&this.selectedObject.parent.setActive(e,this.selectedObject))}},VO=class extends mE{constructor(e){super("axis-section-pop-panel","轴向剖切",e.widgetContainer),this.axis="x",this.isVisible=!0,this.keydown=e=>{"Escape"===e.code&&this.destroy()},this.section=e.getActiveSection(),this.createGroupSelectLayout(),this.addGroupSelectItems(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createGroupSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-group-select"),this.body.appendChild(e),this.groupSelectNode=e}addGroupSelectItems(){let e=(e,t,i=!1)=>{let r=document.createElement("div");return r.classList.add("pop-panel-item"),r.setAttribute("itemName",e),r.append(t),i&&r.classList.add("active"),this.groupSelectNode&&this.groupSelectNode.appendChild(r),r},t=(e,t)=>s=>{s.stopPropagation(),this.activeItem!==e&&(i.classList.remove("active"),r.classList.remove("active"),n.classList.remove("active"),this.activeItem=e,t.classList.add("active"),this.section.setActiveAxis(e))},i=e("X","X",!0);i.onclick=t("X",i);let r=e("Y","Y");r.onclick=t("Y",r);let n=e("Z","Z");n.onclick=t("Z",n)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(e,t)=>{let i=document.createElement("i");i.classList.add(uo),i.classList.add(t),e.innerHTML="",e.appendChild(i)},t=((t,i,r="")=>{let n=document.createElement("div");return n.classList.add("pop-panel-item"),i&&n.setAttribute("title",i),n.setAttribute("itemName",t),n.setAttribute("isActive","false"),e(n,r),n})("visible","隐藏剖切面","icon-hidesectionplane");t.onclick=()=>{this.isVisible=!this.isVisible,this.isVisible?(e(t,"icon-hidesectionplane"),t.setAttribute("title","隐藏剖切面")):(e(t,"icon-showsectionplane"),t.setAttribute("title","显示剖切面")),this.section.setSectionVisible(this.isVisible)}}},zO=class extends mE{constructor(e){super("pick-section-pop-panel","拾取面剖切",e.widgetContainer),this.isVisible=!0,this.enabled=!0,this.keydown=e=>{"Escape"===e.code&&this.destroy()},this.section=e.getActiveSection(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(e,t)=>{let i=document.createElement("i");i.classList.add(uo),i.classList.add(t),e.innerHTML="",e.appendChild(i)},t=(t,i,r="")=>{let n=document.createElement("div");return n.classList.add("pop-panel-item"),i&&n.setAttribute("title",i),n.setAttribute("itemName",t),n.setAttribute("isActive","false"),e(n,r),n},i=t("visible","隐藏剖切面","icon-hidesectionplane");i.onclick=()=>{this.enabled&&(this.isVisible=!this.isVisible,this.isVisible?(e(i,"icon-hidesectionplane"),i.setAttribute("title","隐藏剖切面")):(e(i,"icon-showsectionplane"),i.setAttribute("title","显示剖切面")),this.section.setSectionVisible(this.isVisible))},this.activeSelectNode&&this.activeSelectNode.appendChild(i),this.visibleNode=i;let r=t("reset","重置","icon-reset");r.onclick=t=>{t.stopPropagation(),this.enabled&&(this.isVisible=!0,e(i,"icon-hidesectionplane"),i.setAttribute("title","隐藏剖切面"),this.section.resetSection())},this.activeSelectNode&&this.activeSelectNode.appendChild(r),this.resetNode=r}enable(){this.enabled=!0,this.visibleNode&&this.visibleNode.classList.remove("disable")}disable(){this.enabled=!1,this.visibleNode&&this.visibleNode.classList.add("disable")}},Ql=(e=>(e.Distance="Distance",e.Area="Area",e.Angle="Angle",e.Coordinate="Coordinate",e))(Ql||{}),tu=class extends Ks{constructor(e,t,i,r,n){super(),this.mouseMoved=!1,this.mouseDowned=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.tempEdgeMaterial=new vr({color:16711680}),this.snapPoint=void 0,this.mousedown=e=>{this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y,this.mouseMoved=!1,this.mouseDowned=!0},this.mousemove=e=>{if(this.lastMoveEvent=e,this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(e.x-this.mouseDownPositionX)>5||Math.abs(e.y-this.mouseDownPositionY)>5)&&(this.mouseMoved=!0),this.mouseDowned)return;let t=this.getIntersections(e);if(!t.length)return;let i=Date.now();this.handleSnap(t),ne.debug(`[BaseMeasurement] this.handleSnap costs ${(Date.now()-i)/1e3}s`),this.onMouseMove(this.snapPoint),this.viewer.enableRender()},this.mouseup=e=>{0===e.button&&(this.mouseDowned=!1),this.mouseMoved||this.onMouseClick(e)},this.dblclick=()=>{ne.info("[Measure] Double clicked")},this.keydown=e=>{if("Enter"===e.code){let e={x:0,y:0,pageX:0,pageY:0,clientX:0,clientY:0,deltaX:0,deltaY:0,button:2,movementX:0,movementY:0,deltaMode:0,pointerId:0,timestamp:0,buttons:0,pointerType:"mouse",altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1};this.onMouseClick(e)}else"Escape"===e.code&&this.cancel()},this.getIntersections=e=>{if(!this.raycaster)return[];this.raycaster&&this.raycaster.layers.disable(10);let t=this.viewer.getRaycastableObjectsByMouse(e);ne.debug(`[BaseMeasurement] The count of raycastable object is ${t.length}`,t);let i=Date.now(),r=this.raycaster.intersectObjects(t,!0)||[];return ne.debug(`[BaseMeasurement] this.raycaster.intersectObjects costs ${(Date.now()-i)/1e3}s`),this.renderer.clippingPlanes.length>0&&(r=r.filter((e=>this.renderer.clippingPlanes.every((function(t){return t.distanceToPoint(e.point)>0}))))),r},this.type=e,this.viewer=t,this.inputManager=i,this.drawList=r,this.osnapHelper=n}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get camera(){return this.viewer.camera}get renderer(){return this.viewer.renderer}get isActive(){return!!this.raycaster}get isMeasuring(){return this.isActive&&!this.completed}activate(){this.inputManager.addEventListener("pointerdown",this.mousedown),this.inputManager.addEventListener("pointermove",this.mousemove),this.inputManager.addEventListener("pointerup",this.mouseup),this.inputManager.addEventListener("dblclick",this.dblclick),this.inputManager.addEventListener("keydown",this.keydown);let e=this.viewer.translate;if(e){this.tooltip=new mh("measure-tooltip",e("Tooltip.measure"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.canvas});let t=document.getElementById("measure-tooltip");t&&(t.style.pointerEvents="none")}this.setTooltipContent(),this.raycaster=this.viewer.getRaycaster()}deactivate(){var e,t;this.inputManager.removeEventListener("pointerdown",this.mousedown),this.inputManager.removeEventListener("pointermove",this.mousemove),this.inputManager.removeEventListener("pointerup",this.mouseup),this.inputManager.removeEventListener("dblclick",this.dblclick),this.inputManager.removeEventListener("keydown",this.keydown),null==(e=this.tooltip)||e.hide(),null==(t=this.tooltip)||t.destroy(),this.tooltip=void 0,this.raycaster=void 0,this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}removeDrawable(e){this.drawList.removeDrawable(e)}clearClickedDrawable(){this.clickedOnMeasurementDrawable&&(this.clickedOnMeasurementDrawable.selected=!1,this.clickedOnMeasurementDrawable=void 0)}onMouseClick(e){let t=Date.now();if(!(this.lastClickTime&&t-this.lastClickTime<500)&&(this.lastClickTime=t,this.clickedOnMeasurementDrawable=void 0,null==this.completed||!0===this.completed)){let t=this.getIntersections(e)[0];if(t){let e=this.drawList.getDrawableByPosition(t.point,this.raycaster);e&&(this.dispatchEvent("clickedonmeasurement",e),this.clickedOnMeasurementDrawable=e)}}}getIntersectsOutline(e){var t,i;let r=[];for(let i=0;ie instanceof nn?0:e instanceof li?2:e instanceof Ir?1:3;n.sort(((t,i)=>{let r=e(t.object),n=e(i.object);return r!==n?r-n:t.distance-i.distance}))}}n=this.getIntersectsOutline(n),ne.debug("[BaseMeasurement] filteredIntersections:",n),this.snapPoint=(null==(i=this.osnapHelper.handleSnap(r,n,this.viewer.is3d(),this.lastMouseDownPosition))?void 0:i.clone())||e[0].point.clone(),this.snapPoint||(this.viewer.is3d()?this.snapPoint=e[0].point:this.snapPoint=r)}};tu.MAX_DISTANCE=5e3;var ia=class extends Aa{constructor(e,t){super(e),this.type="Distance",this.labelBounds=new rs,this.drawing=!1,this.update(t)}setDrawingState(e){this.drawing=e}drawSelect(e,t){let i=this.getVertexs();this.drawPoints(e,t,i)}drawPoints(e,t,i){e.save(),e.fillStyle=ia.MAJOR_COLOR,e.strokeStyle=ia.MINOR_COLOR,e.lineWidth=ia.LINE_WIDTH,e.beginPath(),i.forEach((i=>{let r=this.transToScreenCoord(i,t);e.moveTo(r.x+ia.POINT_RADIUS,r.y),e.arc(r.x,r.y,ia.POINT_RADIUS,0,2*Math.PI)})),e.closePath(),e.fill(),e.stroke(),e.restore()}drawText(e,t){if(!this.label||!this.labelPositon)return;e.font=`${ia.LABEL_FONT_SIZE}px Arial`;let i=1.2*e.measureText(this.label).width,r=1.5*ia.LABEL_FONT_SIZE;this.labelBounds.setFromCenterAndSize(this.labelPositon,new le(i,r)),this.drawRoundRect(e,this.labelPositon.x-i/2,this.labelPositon.y-r/2,i,r,4),e.save(),e.fillStyle=ia.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}drawRoundRect(e,t,i,r,n,s){r<2*s&&(s=r/2),n<2*s&&(s=n/2),e.save(),e.fillStyle=ia.MAJOR_COLOR,e.strokeStyle=ia.MINOR_COLOR,e.lineWidth=ia.LINE_WIDTH,e.beginPath(),e.moveTo(t+s,i),e.arcTo(t+r,i,t+r,i+n,s),e.arcTo(t+r,i+n,t,i+n,s),e.arcTo(t,i+n,t,i,s),e.arcTo(t,i,t+r,i,s),e.closePath(),e.fill(),this.selected&&e.stroke(),e.restore()}getVertexs(){return this.points}update(e){let{min:t,max:i}=(new Dt).setFromPoints(e);return this.x=t.x,this.y=t.y,this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this.points=e,this}getBounds(){let e=this.getVertexs();return(new Dt).setFromPoints(e)}getData(){return{id:this.id,type:this.type,points:this.points.map((e=>[e.x,e.y,e.z]))}}setData(e){super.setData(e),this.setLineColor(ia.MAJOR_COLOR),this.setFillColor(ia.AREA_FILL_COLOR),this.setLineWidth(ia.LINE_WIDTH)}isPointInPath(e,t){let i=null==t?void 0:t.ray;if(!i)return!1;let r=3*this.tolerance,n=this.transToScreenCoord(e,t.camera);if(this.labelBounds.containsPoint(n))return!0;let s=new A,a=new A,o=this.points;for(let e=0;e{let n=this.transToScreenCoord(i,t);0===r?e.moveTo(n.x,n.y):e.lineTo(n.x,n.y)})),3===this.points.length){let[i,r,n]=this.points.map((e=>this.transToScreenCoord(e,t))),s=(new le).subVectors(i,r).normalize(),a=(new le).subVectors(n,r).normalize(),o=Math.min(i.distanceTo(r),n.distanceTo(r)),l=s.angle(),h=a.angle();e.moveTo(r.x,r.y),e.arc(r.x,r.y,o/5,l,h,s.cross(a)<0)}e.stroke(),e.restore(),this.drawing&&this.drawPoints(e,t,this.points.slice(0,this.points.length-1)),this.drawText(e,t)}drawText(e,t){if(this.points.length<3)return;let[i,r,n]=this.points,s=this.getAngleBisector(i,r,n),a=this.calculateAngle(i,r,n);this.label=`${Wu(a,2)} ${this.getUnitString()}`;let o=.3*Math.min(i.distanceTo(r),n.distanceTo(r));this.labelPositon=this.transToScreenCoord(r.clone().add(new A(s.x*o,s.y*o,s.z*o)),t),super.drawText(e,t)}getAngleBisector(e,t,i){let r=e,n=t,s=i,a=new A(r.x-n.x,r.y-n.y,r.z-n.z).normalize(),o=new A(s.x-n.x,s.y-n.y,s.z-n.z).normalize();return new A(a.x+o.x,a.y+o.y,a.z+o.z).normalize()}calculateAngle(e,t,i){let r=e,n=t,s=i,a=new A(r.x-n.x,r.y-n.y,r.z-n.z),o=new A(s.x-n.x,s.y-n.y,s.z-n.z);return 180*a.angleTo(o)/Math.PI}getClassType(){return"Angle"}};wr._registerDrawableClass(H_);var jO=class extends tu{constructor(e,t,i,r){super("Angle",e,t,i,r)}onMouseMove(e){this.createOrUpdateAngleMeasureDrawable(e)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.mouseDowned=!1,this.mouseMoved=!1,this.completed=void 0,this.snapPoint=void 0,void(this.lastMouseDownPosition=void 0);let i=this.getIntersections(e)[0];if(!i)return;let r=null!=(t=this.snapPoint)?t:null==i?void 0:i.point,n=this.drawingPoints;n.push(r),this.lastMouseDownPosition=r,1===n.length&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdateAngleMeasureDrawable(),n.length>=3&&this.complete()}complete(){var e;null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.currentMeasureDrawable=void 0,this.drawingPoints=void 0,this.lastMouseDownPosition=void 0}cancel(){let e=this.drawingPoints;if(e&&e.length>0){if(e.pop(),0===e.length&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}}else this.deactivate(),this.dispatchEvent("deactivate",this.type);this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let t=this.viewer.translate;if(!t)return;let i=t("Tooltip.measure");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}createOrUpdateAngleMeasureDrawable(e){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let t=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new H_(_t.guid(),this.drawingPoints),this.drawList.addDrawable(this.currentMeasureDrawable)),e&&t.push(e),this.currentMeasureDrawable.update(t),this.currentMeasureDrawable.setDrawingState(!0)}},U_=class extends Ni{constructor(e,t){super(e,t),this.type="Area",this.update(t)}draw(e,t){let i=this.points;e.save(),e.lineWidth=Ni.LINE_WIDTH,e.strokeStyle=Ni.MAJOR_COLOR,e.fillStyle=Ni.AREA_FILL_COLOR,e.beginPath(),i.forEach(((i,r)=>{let n=this.transToScreenCoord(i,t);0===r?e.moveTo(n.x,n.y):e.lineTo(n.x,n.y)})),e.closePath(),e.fill(),e.stroke(),e.restore(),this.drawing&&this.drawPoints(e,t,this.points.slice(0,this.points.length-1)),this.drawText(e,t)}drawText(e,t){let i=this.points,r=this.calculateArea(i);this.label=`${Wu(r,2)}`,this.labelPositon=this.transToScreenCoord(this.getBarycenter(i),t),super.drawText(e,t)}calculateArea(e){let t=0,i=Cf.getFaces(e);for(let r=0;r{i+=e.x,r+=e.y,n+=e.z})),new A(i/t,r/t,n/t)}isPointInPath(e,t){let i=null==t?void 0:t.ray;if(!i)return!1;let r=this.transToScreenCoord(e,t.camera);if(this.labelBounds.containsPoint(r))return!0;let n=Cf.getFaces(this.points);for(let t=0;t=3&&!Cf.arePointsCoplanar([...r,s])?ne.warn("[Measure] The position is not coplanar with other points"):(r.push(s),this.lastMouseDownPosition=s,1===r.length&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdateAreaMeasureDrawable())}complete(){var e;null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}cancel(){let e=this.drawingPoints;if(e&&e.length>0){if(e.pop(),0===e.length&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}}else this.deactivate(),this.dispatchEvent("deactivate",this.type);this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let i=t("Tooltip.areaMeasurement");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}}createOrUpdateAreaMeasureDrawable(e){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let t=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new U_(_t.guid(),this.drawingPoints),this.drawList.addDrawable(this.currentMeasureDrawable)),e&&t.push(e),this.currentMeasureDrawable.update(t),this.currentMeasureDrawable.setDrawingState(!0)}},B_=class extends Ni{constructor(e,t){super(e,t),this.type="Coordinate",this.update(t)}draw(e,t){this.drawText(e,t),e.save(),e.lineWidth=Ni.LINE_WIDTH,e.strokeStyle=Ni.MAJOR_COLOR,e.fillStyle=Ni.AREA_FILL_COLOR;let i=this.points;e.beginPath(),i.forEach((i=>{let r=this.transToScreenCoord(i,t);e.arc(r.x,r.y,Ni.POINT_RADIUS,0,2*Math.PI)})),e.fill(),e.stroke(),e.restore()}drawText(e,t){let i=this.points[0];sr.areNumbersEqual(i.x,0);let r=sr.areNumbersEqual(i.x,0)?0:i.x,n=sr.areNumbersEqual(i.y,0)?0:i.y,s=sr.areNumbersEqual(i.z,0)?0:i.z;this.label=`${Wu(r,2)}, ${Wu(n,2)}, ${Wu(s,2)}`,e.font=`${Ni.LABEL_FONT_SIZE}px Arial`;let a=1.2*e.measureText(this.label).width,o=1.5*Ni.LABEL_FONT_SIZE;this.labelPositon=this.transToScreenCoord(i,t),this.labelPositon.y-=o/2,this.labelBounds.setFromCenterAndSize(this.labelPositon,new le(a,o)),this.drawRoundRect(e,this.labelPositon.x-a/2,this.labelPositon.y-o/2,a,o,4),e.save(),e.fillStyle=Ni.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}getClassType(){return"Coordinate"}};wr._registerDrawableClass(B_);var qO=class extends tu{constructor(e,t,i,r){super("Coordinate",e,t,i,r)}onMouseMove(e){this.createOrUpdatePointMarker(e)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.mouseDowned=!1,this.mouseMoved=!1,this.completed=void 0,this.snapPoint=void 0,void(this.lastMouseDownPosition=void 0);let i=this.getIntersections(e)[0];if(!i)return;let r=null!=(t=this.snapPoint)?t:null==i?void 0:i.point,n=this.drawingPoints;n.push(r),this.lastMouseDownPosition=r,1===n.length&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdatePointMarker(r),n.length>=1&&this.complete()}complete(){this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}cancel(){let e=this.drawingPoints;if(e&&e.length>0){if(e.pop(),0===e.length&&(this.completed=!0),this.lastMoveEvent){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}}else this.deactivate(),this.dispatchEvent("deactivate",this.type);this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let i=t("Tooltip.measure");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}}createOrUpdatePointMarker(e){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let t=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new B_(_t.guid(),this.drawingPoints),this.currentMeasureDrawable.selected=!0,this.drawList.addDrawable(this.currentMeasureDrawable)),e&&t.push(e),this.currentMeasureDrawable.update(t)}},mG=class extends Ni{constructor(e,t){super(e,t),this.type="Distance",this.update(t)}draw(e,t){let i=this.points;e.save(),e.lineWidth=Ni.LINE_WIDTH,e.strokeStyle=Ni.MAJOR_COLOR,e.beginPath(),i.forEach(((i,r)=>{let n=this.transToScreenCoord(i,t);0===r?e.moveTo(n.x,n.y):e.lineTo(n.x,n.y)})),e.closePath(),e.stroke(),e.restore(),this.drawing?this.drawPoints(e,t,this.points.slice(0,this.points.length-1)):this.selected||this.drawVerticalLine(e,t),this.drawText(e,t)}drawText(e,t){if(this.points.length<2)return;let[i,r]=this.points,n=i.distanceTo(r);this.label=`${Wu(n,2)}`,this.labelPositon=this.transToScreenCoord(i.clone().add(r).divideScalar(2),t),super.drawText(e,t)}drawVerticalLine(e,t){if(this.points.length<2)return;let[i,r]=this.points.map((e=>this.transToScreenCoord(e,t))),[n,s]=this.getShortLineBySegments(i,r),[a,o]=this.getShortLineBySegments(r,i);e.save(),e.lineWidth=Ni.LINE_WIDTH,e.strokeStyle=Ni.MAJOR_COLOR,e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(s.x,s.y),e.moveTo(a.x,a.y),e.lineTo(o.x,o.y),e.stroke(),e.restore()}getShortLineBySegments(e,t){let i=(new le).subVectors(t,e).normalize(),r=mG.SHORT_LINE_LENGTH/2,n=Math.PI/2;return[i.clone().rotateAround(new le,n).normalize().multiplyScalar(r).add(e),i.clone().rotateAround(new le,-n).normalize().multiplyScalar(r).add(e)]}getClassType(){return"Distance"}},gE=mG;gE.SHORT_LINE_LENGTH=12,wr._registerDrawableClass(gE);var na,YO=class extends tu{constructor(e,t,i,r){super("Distance",e,t,i,r)}onMouseMove(e){this.createOrUpdateDistanceMeasureDrawable(e)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.mouseDowned=!1,this.mouseMoved=!1,this.completed=void 0,this.snapPoint=void 0,void(this.lastMouseDownPosition=void 0);let i=this.getIntersections(e)[0];if(!i)return;let r=null!=(t=this.snapPoint)?t:null==i?void 0:i.point,n=this.drawingPoints;n.length<2&&n.push(r),this.lastMouseDownPosition=r,1===n.length&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdateDistanceMeasureDrawable(),n.length>=2&&this.complete()}complete(){var e;null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}cancel(){let e=this.drawingPoints;e&&e.length>0?(e.pop(),0===e.length&&(this.completed=!0),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)):(this.deactivate(),this.dispatchEvent("deactivate",this.type)),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let i=t("Tooltip.measure");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}}createOrUpdateDistanceMeasureDrawable(e){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let t=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new gE(_t.guid(),this.drawingPoints),this.drawList.addDrawable(this.currentMeasureDrawable)),e&&t.push(e),this.currentMeasureDrawable.update(t),this.currentMeasureDrawable.setDrawingState(!0)}},XO=class extends cE{constructor(e,t=30){super(t),this.manager=e}undo(){let e=super.undo();switch(null==e?void 0:e.type){case"ADD":{let t=e.payload.id;t&&this.manager.removeMeasurementById(t,!1)}break;case"REMOVE":{let t=e.payload,i=this.manager.createMeasurement(t);this.manager.addMeasurement(i,!1)}}return e}redo(){let e=super.redo();switch(null==e?void 0:e.type){case"ADD":{let t=e.payload,i=this.manager.createMeasurement(t);this.manager.addMeasurement(i,!1)}break;case"REMOVE":{let t=e.payload.id;t&&this.manager.removeMeasurementById(t,!1)}}return e}},ru=class{constructor(e,t){var i;this.selectedMeasurementDrawable=void 0,this.drawableList=new Xu("measure"),this.measurements={},this.activeMeasurementType=void 0,this.undoRedoHelper=new XO(this),this.keydown=e=>{let t,i=this.getActiveMeasurementType();i&&(t=this.measurements[i]);let r=this.selectedMeasurementDrawable;r&&"Delete"===e.code&&(this.removeMeasurement(r),this.activeMeasurementType&&this.measurements[this.activeMeasurementType].clearClickedDrawable()),e.ctrlKey&&"KeyZ"===e.code&&(null!=t&&t.isMeasuring?t.cancel():this.undo()),e.ctrlKey&&"KeyY"===e.code&&(null!=t&&t.isMeasuring||this.redo()),this.viewer.enableRender()},this.viewer=e,this.inputManager=t,this.overlayRender=this.viewer.overlayRender,null==(i=this.overlayRender)||i.addDrawableList(this.drawableList),this.scene=new Pn,this.osnapHelper=new DO(this.overlayRender),this.measurements.Distance=new YO(this.viewer,t,this.drawableList,this.osnapHelper),this.measurements.Area=new WO(this.viewer,t,this.drawableList,this.osnapHelper),this.measurements.Angle=new jO(this.viewer,t,this.drawableList,this.osnapHelper),this.measurements.Coordinate=new qO(this.viewer,t,this.drawableList,this.osnapHelper),this.inputManager.addEventListener("wheel",(()=>{this.updateSnapTolerance()})),this.initEvents()}initEvents(){Object.values(this.measurements).forEach((e=>{e.addEventListener("complete",(e=>{this.undoRedoHelper.addRecord("ADD",e.getData()),this.selectMeasurement(e)})),e.addEventListener("deactivate",(()=>{this.osnapHelper.deactivate(),this.viewer.deactivateMeasurement()})),e.addEventListener("firstpointpicked",(()=>{this.unselectMeasurement()})),e.addEventListener("clickedonmeasurement",(e=>{this.selectMeasurement(e)}))}))}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get raycaster(){return this.viewer.getRaycaster()}getPixelSizeInWorldCoord(){let e=this.viewer.camera,{width:t,height:i}=this.canvas,r=0;if("OrthographicCamera"===e.type){let n=e;r=Math.max(n.right-n.left,n.top-n.bottom)/n.zoom/Math.max(t,i)}else if("PerspectiveCamera"===e.type){let t=e,n=this.viewer.cameraCfg,s=n&&_t.arrayToVector3(n.eye),a=n&&_t.arrayToVector3(n.look);r=s.distanceTo(a)*Math.tan(t.fov/2*Math.PI/180)*2/i}return r}addMeasurement(e,t=!0){this.drawableList.addDrawable(e),this.selectedMeasurementDrawable=e,t&&this.undoRedoHelper.addRecord("ADD",e.getData()),this.viewer.enableRender()}createMeasurement(e){return wr.createDrawable(e)}removeMeasurement(e,t=!0){this.drawableList.removeDrawable(e),this.selectedMeasurementDrawable=void 0,t&&this.undoRedoHelper.addRecord("REMOVE",e.getData()),this.viewer.enableRender()}updateSnapTolerance(e=3){let t=this.getPixelSizeInWorldCoord()*e;this.osnapHelper.updateSnapTolerance(t)}activateMeasurement(e){this.activeMeasurementType&&this.deactivateMeasurement(),this.measurements[e]?(this.measurements[e].activate(),this.activeMeasurementType=e,this.updateSnapTolerance()):(this.activeMeasurementType=void 0,ne.error("[Measure] Failed to activate measurement, type:",e)),this.inputManager.addEventListener("keydown",this.keydown)}deactivateMeasurement(){this.unselectMeasurement();let e=this.activeMeasurementType;e&&this.measurements[e].deactivate(),this.activeMeasurementType=void 0,this.inputManager.removeEventListener("keydown",this.keydown)}getActiveMeasurementType(){return this.activeMeasurementType}isMeasurementActive(){let e=this.activeMeasurementType;return e?this.measurements[e].isActive:!!this.getActiveMeasurementType()}getMeasurementsData(){return this.drawableList.getDrawableDatas()}setMeasurementsData(e){this.drawableList.clear(),e.forEach((e=>{this.measurements[e.type]?e.points.length>=2?this.addMeasurement(wr.createDrawable(e),!1):ne.info("[Measure] Invalid points found in MeasurementData:",e):ne.warn("[Measure] Failed to add measurement data for",e)}))}setMeasurementVisibility(e,t){let i=this.drawableList.getDrawables().get(e);return!!i&&(i.visible=t,this.viewer.enableRender(),!0)}setMeasurementsVisibility(e){this.drawableList.getDrawables().forEach((t=>t.visible=e)),this.viewer.enableRender()}clearMeasurements(){this.drawableList.clear(),this.viewer.enableRender()}removeMeasurementById(e,t=!0){let i=this.drawableList.getDrawableById(e);i&&(this.removeMeasurement(i,t),ne.warn("[Measure] Failed to find measurement by id:",e))}selectMeasurementById(e){this.unselectMeasurement();let t=this.drawableList.getDrawableById(e);t&&(t.selected=!0,this.selectedMeasurementDrawable=t),this.viewer.enableRender()}selectMeasurement(e){this.unselectMeasurement(),e.selected=!0,this.selectedMeasurementDrawable=e,this.viewer.enableRender()}unselectMeasurement(){this.selectedMeasurementDrawable&&(this.selectedMeasurementDrawable.selected=!1),this.selectedMeasurementDrawable=void 0,this.viewer.enableRender()}undo(){this.undoRedoHelper.undo()}redo(){this.undoRedoHelper.redo()}clearUndoRedo(){this.undoRedoHelper.clear()}destroy(){var e;this.deactivateMeasurement(),this.clearMeasurements(),this.measurements={},null==(e=this.osnapHelper)||e.destroy(),this.scene.clear(),this.undoRedoHelper.destroy()}},wDe={HomeView:{icon:{default:"icon-home",active:"icon-home-filled"},menuName:"Toolbar.homeView",type:1,onClick:e=>{e.goToHomeView()}},OrthoMode:{icon:{default:"icon-orthomode",active:"icon-orthomode-filled"},menuName:"Toolbar.orthoView",type:4,onActive:e=>{ne.info("[Toolbar]","Enter OrthoMode"),e.setToOrthographicCamera(!0)},onDeactive:e=>{ne.info("[Toolbar]","Exit OrthoMode"),e.setToOrthographicCamera(!1)}},Measure:{icon:{default:"icon-measure",active:"icon-measure-filled"},menuName:"Toolbar.measurement",type:3,children:{MeasureDistance:{icon:{default:"icon-distancemeasure",active:"icon-distancemeasure-filled"},menuName:"Toolbar.distanceMeasurement",onActive:e=>{e.deactivateSection(),e.activateMeasurement("Distance")},onDeactive:e=>{e.deactivateMeasurement()},type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate"]},MeasureArea:{icon:{default:"icon-areameasure",active:"icon-areameasure-filled"},onActive:e=>{e.deactivateSection(),e.activateMeasurement("Area")},onDeactive:e=>{e.deactivateMeasurement()},type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate"]},MeasureAngle:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-anglemeasure"},type:4,onActive:e=>{e.deactivateSection(),e.activateMeasurement("Angle")},onDeactive:e=>{e.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate"]},MeasureCoordinate:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure"},type:4,onActive:e=>{e.deactivateSection(),e.activateMeasurement("Coordinate")},onDeactive:e=>{e.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureAngle"]},MeasureClear:{icon:{default:"icon-clear",active:"icon-clear-filled"},onClick:e=>{ne.debug("[Toolbar]","Clearing Measure",e),e.clearMeasurements()},type:1,menuName:"Toolbar.clearMeasurement"}},mutexIds:["Section","SectionAxis","SectionBox","SectionPlane"]},Section:{icon:{default:"icon-section",active:"icon-section-filled"},menuName:"Toolbar.section",type:3,children:{SectionAxis:{icon:{default:"icon-sectionplane",active:"icon-sectionplane-filled"},menuName:"Toolbar.axisSection",type:4,onActive:e=>{e.deactivateMeasurement(),e.getMeasurements().forEach((t=>e.setMeasurementVisibility(t.id,!1))),null==na||na.destroy(),e.activateSection("AxisPlaneSection"),na=new VO(e)},onDeactive:e=>{e.getMeasurements().forEach((t=>e.setMeasurementVisibility(t.id,!0))),e.deactivateSection(),null==na||na.destroy(),na=void 0},mutexIds:["SectionBox","SectionPlane"]},SectionPlane:{icon:{default:"icon-choosesectionplane",active:"icon-choosesectionplane-filled"},menuName:"Toolbar.pickSectionPlane",type:4,onActive:e=>{e.deactivateMeasurement(),e.getMeasurements().forEach((t=>e.setMeasurementVisibility(t.id,!1))),null==na||na.destroy(),e.activateSection("PickPlaneSection"),na=new zO(e)},onDeactive:e=>{e.getMeasurements().forEach((t=>e.setMeasurementVisibility(t.id,!0))),e.deactivateSection(),null==na||na.destroy(),na=void 0},mutexIds:["SectionAxis","SectionBox"]},SectionBox:{icon:{default:"icon-sectionbox",active:"icon-sectionbox-filled"},menuName:"Toolbar.sectionBox",type:4,onActive:e=>{e.deactivateMeasurement(),e.getMeasurements().forEach((t=>e.setMeasurementVisibility(t.id,!1))),e.activateSection()},onDeactive:e=>{e.getMeasurements().forEach((t=>e.setMeasurementVisibility(t.id,!0))),e.deactivateSection()},mutexIds:["SectionAxis","SectionPlane"]}},mutexIds:["Measure","MeasureDistance","MeasureArea","MeasureAngle","MeasureCoordinate"]},BimTree:{icon:{default:"icon-bimtree",active:"icon-bimtree-filled"},menuName:"Toolbar.bimTree",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Bim Tree")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Bim Tree")}},Viewpoint:{icon:{default:"icon-viewpoint",active:"icon-viewpoint-filled"},menuName:"Toolbar.viewpoint",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Viewpoint")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Viewpoint")},visible:!1},Annotation:{icon:{default:"icon-annotation",active:"icon-annotation-filled"},menuName:"Toolbar.annotation",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Annotation")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Annotation")},visible:!1},Property:{icon:{default:"icon-property",active:"icon-property-filled"},menuName:"Toolbar.property",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Property")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Property")},visible:!1},Settings:{icon:{default:"icon-settings",active:"icon-settings-filled"},menuName:"Toolbar.settings",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Settings")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Settings")},visible:!1},FullScreen:{icon:{default:"icon-fullscreen",active:"icon-fullscreen-filled"},menuName:"Toolbar.fullscreen",type:4,onClick:(e,t)=>{let i=()=>{let e=null==t?void 0:t.menuList.get("FullScreen");e&&e.setActive(_t.isFullScreen())};_t.isFullScreen()?(_t.exitFullscreen(),window.removeEventListener("resize",i)):_t.fullScreen(e.viewerContainer),window.addEventListener("resize",i)}}},RDe={SceneClear:{icon:{default:"icon-clear",active:"icon-clear-filled"},menuName:"clear",type:1,onClick:()=>{}}},MDe={HomeView:{icon:{default:"icon-zhushitu",active:"icon-zhushitu",iconFont:"iconfont"},menuName:"Toolbar.homeView",type:1,onClick:e=>{e.goToHomeView()}},ZoomToRectangle:{icon:{default:"icon-kuangxuanfangda",active:"icon-kuangxuanfangda",iconFont:"iconfont"},menuName:"Toolbar.zoomToRectangle",type:1,onClick:e=>{e.zoomToRect()}},GetScreenshot:{icon:{default:"icon-frame-clipping",active:"icon-frame-clipping",iconFont:"iconfont"},menuName:"Toolbar.screenshot",type:1,onClick:e=>{e.getScreenshot().then((e=>{ne.info("[Toolbar] getScreenshot() returns:",e),e||ne.error("[Toolbar] Failed to get screenshot!");let t=document.createElement("a");t.href=e,t.download="",t.click()})).catch((e=>{ne.error("[Toolbar] Failed to get screenshot, reason:",e)}))}},Measure:{icon:{default:"icon-celiang1",active:"icon-celiang1",iconFont:"iconfont"},menuName:"Toolbar.measurement",type:3,children:{MeasureDistance:{icon:{default:"icon-distancemeasure",active:"icon-distancemeasure-filled"},menuName:"Toolbar.distanceMeasurement",onActive:e=>{e.activateMeasurement("Distance")},onDeactive:e=>{e.deactivateMeasurement()},type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate"]},MeasureArea:{icon:{default:"icon-areameasure",active:"icon-areameasure-filled"},onActive:e=>{e.activateMeasurement("Area")},onDeactive:e=>{e.deactivateMeasurement()},type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate"]},MeasureAngle:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-anglemeasure"},type:4,onActive:e=>{e.activateMeasurement("Angle")},onDeactive:e=>{e.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate"]},MeasureCoordinate:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure"},type:4,onActive:e=>{e.activateMeasurement("Coordinate")},onDeactive:e=>{e.deactivateMeasurement()},visible:!1,mutexIds:["MeasureDistance","MeasureArea","MeasureAngle"]},MeasureClear:{icon:{default:"icon-clear",active:"icon-clear-filled"},onClick:e=>{ne.debug("[Toolbar]","Clearing Measure",e),e.clearMeasurements()},type:1,menuName:"Toolbar.clearMeasurement"}}},Markup:{icon:{default:"icon-tianjiapizhu",iconFont:"iconfont"},menuName:"Toolbar.markup",type:1,onClick:(e,t)=>{e.activateMarkup("CloudRectMarkup"),t.hide(),e.deactivateMeasurement(),new BO(e,Br({},EDe))}},Settings:{icon:{default:"icon-settings",active:"icon-settings-filled"},menuName:"Toolbar.settings",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Settings")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Settings")},visible:!0},Compared:{icon:{default:"icon-compared",iconFont:"iconfont"},menuName:"Toolbar.compared",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Compare")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Compare")},visible:!1},QuitCompare:{icon:{default:"icon-compared",iconFont:"iconfont"},menuName:"Toolbar.quitCompare",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Compare")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Compare")},visible:!1},Layers:{icon:{default:"icon-tucengkongzhi",active:"icon-tucengkongzhi",iconFont:"iconfont"},menuName:"Toolbar.layers",type:4,onClick:()=>{}},FullScreen:{icon:{default:"icon-quanping",active:"icon-quanping",iconFont:"iconfont"},menuName:"Toolbar.fullscreen",type:4,onClick:(e,t)=>{let i=()=>{let e=null==t?void 0:t.menuList.get("FullScreen");e&&e.setActive(_t.isFullScreen())};_t.isFullScreen()?(_t.exitFullscreen(),window.removeEventListener("resize",i)):_t.fullScreen(e.viewerContainer),window.addEventListener("resize",i)}}},DDe={enableNavCube:!0,enableAxisGizmo:!0,enableToolbar:!0,enableBottomBar:!0,enableContextMenu:!0,enableSpinner:!0,containerId:"myCanvas",units:"meters"},eAr={enableNavCube:!1,enableAxisGizmo:!1,enableToolbar:!1,enableBottomBar:!1,enableContextMenu:!1,containerId:"myCanvas"},k_=class{constructor(e="uploadModelFile"){this.input=document.createElement("input"),this.input.id=e,this.input.type="file",this.input.multiple=!0,this.input.accept=this.formats().map((e=>"."+e)).join(","),this.input.style.display="none",this.input.onchange=e=>{let t=e.target.files;!t||t.length<=0?ne.error("[Uploader] No files to be uploaded!"):this.uploadFiles(t)}}formats(){return ne.warn("[Uploader]: Should call derived class instead!"),[]}uploadFiles(e){ne.warn(`[Uploader]: Should call derived class instead! files: ${e}`)}openFileBrowserToUpload(){this.input.click()}},$O=class extends k_{constructor(e,t){super(t),this.defaultModelConfig={src:"",position:[0,0,0],rotation:[0,0,0],scale:[1,1,1],instantiate:!1,merge:!1},this.viewer=e}formats(){return["gltf","glb","dxf","obj","stl","fbx","ifc","dae","*"]}uploadFiles(e){let t=e.length;if(0===t)return;let i,r,n,s=Br({},this.defaultModelConfig),a=new Map;for(let i=0;i{n&&(i=URL.createObjectURL(n),o.push(i),s.src=n.name)};if(n){l();let e=Bs.extractUrlBase(i);r=new Lp,r.setURLModifier((t=>{let i=decodeURI(t).replace(e,"").replace(/^(\.?\/)/,"");if(a.has(i)){let e=a.get(i),t=URL.createObjectURL(e);return o.push(t),t}return t}))}else n=e[0],l();this.viewer.loadLocalModel(i,s,r,(e=>{let t=Math.floor(100*e.loaded/e.total);ne.info(`[Uploader] Loading ${null==n?void 0:n.name}, ${t}%`)})).then((()=>{ne.info(`[Uploader] Loaded ${null==n?void 0:n.name}`),o.forEach(URL.revokeObjectURL)}))}},CDe=class extends k_{constructor(e,t){super(t),this.defaultModelConfig={src:"",position:[0,0,0],rotation:[0,0,0],scale:[1,1,1],instantiate:!1,merge:!0},this.viewer=e}formats(){return["dxf"]}uploadFiles(e){let t=e=>{let t=(100*e.loaded/e.total).toFixed(1);ne.info(`[Uploader] Progress: ${t}%`)};if(2===e.length){let i=e[0],r=e[1],n=URL.createObjectURL(i),s=URL.createObjectURL(r);this.viewer.compare({src:n,modelId:i.name},{src:s,modelId:r.name},t).then((()=>{this.onSuccess&&this.onSuccess({compare:!0}),ne.debug(`[Uploader] Compared models: ${n}, ${s}`)})).catch((e=>{ne.error(`[Uploader] Failed to compare models: ${n}, ${s}. reason: ${e}`)}))}else{let i=e[0],r=URL.createObjectURL(i),n=Br({},this.defaultModelConfig);n.src=r,n.modelId=i.name;try{this.viewer.loadModelAsync(n,t).then((()=>{this.onSuccess&&this.onSuccess({}),ne.info(`[Uploader] Loaded model '${n.src}'`)}))}catch(e){ne.info(e)}}}},ADe=class extends k_{constructor(e,t){super(t),this.viewer=e}formats(){return["png","jpg","jpeg"]}uploadFiles(e){let t={panoramas:[],id:"viewpoint_1",name:"",position:[0,1,0],initialDirection:[0,0,1]};if(1===e.length){let i=[];i.push(URL.createObjectURL(e[0])),t.panoramas.push({id:"panorama_1",images:i}),this.viewer.setViewpoints([t]),this.viewer.activatePanoramaById(t.id,t.panoramas[0].id)}else if(6===e.length){let i=t=>{let i="";for(let r=0;r({position:new A(e,t,i),rotation:new xr(r,n,s)}),mNt={Front:Dn(Br({},Ps([0,0,1],[0,0,0])),{label:"NavCube.front"}),Right:Dn(Br({},Ps([1,0,0],[0,$i,0])),{label:"NavCube.right"}),Back:Dn(Br({},Ps([0,0,-1],[0,Math.PI,0])),{label:"NavCube.back"}),Left:Dn(Br({},Ps([-1,0,0],[0,-$i,0])),{label:"NavCube.left"}),Top:Dn(Br({},Ps([0,1,0],[-$i,0,0])),{label:"NavCube.top"}),Bottom:Dn(Br({},Ps([0,-1,0],[$i,0,0])),{label:"NavCube.bottom"})},gNt=[Ps([0,1,1],[-vi,0,-$i]),Ps([0,1,-1],[-3*vi,0,-$i]),Ps([0,-1,1],[vi,0,-$i]),Ps([0,-1,-1],[3*vi,0,-$i]),Ps([1,1,0],[-$i,vi,0]),Ps([1,-1,0],[-$i,3*vi,0]),Ps([-1,1,0],[-$i,-vi,0]),Ps([-1,-1,0],[-$i,-3*vi,0]),Ps([1,0,1],[0,vi,0]),Ps([1,0,-1],[0,3*vi,0]),Ps([-1,0,1],[0,-vi,0]),Ps([-1,0,-1],[0,-3*vi,0])],vNt=[{position:new A(1,1,1),rotation:[new xr(-$i,$i,-vi),new xr(-$i,0,vi),new xr(0,0,3*vi)]},{position:new A(1,1,-1),rotation:[new xr(0,$i,3*vi),new xr(-$i,0,3*vi),new xr(0,Math.PI,-3*vi)]},{position:new A(-1,1,-1),rotation:[new xr(Math.PI,-$i,vi),new xr(-$i,0,-3*vi),new xr(0,Math.PI,3*vi)]},{position:new A(-1,1,1),rotation:[new xr(0,-$i,3*vi),new xr(-$i,0,-vi),new xr(0,0,-3*vi)]},{position:new A(1,-1,1),rotation:[new xr(0,$i,-vi),new xr(-$i,Math.PI,-vi),new xr(0,0,vi)]},{position:new A(1,-1,-1),rotation:[new xr(-$i,$i,3*vi),new xr($i,0,vi),new xr(0,Math.PI,-vi)]},{position:new A(-1,-1,1),rotation:[new xr(0,-$i,vi),new xr($i,0,-3*vi),new xr(0,0,-vi)]},{position:new A(-1,-1,-1),rotation:[new xr(0,-$i,-vi),new xr($i,0,-vi),new xr(0,Math.PI,vi)]}],ZO=class extends cr{constructor(e={}){super(),this.NAVCUBE_SIZE=100,this.clickHandler=e.onClick,(0,L0.forEach)(mNt,(e=>{this.createPlane(e)})),(0,L0.forEach)(gNt,(e=>{this.createEdge(e)})),(0,L0.forEach)(vNt,((e,t)=>{this.createCorner(e,t)}))}createPlane(e){let t=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),{rotation:i,label:r}=e,n=document.createElement("div");n.style.width=this.NAVCUBE_SIZE+"px",n.style.height=this.NAVCUBE_SIZE+"px",n.classList.add("navcube-plane"),n.classList.add("outer");let s=document.createElement("div");s.style.width=this.NAVCUBE_SIZE-4+"px",s.style.height=this.NAVCUBE_SIZE-4+"px",s.innerHTML=Th(r),s.classList.add("navcube-plane"),s.classList.add("inner"),n.appendChild(s);let a=new N0(n);a.position.copy(t),a.rotation.copy(i),this.add(a),n.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(t.clone().normalize(),i)}))}createEdge(e){let t=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),i=document.createElement("div");i.style.width="4px",i.style.height=this.NAVCUBE_SIZE-40+"px",i.style.background=NDe,i.classList.add("navcube-edge");let r=new N0(i);r.position.copy(t),r.rotation.copy(e.rotation),this.add(r),i.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(t.clone().normalize(),e.rotation)}))}createCorner(e,t){let i=i=>{i.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(e.position.clone().normalize(),new xr)})),i.addEventListener("mouseenter",(()=>{let e=document.getElementsByClassName("group-"+t);(0,L0.forEach)(e,(e=>{e instanceof HTMLElement&&e.classList.add("highlight")}))})),i.addEventListener("mouseleave",(()=>{let e=document.getElementsByClassName("group-"+t);(0,L0.forEach)(e,(e=>{e instanceof HTMLElement&&e.classList.remove("highlight")}))}))},r=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2+.5),n=document.createElement("div");n.style.borderTop=14*Math.sqrt(3)+"px solid #efefef",n.style.borderLeft="14px solid transparent",n.style.borderRight="14px solid transparent",n.classList.add("navcube-corner"),n.classList.add("group-"+t);let s=new N0(n);s.position.copy(r).lerp(e.position,.14);let a=Math.atan2(r.z,r.x);s.rotateY(r.z*r.x<0?Math.PI+a:a);let o=(new xr).setFromVector3(r.clone().normalize());s.rotateX(-o.y),r.y<0&&s.rotateZ(Math.PI),this.add(s);let l=(t,n,s)=>{let a=document.createElement("div");a.style.borderTop=`13px solid ${NDe}`,a.style.borderLeft="13px solid transparent",a.style.borderRight="13px solid transparent",a.classList.add("navcube-corner-plane"),a.classList.add("group-"+n);let o=new N0(a),l=e.position.clone();l.setComponent(s,0),o.position.copy(r).sub(l),o.rotateX(t.x),o.rotateY(t.y),o.rotateZ(t.z),this.add(o),i(a)};(0,L0.forEach)(e.rotation,((e,i)=>{l(e,t,i)})),i(n)}},JO=class{constructor(e,t){this.height=150,this.width=150,this.width=e||this.width,this.height=t||this.height,this.init()}init(){this.initRenderer(),this.initScene(),this.animate()}initRenderer(){this.renderer=new KO,this.renderer.setSize(this.width,this.height),this.renderer.domElement.classList.add("css3d-navcube"),document.body.appendChild(this.renderer.domElement)}initScene(){this.scene=new Pn;let e=window.innerWidth/window.innerHeight,t=200;this.camera=new Ji(t*e/-2,t*e/2,100,-100,1,1e3),this.camera.position.set(-200,200,200),this.scene.add(this.camera);this.navCube=new ZO({onClick:e=>{if(!(this.camera&&e&&this.hostViewer&&this.hostViewer.camera&&this.hostViewer.controls))return;let t=this.hostViewer.controls instanceof $l?this.hostViewer.controls.getTarget(new A):this.hostViewer.controls.target,i=this.hostViewer.camera.position.distanceTo(t);this.hostViewer.flyTo(t.clone().add(e.clone().multiplyScalar(i)),t)}}),this.scene.add(this.navCube)}render(){this.renderer&&this.scene&&this.camera&&(this.update(),this.renderer.render(this.scene,this.camera))}animate(){requestAnimationFrame(this.animate.bind(this)),this.render()}setHostViewer(e){this.hostViewer=e,this.update()}update(){if(!this.hostViewer||!this.hostViewer.camera)return;let e=this.hostViewer.camera;if(e){let t=new A;e.getWorldDirection(t);let i=e.up;this.updateCameraDirection(t,i)}}updateCameraDirection(e,t){if(!this.camera||!e)return;e.normalize();this.camera.position.set(20*-e.x+0,20*-e.y+0,20*-e.z+0),this.camera.lookAt(0,0,0),this.camera.up=t}dispose(){!this.scene||!this.camera||!this.navCube||(this.scene.clear(),this.hostViewer=void 0,this.camera=void 0,this.navCube=void 0,this.scene=void 0)}},yNt=new A(1,0,0),TNt=new A(0,1,0),ENt=new A(0,0,1),QO=class extends nm{constructor(e,t){super(e,t);let{min:i,max:r}=this.sectionBox;this.sectionRange={x:[i.x,r.x],y:[i.y,r.y],z:[i.z,r.z]}}activate(){super.activate(),this.initOrUpdateClipPlane(),this.initOrUpdateVertices(),this.initOrUpdateSectionPlane(),this.setGlobalClippingEnable(!0)}deactivate(){super.deactivate(),this.planesMesh&&this.scene.remove(...this.planesMesh),this.planesMesh=void 0}initOrUpdateVertices(){if(!this.sectionBox)return;let{min:e,max:t}=this.sectionBox;this.vertices=[new A(t.x,t.y,t.z),new A(e.x,t.y,t.z),new A(e.x,e.y,t.z),new A(t.x,e.y,t.z),new A(t.x,t.y,e.z),new A(e.x,t.y,e.z),new A(e.x,e.y,e.z),new A(t.x,e.y,e.z)]}initOrUpdateClipPlane(){let{min:e,max:t}=this.sectionBox;this.clipPlanes?(this.clipPlanes[0].constant=t.x,this.clipPlanes[1].constant=-e.x,this.clipPlanes[2].constant=t.y,this.clipPlanes[3].constant=-e.y,this.clipPlanes[4].constant=t.z,this.clipPlanes[5].constant=-e.z):this.clipPlanes=[new bi(new A(-1,0,0),t.x),new bi(new A(1,0,0),-e.x),new bi(new A(0,-1,0),t.y),new bi(new A(0,1,0),-e.y),new bi(new A(0,0,-1),t.z),new bi(new A(0,0,1),-e.z)],this.renderer.clippingPlanes=this.clipPlanes}initOrUpdateSectionPlane(){let e=this.vertices;if(e){if(this.planesMesh)this.planesMesh[0].update([e[4],e[0],e[3],e[7]]),this.planesMesh[1].update([e[1],e[5],e[6],e[2]]),this.planesMesh[2].update([e[4],e[5],e[1],e[0]]),this.planesMesh[3].update([e[6],e[7],e[3],e[2]]),this.planesMesh[4].update([e[0],e[1],e[2],e[3]]),this.planesMesh[5].update([e[5],e[4],e[7],e[6]]);else{let t=[new on("Right",[e[4],e[0],e[3],e[7]]),new on("Left",[e[1],e[5],e[6],e[2]]),new on("Top",[e[4],e[5],e[1],e[0]]),new on("Bottom",[e[6],e[7],e[3],e[2]]),new on("Front",[e[0],e[1],e[2],e[3]]),new on("Back",[e[5],e[4],e[7],e[6]])];this.planesMesh=t,this.scene.add(...t)}this.viewer.enableRender()}}activateSelectedObject(e){var t;null==(t=this.selectedObject)||t.setActive(e)}onDragStart(e){var t;this.selectedObject&&(this.controls&&this.dragStarted&&(this.controls.enableRotate=!1),ne.info("[ObjectsBoxSection] onDragStart:",e),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),this.selectedObject.getPlaneCenter()),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos))}onDragMove(e){var t;if(!this.lastWorldPos||!this.selectedObject)return;let i=new A;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,i);let r=this.selectedObject.actionType;switch(r){case"Top":case"Bottom":this.dragTranslateSectionPlane(TNt,this.lastWorldPos,i,r);break;case"Left":case"Right":this.dragTranslateSectionPlane(yNt,this.lastWorldPos,i,r);break;case"Front":case"Back":this.dragTranslateSectionPlane(ENt,this.lastWorldPos,i,r)}this.lastWorldPos=i}onDragEnd(e){this.controls&&!this.controls.enableRotate&&(this.controls.enableRotate=!0),this.activateSelectedObject(!1),this.dragStarted=!1,this.selectedObject=void 0,ne.info("[ObjectsBoxSection] onDragEnd:",e)}dragTranslateSectionPlane(e,t,i,r){let n,{min:s,max:a}=this.sectionBox,o=i.clone().sub(t).projectOnVector(e);switch(r){case"Top":n=a.y+o.y,this.isInRange(n,this.sectionRange.y)&&(a.y=n);break;case"Bottom":n=s.y+o.y,this.isInRange(n,this.sectionRange.y)&&(s.y=n);break;case"Left":n=s.x+o.x,this.isInRange(n,this.sectionRange.x)&&(s.x=n);break;case"Right":n=a.x+o.x,this.isInRange(n,this.sectionRange.x)&&(a.x=n);break;case"Front":n=a.z+o.z,this.isInRange(n,this.sectionRange.z)&&(a.z=n);break;case"Back":n=s.z+o.z,this.isInRange(n,this.sectionRange.z)&&(s.z=n)}this.initOrUpdateVertices(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.viewer.enableRender()}isInRange(e,t){return e>t[0]&&et.visible=e)),this.isShowSectionPlane=e,this.viewer.enableRender()}},e3=class extends nm{constructor(e,t){super(e,t),this.mousedown=e=>{var t;if(0===e.button){if(!this.faceInfo){let i=this.pickFace(e);if(i&&i.face){let e=i.face.normal,r=new Pi;e.applyNormalMatrix(r.getNormalMatrix(i.object.matrixWorld)),this.faceInfo={position:i.point,normal:e.normalize()},this.setSection(),null==(t=this.tooltip)||t.hide()}return}this.camera&&this.selectedObject&&(this.mouseDown=!0)}},this.mousemove=e=>{var t,i,r;if(this.faceInfo){if(this.dragStarted)this.updateRaycasterByMouse(e),this.onDragMove(e);else{this.activateSelectedObject(!1);let t=this.getIntersections(e);t?(this.selectedObject=t.object,this.activateSelectedObject(!0),this.mouseDown&&(null==(r=this.selectedObject)?void 0:r.parent)instanceof eu&&(this.dragStarted||(this.dragStarted=!0,this.onDragStart(e)))):this.selectedObject=void 0}this.viewer.enableRender()}else this.pickFace(e)?null==(t=this.tooltip)||t.show():null==(i=this.tooltip)||i.hide()},this.center=new A,this.sectionBox.getCenter(this.center),this.viewer.addEventListener("RenderAfter",(()=>{var e;this.isActive&&(null==(e=this.gizmo)||e.adjustSize(this.camera))}))}activate(){super.activate(),this.tooltip=new mh("pick-section-plane",Th("Tooltip.section"),{parentNode:this.viewer.widgetContainer,followPointer:!0})}deactivate(){var e,t,i;super.deactivate(),null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,null==(i=this.tooltip)||i.destroy(),this.tooltip=void 0}setSection(){this.initOrUpdateGizmo(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.setGlobalClippingEnable(!0),this.viewer.enableRender()}resetSection(){var e,t,i;null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.setGlobalClippingEnable(!1),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,null==(i=this.tooltip)||i.show(),this.viewer.enableRender()}setSectionVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.isShowSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlane(){if(!this.faceInfo)return;let{normal:e,position:t}=this.faceInfo;this.clipPlane=(new bi).setFromNormalAndCoplanarPoint(e.clone().negate(),t),this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlane(){var e;if(!this.faceInfo)return;let{normal:t,position:i}=this.faceInfo,r=new A;this.sectionBox.getSize(r);let n=r.length(),s=i,a=(new Dt).setFromCenterAndSize(s,new A(n,n,n)),{min:o,max:l}=a;null==(e=this.planeMesh)||e.removeFromParent(),this.planeMesh=new on("Plane",[new A(s.x,l.y,o.z),new A(s.x,l.y,l.z),new A(s.x,o.y,l.z),new A(s.x,o.y,o.z)]),this.planeMesh.setDirection(t),this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var e,t;if(!this.faceInfo)return;null==(e=this.gizmo)||e.removeFromParent();let{normal:i,position:r}=this.faceInfo;this.gizmo=new eu,this.gizmo.setDirection(i),this.gizmo.position.copy(r),null==(t=this.scene)||t.add(this.gizmo)}onDragStart(e){var t;if(!this.faceInfo||this.selectedObject instanceof on)return;this.controls&&this.dragStarted&&this.selectedObject&&!(this.selectedObject instanceof on)&&(this.controls.enableRotate=!1),ne.info("[PickPlaneSection] onDragStart:",e);let{position:i}=this.faceInfo;this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),i),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var t,i,r;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||!this.faceInfo||this.selectedObject&&this.selectedObject instanceof on)return;let n=new A;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,n);let s=this.selectedObject.userData.actionType,{position:a}=this.faceInfo,o=(new A).subVectors(this.lastWorldPos,a).normalize(),l=(new A).subVectors(n,a).normalize(),h=(new A).subVectors(n,this.lastWorldPos).projectOnVector(Ha.clone().applyQuaternion(this.gizmo.quaternion)),u=o.angleTo(l),c=(new A).crossVectors(o,l),p=new A;this.sectionBox.getSize(p);let d,f=Math.max(p.x,p.y,p.z);switch(s){case"TranslateX":case"TranslateY":case"TranslateZ":d=(new A).addVectors(this.gizmo.position,h),this.sectionBox.clone().setFromCenterAndSize(this.center,new A(f,f,f)).containsPoint(d)&&(null==(i=this.gizmo)||i.position.add(h),null==(r=this.planeMesh)||r.position.add(h));break;case"RotateX":{let e=Ha.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(u=-u),this.gizmo.rotateX(u),this.planeMesh.rotatePlane(e,u)}break;case"RotateY":{let e=rm.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(u=-u),this.gizmo.rotateY(u),this.planeMesh.rotatePlane(e,u)}break;case"RotateZ":{let e=im.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(u=-u),this.gizmo.rotateZ(u),this.planeMesh.rotatePlane(e,u)}}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=n}onDragEnd(e){this.selectedObject instanceof on||(this.controls&&!this.controls.enableRotate&&(this.controls.enableRotate=!0),this.activateSelectedObject(!1),this.dragStarted=!1,this.selectedObject=void 0,ne.info("[PickPlaneSection] onDragEnd:",e))}getIntersectObjects(){return this.planeMesh&&this.gizmo?[this.planeMesh,this.gizmo]:[]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof on?this.selectedObject.setActive(e):this.selectedObject.parent instanceof eu&&this.selectedObject.parent.setActive(e,this.selectedObject))}pickFace(e){if(!this.raycaster)return;let t=new le(e.x,e.y),i=Ci.screenPoint2NdcPoint(t,this.camera,this.canvas);this.raycaster.setFromCamera(i,this.camera);let r=[];return Object.values(this.viewer.loadedModels).forEach((e=>{let t=this.scene&&this.scene.getObjectById(e.id);t&&t.visible&&r.push(t)})),(this.raycaster.intersectObjects(this.viewer.getRaycastableObjectsByMouse(e))||[]).find((e=>{let t=e.object;return t.visible&&(!1!==t.userData.selectable||t instanceof rt)}))}},t3=class{constructor(e,t){this.sections={},this.viewer=e,this.sections.ObjectsBoxSection=new QO(e,t),this.sections.AxisPlaneSection=new GO(e,t),this.sections.PickPlaneSection=new e3(e,t)}get raycaster(){return this.viewer.getRaycaster()}activateSection(e){this.activeSectionType&&this.deactivateSection(),this.activeSectionType=e,this.sections[e].activate()}deactivateSection(){let e=this.activeSectionType;e&&this.sections[e].deactivate(),this.activeSectionType=void 0}resetSection(){}isSectionActive(){let e=this.activeSectionType;return e?this.sections[e].isActive:!!this.getActiveSectionType()}getActiveSectionType(){return this.activeSectionType}getActiveSection(){if(this.activeSectionType)return this.sections[this.activeSectionType]}destroy(){this.deactivateSection(),this.activeSectionType=void 0}};function gG(e){let t;try{t=new URL(e,"http://fakehost.com/")}catch(e){return null}let i=t.pathname.split("/").pop(),r=i.lastIndexOf(".");return-1===r||r===i.length-1?null:i.substring(r+1)}function bNt(e){Promise.resolve().then(e)}var r3=class{constructor(){this.maxSize=800,this.minSize=600,this.unloadPercent=.05,this.itemSet=new Map,this.itemList=[],this.usedSet=new Set,this.callbacks=new Map,this.unloadPriorityCallback=null;let e=this.itemSet;this.defaultPriorityCallback=t=>e.get(t)}isFull(){return this.itemSet.size>=this.maxSize}add(e,t){let i=this.itemSet;if(i.has(e)||this.isFull())return!1;let r=this.usedSet,n=this.itemList,s=this.callbacks;return n.push(e),r.add(e),i.set(e,Date.now()),s.set(e,t),!0}remove(e){let t=this.usedSet,i=this.itemSet,r=this.itemList,n=this.callbacks;if(i.has(e)){n.get(e)(e);let s=r.indexOf(e);return r.splice(s,1),t.delete(e),i.delete(e),n.delete(e),!0}return!1}markUsed(e){let t=this.itemSet,i=this.usedSet;t.has(e)&&!i.has(e)&&(t.set(e,Date.now()),i.add(e))}markAllUnused(){this.usedSet.clear()}unloadUnusedContent(){let e=this.unloadPercent,t=this.minSize,i=this.itemList,r=this.itemSet,n=this.usedSet,s=this.callbacks,a=i.length-n.size,o=i.length-t,l=this.unloadPriorityCallback||this.defaultPriorityCallback;if(o>0&&a>0){i.sort(((e,t)=>{let i=n.has(e),r=n.has(t);return i&&r?0:i||r?i?1:-1:l(t)-l(e)}));let h=Math.min(o,a),u=Math.max(t*e,h*e),c=Math.min(u,a);c=Math.ceil(c);let p=i.splice(0,c);for(let e=0,t=p.length;e{this.scheduled=!1,this.unloadUnusedContent(),e&&this.markAllUnused()})))}},G_=class{constructor(){this.maxJobs=6,this.items=[],this.callbacks=new Map,this.currJobs=0,this.scheduled=!1,this.autoUpdate=!0,this.priorityCallback=()=>{throw new Error("PriorityQueue: PriorityCallback function not defined.")},this.schedulingCallback=e=>{requestAnimationFrame(e)},this._runjobs=()=>{this.tryRunJobs(),this.scheduled=!1}}sort(){let e=this.priorityCallback;this.items.sort(e)}add(e,t){return new Promise(((i,r)=>{let n=this.items,s=this.callbacks;n.push(e),s.set(e,((...e)=>t(...e).then(i).catch(r))),this.autoUpdate&&this.scheduleJobRun()}))}remove(e){let t=this.items,i=this.callbacks,r=t.indexOf(e);-1!==r&&(t.splice(r,1),i.delete(e))}tryRunJobs(){this.sort();let e=this.items,t=this.callbacks,i=this.maxJobs,r=this.currJobs;for(;i>r&&e.length>0;){r++;let i=e.pop(),n=t.get(i);t.delete(i),n(i).then((()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()})).catch((()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()}))}this.currJobs=r}scheduleJobRun(){this.scheduled||(this.schedulingCallback(this._runjobs),this.scheduled=!0)}},xNt=.0033528106647474805,LDe=-(6378137*xNt-6378137);function yG(e){return 3===e||4===e}function F0(e,t){return e.__lastFrameVisited===t&&e.__used}function FDe(e,t){e.__lastFrameVisited!==t&&(e.__lastFrameVisited=t,e.__used=!1,e.__inFrustum=!1,e.__isLeaf=!1,e.__visible=!1,e.__active=!1,e.__error=1/0,e.__distanceFromCamera=1/0,e.__childrenWereVisible=!1,e.__allChildrenLoaded=!1)}function HDe(e,t,i){if(FDe(e,t),e.__used=!0,i.markUsed(e),e.__contentEmpty){let r=e.children;for(let e=0,n=r.length;e0&&e.__depth+1>=s))return!0;let h=!1,u=e.children;for(let e=0,i=u.length;ee.__depth!==t.__depth?e.__depth>t.__depth?-1:1:e.__inFrustum!==t.__inFrustum?e.__inFrustum?1:-1:e.__used!==t.__used?e.__used?1:-1:e.__error!==t.__error?e.__error>t.__error?1:-1:e.__distanceFromCamera!==t.__distanceFromCamera?e.__distanceFromCamera>t.__distanceFromCamera?-1:1:0,INt=e=>1/(e.__depthFromRenderedParent+1),s3=class{get rootTileSet(){let e=this.tileSets[this.rootURL];return!e||e instanceof Promise?null:e}get root(){let e=this.rootTileSet;return e?e.root:null}constructor(e){this.tileSets={},this.rootURL=e,this.fetchOptions={},this.preprocessURL=null;let t=new r3;t.unloadPriorityCallback=INt;let i=new G_;i.maxJobs=4,i.priorityCallback=kDe;let r=new G_;r.maxJobs=1,r.priorityCallback=kDe,this.lruCache=t,this.downloadQueue=i,this.parseQueue=r,this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0,this.errorTarget=6,this.errorThreshold=1/0,this.loadSiblings=!0,this.displayActiveTiles=!1,this.maxDepth=1/0,this.stopAtEmptyTiles=!0}traverse(e,t){let i=this.tileSets[this.rootURL];!i||!i.root||n3(i.root,e,t)}update(){let e=this.stats,t=this.lruCache,i=this.tileSets,r=i[this.rootURL];if(!(this.rootURL in i))return void this.loadRootTileSet(this.rootURL);if(!r||!r.root)return;let n=r.root;e.inFrustum=0,e.used=0,e.active=0,e.visible=0,this.frameCount++,TG(n,this),EG(n,this),bG(n,this),xG(n,this),t.scheduleUnload()}parseTile(e,t,i){return null}disposeTile(e){}preprocessNode(e,t,i){if(e.content&&(!("uri"in e.content)&&"url"in e.content&&(e.content.uri=e.content.url,delete e.content.url),e.content.uri&&(e.content.uri=new URL(e.content.uri,i+"/").toString()),e.content.boundingVolume&&!("box"in e.content.boundingVolume||"sphere"in e.content.boundingVolume||"region"in e.content.boundingVolume)&&delete e.content.boundingVolume),e.parent=t,e.children=e.children||[],e.content&&e.content.uri){let t=gG(e.content.uri),i=Boolean(t&&"json"===t.toLowerCase());e.__externalTileSet=i,e.__contentEmpty=i}else e.__externalTileSet=!1,e.__contentEmpty=!0;e.__distanceFromCamera=1/0,e.__error=1/0,e.__inFrustum=!1,e.__isLeaf=!1,e.__usedLastFrame=!1,e.__used=!1,e.__wasSetVisible=!1,e.__visible=!1,e.__childrenWereVisible=!1,e.__allChildrenLoaded=!1,e.__wasSetActive=!1,e.__active=!1,e.__loadingState=0,e.__loadIndex=0,e.__loadAbort=null,e.__depthFromRenderedParent=-1,null===t?(e.__depth=0,e.refine=e.refine||"REPLACE"):(e.__depth=t.__depth+1,e.refine=e.refine||t.refine)}setTileActive(e,t){}setTileVisible(e,t){}calculateError(e){return 0}tileInView(e){return!0}resetFailedTiles(){let e=this.stats;0!==e.failed&&(this.traverse((e=>{4===e.__loadingState&&(e.__loadingState=0)})),e.failed=0)}fetchTileSet(e,t,i=null){return fetch(e,t).then((t=>{if(t.ok)return t.json();throw new Error(`TilesRenderer: Failed to load tileset "${e}" with status ${t.status} : ${t.statusText}`)})).then((t=>{let r=t.asset.version;console.assert("1.0"===r||"0.0"===r,'asset.version is expected to be a string of "1.0" or "0.0"');let n=e.replace(/\/[^\/]*\/?$/,"");return n=new URL(n,window.location.href).toString(),n3(t.root,((e,t)=>this.preprocessNode(e,t,n)),null,i,i?i.__depth:0),t}))}loadRootTileSet(e){let t=this.tileSets;if(e in t)return t[e]instanceof Error?Promise.reject(t[e]):Promise.resolve(t[e]);{let i=this.fetchTileSet(this.preprocessURL?this.preprocessURL(e):e,this.fetchOptions).then((i=>{t[e]=i}));return i.catch((i=>{console.error(i),t[e]=i})),t[e]=i,i}}requestTileContents(e){if(0!==e.__loadingState)return;let t=this.stats,i=this.lruCache,r=this.downloadQueue,n=this.parseQueue,s=e.__externalTileSet;i.add(e,(e=>{1===e.__loadingState?(e.__loadAbort.abort(),e.__loadAbort=null):s?e.children.length=0:this.disposeTile(e),1===e.__loadingState?t.downloading--:2===e.__loadingState&&t.parsing--,e.__loadingState=0,e.__loadIndex++,n.remove(e),r.remove(e)})),e.__loadIndex++;let a=e.__loadIndex,o=new AbortController,l=o.signal;t.downloading++,e.__loadAbort=o,e.__loadingState=1;let h=s=>{e.__loadIndex===a&&("AbortError"!==s.name?(n.remove(e),r.remove(e),2===e.__loadingState?t.parsing--:1===e.__loadingState&&t.downloading--,t.failed++,console.error(`TilesRenderer : Failed to load tile at url "${e.content.uri}".`),console.error(s),e.__loadingState=4):i.remove(e))};s?r.add(e,(e=>{if(e.__loadIndex!==a)return Promise.resolve();let t=this.preprocessURL?this.preprocessURL(e.content.uri):e.content.uri;return this.fetchTileSet(t,Object.assign({signal:l},this.fetchOptions),e)})).then((i=>{e.__loadIndex===a&&(t.downloading--,e.__loadAbort=null,e.__loadingState=3,e.children.push(i.root))})).catch(h):r.add(e,(e=>{if(e.__loadIndex!==a)return Promise.resolve();let t=this.preprocessURL?this.preprocessURL(e.content.uri):e.content.uri;return fetch(t,Object.assign({signal:l},this.fetchOptions))})).then((t=>{if(e.__loadIndex===a){if(t.ok)return t.arrayBuffer();throw new Error(`Failed to load model with error code ${t.status}`)}})).then((i=>{if(e.__loadIndex===a)return t.downloading--,t.parsing++,e.__loadAbort=null,e.__loadingState=2,n.add(e,(e=>{if(e.__loadIndex!==a)return Promise.resolve();let t=gG(e.content.uri);return this.parseTile(i,e,t)}))})).then((()=>{e.__loadIndex===a&&(t.parsing--,e.__loadingState=3,e.__wasSetVisible&&this.setTileVisible(e,!0),e.__wasSetActive&&this.setTileActive(e,!0))})).catch(h)}dispose(){let e=this.lruCache;this.traverse((t=>{e.remove(t)})),this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0}};function a3(e){return(new TextDecoder).decode(e)}var od=class{constructor(e,t,i,r){this.buffer=e,this.binOffset=t+i,this.binLength=r;let n=null;if(0!==i){let r=new Uint8Array(e,t,i);n=JSON.parse(a3(r))}else n={};this.header=n}getKeys(){return Object.keys(this.header)}getData(e,t,i=null,r=null){let n=this.header;if(!(e in n))return null;let s=n[e];if(s instanceof Object){if(Array.isArray(s))return s;{let n,{buffer:a,binOffset:o,binLength:l}=this,h=s.byteOffset||0,u=s.type||r,c=s.componentType||i;if("type"in s&&r&&s.type!==r)throw new Error("FeatureTable: Specified type does not match expected type.");switch(u){case"SCALAR":n=1;break;case"VEC2":n=2;break;case"VEC3":n=3;break;case"VEC4":n=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${e}".`)}let p,d=o+h,f=t*n;switch(c){case"BYTE":p=new Int8Array(a,d,f);break;case"UNSIGNED_BYTE":p=new Uint8Array(a,d,f);break;case"SHORT":p=new Int16Array(a,d,f);break;case"UNSIGNED_SHORT":p=new Uint16Array(a,d,f);break;case"INT":p=new Int32Array(a,d,f);break;case"UNSIGNED_INT":p=new Uint32Array(a,d,f);break;case"FLOAT":p=new Float32Array(a,d,f);break;case"DOUBLE":p=new Float64Array(a,d,f);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${e}".`)}if(d+f*p.BYTES_PER_ELEMENT>o+l)throw new Error("FeatureTable: Feature data read outside binary body length.");return p}}return s}},sm=class extends od{constructor(e,t,i,r,n){super(e,i,r,n),this.batchSize=t}getData(e,t=null,i=null){return super.getData(e,this.batchSize,t,i)}},ec=class{constructor(){this.fetchOptions={},this.workingPath=""}load(e){return fetch(e,this.fetchOptions).then((t=>{if(!t.ok)throw new Error(`Failed to load file "${e}" with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()})).then((t=>(""===this.workingPath&&(this.workingPath=this.workingPathForURL(e)),this.parse(t))))}resolveExternalURL(e){return/^[^\\/]/.test(e)?this.workingPath+"/"+e:e}workingPathForURL(e){let t=e.split(/[\\/]/g);return t.pop(),t.join("/")+"/"}parse(e){throw new Error("LoaderBase: Parse not implemented.")}};function iu(e){let t;if(t=e instanceof DataView?e:new DataView(e),"{"===String.fromCharCode(t.getUint8(0)))return null;let i="";for(let e=0;e<4;e++)i+=String.fromCharCode(t.getUint8(e));return i}var o3=class extends ec{parse(e){let t=new DataView(e),i=iu(t);console.assert("b3dm"===i);let r=t.getUint32(4,!0);console.assert(1===r);let n=t.getUint32(8,!0);console.assert(n===e.byteLength);let s=t.getUint32(12,!0),a=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=e.slice(28,28+s+a),u=new od(h,0,s,a),c=28+s+a,p=e.slice(c,c+o+l),d=new sm(p,u.getData("BATCH_LENGTH"),0,o,l),f=c+o+l;return{version:r,featureTable:u,batchTable:d,glbBytes:new Uint8Array(e,f,n-f)}}},vE=class extends o3{constructor(e=ao){super(),this.manager=e,this.adjustmentTransform=new Be}parse(e){let t=super.parse(e),i=t.glbBytes.slice().buffer;return new Promise(((e,r)=>{let n=this.manager,s=this.fetchOptions,a=n.getHandler("path.gltf")||new $u(n);"include"===s.credentials&&"cors"===s.mode&&a.setCrossOrigin("use-credentials"),"credentials"in s&&a.setWithCredentials("include"===s.credentials),s.headers&&a.setRequestHeader(s.headers);let o=this.workingPath;!/[\\/]$/.test(o)&&o.length&&(o+="/");let l=this.adjustmentTransform;a.parse(i,o,(i=>{let{batchTable:r,featureTable:n}=t,{scene:s}=i,a=n.getData("RTC_CENTER");a&&(s.position.x+=a[0],s.position.y+=a[1],s.position.z+=a[2]),i.scene.updateMatrix(),i.scene.matrix.multiply(l),i.scene.matrix.decompose(i.scene.position,i.scene.quaternion,i.scene.scale),i.batchTable=r,i.featureTable=n,s.batchTable=r,s.featureTable=n,e(i)}),r)}))}},l3=class extends ec{parse(e){let t=new DataView(e),i=iu(t);console.assert("pnts"===i);let r=t.getUint32(4,!0);console.assert(1===r);let n=t.getUint32(8,!0);console.assert(n===e.byteLength);let s=t.getUint32(12,!0),a=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=e.slice(28,28+s+a),u=new od(h,0,s,a),c=28+s+a,p=e.slice(c,c+o+l),d=new sm(p,u.getData("BATCH_LENGTH")||u.getData("POINTS_LENGTH"),0,o,l);return Promise.resolve({version:r,featureTable:u,batchTable:d})}},yE=class extends l3{constructor(e=ao){super(),this.manager=e}parse(e){return super.parse(e).then((e=>{let{featureTable:t}=e,i=t.getData("POINTS_LENGTH"),r=t.getData("POSITION",i,"FLOAT","VEC3"),n=t.getData("RGB",i,"UNSIGNED_BYTE","VEC3");["QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","CONSTANT_RGBA","BATCH_LENGTH","POSITION_QUANTIZED","RGBA","RGB565","NORMAL","NORMAL_OCT16P"].forEach((e=>{e in t.header&&console.warn(`PNTSLoader: Unsupported FeatureTable feature "${e}" detected.`)}));let s=new lt;s.setAttribute("position",new Wt(r,3,!1));let a=new jn;a.size=2,a.sizeAttenuation=!1,null!==n&&(s.setAttribute("color",new Wt(n,3,!0)),a.vertexColors=!0);let o=new nn(s,a);e.scene=o,e.scene.featureTable=t;let l=t.getData("RTC_CENTER");return l&&(e.scene.position.x+=l[0],e.scene.position.y+=l[1],e.scene.position.z+=l[2]),e}))}},c3=class extends ec{parse(e){let t=new DataView(e),i=iu(t);console.assert("i3dm"===i);let r=t.getUint32(4,!0);console.assert(1===r);let n=t.getUint32(8,!0);console.assert(n===e.byteLength);let s=t.getUint32(12,!0),a=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=t.getUint32(28,!0),u=e.slice(32,32+s+a),c=new od(u,0,s,a),p=32+s+a,d=e.slice(p,p+o+l),f=new sm(d,c.getData("INSTANCES_LENGTH"),0,o,l),m=p+o+l,g=new Uint8Array(e,m,n-m),y=null,v=null;if(h)y=g,v=Promise.resolve();else{let e=this.resolveExternalURL(a3(g));v=fetch(e,this.fetchOptions).then((t=>{if(!t.ok)throw new Error(`I3DMLoaderBase : Failed to load file "${e}" with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()})).then((e=>{y=new Uint8Array(e)}))}return v.then((()=>({version:r,featureTable:c,batchTable:f,glbBytes:y})))}},GDe=new A,SG=new A,wG=new A,VDe=new A,RG=new Hr,u3=new A,h3=new Be,TE=class extends c3{constructor(e=ao){super(),this.manager=e,this.adjustmentTransform=new Be}resolveExternalURL(e){return this.manager.resolveURL(super.resolveExternalURL(e))}parse(e){return super.parse(e).then((e=>{let{featureTable:t,batchTable:i}=e,r=e.glbBytes.slice().buffer;return new Promise(((e,n)=>{let s=this.fetchOptions,a=this.manager,o=a.getHandler("path.gltf")||new $u(a);"include"===s.credentials&&"cors"===s.mode&&o.setCrossOrigin("use-credentials"),"credentials"in s&&o.setWithCredentials("include"===s.credentials),s.headers&&o.setRequestHeader(s.headers);let l=this.workingPath;/[\\/]$/.test(l)||(l+="/");let h=this.adjustmentTransform;o.parse(r,l,(r=>{let n=t.getData("INSTANCES_LENGTH"),s=t.getData("POSITION",n,"FLOAT","VEC3"),a=t.getData("NORMAL_UP",n,"FLOAT","VEC3"),o=t.getData("NORMAL_RIGHT",n,"FLOAT","VEC3"),l=t.getData("SCALE_NON_UNIFORM",n,"FLOAT","VEC3"),u=t.getData("SCALE",n,"FLOAT","SCALAR");["RTC_CENTER","QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","EAST_NORTH_UP","POSITION_QUANTIZED","NORMAL_UP_OCT32P","NORMAL_RIGHT_OCT32P"].forEach((e=>{e in t.header&&console.warn(`I3DMLoader: Unsupported FeatureTable feature "${e}" detected.`)}));let c=new Map,p=[];r.scene.traverse((e=>{if(e.isMesh){let{geometry:t,material:i}=e,r=new rn(t,i,n);r.position.copy(e.position),r.rotation.copy(e.rotation),r.scale.copy(e.scale),p.push(r),c.set(e,r)}}));let d=new A;for(let e=0;e{let i=t.parent;i&&(i.remove(t),i.add(e),e.updateMatrixWorld(),e.position.copy(d).applyMatrix4(e.matrixWorld))}));for(let e=0;e{let t=new ur;return e.forEach((e=>{t.add(e.scene)})),{tiles:e,scene:t}}))}},f3=class{constructor(){this.name="CESIUM_RTC"}afterRoot(e){if(e.parser.json.extensions&&e.parser.json.extensions.CESIUM_RTC){let{center:t}=e.parser.json.extensions.CESIUM_RTC;t&&(e.scene.position.x+=t[0],e.scene.position.y+=t[1],e.scene.position.z+=t[2])}}},m3=class extends ec{constructor(e=ao){super(),this.manager=e}parse(e){return new Promise(((t,i)=>{let r=this.manager,n=this.fetchOptions,s=r.getHandler("path.gltf")||r.getHandler("path.glb");s||(s=new $u(r),s.register((()=>new f3)),"include"===n.credentials&&"cors"===n.mode&&s.setCrossOrigin("use-credentials"),"credentials"in n&&s.setWithCredentials("include"===n.credentials),n.headers&&s.setRequestHeader(n.headers));let a=s.resourcePath||s.path||this.workingPath;!/[\\/]$/.test(a)&&a.length&&(a+="/"),s.parse(e,a,(e=>{t(e)}),i)}))}},g3=new Be,v3=class extends ur{constructor(e){super(),this.name="TilesRenderer.TilesGroup",this.tilesRenderer=e}raycast(e,t){this.tilesRenderer.optimizeRaycast&&this.tilesRenderer.raycast(e,t)}updateMatrixWorld(e){if(this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldNeedsUpdate||e){null===this.parent?g3.copy(this.matrix):g3.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1;let e=g3.elements,t=this.matrixWorld.elements,i=!1;for(let r=0;r<16;r++){let n=e[r],s=t[r];if(Math.abs(n-s)>Number.EPSILON){i=!0;break}}if(i){this.matrixWorld.copy(g3);let e=this.children;for(let t=0,i=e.length;t=t&&a<=i&&o>=r&&o<=n){let t=SNt(e);c.push(t),this.getCartographicToPosition(a,o,l,t)}}}return c}getBoundingBox(e,t){WDe();let{latStart:i,latEnd:r,lonStart:n,lonEnd:s}=this;if(r-i{Object.getPrototypeOf(e).raycast.call(e,t,i)}))}function AG(e,t,i,r){if(i.has(e)){if(CG(e.cached.scene,r,tc),tc.length>0){tc.length>1&&tc.sort(DG);let e=tc[0];return tc.length=0,e}return null}let n=[],s=e.children;for(let e=0,i=s.length;e1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when raycasting.");let t={distance:1/0,tile:null};n.push(t),t.distance=qDe.distanceToSquared(IE.origin)*e*e,t.tile=i}}}n.sort(DG);let a=1/0,o=null;for(let e=0,s=n.length;ea)break;{let e=s.tile,n=e.cached.scene,l=null;if(i.has(e)?(CG(n,r,tc),tc.length>0&&(tc.length>1&&tc.sort(DG),l=tc[0])):l=AG(e,t,i,r),l){let e=l.distance*l.distance;e{e.frustumCulled=e[$De]&&t}))}var W_=class extends s3{get autoDisableRendererCulling(){return this._autoDisableRendererCulling}set autoDisableRendererCulling(e){this._autoDisableRendererCulling!==e&&(super._autoDisableRendererCulling=e,this.forEachLoadedModel((t=>{XDe(t,!e)})))}constructor(...e){super(...e),this.group=new v3(this),this.cameras=[],this.cameraMap=new Map,this.cameraInfo=[],this.activeTiles=new Set,this.visibleTiles=new Set,this._autoDisableRendererCulling=!0,this.optimizeRaycast=!0,this.onLoadTileSet=null,this.onLoadModel=null,this.onDisposeModel=null,this.onTileVisibilityChange=null;let t=new Lp;t.setURLModifier((e=>this.preprocessURL?this.preprocessURL(e):e)),this.manager=t;let i=this;this._overridenRaycast=function(e,t){i.optimizeRaycast||Object.getPrototypeOf(this).raycast.call(this,e,t)}}getBounds(e){if(!this.root)return!1;let t=this.root.cached,i=t.box,r=t.boxTransform;return!!i&&(e.copy(i),e.applyMatrix4(r),!0)}getOrientedBounds(e,t){if(!this.root)return!1;let i=this.root.cached,r=i.box,n=i.boxTransform;return!!r&&(e.copy(r),t.copy(n),!0)}getBoundingSphere(e){if(!this.root)return!1;let t=this.root.cached.sphere;return!!t&&(e.copy(t),!0)}forEachLoadedModel(e){this.traverse((t=>{let i=t.cached.scene;i&&e(i,t)}))}raycast(e,t){if(this.root)if(e.firstHitOnly){let i=AG(this.root,this.group,this.activeTiles,e);i&&t.push(i)}else OG(this.root,this.group,this.activeTiles,e,t)}hasCamera(e){return this.cameraMap.has(e)}setCamera(e){let t=this.cameras,i=this.cameraMap;return!i.has(e)&&(i.set(e,new le),t.push(e),!0)}setResolution(e,t,i){let r=this.cameraMap;return!!r.has(e)&&(t instanceof le?r.get(e).copy(t):r.get(e).set(t,i),!0)}setResolutionFromRenderer(e,t){let i=this.cameraMap;if(!i.has(e))return!1;let r=i.get(e);return t.getSize(r),r.multiplyScalar(t.getPixelRatio()),!0}deleteCamera(e){let t=this.cameras,i=this.cameraMap;if(i.has(e)){let r=t.indexOf(e);return t.splice(r,1),i.delete(e),!0}return!1}fetchTileSet(e,...t){let i=super.fetchTileSet(e,...t);return i.then((t=>{this.onLoadTileSet&&Promise.resolve().then((()=>{this.onLoadTileSet(t,e)}))})),i}update(){let e=this.group,t=this.cameras,i=this.cameraMap,r=this.cameraInfo;if(0===t.length)return void console.warn("TilesRenderer: no cameras defined. Cannot update 3d tiles.");for(;r.length>t.length;)r.pop();for(;r.length1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when calculating screen space error.");for(let s=0,a=r.length;se.scene));break}case"pnts":{let t=new yE(a);t.workingPath=n,t.fetchOptions=s,l=t.parse(e).then((e=>e.scene));break}case"i3dm":{let t=new TE(a);t.workingPath=n,t.fetchOptions=s,t.adjustmentTransform.copy(nu),l=t.parse(e).then((e=>e.scene));break}case"cmpt":{let t=new d3(a);t.workingPath=n,t.fetchOptions=s,t.adjustmentTransform.copy(nu),l=t.parse(e).then((e=>e.scene));break}case"gltf":case"glb":let t=new m3(a);t.workingPath=n,t.fetchOptions=s,l=t.parse(e).then((e=>e.scene));break;default:console.warn(`TilesRenderer: Content type "${p}" not supported.`),l=Promise.resolve(null)}return l.then((e=>{if(t._loadIndex!==o)return;e.updateMatrix(),("glb"===p||"gltf"===p)&&e.matrix.multiply(nu),e.matrix.premultiply(c),e.matrix.decompose(e.position,e.quaternion,e.scale),e.traverse((e=>{e[$De]=e.frustumCulled})),XDe(e,!this.autoDisableRendererCulling),u.scene=e,e.traverse((e=>{e.raycast=this._overridenRaycast}));let i=[],r=[],n=[];e.traverse((e=>{if(e.geometry&&r.push(e.geometry),e.material){let t=e.material;i.push(e.material);for(let e in t){let i=t[e];i&&i.isTexture&&n.push(i)}}})),u.materials=i,u.geometry=r,u.textures=n,this.onLoadModel&&this.onLoadModel(e,t)}))}disposeTile(e){let t=e.cached;if(t.scene){let i=t.materials,r=t.geometry,n=t.textures,s=t.scene.parent;for(let e=0,t=r.length;e=s+1e3&&(o.update(1e3*a/(e-s),100),s=e,a=0,h)){var t=performance.memory;h.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){n=this.end()},domElement:t,setMode:r}};X_.Panel=function(e,t,i){var r=1/0,n=0,s=Math.round,a=s(window.devicePixelRatio||1),o=80*a,l=48*a,h=3*a,u=2*a,c=3*a,p=15*a,d=74*a,f=30*a,m=document.createElement("canvas");m.width=o,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=i,g.fillRect(0,0,o,l),g.fillStyle=t,g.fillText(e,h,u),g.fillRect(c,p,d,f),g.fillStyle=i,g.globalAlpha=.9,g.fillRect(c,p,d,f),{dom:m,update:function(l,y){r=Math.min(r,l),n=Math.max(n,l),g.fillStyle=i,g.globalAlpha=1,g.fillRect(0,0,o,p),g.fillStyle=t,g.fillText(s(l)+" "+e+" ("+s(r)+"-"+s(n)+")",h,u),g.drawImage(m,c+a,p,d-a,f,c,p,d-a,f),g.fillRect(c+d-a,p,a,f),g.fillStyle=i,g.globalAlpha=.9,g.fillRect(c+d-a,p,a,s((1-l/y)*f))}}};var I3=X_,as=class{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}},MNt=new Ji(-1,1,1,-1,0,1),NG=new lt;NG.setAttribute("position",new dt([-1,3,0,-1,-1,0,3,-1,0],3)),NG.setAttribute("uv",new dt([0,2,0,0,2,0],2));var sa=class{constructor(e){this._mesh=new rt(NG,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,MNt)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}},LG={defines:{KERNEL_SIZE_FLOAT:"25.0",KERNEL_SIZE_INT:"25"},uniforms:{tDiffuse:{value:null},uImageIncrement:{value:new le(.001953125,0)},cKernel:{value:[]}},vertexShader:"\n\n\t\tuniform vec2 uImageIncrement;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float cKernel[ KERNEL_SIZE_INT ];\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform vec2 uImageIncrement;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec2 imageCoord = vUv;\n\t\t\tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );\n\n\t\t\tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {\n\n\t\t\t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];\n\t\t\t\timageCoord += uImageIncrement;\n\n\t\t\t}\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}",buildKernel:function(e){let t=2*Math.ceil(3*e)+1;t>25&&(t=25);let i=.5*(t-1),r=new Array(t),n=0;for(let s=0;s0){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();let t=e.autoClear;e.autoClear=!1,n&&e.state.buffers.stencil.setTest(!1),e.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);let r=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,e.setRenderTarget(this.renderTargetDepthBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,e.setRenderTarget(this.renderTargetMaskBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=r,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,e.setRenderTarget(this.renderTargetMaskDownSampleBuffer),e.clear(),this.fsQuad.render(e),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){let e=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(e),this.tempPulseColor2.multiplyScalar(e)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=au.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,e.setRenderTarget(this.renderTargetBlurBuffer1),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=au.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=au.BlurDirectionX,e.setRenderTarget(this.renderTargetBlurBuffer2),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=au.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer2),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,n&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(i),this.fsQuad.render(e),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=t}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=i.texture,e.setRenderTarget(null),this.fsQuad.render(e))}getPrepareMaskMaterial(){return new Yt({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new le(.5,.5)},textureMatrix:{value:null}},vertexShader:"#include \n\t\t\t\t#include \n\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tvPosition = mvPosition;\n\n\t\t\t\t\tvec4 worldPosition = vec4( transformed, 1.0 );\n\n\t\t\t\t\t#ifdef USE_INSTANCING\n\n\t\t\t\t\t\tworldPosition = instanceMatrix * worldPosition;\n\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\tworldPosition = modelMatrix * worldPosition;\n\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\n\t\t\t\t}"})}getEdgeDetectionMaterial(){return new Yt({uniforms:{maskTexture:{value:null},texSize:{value:new le(.5,.5)},visibleEdgeColor:{value:new A(1,1,1)},hiddenEdgeColor:{value:new A(1,1,1)}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}"})}getSeperableBlurMaterial(e){return new Yt({defines:{MAX_RADIUS:e},uniforms:{colorTexture:{value:null},texSize:{value:new le(.5,.5)},direction:{value:new le(.5,.5)},kernelRadius:{value:1}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat sigma = kernelRadius/2.0;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, sigma);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = kernelRadius * float(i) / float(MAX_RADIUS);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, sigma);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}"})}getOverlayMaterial(){return new Yt({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}",blending:vp,depthTest:!1,depthWrite:!1,transparent:!0})}};au.BlurDirectionX=new le(1,0),au.BlurDirectionY=new le(0,1);var w3=class extends as{constructor(e,t,i,r,n){super(),this.scene=e,this.camera=t,this.overrideMaterial=i,this.clearColor=r,this.clearAlpha=void 0!==n?n:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new je}render(e,t,i){let r,n,s=e.autoClear;e.autoClear=!1,void 0!==this.overrideMaterial&&(n=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=n),e.autoClear=s}},K_={defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},tDiffuse:{value:null},tNormal:{value:null},size:{value:new le(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new Be},cameraInverseProjectionMatrix:{value:new Be},scale:{value:1},intensity:{value:.1},bias:{value:.5},minResolution:{value:0},kernelRadius:{value:100},randomSeed:{value:0}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\n\t\t#include \n\n\t\tvarying vec2 vUv;\n\n\t\t#if DIFFUSE_TEXTURE == 1\n\t\tuniform sampler2D tDiffuse;\n\t\t#endif\n\n\t\tuniform sampler2D tDepth;\n\n\t\t#if NORMAL_TEXTURE == 1\n\t\tuniform sampler2D tNormal;\n\t\t#endif\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n\t\tuniform vec2 size;\n\t\tuniform float randomSeed;\n\n\t\t// RGBA depth\n\n\t\t#include \n\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\t#if DIFFUSE_TEXTURE == 1\n\t\t\treturn texture2D( tDiffuse, vUv );\n\t\t\t#else\n\t\t\treturn vec4( 1.0 );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#else\n\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n\n\t\tfloat getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n\t\t\tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n\t\t\tfloat viewDistance = length( viewDelta );\n\t\t\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n\n\t\t\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n\t\t}\n\n\t\t// moving costly divides into consts\n\t\tconst float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition ) {\n\t\t\t// precompute some variables require in getOcclusion.\n\t\t\tscaleDividedByCameraFar = scale / cameraFar;\n\t\t\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;\n\t\t\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv );\n\n\t\t\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/\n\t\t\tfloat angle = rand( vUv + randomSeed ) * PI2;\n\t\t\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;\n\t\t\tvec2 radiusStep = radius;\n\n\t\t\tfloat occlusionSum = 0.0;\n\t\t\tfloat weightSum = 0.0;\n\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n\t\t\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;\n\t\t\t\tradius += radiusStep;\n\t\t\t\tangle += ANGLE_STEP;\n\n\t\t\t\tfloat sampleDepth = getDepth( sampleUv );\n\t\t\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\t\t\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n\t\t\t\tweightSum += 1.0;\n\t\t\t}\n\n\t\t\tif( weightSum == 0.0 ) discard;\n\n\t\t\treturn occlusionSum * ( intensity / weightSum );\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat centerDepth = getDepth( vUv );\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = getViewZ( centerDepth );\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= 1.0 - ambientOcclusion;\n\t\t}"},pd={defines:{KERNEL_RADIUS:4,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDiffuse:{value:null},size:{value:new le(512,512)},sampleUvOffsets:{value:[new le(0,0)]},sampleWeights:{value:[1]},tDepth:{value:null},cameraNear:{value:10},cameraFar:{value:1e3},depthCutoff:{value:10}},vertexShader:"\n\n\t\t#include \n\n\t\tuniform vec2 size;\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tvInvSize = 1.0 / size;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\n\t\t#include \n\t\t#include \n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float depthCutoff;\n\n\t\tuniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];\n\t\tuniform float sampleWeights[ KERNEL_RADIUS + 1 ];\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tif( depth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = -getViewZ( depth );\n\t\t\tbool rBreak = false, lBreak = false;\n\n\t\t\tfloat weightSum = sampleWeights[0];\n\t\t\tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;\n\n\t\t\tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n\t\t\t\tfloat sampleWeight = sampleWeights[i];\n\t\t\t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;\n\n\t\t\t\tvec2 sampleUv = vUv + sampleUvOffset;\n\t\t\t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;\n\n\t\t\t\tif( ! rBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t\tsampleUv = vUv - sampleUvOffset;\n\t\t\t\tviewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;\n\n\t\t\t\tif( ! lBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = diffuseSum / weightSum;\n\t\t}"},Z_={createSampleWeights:function(e,t){let i=[];for(let r=0;r<=e;r++)i.push(CNt(r,t));return i},createSampleOffsets:function(e,t){let i=[];for(let r=0;r<=e;r++)i.push(t.clone().multiplyScalar(r));return i},configure:function(e,t,i,r){e.defines.KERNEL_RADIUS=t,e.uniforms.sampleUvOffsets.value=Z_.createSampleOffsets(t,r),e.uniforms.sampleWeights.value=Z_.createSampleWeights(t,i),e.needsUpdate=!0}};function CNt(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}var R3={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tvoid main() {\n\n\t\t\tfloat depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) );\n\t\t\tgl_FragColor = vec4( vec3( depth ), opacity );\n\n\t\t}"},J_=class extends as{constructor(e,t,i=!1,r=!1,n=new le(256,256)){let s;super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.supportsDepthTextureExtension=i,this.supportsNormalTexture=r,this.originalClearColor=new je,this._oldClearColor=new je,this.oldClearAlpha=1,this.params={output:0,saoBias:.5,saoIntensity:.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:!0,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:.01},this.resolution=new le(n.x,n.y),this.saoRenderTarget=new Vr(this.resolution.x,this.resolution.y),this.blurIntermediateRenderTarget=this.saoRenderTarget.clone(),this.beautyRenderTarget=this.saoRenderTarget.clone(),this.normalRenderTarget=new Vr(this.resolution.x,this.resolution.y,{minFilter:Di,magFilter:Di}),this.depthRenderTarget=this.normalRenderTarget.clone(),this.supportsDepthTextureExtension&&(s=new cf,s.type=Cx,this.beautyRenderTarget.depthTexture=s,this.beautyRenderTarget.depthBuffer=!0),this.depthMaterial=new Ip,this.depthMaterial.depthPacking=Wy,this.depthMaterial.blending=Ui,this.normalMaterial=new pf,this.normalMaterial.blending=Ui,this.saoMaterial=new Yt({defines:Object.assign({},K_.defines),fragmentShader:K_.fragmentShader,vertexShader:K_.vertexShader,uniforms:pn.clone(K_.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.saoMaterial.defines.NORMAL_TEXTURE=this.supportsNormalTexture?1:0,this.saoMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.saoMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?s:this.depthRenderTarget.texture,this.saoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.saoMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.blending=Ui,this.vBlurMaterial=new Yt({uniforms:pn.clone(pd.uniforms),defines:Object.assign({},pd.defines),vertexShader:pd.vertexShader,fragmentShader:pd.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?s:this.depthRenderTarget.texture,this.vBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.vBlurMaterial.blending=Ui,this.hBlurMaterial=new Yt({uniforms:pn.clone(pd.uniforms),defines:Object.assign({},pd.defines),vertexShader:pd.vertexShader,fragmentShader:pd.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?s:this.depthRenderTarget.texture,this.hBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.hBlurMaterial.blending=Ui,this.materialCopy=new Yt({uniforms:pn.clone(aa.uniforms),vertexShader:aa.vertexShader,fragmentShader:aa.fragmentShader,blending:Ui}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=Fp,this.materialCopy.blendSrc=Vy,this.materialCopy.blendDst=mf,this.materialCopy.blendEquation=Sa,this.materialCopy.blendSrcAlpha=Gy,this.materialCopy.blendDstAlpha=mf,this.materialCopy.blendEquationAlpha=Sa,this.depthCopy=new Yt({uniforms:pn.clone(R3.uniforms),vertexShader:R3.vertexShader,fragmentShader:R3.fragmentShader,blending:Ui}),this.fsQuad=new sa(null)}render(e,t,i){if(this.renderToScreen&&(this.materialCopy.blending=Ui,this.materialCopy.uniforms.tDiffuse.value=i.texture,this.materialCopy.needsUpdate=!0,this.renderPass(e,this.materialCopy,null)),1===this.params.output)return;e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();let r=e.autoClear;e.autoClear=!1,e.setRenderTarget(this.depthRenderTarget),e.clear(),this.saoMaterial.uniforms.bias.value=this.params.saoBias,this.saoMaterial.uniforms.intensity.value=this.params.saoIntensity,this.saoMaterial.uniforms.scale.value=this.params.saoScale,this.saoMaterial.uniforms.kernelRadius.value=this.params.saoKernelRadius,this.saoMaterial.uniforms.minResolution.value=this.params.saoMinResolution,this.saoMaterial.uniforms.cameraNear.value=this.camera.near,this.saoMaterial.uniforms.cameraFar.value=this.camera.far;let n=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms.depthCutoff.value=n,this.hBlurMaterial.uniforms.depthCutoff.value=n,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius),(this.prevStdDev!==this.params.saoBlurStdDev||this.prevNumSamples!==this.params.saoBlurRadius)&&(Z_.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new le(0,1)),Z_.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new le(1,0)),this.prevStdDev=this.params.saoBlurStdDev,this.prevNumSamples=this.params.saoBlurRadius),e.setClearColor(0),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.supportsDepthTextureExtension||this.renderOverride(e,this.depthMaterial,this.depthRenderTarget,0,1),this.supportsNormalTexture&&this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.renderPass(e,this.saoMaterial,this.saoRenderTarget,16777215,1),this.params.saoBlur&&(this.renderPass(e,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1),this.renderPass(e,this.hBlurMaterial,this.saoRenderTarget,16777215,1));let s=this.materialCopy;3===this.params.output?this.supportsDepthTextureExtension?(this.materialCopy.uniforms.tDiffuse.value=this.beautyRenderTarget.depthTexture,this.materialCopy.needsUpdate=!0):(this.depthCopy.uniforms.tDiffuse.value=this.depthRenderTarget.texture,this.depthCopy.needsUpdate=!0,s=this.depthCopy):4===this.params.output?(this.materialCopy.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.materialCopy.needsUpdate=!0):(this.materialCopy.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.materialCopy.needsUpdate=!0),0===this.params.output?s.blending=Fp:s.blending=Ui,this.renderPass(e,s,this.renderToScreen?null:i),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=r}renderPass(e,t,i,r,n){e.getClearColor(this.originalClearColor);let s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,null!=r&&(e.setClearColor(r),e.setClearAlpha(n||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,i,r,n){e.getClearColor(this.originalClearColor);let s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,r=t.clearColor||r,n=t.clearAlpha||n,null!=r&&(e.setClearColor(r),e.setClearAlpha(n||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.beautyRenderTarget.setSize(e,t),this.saoRenderTarget.setSize(e,t),this.blurIntermediateRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.depthRenderTarget.setSize(e,t),this.saoMaterial.uniforms.size.value.set(e,t),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.uniforms.size.value.set(e,t),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.uniforms.size.value.set(e,t),this.hBlurMaterial.needsUpdate=!0}dispose(){this.saoRenderTarget.dispose(),this.blurIntermediateRenderTarget.dispose(),this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.depthRenderTarget.dispose(),this.depthMaterial.dispose(),this.normalMaterial.dispose(),this.saoMaterial.dispose(),this.vBlurMaterial.dispose(),this.hBlurMaterial.dispose(),this.materialCopy.dispose(),this.depthCopy.dispose(),this.fsQuad.dispose()}};J_.OUTPUT={Beauty:1,Default:0,SAO:2,Depth:3,Normal:4};var M3=class extends as{constructor(e,t,i,r){super(),this.scene=e,this.camera=t,this.sampleLevel=4,this.unbiased=!0,this.clearColor=void 0!==i?i:0,this.clearAlpha=void 0!==r?r:0,this._oldClearColor=new je;let n=aa;this.copyUniforms=pn.clone(n.uniforms),this.copyMaterial=new Yt({uniforms:this.copyUniforms,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blending:Fp,blendEquation:Sa,blendDst:ky,blendDstAlpha:ky,blendSrc:Mx,blendSrcAlpha:ky}),this.fsQuad=new sa(this.copyMaterial)}dispose(){this.sampleRenderTarget&&(this.sampleRenderTarget.dispose(),this.sampleRenderTarget=null),this.copyMaterial.dispose(),this.fsQuad.dispose()}setSize(e,t){this.sampleRenderTarget&&this.sampleRenderTarget.setSize(e,t)}render(e,t,i){this.sampleRenderTarget||(this.sampleRenderTarget=new Vr(i.width,i.height),this.sampleRenderTarget.texture.name="SSAARenderPass.sample");let r=ANt[Math.max(0,Math.min(this.sampleLevel,5))],n=e.autoClear;e.autoClear=!1,e.getClearColor(this._oldClearColor);let s=e.getClearAlpha(),a=1/r.length;this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture;let o={fullWidth:i.width,fullHeight:i.height,offsetX:0,offsetY:0,width:i.width,height:i.height},l=Object.assign({},this.camera.view);l.enabled&&Object.assign(o,l);for(let i=0;id?(s=1,a=0):(s=0,a=1);let f=p-s+u,m=d-a+u,g=p-1+2*u,y=d-1+2*u,v=255&l,T=255&h,x=this.perm[v+this.perm[T]]%12,b=this.perm[v+s+this.perm[T+a]]%12,_=this.perm[v+1+this.perm[T+1]]%12,E=.5-p*p-d*d;E<0?i=0:(E*=E,i=E*E*this.dot(this.grad3[x],p,d));let w=.5-f*f-m*m;w<0?r=0:(w*=w,r=w*w*this.dot(this.grad3[b],f,m));let S=.5-g*g-y*y;return S<0?n=0:(S*=S,n=S*S*this.dot(this.grad3[_],g,y)),70*(i+r+n)}noise3d(e,t,i){let r,n,s,a,o,l,h,u,c,p,d=.3333333333333333*(e+t+i),f=Math.floor(e+d),m=Math.floor(t+d),g=Math.floor(i+d),y=1/6,v=(f+m+g)*y,T=e-(f-v),x=t-(m-v),b=i-(g-v);T>=x?x>=b?(o=1,l=0,h=0,u=1,c=1,p=0):T>=b?(o=1,l=0,h=0,u=1,c=0,p=1):(o=0,l=0,h=1,u=1,c=0,p=1):xb?32:0)+(x>_?16:0)+(b>_?8:0)+(x>E?4:0)+(b>E?2:0)+(_>E?1:0),S=u[w][0]>=3?1:0,I=u[w][1]>=3?1:0,M=u[w][2]>=3?1:0,A=u[w][3]>=3?1:0,D=u[w][0]>=2?1:0,O=u[w][1]>=2?1:0,R=u[w][2]>=2?1:0,C=u[w][3]>=2?1:0,N=u[w][0]>=1?1:0,P=u[w][1]>=1?1:0,L=u[w][2]>=1?1:0,F=u[w][3]>=1?1:0,U=x-S+d,k=b-I+d,B=_-M+d,H=E-A+d,G=x-D+2*d,z=b-O+2*d,V=_-R+2*d,j=E-C+2*d,W=x-N+3*d,Y=b-P+3*d,X=_-L+3*d,q=E-F+3*d,Z=x-1+4*d,K=b-1+4*d,J=_-1+4*d,$=E-1+4*d,Q=255&m,ee=255&g,te=255&y,ie=255&v,re=c[Q+c[ee+c[te+c[ie]]]]%32,ne=c[Q+S+c[ee+I+c[te+M+c[ie+A]]]]%32,se=c[Q+D+c[ee+O+c[te+R+c[ie+C]]]]%32,ae=c[Q+N+c[ee+P+c[te+L+c[ie+F]]]]%32,oe=c[Q+1+c[ee+1+c[te+1+c[ie+1]]]]%32,le=.6-x*x-b*b-_*_-E*E;le<0?n=0:(le*=le,n=le*le*this.dot4(h[re],x,b,_,E));let he=.6-U*U-k*k-B*B-H*H;he<0?s=0:(he*=he,s=he*he*this.dot4(h[ne],U,k,B,H));let ue=.6-G*G-z*z-V*V-j*j;ue<0?a=0:(ue*=ue,a=ue*ue*this.dot4(h[se],G,z,V,j));let ce=.6-W*W-Y*Y-X*X-q*q;ce<0?o=0:(ce*=ce,o=ce*ce*this.dot4(h[ae],W,Y,X,q));let pe=.6-Z*Z-K*K-J*J-$*$;return pe<0?l=0:(pe*=pe,l=pe*pe*this.dot4(h[oe],Z,K,J,$)),27*(n+s+a+o+l)}},Q_={defines:{PERSPECTIVE_CAMERA:1,KERNEL_SIZE:32},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},tNoise:{value:null},kernel:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new le},cameraProjectionMatrix:{value:new Be},cameraInverseProjectionMatrix:{value:new Be},kernelRadius:{value:8},minDistance:{value:.005},maxDistance:{value:.05}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNoise;\n\n\t\tuniform vec3 kernel[ KERNEL_SIZE ];\n\n\t\tuniform vec2 resolution;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float kernelRadius;\n\t\tuniform float minDistance; // avoid artifacts caused by neighbour fragments with minimal depth difference\n\t\tuniform float maxDistance; // avoid the influence of fragments which are too far away\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t}\n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec2 screenPosition ) {\n\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\n\t\t\tvec3 viewPosition = getViewPosition( vUv, depth, viewZ );\n\t\t\tvec3 viewNormal = getViewNormal( vUv );\n\n\t\t\tvec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );\n\t\t\tvec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );\n\n\t\t\t// compute matrix used to reorient a kernel vector\n\n\t\t\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );\n\t\t\tvec3 bitangent = cross( viewNormal, tangent );\n\t\t\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );\n\n\t\t float occlusion = 0.0;\n\n\t\t for ( int i = 0; i < KERNEL_SIZE; i ++ ) {\n\n\t\t\t\tvec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space\n\t\t\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelRadius ); // calculate sample point\n\n\t\t\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC\n\t\t\t\tsamplePointNDC /= samplePointNDC.w;\n\n\t\t\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates\n\n\t\t\t\tfloat realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture\n\t\t\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar ); // compute linear depth of the sample view Z value\n\t\t\t\tfloat delta = sampleDepth - realDepth;\n\n\t\t\t\tif ( delta > minDistance && delta < maxDistance ) { // if fragment is before sample point, increase occlusion\n\n\t\t\t\t\tocclusion += 1.0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tocclusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 );\n\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 );\n\n\t\t}"},eS={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:"varying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"uniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getLinearDepth( vUv );\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - depth ), 1.0 );\n\n\t\t}"},tS={uniforms:{tDiffuse:{value:null},resolution:{value:new le}},vertexShader:"varying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"uniform sampler2D tDiffuse;\n\n\t\tuniform vec2 resolution;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec2 texelSize = ( 1.0 / resolution );\n\t\t\tfloat result = 0.0;\n\n\t\t\tfor ( int i = - 2; i <= 2; i ++ ) {\n\n\t\t\t\tfor ( int j = - 2; j <= 2; j ++ ) {\n\n\t\t\t\t\tvec2 offset = ( vec2( float( i ), float( j ) ) ) * texelSize;\n\t\t\t\t\tresult += texture2D( tDiffuse, vUv + offset ).r;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = vec4( vec3( result / ( 5.0 * 5.0 ) ), 1.0 );\n\n\t\t}"},rc=class extends as{constructor(e,t,i,r){super(),this.width=void 0!==i?i:512,this.height=void 0!==r?r:512,this.clear=!0,this.camera=t,this.scene=e,this.kernelRadius=8,this.kernelSize=32,this.kernel=[],this.noiseTexture=null,this.output=0,this.minDistance=.005,this.maxDistance=.1,this._visibilityCache=new Map,this.generateSampleKernel(),this.generateRandomKernelRotations();let n=new cf;n.format=Tp,n.type=gp,this.beautyRenderTarget=new Vr(this.width,this.height),this.normalRenderTarget=new Vr(this.width,this.height,{minFilter:Di,magFilter:Di,depthTexture:n}),this.ssaoRenderTarget=new Vr(this.width,this.height),this.blurRenderTarget=this.ssaoRenderTarget.clone(),this.ssaoMaterial=new Yt({defines:Object.assign({},Q_.defines),uniforms:pn.clone(Q_.uniforms),vertexShader:Q_.vertexShader,fragmentShader:Q_.fragmentShader,blending:Ui}),this.ssaoMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssaoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssaoMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.ssaoMaterial.uniforms.tNoise.value=this.noiseTexture,this.ssaoMaterial.uniforms.kernel.value=this.kernel,this.ssaoMaterial.uniforms.cameraNear.value=this.camera.near,this.ssaoMaterial.uniforms.cameraFar.value=this.camera.far,this.ssaoMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new pf,this.normalMaterial.blending=Ui,this.blurMaterial=new Yt({defines:Object.assign({},tS.defines),uniforms:pn.clone(tS.uniforms),vertexShader:tS.vertexShader,fragmentShader:tS.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new Yt({defines:Object.assign({},eS.defines),uniforms:pn.clone(eS.uniforms),vertexShader:eS.vertexShader,fragmentShader:eS.fragmentShader,blending:Ui}),this.depthRenderMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new Yt({uniforms:pn.clone(aa.uniforms),vertexShader:aa.vertexShader,fragmentShader:aa.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:Vy,blendDst:mf,blendEquation:Sa,blendSrcAlpha:Gy,blendDstAlpha:mf,blendEquationAlpha:Sa}),this.fsQuad=new sa(null),this.originalClearColor=new je}dispose(){this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.ssaoRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.normalMaterial.dispose(),this.blurMaterial.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(e,t){switch(!1===e.capabilities.isWebGL2&&(this.noiseTexture.format=nC),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.overrideVisibility(),this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.restoreVisibility(),this.ssaoMaterial.uniforms.kernelRadius.value=this.kernelRadius,this.ssaoMaterial.uniforms.minDistance.value=this.minDistance,this.ssaoMaterial.uniforms.maxDistance.value=this.maxDistance,this.renderPass(e,this.ssaoMaterial,this.ssaoRenderTarget),this.renderPass(e,this.blurMaterial,this.blurRenderTarget),this.output){case rc.OUTPUT.SSAO:this.copyMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.copyMaterial.blending=Ui,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case rc.OUTPUT.Blur:this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Ui,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case rc.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Ui,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case rc.OUTPUT.Depth:this.renderPass(e,this.depthRenderMaterial,this.renderToScreen?null:t);break;case rc.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=Ui,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case rc.OUTPUT.Default:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Ui,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Fp,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;default:console.warn("THREE.SSAOPass: Unknown output type.")}}renderPass(e,t,i,r,n){e.getClearColor(this.originalClearColor);let s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,null!=r&&(e.setClearColor(r),e.setClearAlpha(n||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,i,r,n){e.getClearColor(this.originalClearColor);let s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,r=t.clearColor||r,n=t.clearAlpha||n,null!=r&&(e.setClearColor(r),e.setClearAlpha(n||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.width=e,this.height=t,this.beautyRenderTarget.setSize(e,t),this.ssaoRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.ssaoMaterial.uniforms.resolution.value.set(e,t),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t)}generateSampleKernel(){let e=this.kernelSize,t=this.kernel;for(let i=0;i\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat fSigma = float(SIGMA);\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, fSigma);\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, fSigma);\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new Yt({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}};dd.BlurDirectionX=new le(1,0),dd.BlurDirectionY=new le(0,1);var JDe={uniforms:{tDiffuse:{value:null},resolution:{value:new le(1/1024,1/512)}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\tprecision highp float;\n\n\tuniform sampler2D tDiffuse;\n\n\tuniform vec2 resolution;\n\n\tvarying vec2 vUv;\n\n\t// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n\t//----------------------------------------------------------------------------------\n\t// File: es3-keplerFXAAassetsshaders/FXAA_DefaultES.frag\n\t// SDK Version: v3.00\n\t// Email: gameworks@nvidia.com\n\t// Site: http://developer.nvidia.com/\n\t//\n\t// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n\t//\n\t// Redistribution and use in source and binary forms, with or without\n\t// modification, are permitted provided that the following conditions\n\t// are met:\n\t// * Redistributions of source code must retain the above copyright\n\t// notice, this list of conditions and the following disclaimer.\n\t// * Redistributions in binary form must reproduce the above copyright\n\t// notice, this list of conditions and the following disclaimer in the\n\t// documentation and/or other materials provided with the distribution.\n\t// * Neither the name of NVIDIA CORPORATION nor the names of its\n\t// contributors may be used to endorse or promote products derived\n\t// from this software without specific prior written permission.\n\t//\n\t// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY\n\t// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n\t// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n\t// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n\t// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n\t// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n\t// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t//\n\t//----------------------------------------------------------------------------------\n\n\t#ifndef FXAA_DISCARD\n\t\t\t//\n\t\t\t// Only valid for PC OpenGL currently.\n\t\t\t// Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n\t\t\t//\n\t\t\t// 1 = Use discard on pixels which don't need AA.\n\t\t\t// For APIs which enable concurrent TEX+ROP from same surface.\n\t\t\t// 0 = Return unchanged color on pixels which don't need AA.\n\t\t\t//\n\t\t\t#define FXAA_DISCARD 0\n\t#endif\n\n\t/*--------------------------------------------------------------------------*/\n\t#define FxaaTexTop(t, p) texture2D(t, p, -100.0)\n\t#define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), -100.0)\n\t/*--------------------------------------------------------------------------*/\n\n\t#define NUM_SAMPLES 5\n\n\t// assumes colors have premultipliedAlpha, so that the calculated color contrast is scaled by alpha\n\tfloat contrast( vec4 a, vec4 b ) {\n\t\t\tvec4 diff = abs( a - b );\n\t\t\treturn max( max( max( diff.r, diff.g ), diff.b ), diff.a );\n\t}\n\n\t/*============================================================================\n\n\t\t\t\t\t\t\t\t\tFXAA3 QUALITY - PC\n\n\t============================================================================*/\n\n\t/*--------------------------------------------------------------------------*/\n\tvec4 FxaaPixelShader(\n\t\t\tvec2 posM,\n\t\t\tsampler2D tex,\n\t\t\tvec2 fxaaQualityRcpFrame,\n\t\t\tfloat fxaaQualityEdgeThreshold,\n\t\t\tfloat fxaaQualityinvEdgeThreshold\n\t) {\n\t\t\tvec4 rgbaM = FxaaTexTop(tex, posM);\n\t\t\tvec4 rgbaS = FxaaTexOff(tex, posM, vec2( 0.0, 1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaE = FxaaTexOff(tex, posM, vec2( 1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaN = FxaaTexOff(tex, posM, vec2( 0.0,-1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaW = FxaaTexOff(tex, posM, vec2(-1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\t// . S .\n\t\t\t// W M E\n\t\t\t// . N .\n\n\t\t\tbool earlyExit = max( max( max(\n\t\t\t\t\tcontrast( rgbaM, rgbaN ),\n\t\t\t\t\tcontrast( rgbaM, rgbaS ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaE ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaW ) )\n\t\t\t\t\t< fxaaQualityEdgeThreshold;\n\t\t\t// . 0 .\n\t\t\t// 0 0 0\n\t\t\t// . 0 .\n\n\t\t\t#if (FXAA_DISCARD == 1)\n\t\t\t\t\tif(earlyExit) FxaaDiscard;\n\t\t\t#else\n\t\t\t\t\tif(earlyExit) return rgbaM;\n\t\t\t#endif\n\n\t\t\tfloat contrastN = contrast( rgbaM, rgbaN );\n\t\t\tfloat contrastS = contrast( rgbaM, rgbaS );\n\t\t\tfloat contrastE = contrast( rgbaM, rgbaE );\n\t\t\tfloat contrastW = contrast( rgbaM, rgbaW );\n\n\t\t\tfloat relativeVContrast = ( contrastN + contrastS ) - ( contrastE + contrastW );\n\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\tbool horzSpan = relativeVContrast > 0.;\n\t\t\t// . 1 .\n\t\t\t// 0 0 0\n\t\t\t// . 1 .\n\n\t\t\t// 45 deg edge detection and corners of objects, aka V/H contrast is too similar\n\t\t\tif( abs( relativeVContrast ) < .3 ) {\n\t\t\t\t\t// locate the edge\n\t\t\t\t\tvec2 dirToEdge;\n\t\t\t\t\tdirToEdge.x = contrastE > contrastW ? 1. : -1.;\n\t\t\t\t\tdirToEdge.y = contrastS > contrastN ? 1. : -1.;\n\t\t\t\t\t// . 2 . . 1 .\n\t\t\t\t\t// 1 0 2 ~= 0 0 1\n\t\t\t\t\t// . 1 . . 0 .\n\n\t\t\t\t\t// tap 2 pixels and see which ones are \"outside\" the edge, to\n\t\t\t\t\t// determine if the edge is vertical or horizontal\n\n\t\t\t\t\tvec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongH = contrast( rgbaM, rgbaAlongH );\n\t\t\t\t\t// . 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 H\n\n\t\t\t\t\tvec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongV = contrast( rgbaM, rgbaAlongV );\n\t\t\t\t\t// V 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 .\n\n\t\t\t\t\trelativeVContrast = matchAlongV - matchAlongH;\n\t\t\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\t\t\tif( abs( relativeVContrast ) < .3 ) { // 45 deg edge\n\t\t\t\t\t\t\t// 1 1 .\n\t\t\t\t\t\t\t// 0 0 1\n\t\t\t\t\t\t\t// . 0 1\n\n\t\t\t\t\t\t\t// do a simple blur\n\t\t\t\t\t\t\treturn mix(\n\t\t\t\t\t\t\t\t\trgbaM,\n\t\t\t\t\t\t\t\t\t(rgbaN + rgbaS + rgbaE + rgbaW) * .25,\n\t\t\t\t\t\t\t\t\t.4\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\thorzSpan = relativeVContrast > 0.;\n\t\t\t}\n\n\t\t\tif(!horzSpan) rgbaN = rgbaW;\n\t\t\tif(!horzSpan) rgbaS = rgbaE;\n\t\t\t// . 0 . 1\n\t\t\t// 1 0 1 -> 0\n\t\t\t// . 0 . 1\n\n\t\t\tbool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS );\n\t\t\tif(!pairN) rgbaN = rgbaS;\n\n\t\t\tvec2 offNP;\n\t\t\toffNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n\t\t\toffNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n\n\t\t\tbool doneN = false;\n\t\t\tbool doneP = false;\n\n\t\t\tfloat nDist = 0.;\n\t\t\tfloat pDist = 0.;\n\n\t\t\tvec2 posN = posM;\n\t\t\tvec2 posP = posM;\n\n\t\t\tint iterationsUsed = 0;\n\t\t\tint iterationsUsedN = 0;\n\t\t\tint iterationsUsedP = 0;\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i++ ) {\n\t\t\t\t\titerationsUsed = i;\n\n\t\t\t\t\tfloat increment = float(i + 1);\n\n\t\t\t\t\tif(!doneN) {\n\t\t\t\t\t\t\tnDist += increment;\n\t\t\t\t\t\t\tposN = posM + offNP * nDist;\n\t\t\t\t\t\t\tvec4 rgbaEndN = FxaaTexTop(tex, posN.xy);\n\t\t\t\t\t\t\tdoneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN );\n\t\t\t\t\t\t\titerationsUsedN = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(!doneP) {\n\t\t\t\t\t\t\tpDist += increment;\n\t\t\t\t\t\t\tposP = posM - offNP * pDist;\n\t\t\t\t\t\t\tvec4 rgbaEndP = FxaaTexTop(tex, posP.xy);\n\t\t\t\t\t\t\tdoneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN );\n\t\t\t\t\t\t\titerationsUsedP = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(doneN || doneP) break;\n\t\t\t}\n\n\n\t\t\tif ( !doneP && !doneN ) return rgbaM; // failed to find end of edge\n\n\t\t\tfloat dist = min(\n\t\t\t\t\tdoneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1.,\n\t\t\t\t\tdoneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1.\n\t\t\t);\n\n\t\t\t// hacky way of reduces blurriness of mostly diagonal edges\n\t\t\t// but reduces AA quality\n\t\t\tdist = pow(dist, .5);\n\n\t\t\tdist = 1. - dist;\n\n\t\t\treturn mix(\n\t\t\t\t\trgbaM,\n\t\t\t\t\trgbaN,\n\t\t\t\t\tdist * .5\n\t\t\t);\n\t}\n\n\tvoid main() {\n\t\t\tconst float edgeDetectionQuality = .2;\n\t\t\tconst float invEdgeDetectionQuality = 1. / edgeDetectionQuality;\n\n\t\t\tgl_FragColor = FxaaPixelShader(\n\t\t\t\t\tvUv,\n\t\t\t\t\ttDiffuse,\n\t\t\t\t\tresolution,\n\t\t\t\t\tedgeDetectionQuality, // [0,1] contrast needed, otherwise early discard\n\t\t\t\t\tinvEdgeDetectionQuality\n\t\t\t);\n\n\t}\n\t"},UG=kn(ql(),1),ONt="bottomBar",PNt={stats:{icon:{default:"icon-showsectionplane"},mutexIds:["statistics","cameraInfo","tips"],onActive:e=>{e.viewer.showStats()},onDeactive:e=>{e.viewer.hideStats()}},statistics:{icon:{default:"icon-info",active:"icon-info-filled"},mutexIds:["stats","cameraInfo","tips"],onActive:e=>{let t=document.createElement("span");if(!e.viewer.scene)return void(t.textContent="Failed!");t.textContent="Comupting...";let i={components:{},points:0,faces:0,materials:{},lights:{}},r=["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"];e.viewer.scene.traverse((e=>{(e instanceof rt||e instanceof Ir||e instanceof nn)&&!r.includes(e.name)?((e,t)=>{if(t.components[e.type]?t.components[e.type]++:t.components[e.type]=1,e.geometry){let i=e.geometry;if(e instanceof rt)if(i.index&&i.index.count){let r=Math.round(i.index.count/3);e instanceof rn&&(r*=e.count),t.faces+=r}else if(i.groups.length>0)for(let e=0;e{t.materials[e]?t.materials[e]++:t.materials[e]=1},r=e.material;r instanceof zr?i(r.id):Array.isArray(r)&&r.forEach((e=>i(e.id)))})(e,i):e instanceof Dl&&(i.lights[e.type]?i.lights[e.type]++:i.lights[e.type]=1)}));let n=(e,i)=>{t.innerHTML+=`

${e}:${i}

`};t.innerHTML="";let s=` (${(e=>{var t;let i=null==(t=e.renderer)?void 0:t.domElement;return null==i?void 0:i.dataset.engine})(e.viewer)})`;if(n("Version",`${XT}${s}`),n("Components",JSON.stringify(i.components)),n("Points",i.points),n("Faces",i.faces),n("Materials",Object.keys(i.materials).length),n("Lights",JSON.stringify(i.lights)),"DxfViewer"===e.viewer.name){n("Entities",e.viewer.getEntitiesCount())}e.tooltip.setContent(t),e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()},onUpdate:e=>{let t=e.viewer.renderer,i=document.createElement("span"),r=(e,t)=>{i.innerHTML+=`

${e}:${t}

`};i.innerHTML="

-- Renderer Info --

";let n=null==t?void 0:t.info;r("Drawcalls",JSON.stringify(null==n?void 0:n.render.calls)),r("Points",JSON.stringify(null==n?void 0:n.render.points)),r("Lines",JSON.stringify(null==n?void 0:n.render.lines)),r("Triangles",JSON.stringify(null==n?void 0:n.render.triangles)),r("Geometries",JSON.stringify(null==n?void 0:n.memory.geometries)),r("Textures",JSON.stringify(null==n?void 0:n.memory.textures)),e.tooltip.updateChildContent(i)}},cameraInfo:{icon:{default:"icon-view",active:"icon-view-filled"},mutexIds:["stats","statistics","tips"],onActive:e=>{let t=()=>{if(!e.viewer||!e.viewer.camera||!e.viewer.controls)return;let i=e.viewer.camera,r=e.viewer.controls,n=e=>_t.numberToString(e),s=e=>_t.vectorToString(e),a=i.position,o=r instanceof $l?r.getTarget(new A):r.target;if(a){let t=document.createElement("span");t.innerHTML=`\n

Camera position:${s(a)}

\n

Camera target:${s(o)}

`,i instanceof Ji&&(t.innerHTML+=`\n

top: ${n(i.top)}, bottom: ${n(i.bottom)}, left: ${n(i.left)}, right: ${n(i.right)}

\n

zoom: ${n(i.zoom)}

`),e.tooltip.setContent(t)}e.active||window.removeEventListener("mouseup",t)};if(t(),window.addEventListener("mouseup",t),"BimViewer"===e.viewer.name){let i=e.viewer.controls;null==i||i.addEventListener("update",t)}else e.viewer.controls.addEventListener("change",t);e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()}},tips:{icon:{default:"icon-more"},mutexIds:["stats","cameraInfo","cameraInfo"],onActive:e=>{let t=document.createElement("span");"BimViewer"===e.viewer.name?t.innerHTML="\n

W: Move forward

\n

A: Move backward

\n

S: Move left

\n

D: Move right

\n

Q: Rise up

\n

E: Lower down

\n

↑: Rotate up

\n

↓: Rotate down

\n

←: Rotate to left

\n

→: Rotate to right

\n ":"DxfViewer"===e.viewer.name?t.innerHTML="\n

↑: Move up

\n

↓: Move down

\n

←: Move to left

\n

→: Move to right

\n ":"BaseViewer"===e.viewer.name?t.innerHTML="\n

↑: Rotate up

\n

↓: Rotate down

\n

←: Rotate to left

\n

→: Rotate to right

\n ":t.innerHTML="\n

Nothing to show

\n ",e.tooltip.setContent(t),e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()}}},om=class{constructor(e){this.viewer=e,this.itemList=new Map,this.init()}update(){this.itemList.forEach((e=>{e.update()}))}init(){var e;let t=document.createElement("div");t.id=ONt,t.classList.add("bottom-bar"),(0,UG.forEach)(PNt,((e,i)=>{let r=this.createItem(this.viewer,i,e);t.appendChild(r.element)})),this.element=t,null==(e=this.viewer.widgetContainer)||e.appendChild(this.element)}createItem(e,t,i){let r=new HG(e,this,t,i);return this.itemList.set(t,r),r}},HG=class{constructor(e,t,i,r){this.viewer=e,this.bottomBar=t,this.menuId=i,this.cfg=r,this.eventBus=fE(),this.active=!1,this.itemconfig=r,this.element=this.createButton(this.menuId,r),this.tooltip=new mh(i+"-tooltip",null,{parentNode:e.widgetContainer}),this.eventBus.on("activeChange",(e=>{e?(this.element.classList.add("active"),(0,UG.forEach)(r.mutexIds,(e=>{var t;let i=null==(t=this.bottomBar)?void 0:t.itemList.get(e);i&&i.active&&i.setActive(!1)})),r.onActive&&r.onActive(this)):(this.element.classList.remove("active"),r.onDeactive&&r.onDeactive(this)),this.element instanceof HTMLElement&&LC(this.element.classList,r.icon,this.active)}))}createButton(e,t){let i=document.createElement("i");i.id=e;let{default:r="icon-new",iconFont:n=uo}=t.icon;return i.classList.add("icon"),i.classList.add(n),i.classList.add(r),i.onclick=()=>{this.active=!this.active,t.onClick&&t.onClick(this),this.eventBus.emit("activeChange",this.active)},i}setActive(e){this.active=e,this.eventBus.emit("activeChange",this.active)}update(){this.active&&this.itemconfig.onUpdate&&this.itemconfig.onUpdate(this)}},rS=kn(ql(),1),NNt="gemini-context-menu",C3=class{constructor(e){this.itemList=[],this.id=e.id||NNt,this.container=e.container||document.body,this.context=e.context||{},this.element=this.createMenuUI(e.items||[]),this.handleClick=()=>{this.hide()},!1!==e.hideOnMouseDown&&document.addEventListener("click",this.handleClick),this.hide()}isEnable(e){return e.getEnabled?e.getEnabled(this.context):void 0===e.enabled||e.enabled}isShown(e){return e.getShown?e.getShown(this.context):void 0===e.shown||e.shown}getTitle(e){return e.title||e.getTitle&&e.getTitle(this.context)||""}createMenuUI(e){let t=document.createElement("div");t.id=this.id,t.classList.add("context-menu");let i=this.createMenuGroup(e);return t.append(...i),this.container.appendChild(t),t}createMenuGroup(e){return(0,rS.map)(e,(e=>{let t=document.createElement("ul");return(0,rS.forEach)(e,(e=>{let i=this.createMenuItem(e);t.append(i)})),t}))}createMenuItem(e){let t=document.createElement("li");return t.innerHTML=this.getTitle(e),t.onclick=()=>e.doAction&&e.doAction(this.context),this.isEnable(e)?t.classList.remove("disabled"):t.classList.add("disabled"),this.isShown(e)?t.removeAttribute("hidden"):t.setAttribute("hidden",""),this.itemList.push([e,t]),t}updateMenuItems(){(0,rS.forEach)(this.itemList,(([e,t])=>{this.isEnable(e)?t.classList.remove("disabled"):t.classList.add("disabled"),this.isShown(e)?t.removeAttribute("hidden"):t.setAttribute("hidden",""),t.innerHTML=this.getTitle(e)}))}showMenuElement(e,t){let i=this.element.offsetHeight,r=this.element.offsetWidth;t+i>window.innerHeight&&(t=window.innerHeight-i-5),e+r>window.innerWidth&&(e=window.innerWidth-r-5),this.element.style.left=e+"px",this.element.style.top=t+"px"}show(e,t){this.updateMenuItems(),this.element.removeAttribute("hidden"),this.showMenuElement(e,t)}hide(){this.element.setAttribute("hidden","")}destroy(){document.removeEventListener("click",this.handleClick),this.container.removeChild(this.element)}},To=e=>({bimViewer:t})=>t.translate(`ContextMenu.${e}`),eCe=e=>{var t;let i=0;return null==(t=e.scene)||t.traverseVisible((e=>{e instanceof rt&&i++})),i>0},LNt=e=>{var t,i;let r=0;return null==(t=e.scene)||t.traverse((e=>{e instanceof rt&&r++})),null==(i=e.scene)||i.traverseVisible((e=>{e instanceof rt&&r--})),r>0},BG=e=>e.hasTransparentObject(),A3=e=>!1!==e.userData.selectable,QDe=(e,t,i,r)=>{let n=e.selectedObject;return!(!n||!t||n.id!==t.id)&&(null!=i&&n.isInstancedMesh?i===n.userData.instanceId:null==r||!qi.isMergedMesh(n)||r===n.userData.batchId)},FNt={getTitle:To("viewFitEntity"),getShown:({hit:e})=>e,doAction:({bimViewer:e,hit:t})=>{e.flyToObject(t)}},HNt={getTitle:To("viewFitAll"),getEnabled:({bimViewer:e})=>eCe(e),doAction:({bimViewer:e})=>e.viewFitAll()},UNt={getTitle:To("hideEntity"),getShown:({hit:e})=>e,doAction:({bimViewer:e,hit:t})=>{A3(t)&&(t.visible=!1,e.enableRender())}},BNt={getTitle:To("hideOthers"),getShown:({hit:e})=>e,doAction:({bimViewer:e,hit:t})=>{var i;null==(i=e.scene)||i.traverse((e=>{e instanceof rt&&A3(e)&&(e.visible=!1)})),t.visible=!0,e.enableRender()}},kNt={getTitle:To("hideAll"),getEnabled:({bimViewer:e})=>eCe(e),doAction:({bimViewer:e})=>{var t;null==(t=e.scene)||t.traverse((e=>{e instanceof rt&&A3(e)&&(e.visible=!1)})),e.enableRender()}},GNt={getTitle:To("showAll"),getEnabled:({bimViewer:e})=>LNt(e),doAction:({bimViewer:e})=>{var t;null==(t=e.scene)||t.traverse((e=>{e instanceof rt&&A3(e)&&(e.visible=!0)})),e.enableRender()}},VNt={getTitle:({hit:e,bimViewer:t,instanceId:i,batchId:r})=>QDe(t,e,i,r)?To("deselect")({bimViewer:t}):To("select")({bimViewer:t}),getShown:({hit:e})=>e,doAction:({hit:e,bimViewer:t,instanceId:i,batchId:r})=>{!1!==e.userData.selectable?QDe(t,e,i,r)?t.clearSelection():t.selectObject(e,e.instanceId,r):ne.debug(`[ContextMenu] object(type: ${e.type}, name: ${e.name}) not selectable!`)}},zNt={getTitle:To("selectNone"),getEnabled:({bimViewer:e})=>e.selectedObject,doAction:({bimViewer:e})=>e.clearSelection()},jNt={getTitle:To("xRayAll"),getShown:({bimViewer:e})=>!BG(e),doAction:({bimViewer:e})=>{e.addOrRemoveObjectOpacity(!0),e.enableRender()}},WNt={getTitle:To("xRayNone"),getEnabled:({bimViewer:e})=>BG(e),doAction:({bimViewer:e})=>{BG(e)&&(e.addOrRemoveObjectOpacity(!1),e.enableRender())}},qNt={getTitle:To("xRayEntity"),getShown:({hit:e})=>e,doAction:({bimViewer:e,hit:t})=>{e.addOrRemoveObjectOpacity(!0,void 0,[t.id],void 0)}},YNt={getTitle:To("xRayOthers"),getShown:({hit:e})=>e,doAction:({bimViewer:e,hit:t})=>{e.addOrRemoveObjectOpacity(!0,.1,void 0,[t.id]),e.enableRender()}},XNt={getTitle:({bimViewer:e})=>{let t="";switch(e.sectionType){case"PickPlaneSection":t="*showSectionPlane";break;case"AxisPlaneSection":t="showAxisSection";break;case"ObjectsBoxSection":t="*showSectionBox"}return e.translate(`ContextMenu.${t}`)},getShown:({bimViewer:e,section:t})=>("PickPlaneSection"===e.sectionType||"AxisPlaneSection"===e.sectionType)&&(!!t&&!t.isShowSectionPlane),doAction:({bimViewer:e,section:t})=>{("PickPlaneSection"===e.sectionType||"AxisPlaneSection"===e.sectionType)&&(null==t||t.setSectionVisible(!0))}},$Nt={getTitle:({bimViewer:e})=>{let t="";switch(e.sectionType){case"PickPlaneSection":t="hideSectionPlane";break;case"AxisPlaneSection":t="hideAxisSection";break;case"ObjectsBoxSection":t="hideSectionBox"}return e.translate(`ContextMenu.${t}`)},getShown:e=>tCe(e),doAction:({bimViewer:e,section:t})=>{("PickPlaneSection"===e.sectionType||"AxisPlaneSection"===e.sectionType)&&(null==t||t.setSectionVisible(!1))}},KNt={getTitle:To("undoSection"),getShown:e=>tCe(e),doAction:({bimViewer:e,toolbar:t})=>{if("PickPlaneSection"===e.sectionType){let e=null==t?void 0:t.menuList.get("SectionPlane");null==e||e.setActive(!1)}else if("AxisPlaneSection"===e.sectionType){let e=null==t?void 0:t.menuList.get("SectionAxis");null==e||e.setActive(!1)}else if("ObjectsBoxSection"===e.sectionType){let e=null==t?void 0:t.menuList.get("SectionBox");null==e||e.setActive(!1)}}},tCe=({bimViewer:e,hit:t,section:i})=>("PickPlaneSection"===e.sectionType||"AxisPlaneSection"===e.sectionType)&&!!i&&i.isShowSectionPlane&&(null==t?void 0:t.name)===OB,rCe=[[XNt],[$Nt,KNt],[FNt,HNt],[UNt,BNt,kNt,GNt],[qNt,YNt,jNt,WNt],[VNt,zNt]];function ZNt(e){if(e&&"undefined"!=typeof window){var t=document.createElement("style");return t.setAttribute("type","text/css"),t.innerHTML=e,document.head.appendChild(t),e}}function ME(e,t){var i=e.__state.conversionName.toString(),r=Math.round(e.r),n=Math.round(e.g),s=Math.round(e.b),a=e.a,o=Math.round(e.h),l=e.s.toFixed(1),h=e.v.toFixed(1);if(t||"THREE_CHAR_HEX"===i||"SIX_CHAR_HEX"===i){for(var u=e.hex.toString(16);u.length<6;)u="0"+u;return"#"+u}return"CSS_RGB"===i?"rgb("+r+","+n+","+s+")":"CSS_RGBA"===i?"rgba("+r+","+n+","+s+","+a+")":"HEX"===i?"0x"+e.hex.toString(16):"RGB_ARRAY"===i?"["+r+","+n+","+s+"]":"RGBA_ARRAY"===i?"["+r+","+n+","+s+","+a+"]":"RGB_OBJ"===i?"{r:"+r+",g:"+n+",b:"+s+"}":"RGBA_OBJ"===i?"{r:"+r+",g:"+n+",b:"+s+",a:"+a+"}":"HSV_OBJ"===i?"{h:"+o+",s:"+l+",v:"+h+"}":"HSVA_OBJ"===i?"{h:"+o+",s:"+l+",v:"+h+",a:"+a+"}":"unknown format"}var iCe=Array.prototype.forEach,iS=Array.prototype.slice,mt={BREAK:{},extend:function(e){return this.each(iS.call(arguments,1),(function(t){(this.isObject(t)?Object.keys(t):[]).forEach(function(i){this.isUndefined(t[i])||(e[i]=t[i])}.bind(this))}),this),e},defaults:function(e){return this.each(iS.call(arguments,1),(function(t){(this.isObject(t)?Object.keys(t):[]).forEach(function(i){this.isUndefined(e[i])&&(e[i]=t[i])}.bind(this))}),this),e},compose:function(){var e=iS.call(arguments);return function(){for(var t=iS.call(arguments),i=e.length-1;i>=0;i--)t=[e[i].apply(this,t)];return t[0]}},each:function(e,t,i){if(e)if(iCe&&e.forEach&&e.forEach===iCe)e.forEach(t,i);else if(e.length===e.length+0){var r,n=void 0;for(n=0,r=e.length;n1?mt.toArray(arguments):arguments[0];return mt.each(JNt,(function(t){if(t.litmus(e))return mt.each(t.conversions,(function(t,i){if(nS=t.read(e),!1===O3&&!1!==nS)return O3=nS,nS.conversionName=i,nS.conversion=t,mt.BREAK})),mt.BREAK})),O3},nCe=void 0,N3={hsv_to_rgb:function(e,t,i){var r=Math.floor(e/60)%6,n=e/60-Math.floor(e/60),s=i*(1-t),a=i*(1-n*t),o=i*(1-(1-n)*t),l=[[i,o,s],[a,i,s],[s,i,o],[s,a,i],[o,s,i],[i,s,a]][r];return{r:255*l[0],g:255*l[1],b:255*l[2]}},rgb_to_hsv:function(e,t,i){var r=Math.min(e,t,i),n=Math.max(e,t,i),s=n-r,a=void 0;return 0===n?{h:NaN,s:0,v:0}:(a=e===n?(t-i)/s:t===n?2+(i-e)/s:4+(e-t)/s,(a/=6)<0&&(a+=1),{h:360*a,s:s/n,v:n/255})},rgb_to_hex:function(e,t,i){var r=this.hex_with_component(0,2,e);return r=this.hex_with_component(r,1,t),r=this.hex_with_component(r,0,i)},component_from_hex:function(e,t){return e>>8*t&255},hex_with_component:function(e,t,i){return i<<(nCe=8*t)|e&~(255<-1?t.length-t.indexOf(".")-1:0}var gCe=function(e){function t(e,i,r){ou(this,t);var n=um(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i)),s=r||{};return n.__min=s.min,n.__max=s.max,n.__step=s.step,mt.isUndefined(n.__step)?0===n.initialValue?n.__impliedStep=1:n.__impliedStep=Math.pow(10,Math.floor(Math.log(Math.abs(n.initialValue))/Math.LN10))/10:n.__impliedStep=n.__step,n.__precision=sCe(n.__impliedStep),n}return cm(t,U0),lu(t,[{key:"setValue",value:function(e){var i=e;return void 0!==this.__min&&ithis.__max&&(i=this.__max),void 0!==this.__step&&i%this.__step!=0&&(i=Math.round(i/this.__step)*this.__step),lm(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"setValue",this).call(this,i)}},{key:"min",value:function(e){return this.__min=e,this}},{key:"max",value:function(e){return this.__max=e,this}},{key:"step",value:function(e){return this.__step=e,this.__impliedStep=e,this.__precision=sCe(e),this}}]),t}();function nLt(e,t){var i=Math.pow(10,t);return Math.round(e*i)/i}var L3=function(e){function t(e,i,r){ou(this,t);var n=um(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i,r));n.__truncationSuspended=!1;var s=n,a=void 0;function o(){s.__onFinishChange&&s.__onFinishChange.call(s,s.getValue())}function l(e){var t=a-e.clientY;s.setValue(s.getValue()+t*s.__impliedStep),a=e.clientY}function h(){Ye.unbind(window,"mousemove",l),Ye.unbind(window,"mouseup",h),o()}return n.__input=document.createElement("input"),n.__input.setAttribute("type","text"),Ye.bind(n.__input,"change",(function(){var e=parseFloat(s.__input.value);mt.isNaN(e)||s.setValue(e)})),Ye.bind(n.__input,"blur",(function(){o()})),Ye.bind(n.__input,"mousedown",(function(e){Ye.bind(window,"mousemove",l),Ye.bind(window,"mouseup",h),a=e.clientY})),Ye.bind(n.__input,"keydown",(function(e){13===e.keyCode&&(s.__truncationSuspended=!0,this.blur(),s.__truncationSuspended=!1,o())})),n.updateDisplay(),n.domElement.appendChild(n.__input),n}return cm(t,gCe),lu(t,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():nLt(this.getValue(),this.__precision),lm(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}();function aCe(e,t,i,r,n){return r+(e-t)/(i-t)*(n-r)}var VG=function(e){function t(e,i,r,n,s){ou(this,t);var a=um(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i,{min:r,max:n,step:s})),o=a;function l(e){e.preventDefault();var t=o.__background.getBoundingClientRect();return o.setValue(aCe(e.clientX,t.left,t.right,o.__min,o.__max)),!1}function h(){Ye.unbind(window,"mousemove",l),Ye.unbind(window,"mouseup",h),o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}function u(e){var t=e.touches[0].clientX,i=o.__background.getBoundingClientRect();o.setValue(aCe(t,i.left,i.right,o.__min,o.__max))}function c(){Ye.unbind(window,"touchmove",u),Ye.unbind(window,"touchend",c),o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}return a.__background=document.createElement("div"),a.__foreground=document.createElement("div"),Ye.bind(a.__background,"mousedown",(function(e){document.activeElement.blur(),Ye.bind(window,"mousemove",l),Ye.bind(window,"mouseup",h),l(e)})),Ye.bind(a.__background,"touchstart",(function(e){1===e.touches.length&&(Ye.bind(window,"touchmove",u),Ye.bind(window,"touchend",c),u(e))})),Ye.addClass(a.__background,"slider"),Ye.addClass(a.__foreground,"slider-fg"),a.updateDisplay(),a.__background.appendChild(a.__foreground),a.domElement.appendChild(a.__background),a}return cm(t,gCe),lu(t,[{key:"updateDisplay",value:function(){var e=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*e+"%",lm(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}(),vCe=function(e){function t(e,i,r){ou(this,t);var n=um(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i)),s=n;return n.__button=document.createElement("div"),n.__button.innerHTML=void 0===r?"Fire":r,Ye.bind(n.__button,"click",(function(e){return e.preventDefault(),s.fire(),!1})),Ye.addClass(n.__button,"button"),n.domElement.appendChild(n.__button),n}return cm(t,U0),lu(t,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),t}(),zG=function(e){function t(e,i){ou(this,t);var r=um(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));r.__color=new Ns(r.getValue()),r.__temp=new Ns(0);var n=r;r.domElement=document.createElement("div"),Ye.makeSelectable(r.domElement,!1),r.__selector=document.createElement("div"),r.__selector.className="selector",r.__saturation_field=document.createElement("div"),r.__saturation_field.className="saturation-field",r.__field_knob=document.createElement("div"),r.__field_knob.className="field-knob",r.__field_knob_border="2px solid ",r.__hue_knob=document.createElement("div"),r.__hue_knob.className="hue-knob",r.__hue_field=document.createElement("div"),r.__hue_field.className="hue-field",r.__input=document.createElement("input"),r.__input.type="text",r.__input_textShadow="0 1px 1px ",Ye.bind(r.__input,"keydown",(function(e){13===e.keyCode&&u.call(this)})),Ye.bind(r.__input,"blur",u),Ye.bind(r.__selector,"mousedown",(function(){Ye.addClass(this,"drag").bind(window,"mouseup",(function(){Ye.removeClass(n.__selector,"drag")}))})),Ye.bind(r.__selector,"touchstart",(function(){Ye.addClass(this,"drag").bind(window,"touchend",(function(){Ye.removeClass(n.__selector,"drag")}))}));var s=document.createElement("div");function a(e){p(e),Ye.bind(window,"mousemove",p),Ye.bind(window,"touchmove",p),Ye.bind(window,"mouseup",l),Ye.bind(window,"touchend",l)}function o(e){d(e),Ye.bind(window,"mousemove",d),Ye.bind(window,"touchmove",d),Ye.bind(window,"mouseup",h),Ye.bind(window,"touchend",h)}function l(){Ye.unbind(window,"mousemove",p),Ye.unbind(window,"touchmove",p),Ye.unbind(window,"mouseup",l),Ye.unbind(window,"touchend",l),c()}function h(){Ye.unbind(window,"mousemove",d),Ye.unbind(window,"touchmove",d),Ye.unbind(window,"mouseup",h),Ye.unbind(window,"touchend",h),c()}function u(){var e=GG(this.value);!1!==e?(n.__color.__state=e,n.setValue(n.__color.toOriginal())):this.value=n.__color.toString()}function c(){n.__onFinishChange&&n.__onFinishChange.call(n,n.__color.toOriginal())}function p(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=n.__saturation_field.getBoundingClientRect(),i=e.touches&&e.touches[0]||e,r=i.clientX,s=i.clientY,a=(r-t.left)/(t.right-t.left),o=1-(s-t.top)/(t.bottom-t.top);return o>1?o=1:o<0&&(o=0),a>1?a=1:a<0&&(a=0),n.__color.v=o,n.__color.s=a,n.setValue(n.__color.toOriginal()),!1}function d(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=n.__hue_field.getBoundingClientRect(),i=1-((e.touches&&e.touches[0]||e).clientY-t.top)/(t.bottom-t.top);return i>1?i=1:i<0&&(i=0),n.__color.h=360*i,n.setValue(n.__color.toOriginal()),!1}return mt.extend(r.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),mt.extend(r.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:r.__field_knob_border+(r.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),mt.extend(r.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),mt.extend(r.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),mt.extend(s.style,{width:"100%",height:"100%",background:"none"}),oCe(s,"top","rgba(0,0,0,0)","#000"),mt.extend(r.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),aLt(r.__hue_field),mt.extend(r.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:r.__input_textShadow+"rgba(0,0,0,0.7)"}),Ye.bind(r.__saturation_field,"mousedown",a),Ye.bind(r.__saturation_field,"touchstart",a),Ye.bind(r.__field_knob,"mousedown",a),Ye.bind(r.__field_knob,"touchstart",a),Ye.bind(r.__hue_field,"mousedown",o),Ye.bind(r.__hue_field,"touchstart",o),r.__saturation_field.appendChild(s),r.__selector.appendChild(r.__field_knob),r.__selector.appendChild(r.__saturation_field),r.__selector.appendChild(r.__hue_field),r.__hue_field.appendChild(r.__hue_knob),r.domElement.appendChild(r.__input),r.domElement.appendChild(r.__selector),r.updateDisplay(),r}return cm(t,U0),lu(t,[{key:"updateDisplay",value:function(){var e=GG(this.getValue());if(!1!==e){var t=!1;mt.each(Ns.COMPONENTS,(function(i){if(!mt.isUndefined(e[i])&&!mt.isUndefined(this.__color.__state[i])&&e[i]!==this.__color.__state[i])return t=!0,{}}),this),t&&mt.extend(this.__color.__state,e)}mt.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var i=this.__color.v<.5||this.__color.s>.5?255:0,r=255-i;mt.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+i+","+i+","+i+")"}),this.__hue_knob.style.marginTop=100*(1-this.__color.h/360)+"px",this.__temp.s=1,this.__temp.v=1,oCe(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),mt.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+i+","+i+","+i+")",textShadow:this.__input_textShadow+"rgba("+r+","+r+","+r+",.7)"})}}]),t}(),sLt=["-moz-","-o-","-webkit-","-ms-",""];function oCe(e,t,i,r){e.style.background="",mt.each(sLt,(function(n){e.style.cssText+="background: "+n+"linear-gradient("+t+", "+i+" 0%, "+r+" 100%); "}))}function aLt(e){e.style.background="",e.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",e.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}var oLt={load:function(e,t){var i=t||document,r=i.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,i.getElementsByTagName("head")[0].appendChild(r)},inject:function(e,t){var i=t||document,r=document.createElement("style");r.type="text/css",r.innerHTML=e;var n=i.getElementsByTagName("head")[0];try{n.appendChild(r)}catch(e){}}},lLt='
\n\n Here\'s the new load parameter for your GUI\'s constructor:\n\n \n\n
\n\n Automatically save\n values to localStorage on exit.\n\n
The values saved to localStorage will\n override those passed to dat.GUI\'s constructor. This makes it\n easier to work incrementally, but localStorage is fragile,\n and your friends may not see the same values you do.\n\n
\n\n
\n\n
',cLt=function(e,t){var i=e[t];return mt.isArray(arguments[2])||mt.isObject(arguments[2])?new rLt(e,t,arguments[2]):mt.isNumber(i)?mt.isNumber(arguments[2])&&mt.isNumber(arguments[3])?mt.isNumber(arguments[4])?new VG(e,t,arguments[2],arguments[3],arguments[4]):new VG(e,t,arguments[2],arguments[3]):mt.isNumber(arguments[4])?new L3(e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new L3(e,t,{min:arguments[2],max:arguments[3]}):mt.isString(i)?new iLt(e,t):mt.isFunction(i)?new vCe(e,t,""):mt.isBoolean(i)?new mCe(e,t):null};function uLt(e){setTimeout(e,1e3/60)}var hLt=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||uLt,pLt=function(){function e(){ou(this,e),this.backgroundElement=document.createElement("div"),mt.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),Ye.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),mt.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var t=this;Ye.bind(this.backgroundElement,"click",(function(){t.hide()}))}return lu(e,[{key:"show",value:function(){var e=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),mt.defer((function(){e.backgroundElement.style.opacity=1,e.domElement.style.opacity=1,e.domElement.style.webkitTransform="scale(1)"}))}},{key:"hide",value:function(){var e=this,t=function t(){e.domElement.style.display="none",e.backgroundElement.style.display="none",Ye.unbind(e.domElement,"webkitTransitionEnd",t),Ye.unbind(e.domElement,"transitionend",t),Ye.unbind(e.domElement,"oTransitionEnd",t)};Ye.bind(this.domElement,"webkitTransitionEnd",t),Ye.bind(this.domElement,"transitionend",t),Ye.bind(this.domElement,"oTransitionEnd",t),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-Ye.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-Ye.getHeight(this.domElement)/2+"px"}}]),e}(),dLt=ZNt(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n");oLt.inject(dLt);var lCe="dg",cCe=72,uCe=20,lS="Default",sS=function(){try{return!!window.localStorage}catch(e){return!1}}(),aS=void 0,hCe=!0,wE=void 0,kG=!1,yCe=[],bn=function e(t){var i=this,r=t||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),Ye.addClass(this.domElement,lCe),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],r=mt.defaults(r,{closeOnTop:!1,autoPlace:!0,width:e.DEFAULT_WIDTH}),r=mt.defaults(r,{resizable:r.autoPlace,hideable:r.autoPlace}),mt.isUndefined(r.load)?r.load={preset:lS}:r.preset&&(r.load.preset=r.preset),mt.isUndefined(r.parent)&&r.hideable&&yCe.push(this),r.resizable=mt.isUndefined(r.parent)&&r.resizable,r.autoPlace&&mt.isUndefined(r.scrollable)&&(r.scrollable=!0);var n,s=sS&&"true"===localStorage.getItem(RE(this,"isLocal")),a=void 0,o=void 0;if(Object.defineProperties(this,{parent:{get:function(){return r.parent}},scrollable:{get:function(){return r.scrollable}},autoPlace:{get:function(){return r.autoPlace}},closeOnTop:{get:function(){return r.closeOnTop}},preset:{get:function(){return i.parent?i.getRoot().preset:r.load.preset},set:function(e){i.parent?i.getRoot().preset=e:r.load.preset=e,vLt(this),i.revert()}},width:{get:function(){return r.width},set:function(e){r.width=e,qG(i,e)}},name:{get:function(){return r.name},set:function(e){r.name=e,o&&(o.innerHTML=r.name)}},closed:{get:function(){return r.closed},set:function(t){r.closed=t,r.closed?Ye.addClass(i.__ul,e.CLASS_CLOSED):Ye.removeClass(i.__ul,e.CLASS_CLOSED),this.onResize(),i.__closeButton&&(i.__closeButton.innerHTML=t?e.TEXT_OPEN:e.TEXT_CLOSED)}},load:{get:function(){return r.load}},useLocalStorage:{get:function(){return s},set:function(e){sS&&(s=e,e?Ye.bind(window,"unload",a):Ye.unbind(window,"unload",a),localStorage.setItem(RE(i,"isLocal"),e))}}}),mt.isUndefined(r.parent)){if(this.closed=r.closed||!1,Ye.addClass(this.domElement,e.CLASS_MAIN),Ye.makeSelectable(this.domElement,!1),sS&&s){i.useLocalStorage=!0;var l=localStorage.getItem(RE(this,"gui"));l&&(r.load=JSON.parse(l))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=e.TEXT_CLOSED,Ye.addClass(this.__closeButton,e.CLASS_CLOSE_BUTTON),r.closeOnTop?(Ye.addClass(this.__closeButton,e.CLASS_CLOSE_TOP),this.domElement.insertBefore(this.__closeButton,this.domElement.childNodes[0])):(Ye.addClass(this.__closeButton,e.CLASS_CLOSE_BOTTOM),this.domElement.appendChild(this.__closeButton)),Ye.bind(this.__closeButton,"click",(function(){i.closed=!i.closed}))}else{void 0===r.closed&&(r.closed=!0);var h=document.createTextNode(r.name);Ye.addClass(h,"controller-name"),o=$G(i,h);Ye.addClass(this.__ul,e.CLASS_CLOSED),Ye.addClass(o,"title"),Ye.bind(o,"click",(function(e){return e.preventDefault(),i.closed=!i.closed,!1})),r.closed||(this.closed=!1)}r.autoPlace&&(mt.isUndefined(r.parent)&&(hCe&&(wE=document.createElement("div"),Ye.addClass(wE,lCe),Ye.addClass(wE,e.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(wE),hCe=!1),wE.appendChild(this.domElement),Ye.addClass(this.domElement,e.CLASS_AUTO_PLACE)),this.parent||qG(i,r.width)),this.__resizeHandler=function(){i.onResizeDebounced()},Ye.bind(window,"resize",this.__resizeHandler),Ye.bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),Ye.bind(this.__ul,"transitionend",this.__resizeHandler),Ye.bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),r.resizable&&gLt(this),a=function(){sS&&"true"===localStorage.getItem(RE(i,"isLocal"))&&localStorage.setItem(RE(i,"gui"),JSON.stringify(i.getSaveObject()))},this.saveToLocalStorageIfPossible=a,r.parent||((n=i.getRoot()).width+=1,mt.defer((function(){n.width-=1})))};function $G(e,t,i){var r=document.createElement("li");return t&&r.appendChild(t),i?e.__ul.insertBefore(r,i):e.__ul.appendChild(r),e.onResize(),r}function pCe(e){Ye.unbind(window,"resize",e.__resizeHandler),e.saveToLocalStorageIfPossible&&Ye.unbind(window,"unload",e.saveToLocalStorageIfPossible)}function jG(e,t){var i=e.__preset_select[e.__preset_select.selectedIndex];i.innerHTML=t?i.value+"*":i.value}function fLt(e,t,i){if(i.__li=t,i.__gui=e,mt.extend(i,{options:function(t){if(arguments.length>1){var r=i.__li.nextElementSibling;return i.remove(),oS(e,i.object,i.property,{before:r,factoryArgs:[mt.toArray(arguments)]})}if(mt.isArray(t)||mt.isObject(t)){var n=i.__li.nextElementSibling;return i.remove(),oS(e,i.object,i.property,{before:n,factoryArgs:[t]})}},name:function(e){return i.__li.firstElementChild.firstElementChild.innerHTML=e,i},listen:function(){return i.__gui.listen(i),i},remove:function(){return i.__gui.remove(i),i}}),i instanceof VG){var r=new L3(i.object,i.property,{min:i.__min,max:i.__max,step:i.__step});mt.each(["updateDisplay","onChange","onFinishChange","step","min","max"],(function(e){var t=i[e],n=r[e];i[e]=r[e]=function(){var e=Array.prototype.slice.call(arguments);return n.apply(r,e),t.apply(i,e)}})),Ye.addClass(t,"has-slider"),i.domElement.insertBefore(r.domElement,i.domElement.firstElementChild)}else if(i instanceof L3){var n=function(t){if(mt.isNumber(i.__min)&&mt.isNumber(i.__max)){var r=i.__li.firstElementChild.firstElementChild.innerHTML,n=i.__gui.__listening.indexOf(i)>-1;i.remove();var s=oS(e,i.object,i.property,{before:i.__li.nextElementSibling,factoryArgs:[i.__min,i.__max,i.__step]});return s.name(r),n&&s.listen(),s}return t};i.min=mt.compose(n,i.min),i.max=mt.compose(n,i.max)}else i instanceof mCe?(Ye.bind(t,"click",(function(){Ye.fakeEvent(i.__checkbox,"click")})),Ye.bind(i.__checkbox,"click",(function(e){e.stopPropagation()}))):i instanceof vCe?(Ye.bind(t,"click",(function(){Ye.fakeEvent(i.__button,"click")})),Ye.bind(t,"mouseover",(function(){Ye.addClass(i.__button,"hover")})),Ye.bind(t,"mouseout",(function(){Ye.removeClass(i.__button,"hover")}))):i instanceof zG&&(Ye.addClass(t,"color"),i.updateDisplay=mt.compose((function(e){return t.style.borderLeftColor=i.__color.toString(),e}),i.updateDisplay),i.updateDisplay());i.setValue=mt.compose((function(t){return e.getRoot().__preset_select&&i.isModified()&&jG(e.getRoot(),!0),t}),i.setValue)}function TCe(e,t){var i=e.getRoot(),r=i.__rememberedObjects.indexOf(t.object);if(-1!==r){var n=i.__rememberedObjectIndecesToControllers[r];if(void 0===n&&(n={},i.__rememberedObjectIndecesToControllers[r]=n),n[t.property]=t,i.load&&i.load.remembered){var s=i.load.remembered,a=void 0;if(s[e.preset])a=s[e.preset];else{if(!s[lS])return;a=s[lS]}if(a[r]&&void 0!==a[r][t.property]){var o=a[r][t.property];t.initialValue=o,t.setValue(o)}}}}function oS(e,t,i,r){if(void 0===t[i])throw new Error('Object "'+t+'" has no property "'+i+'"');var n=void 0;if(r.color)n=new zG(t,i);else{var s=[t,i].concat(r.factoryArgs);n=cLt.apply(e,s)}r.before instanceof U0&&(r.before=r.before.__li),TCe(e,n),Ye.addClass(n.domElement,"c");var a=document.createElement("span");Ye.addClass(a,"property-name"),a.innerHTML=n.property;var o=document.createElement("div");o.appendChild(a),o.appendChild(n.domElement);var l=$G(e,o,r.before);return Ye.addClass(l,bn.CLASS_CONTROLLER_ROW),n instanceof zG?Ye.addClass(l,"color"):Ye.addClass(l,QNt(n.getValue())),fLt(e,l,n),e.__controllers.push(n),n}function RE(e,t){return document.location.href+"."+t}function WG(e,t,i){var r=document.createElement("option");r.innerHTML=t,r.value=t,e.__preset_select.appendChild(r),i&&(e.__preset_select.selectedIndex=e.__preset_select.length-1)}function dCe(e,t){t.style.display=e.useLocalStorage?"block":"none"}function mLt(e){var t=e.__save_row=document.createElement("li");Ye.addClass(e.domElement,"has-save"),e.__ul.insertBefore(t,e.__ul.firstChild),Ye.addClass(t,"save-row");var i=document.createElement("span");i.innerHTML=" ",Ye.addClass(i,"button gears");var r=document.createElement("span");r.innerHTML="Save",Ye.addClass(r,"button"),Ye.addClass(r,"save");var n=document.createElement("span");n.innerHTML="New",Ye.addClass(n,"button"),Ye.addClass(n,"save-as");var s=document.createElement("span");s.innerHTML="Revert",Ye.addClass(s,"button"),Ye.addClass(s,"revert");var a=e.__preset_select=document.createElement("select");if(e.load&&e.load.remembered?mt.each(e.load.remembered,(function(t,i){WG(e,i,i===e.preset)})):WG(e,lS,!1),Ye.bind(a,"change",(function(){for(var t=0;t0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=P3(this)),e.folders={},mt.each(this.__folders,(function(t,i){e.folders[i]=t.getSaveObject()})),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=P3(this),jG(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[lS]=P3(this,!0)),this.load.remembered[e]=P3(this),this.preset=e,WG(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){mt.each(this.__controllers,(function(t){this.getRoot().load.remembered?TCe(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())}),this),mt.each(this.__folders,(function(e){e.revert(e)})),e||jG(this.getRoot(),!1)},listen:function(e){var t=0===this.__listening.length;this.__listening.push(e),t&&ECe(this.__listening)},updateDisplay:function(){mt.each(this.__controllers,(function(e){e.updateDisplay()})),mt.each(this.__folders,(function(e){e.updateDisplay()}))}});var bCe=bn,xCe=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],fd=(()=>{let e=xCe[0],t={};for(let i of xCe)if((null==i?void 0:i[1])in document){for(let[r,n]of i.entries())t[e[r]]=n;return t}return!1})(),ICe={change:fd.fullscreenchange,error:fd.fullscreenerror},il={request:(e=document.documentElement,t)=>new Promise(((i,r)=>{let n=()=>{il.off("change",n),i()};il.on("change",n);let s=e[fd.requestFullscreen](t);s instanceof Promise&&s.then(n).catch(r)})),exit:()=>new Promise(((e,t)=>{if(!il.isFullscreen)return void e();let i=()=>{il.off("change",i),e()};il.on("change",i);let r=document[fd.exitFullscreen]();r instanceof Promise&&r.then(i).catch(t)})),toggle:(e,t)=>il.isFullscreen?il.exit():il.request(e,t),onchange(e){il.on("change",e)},onerror(e){il.on("error",e)},on(e,t){let i=ICe[e];i&&document.addEventListener(i,t,!1)},off(e,t){let i=ICe[e];i&&document.removeEventListener(i,t,!1)},raw:fd};Object.defineProperties(il,{isFullscreen:{get:()=>Boolean(document[fd.fullscreenElement])},element:{enumerable:!0,get:()=>{var e;return null!=(e=document[fd.fullscreenElement])?e:void 0}},isEnabled:{enumerable:!0,get:()=>Boolean(document[fd.fullscreenEnabled])}}),fd||(il={isEnabled:!1});var F3=il;function _Ce(e,t,i,r,n,s,a){let o=e.addFolder(t);o.add(i,"x",n,s,a).onChange(r),o.add(i,"y",n,s,a).onChange(r),o.add(i,"z",n,s,a).onChange(r)}var H3=class{constructor(e){this.exploderDict={},this.controls={showGroundGrid:!1,showGrassGround:!1,skyMode:["None","Black Background","White Background","Gradient ramp","Cloudy"],environments:["None","Default (City Streat 64x32)","Venice Sunset","Footprint Court (HDR Labs)","City Street"],homeView:()=>console.log("[DGH] Go to home view"),views:["Top","Bottom","Front","Back","Left","Right"],OrthographicCamera:!1,viewpoints:!1,annotations:!1,takeSnapshot:()=>console.log("[DGH] Taking snapshot..."),fullScreen:()=>console.log("[DGH] Full screen..."),webcam:!1,uploadFile:()=>console.log("[DGH] Upload file..."),showBimTree:!1,showPropertyPanel:!1,transparentMode:!1,showVertexNormals:!1,sectionMode:["No section","Box section","Plane section"],alVisible:!0,alColor:"#cccccc",alIntensity:1,dlColor:"#dddddd",showDlHelper:!1,hlVisible:!0,hlIntensity:1,hlColor:[255,255,255,.6],hlGroundColor:[200,255,200,.6],fogEnabled:!1,fogColor:14540253,fogNearDistance:1,fogFarDistance:1e3,composerEnabled:!1,renderPassEnabled:!1,fxaaEnabled:!1,saoEnabled:!1,ssaoEnabled:!1,outlineEnabled:!1,ssaaEnabled:!1,bloomEnabled:!1,unrealBloomEnabled:!1},this.viewer=e,this.init()}init(){if(!this.viewer||!this.viewer.renderer||!this.viewer.scene)throw new Error("Need to initialize renderer, scene first!");let e=this.viewer,t=this.viewer.scene,i=this.controls;this.gui=new bCe({name:"controls",autoPlace:!0,width:300,closed:!0}),this.gui.domElement.style.opacity="0.6";let r=this.gui.addFolder("Common settings");r.add(i,"showGroundGrid").name("Show ground grid").onChange((i=>{e.groundGrid?e.groundGrid.visible=i:i&&(e.groundGrid=Js.createGroundGrid(),t.add(e.groundGrid),e.enableRender()),e.enableRender()})),r.add(i,"showGrassGround").name("Show grass ground").onChange((i=>{e.grassGround?e.grassGround.visible=i:i&&ht(this,null,(function*(){e.grassGround=yield Js.createGrassGround(),t.add(e.grassGround),e.enableRender()})),e.enableRender()}));let n=r.add(i,"skyMode",i.skyMode).name("Sky mode");n.onChange((i=>{if(e.skyOfGradientRamp&&(e.skyOfGradientRamp.visible="Gradient ramp"===i),"Black Background"===i)t.background=new je(0);else if("White Background"===i)t.background=new je(16777215);else if("Gradient ramp"===i)e.skyOfGradientRamp||(e.skyOfGradientRamp=qo.createSkyOfGradientRamp(),t.add(e.skyOfGradientRamp)),e.skyOfGradientRamp.visible=!0;else if("Cloudy"===i){let e=["right.jpg","left.jpg","top.jpg","bottom.jpg","front.jpg","back.jpg"];e=e.map((e=>`${window.location.origin}/images/skybox/cloudy/${e}`)),qo.createSkyFromTextures(e).then((e=>{t.background=e}))}else t.background=e.sceneBackgroundColor;e.enableRender()})),n.setValue("Gradient ramp"),r.add(i,"environments",i.environments).name("Environments").onChange((i=>{let r="";if("Default (City Streat 64x32)"===i){if(e.pmremGenerator)return Nc.createEnvTextureFromDataArray(e.pmremGenerator).then((e=>{t.environment=e})),void e.enableRender()}else"Venice Sunset"===i?r="venice_sunset_1k.hdr":"Footprint Court (HDR Labs)"===i?r="footprint_court_2k.hdr":"City Street"===i&&(r="city_street_256.hdr");""===r?t.environment=null:(r=`${window.location.origin}/images/envmap/${r}`,Nc.createEnvTexture(e.pmremGenerator,r).then((e=>{t.environment=e}))),e.enableRender()})),r.add(i,"homeView").name("Go to home view").onChange((()=>{e.goToHomeView()})),r.add(i,"views",i.views).name("Views").onChange((i=>{var r;let n=new A,s=new A,a=Tn.getVisibleObjectBoundingBox(t),o=xs.getCameraDirectionByView(i);xs.getCameraPositionByBboxAndDirection(a,n,s,null==(r=e.camera)?void 0:r.projectionMatrix,o),e.flyTo(n,s)})),r.add(i,"OrthographicCamera").name("Orth Camera").onChange((t=>{e.setToOrthographicCamera(t)})),r.add(i,"takeSnapshot").name("Take snapshot").onChange((()=>{})),r.add(i,"fullScreen").name("Full screen").onChange((()=>{F3&&F3.isEnabled&&F3.request(),e.enableRender()})),r.add(i,"uploadFile").name("Upload file").onChange((()=>{new $O(e).openFileBrowserToUpload()}));let s=this.gui.addFolder("Model operations");s.add(i,"transparentMode",i.transparentMode).name("Transparent mode").onChange((t=>{e.addOrRemoveObjectOpacity(t),e.enableRender()})),s.add(i,"showVertexNormals",i.showVertexNormals).name("Show Vertex Normals").onChange((t=>{e.showVertexNormals(t),e.enableRender()})),s.add(i,"sectionMode",i.sectionMode).name("Section mode").onChange((t=>{"No section"===t?e.deactivateSection():"Box section"===t?e.activateSection("ObjectsBoxSection"):"Plane section"===t&&e.activateSection("PickPlaneSection"),e.enableRender()}));let a=this.viewer.ambientLight,o=this.gui.addFolder("Ambient light");o.add(i,"alVisible",i.alVisible).name("visible").onChange((t=>{a&&(a.visible=t),e.enableRender()})),o.addColor(i,"alColor").name("color").onChange((t=>{a&&(a.color=new je(t)),e.enableRender()})),o.add(i,"alIntensity",0,5).name("intensity").onChange((t=>{a&&(a.intensity=t),e.enableRender()}));let l=this.viewer.directionalLight;if(l){let t=this.gui.addFolder("Directional light");t.add(l,"visible").name("visible").onChange((t=>{l&&(l.visible=t),e.enableRender()})),t.addColor(i,"dlColor").name("color").onChange((t=>{l&&(l.color=new je(t)),e.enableRender()})),t.add(l,"intensity",0,5).name("intensity").onChange((t=>{l&&(l.intensity=t),e.enableRender()})),t.add(l,"castShadow").name("castShadow").onChange((t=>{l&&(l.castShadow=t),e.enableRender()})),t.add(i,"showDlHelper").name("showDlHelper").onChange((t=>{e.showDirectionalLightHelper(t),e.enableRender()}));let r=()=>{e.updateDirectionalLight(),e.enableRender()};_Ce(t,"position",l.position,r),_Ce(t,"target",l.target.position,r);let n=t.addFolder("shadow");n.add(l.shadow.camera,"near").name("near").onChange(r),n.add(l.shadow.camera,"far").name("far").onChange(r),n.add(l.shadow.camera,"zoom").name("zoom").onChange(r)}let h=this.viewer.hemisphereLight,u=this.gui.addFolder("Hemisphere Light");u.add(i,"hlVisible",i.hlVisible).name("visible").onChange((t=>{h&&(h.visible=t),e.enableRender()})),u.add(i,"hlIntensity",0,5).name("intensity").onChange((t=>{h&&(h.intensity=t),e.enableRender()})),u.addColor(i,"hlColor").name("color").onChange((t=>{h&&(h.color=new je(t)),e.enableRender()})),u.addColor(i,"hlGroundColor").name("groundColor").onChange((t=>{h&&(h.groundColor=new je(t)),e.enableRender()}));let c=this.gui.addFolder("Fog");c.add(i,"fogEnabled",i.fogEnabled).name("Enabled").onChange((r=>{t.fog=r?new Uu(i.fogColor,i.fogNearDistance,i.fogFarDistance):null,e.enableRender()})),c.add(i,"fogNearDistance",0,100).name("Near").onChange((r=>{i.fogEnabled&&t&&(t.fog=new Uu(i.fogColor,r,i.fogFarDistance)),e.enableRender()})),c.add(i,"fogFarDistance",100,2e3).name("Far").onChange((r=>{i.fogEnabled&&t&&(t.fog=new Uu(i.fogColor,i.fogNearDistance,r)),e.enableRender()}));let p=this.gui.addFolder("Composer");p.add(i,"composerEnabled",i.composerEnabled).name("Composer Enabled").onChange((t=>{e.enableComposer(t)})),p.add(i,"renderPassEnabled",i.renderPassEnabled).name("RenderPass Enabled").onChange((t=>{e.enableRenderPass(t)})),p.add(i,"fxaaEnabled",i.fxaaEnabled).name("Effect FXAA Enabled").onChange((t=>{e.enableFxaaPass(t)})),p.add(i,"saoEnabled",i.saoEnabled).name("SAO Enabled").onChange((t=>{e.enableSaoPass(t)})),p.add(i,"ssaoEnabled",i.ssaoEnabled).name("SSAO Enabled").onChange((t=>{e.enableSsaoPass(t)})),p.add(i,"outlineEnabled",i.outlineEnabled).name("OutlinePass Enabled").onChange((t=>{e.enableOutlinePass(t)})),p.add(i,"ssaaEnabled",i.ssaaEnabled).name("SSAA Enabled").onChange((t=>{e.enableSsaaPass(t)})),p.add(i,"bloomEnabled",i.bloomEnabled).name("Bloom Enabled").onChange((t=>{e.enableBloomPass(t)})),p.add(i,"unrealBloomEnabled",i.unrealBloomEnabled).name("Unreal Bloom Enabled").onChange((t=>{e.enableUnrealBloomPass(t)}))}setExplodeMode(e,t=!1){!this.viewer||!this.viewer.scene||!this.viewer.loadedModels||!this.exploderDict||(e?Tn.explodeObjects(this.viewer.scene,this.exploderDict,Object.values(this.viewer.loadedModels).map((e=>e.id)),t):Tn.unexplodeObjects(this.viewer.scene,this.exploderDict||{}))}open(){this.gui&&this.gui.open()}close(){this.gui&&this.gui.close()}beforeDestroy(){this.viewer=void 0,this.gui&&this.gui.destroy(),this.gui=void 0,this.exploderDict=[]}},U3=class{constructor(){this.vertexShader="\n varying vec2 vUv;\n void main( void ) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }",this.fragmentShader="\n uniform vec3 keyColor;\n uniform float similarity;\n uniform float smoothness;\n varying vec2 vUv;\n uniform sampler2D map;\n void main() {\n vec4 videoColor = texture2D(map, vUv);\n\n float Y1 = 0.299 * keyColor.r + 0.587 * keyColor.g + 0.114 * keyColor.b;\n float Cr1 = keyColor.r - Y1;\n float Cb1 = keyColor.b - Y1;\n \n float Y2 = 0.299 * videoColor.r + 0.587 * videoColor.g + 0.114 * videoColor.b;\n float Cr2 = videoColor.r - Y2; \n float Cb2 = videoColor.b - Y2; \n \n float blend = smoothstep(similarity, similarity + smoothness, distance(vec2(Cr2, Cb2), vec2(Cr1, Cb1)));\n gl_FragColor = vec4(videoColor.rgb, videoColor.a * blend); \n }";let e=document.createElement("video");this.webcam=e;navigator.mediaDevices.getUserMedia({video:{width:600,height:400}}).then((t=>{e.srcObject=t,e.onloadedmetadata=()=>{e.setAttribute("autoplay","true"),e.setAttribute("playsinline","true"),e.play()}})).catch((function(e){alert(e.name+": "+e.message)})),this.webcamCanvas=document.createElement("canvas");let t=this.webcamCanvas.getContext("2d");this.canvasCtx=t,t.fillStyle="#000000",t.fillRect(0,0,this.webcamCanvas.width,this.webcamCanvas.height);let i=new Bi(this.webcamCanvas);this.webcamTexture=i,i.minFilter=oi,i.magFilter=oi,this.shaderMaterial=new Yt({transparent:!0,uniforms:{map:{value:i},keyColor:{value:[0,1,0]},similarity:{value:.3},smoothness:{value:0}},vertexShader:this.vertexShader,fragmentShader:this.fragmentShader})}getShaderMaterial(){return this.shaderMaterial}createWebCamPlane(e=5,t=4){let i=new ts(e,t);return new rt(i,this.shaderMaterial)}animate(){this.webcam.readyState===this.webcam.HAVE_ENOUGH_DATA&&(this.canvasCtx.drawImage(this.webcam,0,0,this.webcamCanvas.width,this.webcamCanvas.height),this.webcamTexture.needsUpdate=!0)}},SCe=new A,wCe=new Wi,RCe=class extends tm{constructor(e,t){var i;super(e),this.name="BimViewer",this.timer=Date.now(),this.selectedObject=void 0,this.sceneBackgroundColor=new je(15463159),this.loadedModels={},this.loaded3dTiles={},this.composerRenderEnabled=!0,this.composerEnabled=!1,this.savedMaterialsForOpacity=[],this.raf=new dT,this.clock=new Al,this.renderEnabled=!0,this.isFrustumInsectChecking=!1,this.lastFrameExecuteTime=Date.now(),this.maxFps=60,this.settings=cT,this.jobCount=0,this.twoDModelCount=0,this.bbox=new Dt,this.onResize=()=>{var e;let t=null==(e=this.renderer)?void 0:e.domElement;t&&t.parentElement&&this.resize(t.parentElement.clientWidth,t.parentElement.clientHeight)},this.onControlsChange=()=>{this.enableRender()},this.onKeyDown=e=>{let t=this.camera,i=this.controls;if(!t||!i)return;let r=this.settings.keyboard.sensitivity||3,n=i.getPosition(new A),s=i.getTarget(new A),a=s.clone();if("ArrowLeft"===e.code||"ArrowRight"===e.code){let t=Math.PI*r/180;"ArrowLeft"===e.code&&(t=-t),a.x=(s.x-n.x)*Math.cos(t)-(s.z-n.z)*Math.sin(t)+n.x,a.z=(s.z-n.z)*Math.cos(t)+(s.x-n.x)*Math.sin(t)+n.z,i.setTarget(a.x,a.y,a.z)}else if("ArrowUp"===e.code||"ArrowDown"===e.code){let t=Math.PI*r/180,o=new A(s.x-n.x,s.y-n.y,s.z-n.z).length(),l=s.y-n.y;"ArrowDown"===e.code&&(t=-t);let h=Math.asin(l/o)+t;if(h<-Math.PI/2||h>Math.PI/2)return;let u=Math.sin(h)*o;a.y=s.y+(u-l),i.setTarget(a.x,a.y,a.z)}else if("KeyW"===e.code){let e=.01*r,a=n.distanceTo(s);if(a<10*t.near){let e=i.getTarget(new A).lerp(n,-t.near/a);i.setTarget(e.x,e.y,e.z)}n.lerp(s,e),i.setLookAt(n.x,n.y,n.z,s.x,s.y,s.z)}else if("KeyS"===e.code){let e=.01*r;n.lerp(s,-e),i.setLookAt(n.x,n.y,n.z,s.x,s.y,s.z,!1)}else if("KeyF"===e.code)this.flyToSelectedObject();else if("KeyT"===e.code){let e=this.getIntersections();if(e.length>0){let r=e.find((e=>{let t=e.object;return t.visible&&t instanceof rt}));if(r&&r.point&&this.camera&&this.controls){let e=this.camera.position,n=r.point,s=i.getTarget(new A),a=e.distanceTo(n);if(a>t.near&&a{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1,this.composerRenderEnabled=!0}),e))},this.applyOptionsAndAddToScene=(e,t,i)=>{ne.info(`[BimViewer] '${e}' is loaded in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),this.timer=Date.now();let r=i.src&&i.src.toLowerCase();if(r&&r.endsWith("dxf")&&this.twoDModelCount++,i.matrix&&16===i.matrix.length){let e=new Be;e.elements=i.matrix,t.applyMatrix4(e)}else{let e=i.position||[0,0,0],r=i.rotation||[0,0,0],n=i.scale||[1,1,1];t.position.set(e[0],e[1],e[2]),t.rotation.set(r[0]*Math.PI/180,r[1]*Math.PI/180,r[2]*Math.PI/180),t.scale.set(n[0],n[1],n[2])}t.matrixAutoUpdate=!1,t.updateMatrix(),t.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix())}));let n=i.instantiate,s=i.merge;n?setTimeout((()=>{this.instantiate(t),setTimeout((()=>{s&&this.merge(t),this.addLoadedModelToScene(t,i)}),0)}),0):s?setTimeout((()=>{this.merge(t),setTimeout((()=>this.addLoadedModelToScene(t,i)),0)}),0):this.addLoadedModelToScene(t,i)},this.onAnchorPointerDown=e=>{var t,i;null==(t=this.controls)||!t.enableRotate||!this.renderer||null!=(i=this.sectionManager)&&i.isSectionActive()||this.setOrbitPoint(e)},this.onAnchorPointerUp=()=>{this.anchor&&(this.anchor.className="anchor")},this.viewerCfg=Br(Br({},DDe),e),ne.info("[BimViewer]","viewerCfg:",this.viewerCfg),this.settings=cT,this.cameraCfg=t,this.cameraCfg&&this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg&&this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.increaseJobCount(),this.init(),this.animate(),this.renderer&&(null==(i=this.viewerContainer)||i.append(this.renderer.domElement)),this.decreaseJobCount(),ne.info(`[BimViewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initSpinner(),this.initScene(),this.initRenderer(),this.initCamera(),this.initLights(),this.initEvents(),this.initControls(),!0===e.enableDatGui&&this.initDatGui(),this.initOthers(),!0===e.enableAxisGizmo&&(this.axes=this.initAxes()),!0===e.enableStats&&(this.stats=this.initStats()),e.enableToolbar&&(this.toolbar=this.initToolbar()),e.enableBottomBar&&(this.bottomBar=this.initBottomBar()),e.enableNavCube&&(this.navCube=this.initNavCube()),e.enableContextMenu&&(this.contextMenu=this.initContextMenu())}initScene(){this.scene=new Pn,this.scene.matrixAutoUpdate=!1}initRenderer(){this.renderer=new Ol({antialias:!0,preserveDrawingBuffer:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.outputEncoding=gr,this.renderer.toneMappingExposure=1,this.renderer.physicallyCorrectLights=!0,this.renderer.setClearColor(11119017,1),this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=By,_t.printGpuInfo(this.renderer.getContext()),this.pmremGenerator=new xp(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.enableOverlayRenderer&&(this.overlayRender=new wr(this)),this.setEnvironmentFromDataArray()}initCamera(){this.scene&&(this.perspectiveCamera=new Xr(45,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.perspectiveCamera.layers.enable(11),this.perspectiveCamera.position.set(0,100,0),this.scene.add(this.perspectiveCamera),this.camera=this.perspectiveCamera)}initControls(e=!1){if(!this.renderer)return;wi.printDeviceInfo();let t,i=e?this.orthoCamera:this.perspectiveCamera;i&&this.inputManager&&((!this.perspectiveCameraControls||!this.orthoCameraConrols)&&(t=new $l(i,this.inputManager),t.dollySpeed=.1,t.dollyToCursor=!0,t.enabled=!0,t.keyTruckSpeed=10,t.keys={left:"KeyD",up:"KeyE",right:"KeyA",bottom:"KeyQ"},t.listenToKeyEvents(),t.update(0)),t&&(e?(this.orthoCameraConrols=t,t.minZoom=3):(this.perspectiveCameraControls=t,this.bbox&&(t.minDistance=.1,t.maxDistance=3*this.bbox.getSize(new A).length())),this.controls=t,this.controls.addEventListener("update",this.onControlsChange)))}initRotateToCursor(){this.anchor=this.createAnchor()}initLights(){if(!this.scene)return;let e=16777215,t=new $s(e,1.5);t.name="sun",t.castShadow=!0,t.position.set(-2,2,4),t.shadow.autoUpdate=!1,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.directionalLight=t,this.scene.add(t),this.scene.add(t.target),this.directionalLightHelper=new Sx(this.directionalLight),this.directionalLightHelper.traverse((e=>{e.layers.set(11)})),this.directionalLightHelper.visible=!1,this.scene.add(this.directionalLightHelper),this.shadowCameraHelper=new wx(this.directionalLight.shadow.camera),this.shadowCameraHelper.layers.set(11),this.shadowCameraHelper.visible=!1,this.scene.add(this.shadowCameraHelper),this.ambientLight=new Cl(3158064),this.hemisphereLight=new df(e,14540253,2),this.hemisphereLight.position.set(0,300,0),this.scene.add(this.ambientLight),this.scene.add(this.hemisphereLight)}initEvents(){if(!this.renderer)return;let e=new M0(this.renderer.domElement);this.inputManager=e;let t,i=!1,r=!1;e.addEventListener("pointerdown",(e=>{r=!1,i=!0,this.setOrbitPoint(e)})),e.addEventListener("pointermove",(()=>{i&&(r=!0)})),e.addEventListener("pointerup",(()=>{i=!1,this.onAnchorPointerUp()})),e.addEventListener("click",(e=>{r?r=!1:(t&&clearTimeout(t),t=setTimeout((()=>{switch(this.onAnchorPointerDown(e),e.button){case 0:this.handleMouseClick(e);break;case 2:this.handleRightClick(e)}}),300))})),e.addEventListener("dblclick",(e=>{var i,n;!r&&null!=(i=this.sectionManager)&&i.isSectionActive()&&null!=(n=this.measurementManager)&&n.isMeasurementActive()||(t&&clearTimeout(t),this.handleMouseClick(e),this.flyToSelectedObject(),this.enableRender())})),e.addEventListener("keydown",(e=>{this.onKeyDown(e)})),e.addEventListener("resize",this.onResize),this.initRotateToCursor(),this.raycaster=new Oc}initDatGui(){this.datGui=new H3(this),this.datGui.close()}initSpinner(){var e;if(!this.viewerCfg.enableSpinner)return;let t=document.createElement("div");t.classList.add("bim-viewer-spinner");let i=document.createElement("div");i.classList.add(uo,"icon-loading"),t.append(i),null==(e=this.widgetContainer)||e.appendChild(t),this.spinner=t,this.setSpinnerVisibility(this.jobCount>0)}initOthers(){if(!this.scene||!this.renderer||!this.camera)return;let e=this.datGui&&this.datGui.controls;e&&(e.showGroundGrid&&(this.groundGrid=Js.createGroundGrid(),this.scene.add(this.groundGrid)),e.showGrassGround&&ht(this,null,(function*(){this.grassGround=yield Js.createGrassGround(),this.scene&&this.scene.add(this.grassGround),this.enableRender()})),e.webcam&&this.enableWebCam(),this.composerEnabled=e.composerEnabled,this.composerEnabled&&(this.enableComposer(!0),this.enableRenderPass(e.renderPassEnabled),this.enableFxaaPass(e.fxaaEnabled),this.enableSaoPass(e.saoEnabled),this.enableSsaoPass(e.ssaoEnabled),this.enableOutlinePass(e.outlineEnabled),this.enableSsaaPass(e.ssaaEnabled),this.enableBloomPass(e.bloomEnabled),this.enableUnrealBloomPass(e.unrealBloomEnabled))),this.renderer.domElement.style.outlineWidth="0"}initNavCube(){var e;let t=document.createElement("div");t.id="navCube";let i=new JO;return i.renderer&&(t.appendChild(i.renderer.domElement),i.setHostViewer(this)),null==(e=this.widgetContainer)||e.appendChild(t),i}initAxes(){var e,t;let i=document.createElement("div");i.classList.add("axesRenderer");let r=new Sf(i,this.camera);return null==(e=this.widgetContainer)||e.append(i),this.axesInScene=new oT(!1),null==(t=this.scene)||t.add(this.axesInScene),r}initStats(){var e;let t=I3();t.setMode(0);let i=document.createElement("div");return i.classList.add("statsOutput"),i.appendChild(t.domElement),null==(e=this.widgetContainer)||e.append(i),t}initContextMenu(){let e=new C3({items:rCe,context:{bimViewer:this,toolbar:this.toolbar,section:this.section},container:this.widgetContainer});return window.oncontextmenu=e=>e.preventDefault(),e}initToolbar(){let e=this.viewerCfg;return new Eh(this,(0,hm.merge)({},wDe,e.toolbarMenuConfig))}initBottomBar(){return new om(this)}get has2dModel(){return this.twoDModelCount>0}showContextMenu(e){if(!this.contextMenu||!this.widgetContainer)return;let t=this.getAllIntersections(e);ne.debug("[BimViewer] showContextMenu intersections = ",t);let i,r=(0,hm.find)(t,(e=>{let t=e.object;return t instanceof rt&&t.visible})),n=this.contextMenu.context,s=null==r?void 0:r.instanceId,a=null==r?void 0:r.faceIndex;a&&(i=qi.getBatchIdByFaceIndex(null==r?void 0:r.object,a)),this.contextMenu.context=Dn(Br({},n),{hit:null==r?void 0:r.object,instanceId:s,batchId:i});let{x:o,y:l}=e;this.contextMenu.show(o,l)}handleRightClick(e){this.showContextMenu(e)}sycnCameraPosition(e,t){let i=e.position;if(t.position.set(i.x,i.y,i.z),this.scene){let e=this.scene.position;t.lookAt(e)}}sycnControls(e,t){let i=e.getTarget(new A),r=e.getPosition(new A);t.setPosition(r.x,r.y,r.z),t.setTarget(i.x,i.y,i.z)}setToOrthographicCamera(e=!1){var t;if(!this.scene||!this.controls)return;let i=this.perspectiveCamera,r=this.perspectiveCameraControls,n=this.orthoCamera,s=this.orthoCameraConrols;e?(n||(n=new Ji(-this.width/2,this.width/2,this.height/2,-this.height/2,this.settings.camera.near,this.settings.camera.far),n.layers.enable(11),n.position.set(0,100,0),n.zoom=10,n.updateProjectionMatrix(),this.scene&&this.scene.add(n),this.orthoCamera=n),s||(this.initControls(!0),s=this.orthoCameraConrols),i&&(this.sycnCameraPosition(i,n),n.zoom=10,n.updateProjectionMatrix()),r&&s&&i&&this.sycnControls(r,s),this.camera=n,this.controls=s):(i&&n&&this.sycnCameraPosition(n,i),r&&s&&n&&this.sycnControls(s,r),this.camera=i,this.controls=r),null==(t=this.axes)||t.setHostCamera(this.camera),this.resize(this.width,this.height),this.dispatchEvent("CameraChanged")}animate(){var e,t;if(requestAnimationFrame(this.animate.bind(this)),this.maxFps>0){if(Date.now()-this.lastFrameExecuteTime<1e3/this.maxFps)return;this.lastFrameExecuteTime=Date.now()}this.webcam&&this.webcam.animate();let i=this.clock.getDelta(),r=this.controls&&this.controls.update(i);this.scene&&this.camera&&(this.renderEnabled||r)&&(this.update3dTiles(),this.renderer&&this.renderer.render(this.scene,this.camera),this.dispatchEvent("RenderAfter")),this.composerRenderEnabled&&this.composer&&this.composerEnabled&&(this.composer.render(),this.composerRenderEnabled=!1),this.frustrumCullingByModelBBox(),null==(e=this.stats)||e.update(),null==(t=this.bottomBar)||t.update()}update3dTiles(){if(!this.camera)return;let e=Object.values(this.loaded3dTiles);0!==e.length&&(this.camera.updateMatrixWorld(),e.forEach((e=>{e.renderer.update()})))}frustrumCullingByModelBBox(){let e=new Xs,t=new Be;this.isFrustumInsectChecking=!0,this.camera&&(t.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),e.setFromProjectionMatrix(t),Object.values(this.loadedModels).forEach((t=>{let i=this.scene&&this.scene.getObjectById(t.id),r=t.bbox;i&&r&&this.scene&&(void 0===i.userData._visible&&(i.userData._visible=!0,Object.defineProperties(i,{visible:{set:e=>{i.userData._visible=e,this.isFrustumInsectChecking||(i.userData.userConfigVisibility=!0)},get:()=>i.userData._visible}})),void 0===i.userData.userConfigVisibility&&(r.geometry.computeBoundingBox(),r.geometry.boundingBox&&(i.visible=e.intersectsBox(r.geometry.boundingBox))))})),Object.values(this.loaded3dTiles).forEach((t=>{let i=t.renderer.group;i&&!t.bbox.isEmpty()&&this.scene&&(void 0===i.userData._visible&&(i.userData._visible=!0,Object.defineProperties(i,{visible:{set:e=>{i.userData._visible=e,this.isFrustumInsectChecking||(i.userData.userConfigVisibility=!0)},get:()=>i.userData._visible}})),void 0===i.userData.userConfigVisibility&&(i.visible=e.intersectsBox(t.bbox)))}))),this.isFrustumInsectChecking=!1}destroy(){var e,t,i,r;null==(e=this.inputManager)||e.removeEventListener(),this.datGui&&this.datGui.gui&&(this.datGui.beforeDestroy(),this.datGui=void 0);let n=this.webcamPlane;this.scene&&n&&(this.scene.remove(n),n.geometry.dispose(),n.material.dispose(),this.webcamPlane=void 0),this.webcam=void 0,this.composer=void 0,this.renderPass=void 0,this.effectFxaaPass=void 0,this.saoPass=void 0,this.ssaoPass=void 0,this.outlinePass=void 0,this.ambientLight=void 0,this.directionalLight=void 0,this.hemisphereLight=void 0,this.directionalLightHelper&&(this.directionalLightHelper.dispose(),this.directionalLightHelper=void 0),this.controls&&(this.disposeRotateToCursor(),this.controls.dispose(),this.controls=void 0),this.perspectiveCameraControls&&(this.perspectiveCameraControls.dispose(),this.perspectiveCameraControls=void 0),this.shadowCameraHelper&&(this.shadowCameraHelper.dispose(),this.shadowCameraHelper=void 0),this.stats=void 0,this.raycaster=void 0,this.selectedObject=void 0,this.groundGrid&&(this.groundGrid.geometry.dispose(),this.groundGrid.material.dispose(),this.groundGrid.clear(),this.groundGrid=void 0),this.grassGround&&(this.grassGround.geometry.dispose(),this.grassGround.material.dispose(),this.grassGround.clear(),this.grassGround=void 0),this.skyOfGradientRamp&&(this.skyOfGradientRamp.geometry.dispose(),this.skyOfGradientRamp.material.dispose(),this.skyOfGradientRamp.clear(),this.skyOfGradientRamp=void 0),this.savedMaterialsForOpacity=void 0,this.section=void 0,this.sectionType=void 0,Object.keys(this.loadedModels).forEach((e=>{delete this.loadedModels[e]})),Object.values(this.loaded3dTiles).forEach((e=>{e.renderer.dispose()})),this.loaded3dTiles={},this.perspectiveCamera=void 0,this.perspectiveCameraControls=void 0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.raf=void 0),this.contextMenu&&(this.contextMenu.destroy(),this.contextMenu=void 0),this.navCube&&(this.navCube.dispose(),this.navCube=void 0),this.axes&&(this.axes.dispose(),this.axes=void 0),this.axesInScene&&(this.axesInScene.clear(),this.axesInScene=void 0),this.toolbar&&(this.toolbar.destroy(),this.toolbar=void 0),this.spinner&&(this.spinner.remove(),this.spinner=void 0),this.bottomBar=void 0,this.pmremGenerator&&(this.pmremGenerator.dispose(),this.pmremGenerator=void 0),null==(t=this.measurementManager)||t.destroy(),this.measurementManager=void 0,null==(i=this.zoomToRectHelper)||i.destroy(),this.zoomToRectHelper=void 0,null==(r=this.sectionManager)||r.destroy(),this.sectionManager=void 0,super.destroy()}loadLocalModel(e,t,i,r){return ht(this,null,(function*(){let n;this.timer=Date.now(),this.increaseJobCount();try{n=yield new $c(i).loadLocalModel(e,t.src,r)}catch(e){let i=`Error loading ${t.src}`;return ne.error(i,e),Promise.reject(i)}finally{this.decreaseJobCount()}return n?(this.applyOptionsAndAddToScene(e,n,t),Promise.resolve()):Promise.reject()}))}loadModel(e,t){return ht(this,null,(function*(){let i;this.timer=Date.now(),this.increaseJobCount();try{i=yield(new $c).loadModel(e.src,e.fileFormat,t)}catch(t){let i=`Error loading ${e.src}`;return ne.error(i,t),Promise.reject(i)}finally{this.decreaseJobCount()}return i?(this.applyOptionsAndAddToScene(e.src,i,e),Promise.resolve()):Promise.reject()}))}load3dTiles(e){return ht(this,null,(function*(){var t;this.timer=Date.now(),this.increaseJobCount();let i=new W_(e.src),r=new Dt,n=yield new Promise(((t,n)=>{i.onLoadTileSet=()=>{i.getBounds(r)||(i.getBoundingSphere(wCe)?wCe.getBoundingBox(r):(ne.warn(`[BimViewer] Can't get the correct bounding box of 3dTiles '${e.src}'!`),n())),ne.debug(r),i.onLoadTileSet=null;let s=i.group;ne.debug(s),t(s)},i.onLoadModel=e=>{e.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix()),e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0)})),e.updateWorldMatrix(!1,!0),this.updateDirectionalLightShadow(),this.enableRender()},i.setCamera(this.camera),i.setResolutionFromRenderer(this.camera,this.renderer),i.update()}));if(n){let s=Date.now(),a=e.modelId||e.src;if(this.loaded3dTiles[a]){let e=1;for(;this.loaded3dTiles[`${a}_${e}`];)e++;a=`${a}_${e}`,ne.warn(`[BimViewer] 3dTiles '${a}' is loaded more than once!`)}if(this.loaded3dTiles[a]={id:n.id,bbox:r,renderer:i},e.matrix&&16===e.matrix.length){let t=new Be;t.elements=e.matrix,n.applyMatrix4(t)}else{let t=e.position||[0,0,0],i=e.rotation||[0,0,0],r=e.scale||[1,1,1];n.position.set(t[0],t[1],t[2]),n.rotation.set(i[0]*Math.PI/180,i[1]*Math.PI/180,i[2]*Math.PI/180),n.scale.set(r[0],r[1],r[2])}if(n.matrixAutoUpdate=!1,n.updateMatrix(),n.updateMatrixWorld(!0),null==(t=this.scene)||t.add(n),r.applyMatrix4(n.matrix),this.computeBoundingBox(),this.tryAdjustDirectionalLight(),0===Object.keys(this.loadedModels).length&&1===Object.keys(this.loaded3dTiles).length){let e=this.datGui&&this.datGui.controls;this.regenSkyOfGradientRamp(),e&&e.showGroundGrid&&this.regenGroundGrid(),this.tryAdjustCameraNearAndFar(),this.goToHomeView()}return ne.info(`[BimViewer] Added 3dTiles '${e.src}' to scene in ${(Date.now()-s)/1e3}s`),this.enableRender(),this.decreaseJobCount(),Promise.resolve()}return this.decreaseJobCount(),Promise.reject()}))}addLoadedModelToScene(e,t){if(!this.scene)return;if(t.merge){let t=Date.now();tE.createMeshBvhAsync([e],{saveOriginalIndex:!0}),ne.info(`[BimViewer] Creates mesh bvh cost ${(Date.now()-t)/1e3}s`)}e.traverse((e=>{e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0)})),this.scene.add(e);let i=new Hg(e);i.name="BIM_VIEWER_BOX_HELPER",i.visible=!1,i.matrixAutoUpdate=!1,i.material&&(i.material=void 0,i.layers.set(11));let r=t.modelId||t.src;if(this.loadedModels[r]){let e=1;for(;this.loadedModels[`${r}_${e}`];)e++;r=`${r}_${e}`,ne.warn(`[BimViewer] Model '${r}' is loaded more than once!`)}this.loadedModels[r]={id:e.id,bbox:i},this.computeBoundingBox(),this.tryAdjustDirectionalLight();let n=Object.values(this.loadedModels).map((e=>e.id));if(Object.values(this.loaded3dTiles).forEach((e=>n.push(e.id))),!n||n.length<=1){if(this.has2dModel)this.setToOrthographicCamera(!0),this.skyOfGradientRamp&&this.scene.remove(this.skyOfGradientRamp);else{let e=this.datGui&&this.datGui.controls;this.regenSkyOfGradientRamp(),e&&e.showGroundGrid&&this.regenGroundGrid()}this.tryAdjustCameraNearAndFar(),this.goToHomeView()}this.scene.add(i),t.edges&&ei.addOutlines(e),ne.info(`[BimViewer] Added '${t.src}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.enableRender(),this.decreaseJobCount()}addOrRemoveObjectOpacity(e=!0,t=.3,i,r){if(this.savedMaterialsForOpacity||(this.savedMaterialsForOpacity=[]),!this.scene)return;let n=this.scene,s=[],a=Object.values(this.loadedModels).map((e=>e.id));Object.values(this.loaded3dTiles).forEach((e=>a.push(e.id))),a.forEach((a=>{if(e){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&ei.revertObjectOpacityById(n,a,this.savedMaterialsForOpacity);let e=ei.setObjectOpacityById(n,a,t,i,r);s.push(...e)}else this.savedMaterialsForOpacity&&ei.revertObjectOpacityById(n,a,this.savedMaterialsForOpacity)})),this.savedMaterialsForOpacity=e?s:[],this.enableRender()}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}showVertexNormals(e,t=.1){var i,r,n;e?(this.vertexNormalsHelpers||(this.vertexNormalsHelpers=new ur),null==(i=this.scene)||i.traverseVisible((e=>{var i;if(e instanceof rt&&!["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"].includes(e.name)){if(!e.geometry.attributes.normal)return;let r=new x3(e,t,16711680);null==(i=this.vertexNormalsHelpers)||i.add(r)}})),null==(r=this.scene)||r.add(this.vertexNormalsHelpers)):this.vertexNormalsHelpers&&(null==(n=this.scene)||n.remove(this.vertexNormalsHelpers),this.vertexNormalsHelpers=void 0)}resize(e,t){let i=this.camera;i&&(this.width=e||window.innerWidth,this.height=t||window.innerHeight,i instanceof Xr?i.aspect=this.width/this.height:i instanceof Ji&&(i.left=-this.width/2,i.right=this.width/2,i.top=this.height/2,i.bottom=-this.height/2),i.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(this.width,this.height),this.composer&&this.composer.setSize(this.width,this.height),this.effectFxaaPass&&this.effectFxaaPass.uniforms.resolution.value.set(1/this.width,1/this.height),this.overlayRender&&this.overlayRender.setSize(this.width,this.height)),this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjectsByMouse(e){let t=[];if(!(this.raycaster&&this.camera&&this.scene&&e&&this.viewerContainer))return t;let i=new le(e.x,e.y),r=Ci.screenPoint2NdcPoint(i,this.camera,this.viewerContainer);return this.raycaster.setFromCamera(r,this.camera),t=this.getRaycastableObjects(),t}getRaycastableObjects(){let e=[];return Object.values(this.loadedModels).forEach((t=>{let i=this.scene&&this.scene.getObjectById(t.id);i&&i.visible&&e.push(i)})),Object.values(this.loaded3dTiles).forEach((t=>{let i=this.scene&&this.scene.getObjectById(t.id);i&&i.visible&&e.push(i)})),e}getIntersections(e){let t=this.getRaycastableObjectsByMouse(e);return this.raycaster&&this.raycaster.intersectObjects(t,!0)||[]}getAllIntersections(e){if(!(this.raycaster&&this.camera&&this.scene&&this.viewerContainer))return[];let t=new le(null==e?void 0:e.x,null==e?void 0:e.y),i=Ci.screenPoint2NdcPoint(t,this.camera,this.viewerContainer);this.raycaster.setFromCamera(i,this.camera);let r=this.scene.children;return this.raycaster.intersectObjects(r,!0)||[]}handleMouseClick(e){var t,i,r;if(null!=(t=this.measurementManager)&&t.isMeasurementActive()||null!=(i=this.sectionManager)&&i.isSectionActive())return;let n=Date.now(),s=this.getIntersections(e);ne.debug(`[BimViewer] getIntersections costs ${(Date.now()-n)/1e3}s`);let a,o,l=s.find((e=>{let t=e.object;return t.visible&&(!1!==t.userData.selectable||t instanceof rt)})),h=l&&l.object||void 0;if(h)if(h instanceof rn)a=l.instanceId,this.selectedObject&&this.selectedObject.id===h.id&&this.selectedObject.userData.instanceId===a&&(h=void 0);else if(qi.isMergedMesh(h)){let e=l&&l.faceIndex||-1;e>=0?(o=qi.getBatchIdByFaceIndex(h,e),this.selectedObject&&this.selectedObject.id===h.id&&this.selectedObject.userData.batchId===o&&(h=void 0)):h=void 0}else this.selectedObject&&this.selectedObject.id===h.id&&(h=void 0);if(s.length>0&&s[0].point){let e=null==(r=this.overlayRender)?void 0:r.getDrawablesByPosition(s[0].point,this.raycaster);e&&e.length>0&&(h=e[0])}this.selectedObject&&this.clearSelection(),h?this.selectObject(h,a,o):this.clearSelection()}selectObject(e,t,i,r){if(e instanceof Aa)return this.selectedObject=e,void(this.selectedObject.selected=!0);if(this.selectedObject){let t=this.selectedObject.userData;if(null!=t.instanceId&&t.originalMatrix&&t.clonedMesh){this.scene&&this.scene.remove(t.clonedMesh);let i=this.selectedObject;if(i.setMatrixAt(t.instanceId,t.originalMatrix),i.instanceMatrix.needsUpdate=!0,i.updateMatrix(),delete t.instanceId,delete t.originalMatrix,e===t.clonedMesh)return t.clonedMesh.geometry.dispose(),delete t.clonedMesh,this.selectedObject=void 0,void(this.outlinePass&&(this.outlinePass.selectedObjects=[]));t.clonedMesh.geometry.dispose(),delete t.clonedMesh}else if(null!=t.batchId&&t.clonedMesh){if(this.scene&&this.scene.remove(t.clonedMesh),delete t.batchId,e===t.clonedMesh)return t.clonedMesh.geometry.dispose(),delete t.clonedMesh,this.selectedObject=void 0,void(this.outlinePass&&(this.outlinePass.selectedObjects=[]));t.clonedMesh.geometry.dispose(),delete t.clonedMesh}else if(t.originalMaterial){if(this.selectedObject.material){let e=this.selectedObject.material;Array.isArray(e)?e.forEach((e=>e.dispose())):e instanceof zr&&e.dispose()}this.selectedObject.material=t.originalMaterial,delete t.originalMaterial}this.selectedObject=void 0,this.outlinePass&&(this.outlinePass.selectedObjects=[])}if(this.scene&&e){if(e instanceof rn&&null!=t){let i=e,n=new Be,s=new Be;s.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),i.getMatrixAt(t,n),this.selectedObject=e,this.outlinePass&&(this.outlinePass.selectedObjects=[e]);let a=Cs.clonedHighlightMaterials(e,{depthTest:r});if(a){let r=new rt(i.geometry.clone(),a);r.applyMatrix4(e.matrixWorld.multiply(n)),r.matrixWorldNeedsUpdate=!0,r.name="Cloned mesh for highlighting";let o=n.clone();o.multiplyMatrices(n,s),i.setMatrixAt(t,o),i.instanceMatrix.needsUpdate=!0,i.updateMatrix(),this.selectedObject.userData.instanceId=t,this.selectedObject.userData.originalMatrix=n,this.selectedObject.userData.clonedMesh=r,this.scene.add(r)}}else if(qi.isMergedMesh(e)&&null!=i){let t=qi.getBatchByBatchId(e,i),n=`[BimViewer] Clicked on merged mesh(id: ${e.id}).`;n+=` Original mesh batchId: ${i}, name: ${null==t?void 0:t.name}`,ne.info(n);let s=Cs.clonedHighlightMaterials(e,{depthTest:r}),a=qi.cloneGeometryForBatch(e,t);if(s&&a){let t=new rt(a,s);t.applyMatrix4(e.matrixWorld),t.matrixWorldNeedsUpdate=!0,t.name="Cloned mesh for highlighting",this.selectedObject=e,this.selectedObject.userData.batchId=i,this.selectedObject.userData.clonedMesh=t,this.scene.add(t)}}else{let t=Cs.clonedHighlightMaterials(e,{depthTest:r});t&&(this.selectedObject=e,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=t,this.outlinePass&&(this.outlinePass.selectedObjects=[e]))}this.enableRender()}else this.enableRender()}clearSelection(){this.selectedObject&&this.selectedObject instanceof Aa?this.selectedObject.selected=!1:this.selectObject(),this.selectedObject=void 0}getBBox(){return this.bbox}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new A,i=new A,r=new Dt;e.forEach((e=>{let t=Tn.getBoundingBox(e);r.union(t)}));let n=new A;this.camera.getWorldDirection(n),xs.getCameraPositionByBboxAndDirection(r,t,i,this.camera.projectionMatrix,n),this.flyTo(t,i)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof rn&&e.userData.clonedMesh||qi.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var e,t,i;let r=Object.values(this.loadedModels).map((e=>e.id));Object.values(this.loaded3dTiles).forEach((e=>r.push(e.id)));let n=r.length;if(n<=0)return;let s=Math.floor(Math.random()*n),a=r[s];if(!(null==(e=this.scene)?void 0:e.getObjectById(a)))return;let o=[];if(null==(t=this.scene)||t.traverseVisible((e=>{(e instanceof rt||e instanceof Ir)&&!["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"].includes(e.name)&&o.push(e.id)})),o.length<1)return;let l=Math.floor(Math.random()*o.length),h=null==(i=this.scene)?void 0:i.getObjectById(o[l]);h&&(ne.info(`[BimViewer] Flying to random object: ${h.name}, type: ${h.type}`),this.selectObject(h,void 0,void 0,!0),this.flyToObject(h))}flyTo(e,t){let i=this.camera,r=this.controls;if(!i||!r)return;if(e.equals(t))return void ne.error("[BimViewer] camera position and lookAt cannot be the same!");if(!_t.isVectorValid(e)||!_t.isVectorValid(t))return void ne.error("[BimViewer] invalid position or lookAt!");let n=e.distanceTo(t);ni.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*i.far),ne.warn("[BimViewer] camera could be too far to see the object!"));let s=i.position.clone(),a=new A;i.getWorldDirection(a);let o=r.getTarget(new A).distanceTo(s),l=s.clone().addScaledVector(a,o),h=500,u=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let i=Date.now()-u;i>h&&(i=h);let n=(e,t,i)=>{let r=e.x+(t.x-e.x)*i,n=e.y+(t.y-e.y)*i,s=e.z+(t.z-e.z)*i;return new A(r,n,s)};((e,t)=>{r.setLookAt(e.x,e.y,e.z,t.x,t.y,t.z)})(n(s,e,i/h),n(l,t,i/h)),i>=h&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)}),10)}viewFitAll(){var e;if(!this.scene||!this.camera)return;let t=new A,i=new A,r=Tn.getVisibleObjectBoundingBox(this.scene),n=new A;null==(e=this.camera)||e.getWorldDirection(n),xs.getCameraPositionByBboxAndDirection(r,t,i,this.camera.projectionMatrix,n),this.flyTo(t,i)}goToHomeView(){let e=this.camera,t=this.cameraCfg,i=t&&_t.arrayToVector3(t.eye),r=t&&_t.arrayToVector3(t.look);if(i&&r)this.flyTo(i,r);else if(this.scene){let t=new A,i=new A,r=new A(-1,-.5,-1);if(this.has2dModel){let e=this.bbox.max.x-this.bbox.min.x,t=this.bbox.max.y-this.bbox.min.y,i=this.bbox.max.z-this.bbox.min.z,n=Math.min(e,t,i);e-n<=0?r.set(1,0,0):t-n<=0?r.set(0,-1,0):i-n<=0&&r.set(0,0,-1)}if(xs.getCameraPositionByBboxAndDirection(this.bbox,t,i,null==e?void 0:e.projectionMatrix,r),(!this.cameraCfg||this.cameraCfg&&(!this.cameraCfg.eye||!this.cameraCfg.look))&&(this.cameraCfg={eye:t.toArray(),look:i.toArray()}),e instanceof Ji){let t=this.bbox,i=t.max.x-t.min.x,r=t.max.z-t.min.z,n=e.right-e.left,s=e.top-e.bottom;e.zoom=Math.max(n,s)/Math.max(i,r),e.zoom/=2,e.updateProjectionMatrix()}t.equals(i)||this.flyTo(t,i)}}zoomToBBox(e){var t,i;let r=new A,n=new A,s=new A;null==(t=this.camera)||t.getWorldDirection(s),xs.getCameraPositionByBboxAndDirection(e,r,n,null==(i=this.camera)?void 0:i.projectionMatrix,s),r.equals(n)||this.flyTo(r,n)}tryAdjustCameraNearAndFar(){let e=this.camera;if(!this.scene||!e)return;let t=this.bbox,i=e.near,r=e.far,n=t.max.x-t.min.x,s=t.max.y-t.min.y,a=t.max.z-t.min.z,o=Math.max(n,s,a),l=o/5,h=5*o;if(i>l||r_t.numberToString(e);ne.info(`[BimViewer] BBox's longest side is: ${t(o)}`),i>l&&(ne.warn(`[BimViewer] camera.near(${t(i)}) shouldn't bigger than ${t(l)}, will change it!`),e.near=l),re.id));if(Object.values(this.loaded3dTiles).forEach((t=>e.push(t.id))),e){let t=this.cameraCfg,i=t&&_t.arrayToVector3(t.eye),r=t&&_t.arrayToVector3(t.look),n=new Dt;if(i&&r){let e=i,t=r;n.expandByPoint(new A(e.x,e.y,e.z)),n.expandByPoint(new A(t.x,t.y,t.z))}else n=Tn.getObjectsBoundingBox(this.scene,e);this.skyOfGradientRamp=qo.createSkyOfGradientRampByBoundingBox(n),this.scene.add(this.skyOfGradientRamp)}}regenGroundGrid(){if(!this.scene)return;this.groundGrid&&(this.groundGrid.geometry.dispose(),this.groundGrid.material.dispose(),this.scene.remove(this.groundGrid));let e=Object.values(this.loadedModels).map((e=>e.id));if(Object.values(this.loaded3dTiles).forEach((t=>e.push(t.id))),e){let e=this.cameraCfg,t=e&&_t.arrayToVector3(e.look);t&&(t.y=0),this.groundGrid=Js.createGroundGrid(void 0,void 0,t),this.scene.add(this.groundGrid)}}setOrbitPoint(e){let t=this.controls;if(this.camera&&this.renderer&&this.controls&&this.scene&&this.raycaster&&this.viewerContainer)if(this.selectedObject){let e=(new Dt).setFromObject(this.selectedObject),i=new A;e.getCenter(i),null==t||t.setOrbitPoint(i.x,i.y,i.z);let r=Ci.worldPosition2ScreenPoint(i,this.camera,this.viewerContainer);this.setAnchorPosition(r)}else{let i=this.getIntersections(e),r=new le(e.x,e.y);if(i&&0!==i.length){let e=i[0].point;null==t||t.setOrbitPoint(e.x,e.y,e.z),this.setAnchorPosition(r),this.lastOrbPoint=i[0].point}else{let e=this.bbox.getCenter(new A),i=Ci.worldPosition2ScreenPoint(e,this.camera,this.renderer.domElement);this.setAnchorPosition(i),t.setOrbitPoint(e.x,e.y,e.z),this.lastOrbPoint=e}}}setAnchorPosition(e){this.anchor&&(this.anchor.className="anchor active",this.anchor.style.left=`${e.x}px`,this.anchor.style.top=`${e.y}px`)}createAnchor(){var e;let t=document.createElement("div");return t.className="anchor",null==(e=this.viewerContainer)||e.appendChild(t),t}disposeAnchor(){var e;this.anchor&&(null==(e=this.viewerContainer)||e.removeChild(this.anchor),this.anchor=void 0)}disposeRotateToCursor(){this.disposeAnchor()}enableComposer(e){!this.scene||!this.camera||!this.renderer||(this.composerEnabled=e,e&&!this.composer&&(this.composer=new S3(this.renderer)),this.enableRender())}enableRenderPass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.renderPass){let e=new w3(this.scene,this.camera);e.setSize(this.width,this.height),this.composer.addPass(e),this.renderPass=e}this.renderPass&&(this.renderPass.enabled=e),this.enableRender()}}enableFxaaPass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.effectFxaaPass){let e=new SE(JDe);e.uniforms.resolution.value.set(1/this.width,1/this.height),e.setSize(this.width,this.height),e.renderToScreen=!0,this.composer.addPass(e),this.effectFxaaPass=e}this.effectFxaaPass&&(this.effectFxaaPass.enabled=e),this.enableRender()}}enableSaoPass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.saoPass){let e=new J_(this.scene,this.camera,!1,!0,new le(1/this.width,1/this.height));e.setSize(this.width,this.height),e.params.output=0,e.params.saoBias=.5,e.params.saoIntensity=5e-5,e.params.saoScale=5,e.params.saoKernelRadius=40,e.params.saoMinResolution=0,this.composer.addPass(e),this.saoPass=e}this.saoPass&&(this.saoPass.enabled=e),this.enableRender()}}enableSsaoPass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.ssaoPass){let e=new rc(this.scene,this.camera,this.width,this.height);e.kernelRadius=16,e.minDistance=.005,e.maxDistance=.1,this.composer.addPass(e),this.ssaoPass=e}this.ssaoPass&&(this.ssaoPass.enabled=e),this.enableRender()}}enableOutlinePass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.outlinePass){let e=new au(new le(this.width,this.height),this.scene,this.camera);e.edgeStrength=3,e.edgeGlow=0,e.edgeThickness=2,e.pulsePeriod=0,e.visibleEdgeColor.set(16711680),e.hiddenEdgeColor.set(16752768),this.composer.addPass(e),this.outlinePass=e}this.outlinePass&&(this.outlinePass.enabled=e),this.enableRender()}}enableSsaaPass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.ssaaRenderPass){let e=new M3(this.scene,this.camera,16777215,0);this.composer.addPass(e),this.ssaaRenderPass=e}this.ssaaRenderPass&&(this.ssaaRenderPass.enabled=e),this.enableRender()}}enableBloomPass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.bloomPass){let e=new xh(1,25,4);e.renderToScreen=!0,this.composer.addPass(e),this.bloomPass=e}this.bloomPass&&(this.bloomPass.enabled=e),this.enableRender()}}enableUnrealBloomPass(e){if(this.scene&&this.camera&&this.renderer&&this.composer){if(e&&!this.unrealBloomPass){let e=new dd(new le(this.width,this.height),1,0,0);e.threshold=0,e.strength=.5,e.radius=0,this.composer.addPass(e),this.unrealBloomPass=e}this.unrealBloomPass&&(this.unrealBloomPass.enabled=e),this.enableRender()}}activateSection(e="ObjectsBoxSection"){this.inputManager&&(this.sectionType=e,this.clearSelection(),this.sectionManager||(this.sectionManager=new t3(this,this.inputManager)),this.sectionManager.activateSection(e),this.enableRender())}deactivateSection(){var e;null==(e=this.sectionManager)||e.deactivateSection(),this.enableRender()}getActiveSection(){var e;return null==(e=this.sectionManager)?void 0:e.getActiveSection()}getMeasurements(){return this.inputManager?(this.measurementManager||(this.measurementManager=new ru(this,this.inputManager)),this.measurementManager.getMeasurementsData()):[]}activateMeasurement(e){this.inputManager&&(this.measurementManager||(this.measurementManager=new ru(this,this.inputManager)),this.measurementManager.activateMeasurement(e),this.clearSelection())}deactivateMeasurement(){var e;null==(e=this.measurementManager)||e.deactivateMeasurement()}setMeasurementVisibility(e,t){return!!(this.inputManager&&this.measurementManager&&e)&&this.measurementManager.setMeasurementVisibility(e,t)}clearMeasurements(){var e;null==(e=this.measurementManager)||e.clearMeasurements()}zoomToRect(){this.zoomToRectHelper||(this.zoomToRectHelper=new dE(this)),this.zoomToRectHelper.activate()}enableWebCam(){this.scene&&(this.webcam||(this.webcam=new U3),this.webcamPlane||(this.webcamPlane=this.webcam.createWebCamPlane(),this.webcamPlane.position.set(10,2,0)),this.scene.add(this.webcamPlane))}disableWebCam(){this.scene&&this.webcamPlane&&(this.webcamPlane.geometry.dispose(),this.webcamPlane.material.dispose(),this.scene.remove(this.webcamPlane))}setEnvironment(e){Nc.createEnvTexture(this.pmremGenerator,e).then((e=>{this.scene&&(this.scene.environment=e)}))}setEnvironmentFromDataArray(e){Nc.createEnvTextureFromDataArray(this.pmremGenerator,e).then((e=>{this.scene&&(this.scene.environment=e)}))}takeObjectsScreenshot(e){return ht(this,null,(function*(){return new Promise(((t,i)=>{var r;this.renderer||i("renderer is undefined"),null==(r=this.scene)||r.traverse((t=>{t instanceof rt&&((0,hm.includes)(e,(0,hm.get)(t.userData,"UniqueId"))?t.visible=!0:t.visible=!1)})),this.enableRender(),setTimeout((()=>{var e;t(null==(e=this.renderer)?void 0:e.domElement.toDataURL("image/png"))}),1e3)}))}))}updateRaycasterThreshold(){let e=this.camera;if(!e||!this.raycaster)return;let t=12/e.zoom,i=this.raycaster.params;i.Line?i.Line.threshold=t:i.Line={threshold:t},i.Points?i.Points.threshold=t:i.Points={threshold:t}}instantiate(e){new iA(e).instantiate()}merge(e){this.increaseJobCount();try{let t=[];e.traverse((e=>{e.geometry&&e.material&&t.push(e)})),qi.deepMerge(t,e)}finally{this.decreaseJobCount()}}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.setSpinnerVisibility(--this.jobCount>0)}updateProjectSettings(e){this.settings=e;let t=(e,t)=>{e&&t&&(e.near=t.near,e.far=t.far,e.updateProjectionMatrix())};t(this.perspectiveCamera,this.settings.camera),t(this.orthoCamera,this.settings.camera),this.enableRender(10)}dynamicallyUpdateControllerTarget(e){let t=this.getIntersections(e);if(t.length<0)return;let i=this.camera,r=this.controls;if(!i||!r)return;let n=t.find((e=>{if(e.distancei.far)return!1;let t=e.object;return t.visible&&t instanceof rt}));if(null!=n&&n.point&&r){let e=i.position,t=r.getTarget(new A),s=n.distance,a=e.distanceTo(t),o=e.clone().lerp(t,s/a);r.setTarget(o.x,o.y,o.z)}}computeBoundingBox(){let e=new Dt;return Object.values(this.loadedModels).forEach((t=>{if(t.bbox){t.bbox.geometry.computeBoundingBox();let i=t.bbox.geometry.boundingBox;i&&!i.isEmpty()&&e.union(i)}})),Object.values(this.loaded3dTiles).forEach((t=>{t.bbox.isEmpty()||e.union(t.bbox)})),this.bbox=e,this.controls&&(this.controls.minDistance=.1,this.controls.maxDistance=3*this.bbox.getSize(new A).length()),e}},ACe=kn(ql(),1),B3=class{constructor(e){this.viewer=e,this.itemList={},this.handleMouseWheel=e=>{e.preventDefault(),this.element&&(this.element.scrollLeft+=e.deltaY)},e.addEventListener("ModelLoaded",(()=>{this.init()}))}init(){var e;let t=document.createElement("div");t.classList.add("model-layout-switch-bar");let i=document.createElement("div");i.classList.add("model-layout-switch-bar-content"),i.addEventListener("wheel",this.handleMouseWheel),this.viewer.getLayoutNames().forEach(((e,t)=>{let r=this.createItem(e,t);this.itemList[e]=r,r.resetActivate=()=>{for(let e in this.itemList)this.itemList[e].resetActive()},null==i||i.appendChild(r.element)})),this.element=t,this.content=i,this.element.appendChild(this.content),null==(e=this.viewer.widgetContainer)||e.appendChild(this.element)}createItem(e,t){let i=new KG(this.viewer,e);return 0===t&&i.setActive(!0),i}destroy(){var e,t;for(let t in this.itemList){let i=this.itemList[t];i.destroy(),null==(e=this.content)||e.removeChild(i.element)}this.itemList={},this.element&&this.content&&(this.element.removeChild(this.content),this.element.removeEventListener("wheel",this.handleMouseWheel),null==(t=this.viewer.widgetContainer)||t.removeChild(this.element),this.element=void 0)}show(){this.element&&(this.element.style.display="block")}hide(){this.element&&(this.element.style.display="none")}},KG=class{constructor(e,t){this.viewer=e,this.eventBus=fE(),this.active=!1,this.element=this.createItem(t),this.eventBus.on("activechange",(e=>{this.resetActivate&&this.resetActivate(),e?(this.element.classList.add("activate"),this.viewer.activateLayout(t)):this.element.classList.remove("activate")}))}createItem(e){let t=document.createElement("div"),i=document.createElement("span");return t.classList.add("model-layout-switch-item"),t.onclick=()=>{this.active=!this.active,this.eventBus.emit("activechange",this.active)},i.innerText=e,t.appendChild(i),t}setActive(e){this.active!==e&&(this.active=e,this.eventBus.emit("activechange",e))}resetActive(){this.active=!1,this.element.classList.remove("activate")}destroy(){this.eventBus.off("activechange")}},k3=class{constructor(e){this.progresseItems=[],this.element=document.createElement("div"),this.element.classList.add("progress-bar"),e.appendChild(this.element)}setVisibility(e){this.element&&(e?this.element.classList.remove("hidden"):this.element.classList.add("hidden"))}addProgressItem(e,t){let i=this.progresseItems.find((t=>t.id===e));if(!i){let r=document.createElement("div");r.classList.add("progress-bar-item"),r.innerHTML=t||"",this.element.append(r),i={id:e,div:r},this.progresseItems.push(i)}this.setVisibility(!0)}updateProgress(e,t,i){let r=this.progresseItems.find((t=>t.id===e));if(!r)return;let n=t?`${t}`:"";t&&i&&(n+=": "),i&&(n+=`${i.toFixed(2)}%`),r.div.innerHTML=n}removeProgressItem(e){let t=this.progresseItems.find((t=>t.id===e));t&&t.div.remove(),0===this.progresseItems.length&&this.setVisibility(!1)}delayRemoveProgressItem(e,t=3e3){setTimeout((()=>{this.removeProgressItem(e)}),t)}},cS=new Be,MCe=new Be,DCe=new Xs,ZG=new A,CCe=class extends tm{constructor(e){super(e),this.name="DxfViewer",this.CAMERA_Z_POSITION=100,this.CAMERA_MIN_ZOOM=1e-6,this.timer=Date.now(),this.loadedModels={},this.masterModelId="",this.raycaster=new Oc,this.mouseMoved=!1,this.mouseDoubleClicked=!1,this.selected=!0,this.raf=new dT,this.clock=new Al,this.renderEnabled=!1,this.jobCount=0,this.enableHideVisuallySmallObjects=!0,this.sortedHidableObjects={},this.lastCameraZoom=1/0,this.activeLayoutName="",this.layoutInfos={},this.units=void 0,this.fpsUtils=new HC,this.onResize=()=>{var e;let t=null==(e=this.renderer)?void 0:e.domElement;t&&t.parentElement&&this.resize(t.parentElement.clientWidth,t.parentElement.clientHeight)},this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1}),e))},this.loadingDxfCount=0,this.compareMode=!1,this.viewerCfg=e,this.increaseJobCount(),this.init(),this.animate(),this.enableRender(),this.decreaseJobCount(),ne.info(`[DxfViewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initThree(),wi.isBrowser&&!e.context&&this.initDom(),this.initInputManager(),this.initEvents(),this.initControls(),this.initOthers(),this.enableSelection=e.enableSelection}initInputManager(){this.renderer&&(this.inputManager=new M0(this.renderer.domElement))}initThree(){this.initScene(),this.initRenderer(),this.initCamera()}initDom(){let e=this.viewerCfg;this.initSpinner(),this.initCSS2DRenderer(),!0===e.enableAxisGizmo&&(this.axes=this.initAxes()),!0===e.enableStats&&(this.stats=this.initStats()),e.enableToolbar&&(this.toolbar=this.initToolbar()),e.enableBottomBar&&(this.bottomBar=this.initBottomBar()),e.enableProgressBar&&(this.loadingProgressBar=this.initLoadingProgressBar()),e.enableLayoutBar&&(this.dxfLayoutBar=new B3(this))}initScene(){let e=new Pn;e.background=new je(2172976),e.matrixAutoUpdate=!1,e.matrixWorldAutoUpdate=!1,this.scene=e}initRenderer(){var e;let{context:t}=this.viewerCfg,i={context:t,antialias:!0,preserveDrawingBuffer:!0,alpha:!1,stencil:!1};!wi.isBrowser&&t&&Object.assign(i,{context:t,canvas:wi.creatReactNativeCanvas(t)}),t&&(this.width=t.drawingBufferWidth,this.height=t.drawingBufferHeight),this.renderer=new Ol(i),this.renderer.setClearColor(11119017,1),this.renderer.localClippingEnabled=!0,wi.isBrowser&&(!t&&this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.classList.add("webgl-renderer"),null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement)),this.renderer.setSize(this.width,this.height),_t.printGpuInfo(this.renderer.getContext()),Er.maxFragmentUniforms=this.renderer.capabilities.maxFragmentUniforms-20,this.enableOverlayRenderer&&(this.overlayRender=new wr(this))}initCSS2DRenderer(){var e;let t=new _f;t.setSize(this.width,this.height),t.domElement.style.height="0",t.domElement.style.width="0",t.domElement.style.position="absolute",t.domElement.style.top="0",t.domElement.style.left="0",t.domElement.style.overflow="visible",t.domElement.classList.add("css2d-renderer"),null==(e=this.viewerContainer)||e.appendChild(t.domElement),this.css2dRenderer=t}initCamera(){if(!this.scene)return;let e=new Ji(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.layers.enable(10),e.position.set(0,0,this.CAMERA_Z_POSITION),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e}initControls(){let e=this.camera;if(!this.inputManager||!e)return;let t=new $l(e,this.inputManager);t.enableRotate=!1,t.enabled=!0,t.keyTruckSpeed=10,t.dollyToCursor=!0,t.dollySpeed=.5,t.truckSpeed=1,t.mouseButtons={left:et.TRUCK,middle:et.TRUCK,wheel:et.ZOOM,right:et.TRUCK},t.touches={one:et.TOUCH_TRUCK,two:et.TOUCH_ZOOM_TRUCK,three:et.NONE},t.listenToKeyEvents(),t.update(0),this.controls=t,t.addEventListener("control",this.onControlsChange(this)),t.addEventListener("controlend",this.onControlsEnd(this))}onControlsChange(e){return()=>{e.enableRender()}}onControlsEnd(e){return()=>{e.enableRender()}}initSpinner(){var e;if(!this.viewerCfg.enableSpinner)return;let t=document.createElement("div");t.classList.add("bim-viewer-spinner");let i=document.createElement("div");i.classList.add(uo,"icon-loading"),t.append(i),null==(e=this.widgetContainer)||e.appendChild(t),this.spinner=t,this.setSpinnerVisibility(this.jobCount>0)}initEvents(){this.inputManager&&(this.inputManager.addEventListener("pointerdown",(e=>{this.handleMouseClick(e)})),this.inputManager.addEventListener("pointermove",(()=>{})),this.inputManager.addEventListener("pointerup",(()=>{})),this.inputManager.addEventListener("keydown",(e=>{e.altKey&&"KeyR"===e.code&&this.flyToRandomObject()})),this.inputManager.addEventListener("resize",this.onResize))}initOthers(){!this.scene||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initAxes(){var e;let t=document.createElement("div");t.classList.add("axesRenderer");let i=new Sf(t,this.camera,!0);return null==(e=this.widgetContainer)||e.append(t),i}initStats(){var e;let t=I3();t.setMode(0);let i=document.createElement("div");return i.classList.add("statsOutput"),i.appendChild(t.domElement),t.domElement.style.position="absolute",null==(e=this.widgetContainer)||e.append(i),t}showStats(){this.stats||(this.stats=this.initStats()),this.stats.showPanel(0)}hideStats(){this.stats&&this.stats.showPanel(-1)}initToolbar(){let e=this.viewerCfg;return new Eh(this,(0,ACe.merge)({},MDe,e.toolbarMenuConfig))}initBottomBar(){return new om(this)}initLoadingProgressBar(){return new k3(this.widgetContainer)}showLayoutBar(){var e;null==(e=this.dxfLayoutBar)||e.show()}hideLayoutBar(){var e;null==(e=this.dxfLayoutBar)||e.hide()}animate(){var e,t,i,r,n,s;requestAnimationFrame(this.animate.bind(this));let a=this.clock.getDelta(),o=null==(e=this.controls)?void 0:e.update(a);if(this.scene&&this.camera&&(this.renderEnabled||o)){if(this.updateRaycasterThreshold(),this.updateCameraZoomUniform(this.camera.zoom),Er.resolutionUniform.value.set(this.width,this.height),null==(t=this.renderer)||t.render(this.scene,this.camera),!wi.isBrowser){let e=null==(i=this.renderer)?void 0:i.getContext();e&&e.endFrameEXP&&(e.flush(),e.endFrameEXP())}this.hotpointRoot&&this.hotpointRoot.children.length>0&&(null==(r=this.css2dRenderer)||r.render(this.scene,this.camera)),this.dispatchEvent("RenderAfter")}null==(n=this.stats)||n.update(),this.fpsUtils.update(),null==(s=this.bottomBar)||s.update()}getFps(){return this.fpsUtils.fps}is3d(){return!1}destroy(){var e,t,i,r,n,s;Er.abortJobs=!0,this.dxfLayoutBar&&(this.dxfLayoutBar.destroy(),this.dxfLayoutBar=void 0),null==(e=this.measurementManager)||e.destroy(),this.measurementManager=void 0,null==(t=this.markupManager)||t.destroy(),this.markupManager=void 0,null==(i=this.zoomToRectHelper)||i.destroy(),this.zoomToRectHelper=void 0,null==(r=this.boxSelectHelper)||r.destroy(),this.boxSelectHelper=void 0,this.sortedHidableObjects={},this.layoutInfos={},this.raycastableObjects=void 0,this.changes={},Object.keys(this.loadedModels).forEach((e=>{delete this.loadedModels[e]})),this.loadedModels={},this.css2dRenderer&&(null==(n=this.viewerContainer)||n.removeChild(this.css2dRenderer.domElement),this.css2dRenderer=void 0),this.stats=void 0,this.raycaster=void 0,this.selectedObject=void 0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.raf=void 0),this.contextMenu&&(this.contextMenu.destroy(),this.contextMenu=void 0),this.axes&&(this.axes.dispose(),this.axes=void 0),this.toolbar&&(this.toolbar.destroy(),this.toolbar=void 0),this.spinner&&(this.spinner.remove(),this.spinner=void 0),this.bottomBar=void 0,this.font=void 0,null==(s=this.inputManager)||s.removeEventListener(),super.destroy()}loadModelAsync(e,t){return ht(this,null,(function*(){var i,r;this.loadingDxfCount++,this.timer=Date.now(),this.increaseJobCount();let n=e.modelId||e.src;this.masterModelId||(this.masterModelId=n);let s=e.ignorePaperSpace||this.masterModelId!==n;!1===e.ignorePaperSpace&&s&&ne.warn(`[DxfViewer] Paper space will be ignored for '${n}' although 'ignorePaperSpace' is false!`),_t.printMemory("Before loadModelAsync");let a=new $c;a.setFont(this.font);let o=n,l=this.translate("ProgressBar.Loading"),h=e=>{var i;null==(i=this.loadingProgressBar)||i.updateProgress(o,l,e),t&&t(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},u=(e,i,r)=>{var n;let s=100*e.loaded/e.total;s=s*(r-i)/100+i,null==(n=this.loadingProgressBar)||n.updateProgress(o,l,s),t&&t(new ProgressEvent("LoadProgress",{loaded:s,total:100}))};null==(i=this.loadingProgressBar)||i.addProgressItem(o),h(0);let c=this.viewerCfg,p=yield a.loadDxfDataAsync(e.src,e.modelId,(e=>u(e,0,90)),void 0,s,c.enableLocalCache).finally((()=>{this.loadingDxfCount--,0===this.loadingDxfCount&&this.font&&this.font.releaseFontData&&this.font.releaseFontData()}));if(ne.info(`[DxfViewer] Loaded '${e.src}' in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),Er.abortJobs&&Promise.reject("[DxfViewer] abort load dxf"),0===p.threejsObject.children.length){let t=`[DxfViewer] Nothing was loaded from ${e.src}`;return ne.warn(t),this.decreaseJobCount(),Promise.reject(t)}let d=p.threejsObject;d.name=n;let f=this.getDxfUnits(p);if(this.masterModelId===e.modelId&&(this.units=f),ne.info(`[DxfViewer] Units of '${e.src}' is '${f}'`),f){let t=1;this.units&&f!==this.units&&(t=G8(f,this.units)),e.scale?e.scale=[e.scale[0]*t,e.scale[0]*t,e.scale[0]*t]:e.scale=[t,t,t]}if(e.matrix&&16===e.matrix.length){let t=new Be;t.elements=e.matrix,d.applyMatrix4(t)}else{let t=e.position||[0,0,0],i=e.rotation||[0,0,0],r=e.scale||[1,1,1];d.position.set(t[0],t[1],t[2]),d.rotation.set(i[0]*Math.PI/180,i[1]*Math.PI/180,i[2]*Math.PI/180),d.scale.set(r[0],r[1],r[2])}return this.addLoadedModelToScene(d,e,p),_t.printMemory("After addLoadedModelToScene"),ne.info(`[DxfViewer] Added '${e.src}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.decreaseJobCount(),h(100),null==(r=this.loadingProgressBar)||r.delayRemoveProgressItem(o),this.dispatchEvent("ModelLoaded"),Promise.resolve()}))}unloadDxf(){throw new Error("Not implemented yet!")}isCompareMode(){return this.compareMode}compare(e,t,i){return ht(this,null,(function*(){var r,n,s,a,o;let{src:l,modelId:h}=e,{src:u}=t;if(this.compareMode)return Promise.reject("[DxfViewer] It is already under comparing mode!");if(this.masterModelId||Object.keys(this.loadedModels).length>0)return Promise.reject("[DxfViewer] Shouldn't load anything else before compare!");if(this.compareMode=!0,this.timer=Date.now(),this.increaseJobCount(),!this.font)return Promise.reject("[DxfViewer] Should set font first!");let c=new Er(!0);c.setFont(this.font),this.font instanceof Yc&&this.font.getFontData&&(yield this.font.getFontData());let p=l+u,d=this.translate("ProgressBar.Comparing"),f=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(p,d,e),i&&i(new ProgressEvent("CompareProgress",{loaded:e,total:100}))},m=(e,t,r)=>{var n;let s=100*e.loaded/e.total;s=s*(r-t)/100+t,null==(n=this.loadingProgressBar)||n.updateProgress(p,d,s),i&&i(new ProgressEvent("CompareProgress",{loaded:s,total:100}))};_t.printMemory("Before comparing"),this.masterModelId=h||l,this.loadingDxfCount+=2,null==(r=this.loadingProgressBar)||r.addProgressItem(p),f(0);let g=Date.now(),y=yield c.parse(l,(e=>m(e,0,15))),v=yield c.parse(u,(e=>m(e,15,30))),[T,x]=yield Promise.allSettled([y,v]);if("rejected"===T.status)return Promise.reject(`[DxfViewer] Failed to parse ${l}`);if("rejected"===x.status)return Promise.reject(`[DxfViewer] Failed to parse ${u}`);if(ne.info(`[DxfViewer] loadFiles in ${(Date.now()-g)/1e3}s`),Er.abortJobs)return Promise.reject("[DxfViewer] compare loadFile aborted");let b=T.value,_=x.value;g=Date.now();let E=yield new qn(b,_).compare((e=>m(e,30,60)));if(ne.info(`[DxfViewer] Compared in ${(Date.now()-g)/1e3}s`),ne.debug("Compared results:",E),Er.abortJobs)return Promise.reject("[DxfViewer] compare change aborted");_t.printMemory("After getting the comparison results"),g=Date.now(),yield c.loadEntitiesForCompare(b,_,E,(e=>m(e,60,95))),_t.printMemory("After Creating threejs objects based on comparison result"),null==(n=this.font)||n.releaseFontData(),this.changes=E,ne.info(`[DxfViewer] Creates threejs objects based on comparison result in ${(Date.now()-g)/1e3}s`);let w=b,S=_;if(this.loadingDxfCount-=2,this.decreaseJobCount(),Object.keys(E).length||ne.info("[DxfViewer] No change found"),0===(null==(s=w.threejsObject)?void 0:s.children.length)&&0===(null==(a=S.threejsObject)?void 0:a.children.length)){let e=`[DxfViewer] Nothing was loaded from ${l} and ${u}`;return ne.warn(e),Promise.reject(e)}let I=w.threejsObject,M=S.threejsObject;return I.name=l,M.name=u,g=Date.now(),this.addLoadedModelToScene(I,Br({},e),w),_t.printMemory("After adding first loaded Model to scene"),f(95),this.addLoadedModelToScene(M,Br({},t),S),_t.printMemory("After adding second loaded Model to scene"),ne.info(`[DxfViewer] Added compared objects to scene in ${(Date.now()-g)/1e3}s`),ne.info(`[DxfViewer] The comparison between ${l}' and '${u}' is completed in ${(Date.now()-this.timer)/1e3}s !`),f(100),null==(o=this.loadingProgressBar)||o.delayRemoveProgressItem(p),Promise.resolve()}))}getEntitiesCount(){let e=0;return Object.values(this.loadedModels).forEach((t=>{var i;e+=(null==(i=t.dxfData)?void 0:i.loadedEntityCount)||0})),e}getLoadedDxfModelIds(){return Object.keys(this.loadedModels)}getLayoutNames(){let e=[];return this.getLayouts().forEach((t=>{e.push(t.layoutName)})),e}getLayouts(){let e=[],t=this.loadedModels[this.masterModelId];if(t){let i=t.dxfData,r=null==i?void 0:i.objects.LAYOUT;null==r||r.forEach((t=>{e.push(t)}))}return e}handleOverlayDxf(e){var t;let i=this.loadedModels[e];if(!i)return void ne.warn(`[DxfViewer] Can't find model for modelId '${e}'!`);this.increaseJobCount(),this.switchTransformMs(Er.MODEL_LAYOUT_NAME,e);let r=null==(t=i.dxfData)?void 0:t.threejsObject,n=null==r?void 0:r.children.find((e=>e.name===Er.MODEL_LAYOUT_NAME));n&&(n.traverse((e=>{this.addSpatialFilterSection(e,i.dxfData)})),this.calBoundingBoxOfLayoutChild(n)),this.showLayoutObjects(this.activeLayoutName),this.decreaseJobCount()}activateLayout(e){var t,i,r;if(this.increaseJobCount(),0==e.length)return ne.warn("[DxfViewer] layout name is empty !"),void this.decreaseJobCount();if(e===this.activeLayoutName)return void this.decreaseJobCount();let n=Date.now(),s=this.camera,a=this.getLayoutByName(e);if(!a)return ne.warn(`[DxfViewer] Can't find layout of ${e} !`),void this.decreaseJobCount();let o=this.loadedModels[this.masterModelId];if(!o)return ne.warn(`[DxfViewer] Can't find master model for modelId '${this.masterModelId}'!`),void this.decreaseJobCount();if(this.raycastableObjects=void 0,this.activeLayoutName){let e=this.getActiveLayoutInfo();e.lastCameraPosition||(e.lastCameraPosition=new A),null==(t=this.camera)||t.getWorldPosition(e.lastCameraPosition),e.lastCameraZoom=s.zoom}if(!(e=>{let t=this.layoutInfos[e];return!(null==t||!t.lastCameraZoom)})(e)){this.switchTransformMs(e,this.masterModelId);let t=this.getLayoutViewports(a),n=[];t.length>0&&(n=t[0].frozenLayerHandles);let s=e!==Er.MODEL_LAYOUT_NAME,l=null==(i=o.dxfData)?void 0:i.threejsObject,h=null==l?void 0:l.children.find((t=>t.name===e));if(h){let t=[],i=null==(r=o.dxfData)?void 0:r.layersAndThreejsObjects;h.traverse((r=>{this.addSpatialFilterSection(r,o.dxfData);let a=r;if(s&&a.material&&a.geometry){let r=a.userData.layerName;if(!this.isLayerFrozenForViewport(o.dxfData,r,n))return;t.push(a);let s=-1;i&&i[r]&&(s=i[r].indexOf(a),s>=0&&i[r].splice(s,1)),s<0&&ne.warn(`[DxfViewer] Failed to find object for modelId '${this.masterModelId}', layer '${r}', layout '${e}'`)}})),t.forEach((e=>{e.removeFromParent()}))}let u=this.getFilteredViewports(a);ne.debug("[DxfViewer] Active layout:",e,", viewports:",u);let c=Date.now();u.forEach((t=>{this.generateObjectsByViewport(e,t,o.dxfData)})),ne.info(`[DxfViewer] generateObjectsByViewport in ${(Date.now()-c)/1e3}s`),e!==Er.MODEL_LAYOUT_NAME&&this.switchTransformMs(Er.MODEL_LAYOUT_NAME,this.masterModelId),e!==Er.MODEL_LAYOUT_NAME&&h&&this.setLayoutHidableObjectArray(h),h&&this.calBoundingBoxOfLayoutChild(h)}let l=this.getActiveLayoutInfo();this.measurementManager&&(l.measurementDataArray=this.measurementManager.getMeasurementsData()||[],l.measurementDataArray.forEach((e=>{e.layoutName=this.activeLayoutName,this.setMeasurementVisibility(e.id,!1)})),this.measurementManager.clearUndoRedo()),this.markupManager&&(l.markupDataArray=this.markupManager.getMarkupData()||[],l.markupDataArray.forEach((e=>{e.layoutName=this.activeLayoutName,this.setMarkupVisibility(e.id,!1)})),this.markupManager.clearUndoRedo()),this.showLayoutObjects(e),this.activeLayoutName=e,l=this.getActiveLayoutInfo();let h=l.measurementDataArray||[];this.measurementManager&&(this.measurementManager.setMeasurementsData(h),h.forEach((e=>this.setMeasurementVisibility(e.id,!0))));let u=l.markupDataArray||[];if(this.markupManager&&(this.markupManager.setMarkupData(u),u.forEach((e=>this.setMarkupVisibility(e.id,!0)))),l.lastCameraPosition)this.goTo(l.lastCameraPosition,l.lastCameraZoom,!1);else{let e=this.getLayoutExtentEx(a);if(e){let t=e.max.x-e.min.x,i=e.max.y-e.min.y;(t<1e-16||i<1e-16||t>1e16||i>1e16)&&(ne.warn(`[BimViewer] Got wired bbox, max: ${e.max.toArray()}, min: ${e.min.toArray()}, going to calculate one...`),e=this.computeBoundingBox()),l.bbox=e,this.activeLayoutName!==Er.MODEL_LAYOUT_NAME&&this.updateGroundPlane(),this.zoomToBBox(e)}}this.dispatchEvent("LayoutChanged"),_t.printMemory(`After activated layout '${this.activeLayoutName}'`),this.enableRender(),this.decreaseJobCount(),ne.info(`[DxfViewer] Activated layout '${e}' in ${(Date.now()-n)/1e3}s`)}calBoundingBoxOfLayoutChild(e){let t=e.children.length;for(let i=0;i0?t.userData.boundingBox=Tn.getBoundingBox(t):t.userData.boundingBox&&delete t.userData.boundingBox}}getActiveLayoutName(){return this.activeLayoutName}getLayers(){var e,t;let i=[];if(this.masterModelId){let t=this.loadedModels[this.masterModelId],r=null==(e=null==t?void 0:t.dxfData)?void 0:e.tables.layer.layers;r&&i.push({modelId:this.masterModelId,layers:r})}for(let[e,r]of Object.entries(this.loadedModels)){if(e===this.masterModelId)continue;let n=null==(t=null==r?void 0:r.dxfData)?void 0:t.tables.layer.layers;n&&i.push({modelId:e,layers:n})}return i}setModelVisibility(e,t){let i=this.loadedModels[e];if(!i||!i.dxfData)throw new Error(`Failed to find model by modelId '${e}'!`);i.dxfData.threejsObject.visible=t,this.enableRender()}setLayerVisibility(e,t,i){let r=this.camera;i=i||this.masterModelId;let n=this.loadedModels[i];if(!n)throw new Error(`Failed to find layer by modelId '${i}'!`);let s=n.dxfData,a=null==s?void 0:s.tables.layer.layers[e];a?a.visible=t:ne.warn(`[DxfViewer] Layer '${e}' not found from dxfData!`);let o=null==s?void 0:s.layersAndThreejsObjects[e];if(o){let e=r.zoom;o.forEach((i=>{this.enableHideVisuallySmallObjects&&t&&e&&i.userData.visibleMinZoom&&e{let i=e;i.material&&Cs.setMaterialColor(i.material,new je(t))})):ne.warn(`[DxfViewer] No object found for layer '${e}'`),this.enableRender()}setFont(e){return ht(this,null,(function*(){let t=Date.now();w0.isShxFile(e[0])?this.font=yield(new w0).loadAsync(e):(e.length>1&&ne.warn("[DxfViewer] Only support 1 typeface font file for now, others will be ignored!"),this.font=yield(new mT).loadAsync(e[0])),ne.info(`[DxfViewer] Font file(s) load time in ${(Date.now()-t)/1e3}s`)}))}setDisplayLengthUnits(){throw new Error("Not implemented yet!")}setDisplayAreaUnits(){throw new Error("Not implemented yet!")}setDisplayPrecision(){throw new Error("Not implemented yet!")}getScreenshot(){return ht(this,null,(function*(){var e;let t,i="image/png",r=.8,n=null==(e=this.renderer)?void 0:e.domElement;if(!n)return;this.boxSelectHelper||(this.boxSelectHelper=new Jf(this)),t=yield this.boxSelectHelper.select();let s=yield _t.canvasToImage(n),a=document.createElement("canvas");a.width=n.width,a.height=n.height;let o=window.devicePixelRatio,l=a.getContext("2d");if(l.drawImage(s,0,0,s.width/o,s.height/o),this.overlayRender){let e=this.overlayRender.getCanvas(),t=yield _t.canvasToImage(e);l.drawImage(t,0,0,t.width/o,t.height/o)}return _t.renderingContextToImage(l,t,i,r)}))}activateMeasurement(e){this.inputManager&&(this.measurementManager||(this.measurementManager=new ru(this,this.inputManager)),this.measurementManager.activateMeasurement(e),this.clearSelection())}deactivateMeasurement(){var e;null==(e=this.measurementManager)||e.deactivateMeasurement()}getActiveMeasurementType(){var e;return null==(e=this.measurementManager)?void 0:e.getActiveMeasurementType()}getMeasurements(){var e,t;let i=this.getActiveLayoutInfo();i.measurementDataArray=(null==(e=this.measurementManager)?void 0:e.getMeasurementsData())||[],i.measurementDataArray.forEach((e=>{e.layoutName||(e.layoutName=this.activeLayoutName)}));let r=[];for(let e of Object.values(this.layoutInfos))null==(t=e.measurementDataArray)||t.forEach((e=>r.push(e)));return r}setMeasurements(e){if(!this.inputManager)return;e.forEach((e=>{var t;let i=e.layoutName||Er.MODEL_LAYOUT_NAME;null==(t=this.getLayoutInfo(i).measurementDataArray)||t.push(e)}));let t=this.getActiveLayoutInfo();this.measurementManager||(this.measurementManager=new ru(this,this.inputManager));let i=this.measurementManager;t.measurementDataArray&&i.setMeasurementsData(t.measurementDataArray)}selectMeasurement(e){this.inputManager&&(this.measurementManager||(this.measurementManager=new ru(this,this.inputManager)),this.measurementManager.selectMeasurementById(e))}unselectMeasurement(){this.inputManager&&(this.measurementManager||(this.measurementManager=new ru(this,this.inputManager)),this.measurementManager.unselectMeasurement())}removeMeasurement(e){this.inputManager&&(this.measurementManager||(this.measurementManager=new ru(this,this.inputManager)),this.measurementManager.removeMeasurementById(e))}setMeasurementVisibility(e,t){return!!(this.inputManager&&this.measurementManager&&e)&&this.measurementManager.setMeasurementVisibility(e,t)}clearMeasurements(){var e;null==(e=this.measurementManager)||e.clearMeasurements();for(let e of Object.values(this.layoutInfos))e.measurementDataArray=[]}activateMarkup(e){this.inputManager&&(this.markupManager||(this.markupManager=new P_(this,this.inputManager)),this.markupManager.isMarkupActive()||this.markupManager.activate(),this.markupManager.setDrawType(e),this.clearSelection())}deactivateMarkup(){this.markupManager&&this.markupManager.deactivate()}getActiveMarkupType(){var e;return null==(e=this.markupManager)?void 0:e.getActiveMarkupType()}setMarkupLineColor(e){var t;null==(t=this.markupManager)||t.setLineColor(e)}getMarkupLineColor(){var e;return null==(e=this.markupManager)?void 0:e.getLineColor()}setMarkupFillColor(e){var t;null==(t=this.markupManager)||t.setFillColor(e)}getMarkupFillColor(){var e;return null==(e=this.markupManager)?void 0:e.getFillColor()}setMarkupLineWidth(e){var t;null==(t=this.markupManager)||t.setLineWidth(e)}getMarkupLineWidth(){var e;return null==(e=this.markupManager)?void 0:e.getLineWidth()}setMarkupFontSize(e){var t;null==(t=this.markupManager)||t.setFontSize(e)}getMarkupFontSize(){var e;return null==(e=this.markupManager)?void 0:e.getFontSize()}getMarkups(){var e,t;let i=this.getActiveLayoutInfo();i.markupDataArray=(null==(e=this.markupManager)?void 0:e.getMarkupData())||[],i.markupDataArray.forEach((e=>{e.layoutName||(e.layoutName=this.activeLayoutName)}));let r=[];for(let e of Object.values(this.layoutInfos))null==(t=e.markupDataArray)||t.forEach((e=>r.push(e)));return r}setMarkups(e){if(!this.inputManager)return;this.clearMarkups(),e.forEach((e=>{var t;let i=e.layoutName||Er.MODEL_LAYOUT_NAME;null==(t=this.getLayoutInfo(i).markupDataArray)||t.push(e)}));let t=this.getActiveLayoutInfo();this.markupManager||(this.markupManager=new P_(this,this.inputManager));let i=this.markupManager;t.markupDataArray&&i.setMarkupData(t.markupDataArray),this.enableRender()}setMarkupVisibility(e,t){return!!(this.inputManager&&this.markupManager&&e)&&this.markupManager.setMarkupVisibility(e,t)}updateMarkup(e){if(!(this.inputManager&&this.markupManager&&e&&e.id))return!1;let t=!1;for(let i of Object.values(this.layoutInfos)){let r=i.markupDataArray||[];for(let i=0;i{var i;return(null==(i=t.userData.hotpoint)?void 0:i.hotpointId)===e}))}getHitResult(e){let t=this.viewerContainer;if(!this.camera||!this.raycaster||!this.groundPlane)return;let i=Ci.getScreenPointByEvent(e,t),r=Ci.screenPoint2NdcPoint(i,this.camera,t);this.raycaster.setFromCamera(r,this.camera),this.raycaster.layers.enable(10);let n=this.raycaster.intersectObject(this.groundPlane,!0);if(n&&n.length>0){let e=n[0].point;return{location:[e.x,e.y]}}}zoomToRect(){this.zoomToRectHelper||(this.zoomToRectHelper=new dE(this)),this.zoomToRectHelper.activate()}getLayoutByName(e){let t,i=this.getLayouts();for(let r of i)if(r.layoutName===e){t=r;break}return t}getActiveLayoutInfo(){return this.getLayoutInfo(this.activeLayoutName)}getMsTransformMatrix(e){var t,i;let r=this.loadedModels[e],n=null==(t=r.dxfData)?void 0:t.header;if(!n)return;let s=n.$ANGDIR,a=this.getDxfUnits(r.dxfData),o=null==(i=r.dxfData)?void 0:i.tables.viewPort.viewPorts.filter((e=>"*ACTIVE"===e.name.toLocaleUpperCase()));if(!o)return;let l=new Be,h=Er.getDcs2WcsMatrix(o[0],s),u=new A(o[0].center.x,o[0].center.y,0).applyMatrix4(h),c=1;this.units&&a!==this.units&&(c=G8(a,this.units)),u.multiplyScalar(c),l.makeTranslation(u.x,u.y,0),l.multiply((new Be).makeRotationZ(_r.degToRad(o[0].viewTwistAngle))),l.multiply((new Be).makeTranslation(-u.x,-u.y,0)),this.loadedModels[e].msTransformMatrix=l}switchTransformMs(e,t){var i;let r=this.loadedModels[t];if(!r)return void ne.warn(`[DxfViewer] Can't find model whose modelId is ${t}`);let n=r.msTransformMatrix;if(cS.identity(),!n||n.equals(cS))return;let s=null==(i=r.dxfData)?void 0:i.threejsObject,a=null==s?void 0:s.children.find((e=>e.name===Er.MODEL_LAYOUT_NAME));a&&(e===Er.MODEL_LAYOUT_NAME?a.applyMatrix4(n):a.applyMatrix4(n.clone().invert()),a.updateMatrixWorld(!0))}getLayoutExtentEx(e){return e.layoutName===Er.MODEL_LAYOUT_NAME?this.getModelSpaceExtent():this.getLayoutExtent(e)}getModelSpaceExtent(){var e,t;let i=this.loadedModels[this.masterModelId],r=null==(e=i.dxfData)?void 0:e.header,n=new A,s=new A;if(!r)throw new Error(`Header is undefined in ${this.masterModelId}!`);let a=null==(t=i.dxfData)?void 0:t.tables.viewPort.viewPorts,o=r.$EXTMIN,l=r.$EXTMAX,h=r.$ANGDIR;if(a&&a.length>0)for(let e=0;e0){let e,t=s.filter((e=>1===parseInt(e.viewportId)));e=t.length>0?t[0]:s[0];let{centerPoint:i,width_paperSpace:r,height_paperSpace:n}=e,h=Er.getDcs2WcsMatrix(e,l),u=new A(i.x,i.y,0);u.applyMatrix4(h),a={x:u.x-r/2,y:u.y-n/2,z:0},o={x:u.x+r/2,y:u.y+n/2,z:0}}return r.set(a.x,a.y,a.z),n.set(o.x,o.y,o.z),new Dt(r,n)}showLayoutObjects(e){Object.values(this.loadedModels).forEach((t=>{var i;let r=0,n=0,s=null==(i=t.dxfData)?void 0:i.threejsObject;null==s||s.children.forEach((t=>{let i=t.name===e;t.visible=i,i?r++:n++})),ne.debug(`[DxfViewer] showLayoutObjects('${e}') sets ${r} layout level object(s) to visible and ${n} to hidden for model '${null==s?void 0:s.name}'`)}))}getLayoutViewports(e){var t;let i=this.loadedModels[this.masterModelId],r=e.ownerHandle;return(null==(t=i.dxfData)?void 0:t.layoutViewportsMap[r])||[]}setMaterialUniforms(e,t){e instanceof Yt&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=Er.cameraZoomUniform),e.uniforms.u_viewportScale&&1===(null==t?void 0:t.header.$PSLTSCALE)&&(e.uniforms.u_viewportScale=Er.viewportScaleUniform))}isLayerFrozenForViewport(e,t,i){if(!e||!t)return!1;let r=e.tables.layer.layers[t];return!!(r&&(1&r.flag)>0)||!(!i||i.length<=0)&&(r&&i.indexOf(r.handle)>=0)}getFilteredViewports(e){let t=this.getLayoutViewports(e),i=t.filter((e=>"1"!==e.viewportId));return i.length===t.length&&(i=t.filter(((e,t)=>0!==t))),i}generateObjectsByViewport(e,t,i,r=[]){let n=t;if("1"==t.viewportId)return;if(!n.psBBox||!n.msToPsMatrix)throw new Error("The bbox or matrix is invalid in the viewport!");Er.transformMatrixUniform={value:n.msToPsMatrix},Er.viewportScaleUniform={value:t.viewHeight/t.height_paperSpace};let s=n.psBBox.clone();s.applyMatrix4(n.msToPsMatrix.clone().invert()),s.min.setZ(-1),s.max.setZ(1);let a=this.getObjectsByBoundingBox(s);if(0===a.length)return;let o,l=n.psBBox.min,h=n.psBBox.max,u=new rs(new le(l.x,l.y),new le(h.x,h.y)),c=Yu.generateSectionPlanesByBox(u),p=[],d=e=>(p[e.id]||(p[e.id]=e.clone(),this.setMaterialUniforms(p[e.id],i),Yu.setMaterialSection(p[e.id],c)),p[e.id]),f=[...r,...t.frozenLayerHandles||[]];if(e!==Er.MODEL_LAYOUT_NAME){let e=t;e.associatedLeafObjectSet||(e.associatedLeafObjectSet=new Set),o=e.associatedLeafObjectSet}let m=new ur;m.name=t.viewportId;let g=null==i?void 0:i.layersAndThreejsObjects,y=[];if(a.forEach((t=>{let r=t.clone();r.traverse((t=>{if(t.material&&t.geometry){let r=t.userData.layerName;if(this.isLayerFrozenForViewport(i,r,f))return void y.push(t);!1!==t.userData.layerVisible&&(t.visible=!0),t.material=(e=>{if(Array.isArray(e)){let t=[];return e.forEach((e=>{let i=d(e);t.push(i)})),t}return d(e)})(t.material),null==o||o.add(t),g&&g[r]?g[r].push(t):ne.warn(`[DxfViewer] Failed to find object for modelId '${this.masterModelId}', layer '${r}', layout '${e}'`)}})),r.userData.boundingBox&&(r.visible=!0,delete r.userData.boundingBox),m.add(r)})),o&&0===o.size)return;ei.removeEmptyObjectsFromRemovingObjects(y,m);let v=null==i?void 0:i.threejsObject,T=null==v?void 0:v.children.find((t=>t.name===e));T||(T=new ur,ei.setSharedVariablesOfObject(T),T.name=e,null==v||v.add(T)),T.add(m),m.applyMatrix4(n.msToPsMatrix),m.updateMatrixWorld(!0),m.traverse((e=>{ei.setSharedVariablesOfObject(e),this.addSpatialFilterSection(e,i,!0)}))}findSpatialFilter(e,t){let i,r=t.objects.SPATIAL_FILTER;if(r){for(let t of r)if(t.handle===e){i=t;break}return i}}getAnyMaterial(e){let t,i=e;if(i.material)return Array.isArray(i.material)?i.material[0]:i.material;for(let i=0;i0),n=s.clipIntersection),t&&n!==r.clipPolylines[0].bReversed)return void ne.warn("[DxfViewer] Material cannot set clipIntersection to different values at the same time. clipIntersection needs to be set to true here!");n=r.clipPolylines[0].bReversed;let a=this.generateSectionsBySpatialFilter(r,e.matrixWorld);if(a){let i=e=>{let t=0;return e.clippingPlanes&&(t=e.clippingPlanes.length),t+a.length>Er.maxFragmentUniforms},r=new Set,s=e=>{r.has(e.id)||(r.add(e.id),i(e)||Yu.setMaterialSection(e,a,t,n))};e.traverse((e=>{let t=e.material;Array.isArray(t)?t.forEach((e=>{s(e)})):t&&s(t)}))}}}getObjectsByBoundingBox(e){var t;let i=[];if(e.isEmpty())return ne.warn("[DxfViewer] bbox is empty !"),i;let r=null==(t=this.loadedModels[this.masterModelId].dxfData)?void 0:t.threejsObject,n=null==r?void 0:r.children.find((e=>e.name===Er.MODEL_LAYOUT_NAME));return n&&n.children.forEach((t=>{(t=>{let r=Tn.getBoundingBox(t,!1);e.intersectsBox(r)&&i.push(t)})(t)})),i}getDxfUnits(e){if(e||Object.keys(this.loadedModels).length>0&&(e=this.loadedModels[this.masterModelId].dxfData),!e)return"Unitless";let t=null==e?void 0:e.header;if(!t)return ne.warn("DxfData or its header is undefined!"),"Unitless";let i=t.$INSUNITS;return Er.getDxfUnits(i)}generateSectionsBySpatialFilter(e,t){let i=e.clipPolylines[0];if(i.bConcave)return void ne.warn("[DxfViewer] clipPolyline.bConcave = true is not supported yet in spatialFilter !");cS.copy(t),e.localMatrix&&cS.multiply(e.localMatrix);let r=i.polyline,n=[];r.forEach((e=>{let t=e.clone().applyMatrix4(cS);n.push(new le(t.x,t.y))}));let s=es.isClockWise(n),a=!s&&!i.bReversed||s&&i.bReversed;return Yu.generateSectionPlanesByPoints(n,a)}addLoadedModelToScene(e,t,i){if(!this.scene)return;let r=t.modelId||t.src;if(this.loadedModels[r]){let e=1;for(;this.loadedModels[`${r}_${e}`];)e++;r=`${r}_${e}`,ne.warn(`[DxfViewer] Model '${r}' is loaded more than once!`)}this.loadedModels[r]={dxfData:i},e.matrixAutoUpdate=!1,e.updateMatrix(),_t.printMemory("Before merge"),t.merge&&(Er.merge(i),_t.printMemory("After merged")),e.updateMatrixWorld(!0),Er.computeLineDistances(e),this.getMsTransformMatrix(r),this.masterModelId===r?this.activateLayout(Er.MODEL_LAYOUT_NAME):this.handleOverlayDxf(r),ne.debug(i),this.scene.add(e);let n=null==i?void 0:i.threejsObject.children.find((e=>e.name===Er.MODEL_LAYOUT_NAME));n&&this.setLayoutHidableObjectArray(n),this.updateGroundPlane(),this.raycastableObjects=void 0,this.masterModelId===r||this.enableRender()}resize(e,t){let i=this.camera;if(i){let r=e||window.innerWidth,n=t||window.innerHeight,s=r/n;i.left=-this.height*s/2,i.right=this.height*s/2,i.top=this.height/2,i.bottom=-this.height/2,i.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(r,n),this.css2dRenderer&&(this.css2dRenderer.setSize(r,n),this.css2dRenderer.domElement.style.width="0",this.css2dRenderer.domElement.style.height="0"),this.overlayRender&&this.overlayRender.setSize(r,n)}this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjects(){var e;if(this.raycastableObjects)return this.raycastableObjects;let t=Date.now(),i=[];for(let t of Object.values(this.loadedModels)){let r=null==(e=t.dxfData)?void 0:e.threejsObject,n=r&&r.children.find((e=>e.name===this.activeLayoutName));n&&n.traverseVisible((e=>{ei.isLeafObject(e)&&i.push(e)}))}return this.groundPlane&&i.push(this.groundPlane),this.raycastableObjects=i,ne.debug(`[DxfViewer] getRaycastableObjects() finds ${i.length} objects`),ne.debug(`[DxfViewer] getRaycastableObjects() costs ${(Date.now()-t)/1e3} s`),i}getViewportByPoint(e){if(0===this.activeLayoutName.length||this.activeLayoutName===Er.MODEL_LAYOUT_NAME)return;let t=this.getLayoutByName(this.activeLayoutName);if(!t)return;let i=t=>e.xt.max.x||e.yt.max.y,r=this.getFilteredViewports(t);for(let e=0,t=r.length;e{i.visible&&(t.push(i),e.add(i))}))}let r=this.getViewportByPoint(this.raycaster.ray.origin);r&&r.associatedLeafObjectSet?(this.getRaycastableObjects().forEach((i=>{var n;null!=(n=r.associatedLeafObjectSet)&&n.has(i)&&!e.has(i)&&i.visible&&(t.push(i),e.add(i))})),ne.debug("[DxfViewer] getRaycastableObjectsByMouse() from inside of viewport:",r.viewportId)):ne.debug("[DxfViewer] getRaycastableObjectsByMouse() from out of viewport"),this.groundPlane&&t.push(this.groundPlane)}return ne.debug(`[DxfViewer] getRaycastableObjectsByMouse() costs ${(Date.now()-r)/1e3} s`),t}getIntersections(e){this.raycaster&&this.raycaster.layers.enable(10);let t=this.getRaycastableObjectsByMouse(e);return this.raycaster&&this.raycaster.intersectObjects(t,!0)||[]}handleMouseClick(e){var t;if(!this.enableSelection||this.measurementManager&&this.measurementManager.isMeasurementActive()||this.markupManager&&this.markupManager.isMarkupActive())return;let i=this.getIntersections(e);if(i.length>0){let e=e=>_t.vectorToString(e);ne.debug(`[DxfViewer] Clicked at: ${e(i[0].point)}`)}let r=i.find((e=>{let t=e.object;return t.visible&&!1!==t.userData.selectable})),n=r&&r.object||void 0;if(i.length>0&&i[0].point){let e=null==(t=this.overlayRender)?void 0:t.getDrawablesByPosition(i[0].point,this.raycaster);if(e&&e.length>0)return this.clearSelection(),e[0].selected=!0,void(this.selectedObject=e[0])}this.selectedObject&&this.clearSelection(),n&&this.selectedObject&&this.selectedObject.id===n.id&&(n=void 0),n?this.selectObject(n):this.clearSelection()}selectObject(e,t){if(!this.enableSelection)return;let i=e=>{if(e.children.length>0&&e.children.forEach((e=>i(e))),e instanceof rt||e instanceof Ir){let i=Cs.clonedHighlightMaterials(e,{depthTest:t});i&&(e.userData.originalMaterial=e.material,e.material=i)}},r=e=>{if(e.children.length>0&&e.children.forEach((e=>r(e))),(e instanceof rt||e instanceof Ir)&&e.userData.originalMaterial){let t=e.material;e.material=e.userData.originalMaterial,delete e.userData.originalMaterial,Array.isArray(t)?t.forEach((e=>e.dispose())):t instanceof zr&&t.dispose()}};this.selectedObject&&(r(this.selectedObject),this.selectedObject=void 0),e&&(i(e),this.selectedObject=e,e.userData.dxfEntity?ne.info("[DxfViewer] Selected entity:",e.userData.dxfEntity):ne.info("[DxfViewer] Selected object:",e)),this.enableRender()}clearSelection(){this.selectedObject&&this.selectedObject instanceof Aa?this.selectedObject.selected=!1:this.selectObject(),this.selectedObject=void 0}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new Dt;e.forEach((e=>{let i=Tn.getBoundingBox(e);i.isEmpty()||t.union(i)})),this.zoomToBBox(t)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof rn&&e.userData.clonedMesh||e instanceof rt&&qi.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var e;let t=this.scene,i=[];for(let t of Object.values(this.loadedModels)){let r=null==(e=t.dxfData)?void 0:e.threejsObject;r&&i.push(r.id)}let r=i.length;if(r<=0)return;let n=i[Math.floor(Math.random()*r)];if(!t.getObjectByProperty("id",n.toString()))return;let s=[];if(t.traverseVisible((e=>{(e instanceof rt||e instanceof Ir)&&!["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"].includes(e.name)&&s.push(e.id)})),s.length<1)return;let a=Math.floor(Math.random()*s.length),o=t.getObjectById(s[a]);o&&(ne.info(`[DxfViewer] Flying to random object: ${o.name}, type: ${o.type}`),this.selectObject(o,void 0),this.flyToObject(o))}flyTo(e,t,i,r){let n=this.camera,s=this.controls;if(!n||!s)return;if(i&&(i=this.checkAndGetLimitedCameraZoom(i)),e.equals(t))return void ne.error("[DxfViewer] Camera position and lookAt cannot be the same!");if(!_t.isVectorValid(e)||!_t.isVectorValid(t))return void ne.error("[DxfViewer] Invalid position or lookAt!",e,t);let a=e.distanceTo(t);an.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*n.far),ne.warn("[DxfViewer] Camera could be too far to see the object!"));let o=(e,t,i)=>{i&&Number.isFinite(i)&&s.zoomTo(i),s.setLookAt(e.x,e.y,e.z,t.x,t.y,t.z)};if(!1===r)return this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),void o(e,t,i);let l=n.position.clone(),h=s.getTarget(new A),u=n.zoom,c=300,p=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let r=Date.now()-p;r>c&&(r=c);let n,s=(e,t,i)=>{let r=e.x+(t.x-e.x)*i,n=e.y+(t.y-e.y)*i,s=e.z+(t.z-e.z)*i;return new A(r,n,s)},a=s(l,e,r/c),d=s(h,t,r/c);i&&(n=u+(i-u)*r/c),o(a,d,n),r>=c&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)}),10)}goTo(e,t,i){let r=this.camera,n=this.controls;if(!r||!n)return;let s=new A(e.x,e.y,r.position.z),a=n.getTarget(new A),o=new A(e.x,e.y,a.z);this.flyTo(s,o,t,i)}goToHomeView(){let e=this.getActiveLayoutInfo();e.bbox?this.zoomToBBox(e.bbox):ne.error(`[DxfViewer] Failed to find extent for ${this.activeLayoutName}`)}zoomToBBox(e){let t=this.camera;if(!t)return;let i=e.max.x-e.min.x,r=e.max.y-e.min.y,n=t.right-t.left,s=t.top-t.bottom,a=Math.min(n/i,s/r);a/=1.1;let o=new A;e.getCenter(o),o.z=0;let l=o.clone().setZ(this.CAMERA_Z_POSITION);l.equals(o)||this.flyTo(l,o,a,!1)}zoomToCompareChange(e){if(this.changes){let t=this.changes[e];if(!t)return;let i=t.box;i&&this.zoomToBBox(i.clone().expandByScalar(1.2))}}getCompareChanges(){return this.changes}setBackgroundColor(e,t,i){this.scene&&(this.scene.background=new je(e,t,i),this.enableRender())}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.setSpinnerVisibility(--this.jobCount>0)}getLayoutInfo(e){return this.layoutInfos[e]||(this.layoutInfos[e]={measurementDataArray:[],markupDataArray:[]}),this.layoutInfos[e]}updateGroundPlane(){if(!this.scene)return;let e=this.getActiveLayoutInfo();if(!e.bbox)return;let t=e.bbox.clone();_t.expandBoxByScale(t,3);let i=t.min,r=t.max,n=r.x-i.x+r.y-i.y+r.z-i.z;_t.expandBoxByMinSize(t,n);let s=[],a=(e,t,i)=>{s.push(new A(e,t,i))},o=t.getSize(new A),l=t.getCenter(new A);if(a(-o.x/2,-o.y/2,0),a(o.x/2,-o.y/2,0),a(o.x/2,o.y/2,0),a(-o.x/2,o.y/2,0),this.groundPlane)this.groundPlane.geometry.setFromPoints(s),this.groundPlane.geometry.computeBoundingSphere(),this.groundPlane.geometry.computeBoundingBox(),this.groundPlane.geometry.computeVertexNormals();else{let e=new lt;e.setFromPoints(s),e.setIndex([0,3,2,0,2,1]),e.computeVertexNormals();let t=new or({color:"#888",transparent:!0,opacity:0,side:gi});this.groundPlane=new rt(e,t),this.groundPlane.frustumCulled=!1,this.groundPlane.position.copy(l),this.groundPlane.scale.set(1e5,1e5,1),this.groundPlane.name="groundPlane",this.groundPlane.userData.selectable=!1,this.groundPlane.renderOrder=-1e3,this.scene.add(this.groundPlane)}this.groundPlane.updateMatrixWorld()}computeBoundingBox(){var e;let t=new Dt;for(let i of Object.values(this.loadedModels)){let r=null==(e=i.dxfData)?void 0:e.threejsObject;if(r){let e=Tn.getBoundingBox(r,!1);e.isEmpty()||t.union(e)}}return t.min.z=0,t.max.z=0,ne.info(`[BimViewer] computeBoundingBox(), BBox's max: ${t.max.toArray()}, min: ${t.min.toArray()}`),t}checkAndGetLimitedCameraZoom(e){if(!e)return 1;let t=e;return e{e.visible&&e.children.forEach((e=>{e.userData.boundingBox&&(DCe.intersectsBox(e.userData.boundingBox)?e.visible=!0:e.visible=!1)}))}))}ne.debug(`[DxfViewer] setVisibilityByCameraFrustum cost: ${(Date.now()-t)/1e3}s`)}getVisiblePixelSize(e){let t=6.5*_r.smoothstep(e,1e4,3e4)+.5;return ne.debug("[DxfViewer] visiblePixelSize:",t),t}setLayoutHidableObjectArray(e){let t=this.camera;if(!this.enableHideVisuallySmallObjects||!t)return;let i=Date.now(),r=e.name;this.sortedHidableObjects[r]||(this.sortedHidableObjects[r]=[]);let n=this.sortedHidableObjects[r],s=t.zoom;this.lastCameraZoom=s;let a=e=>{if(!this.isCompareMode()||!e.material)return!1;let t;return t=e.material instanceof Yt?e.material.uniforms.u_color.value:e.material.color,t.equals(new je(qn.ENTITY_COLOR_ADDED))||t.equals(new je(qn.ENTITY_COLOR_REMOVED))},o=1;e.traverse((e=>{if(this.isCompareMode()&&a(e)||!ei.isLeafObject(e))return;let t=e.geometry;t.boundingBox||t.computeBoundingBox();let i=t.boundingBox.clone();if(!i||!_t.isBoxValid(i))return;i.applyMatrix4(e.matrixWorld),i.getSize(ZG);let r=Math.max(ZG.x,ZG.y),s=o/r;s<1/0?n.push({visibleMinZoom:s,object:e}):e instanceof nn?n.push({visibleMinZoom:o,object:e}):ne.warn("[DxfViewer] The size of bbox is 0 ! ",e)})),o=this.getVisiblePixelSize(n.length);let l=0;n.forEach((e=>{let t=e.visibleMinZoom*o;e.visibleMinZoom=t,e.object.userData.visibleMinZoom=t,t>s&&(e.object.visible=!1,l++)})),n.sort(((e,t)=>e.visibleMinZoom-t.visibleMinZoom)),ne.debug(`[DxfViewer] setLayoutHidableObjectArray cost: ${(Date.now()-i)/1e3}s, ${l} objects changed to hidden`)}statObjects(e){let t=this.sortedHidableObjects[this.activeLayoutName],i=t.length,r={},n=0;t.forEach((t=>{let i=t.object;if(i.geometry&&i.material){n++;let i=(t=>{let i=0,r=t;for(;r&&(i++,r!==e);)r=r.parent;return i})(t.object);r[i]||(r[i]=0),r[i]++}}));let s=0;e.traverse((e=>{let t=e;t.geometry&&t.material&&s++})),ne.info(`[DxfViewer] hidableObjects count:${i}, real count:${n}, layout count: ${s}, level:`,r),ne.info("[DxfViewer] scene:",this.scene)}updateHidableObjectsVisibility(){let e=this.camera;if(!e)return;let t=Date.now(),i=e.zoom;if(Math.abs(i-this.lastCameraZoom)<1e-5||(this.updateRaycasterThreshold(),this.updateCameraZoomUniform(i),this.raycastableObjects=void 0,!this.sortedHidableObjects[this.activeLayoutName]))return;let r=this.sortedHidableObjects[this.activeLayoutName];if(0===r.length)return;let n=i>this.lastCameraZoom,s=Math.min(i,this.lastCameraZoom),a=Math.max(i,this.lastCameraZoom),o=[],l=0;for(let e=0;ea)break;r[e].object.visible=n,n&&o.push(r[e].object),l++}this.lastCameraZoom=i,ne.debug(`[DxfViewer] updateHidableObjectsVisibility cost: ${(Date.now()-t)/1e3}s, ${l}(out of ${r.length}) objects changed to ${n?"visible":"hidden"}`),this.groundPlane&&o.push(this.groundPlane),this.raycastableObjects=o}updateRaycasterThreshold(){let e=this.camera;if(!e||!this.raycaster)return;let t=12/e.zoom,i=this.raycaster.params;i.Line?i.Line.threshold=t:i.Line={threshold:t},i.Points?i.Points.threshold=t:i.Points={threshold:t}}updateCameraZoomUniform(e){Er.cameraZoomUniform.value=e}},G3=kn(ql(),1),TLt=(e=>(e[e.Browser=0]="Browser",e[e.Browserless=1]="Browserless",e[e.Headless=2]="Headless",e))(TLt||{}),OCe=class{constructor(e,t,i){if(this.scene=this.initScene(),this.selectedObject=void 0,this.loadedModels={},this.clock=new Al,this.viewerMode=0,this.raycaster=new Oc,this.savedMaterialsForOpacity=[],this.jobCount=0,this.bbox=new Dt,this.outlineMaterial=new vr({color:1118481}),this.outlineRoot=new ur,this.transparentObjectIds=[],this.applyOptionsAndAddToScene=(e,t,i)=>{if(ne.info(`[SimplifiedBimViewer] '${e}' is loaded, adding to scene...`),i.matrix&&16===i.matrix.length){let e=new Be;e.elements=i.matrix,t.applyMatrix4(e)}else{let e=i.position||[0,0,0],r=i.rotation||[0,0,0],n=i.scale||[1,1,1];t.position.set(e[0],e[1],e[2]),t.rotation.set(r[0]*Math.PI/180,r[1]*Math.PI/180,r[2]*Math.PI/180),t.scale.set(n[0],n[1],n[2])}this.addLoadedModelToScene(t,i)},this.getMeshes=e=>{let t=[];return e instanceof rt?t.push(e):e.traverseVisible((e=>{e instanceof rt&&t.push(e)})),t},this.containerOrCanvas=e,t&&(this.viewerMode=t),this.glContext=i,1===this.viewerMode&&(e instanceof HTMLDivElement||!i))throw new Error("[SimplifiedBimViewer] Parameters don't match Browserless viewerMode !");this.increaseJobCount(),this.init(),this.decreaseJobCount(),ne.info("[SimplifiedBimViewer] Initialized"),this.animate()}init(){this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initPointerEvents(),this.scene.add(this.outlineRoot)}initScene(){let e=new Pn;return e.background=new je(7112861),e.matrixAutoUpdate=!0,e}isBrowserlessMode(){return 1===this.viewerMode}isBrowserMode(){return 0===this.viewerMode}initRenderer(){let e={antialias:!0,preserveDrawingBuffer:!0},t=this.isBrowserlessMode();t&&Object.assign(e,{canvas:this.containerOrCanvas,context:this.glContext});let i=new Ol(e);if(t){let e=this.containerOrCanvas.width,t=this.containerOrCanvas.height;ne.info(`[SimplifiedBimViewer] Render target size: ${e} x ${t}`),this.renderTarget=new Vr(e,t,{minFilter:oi,magFilter:Di,format:Us,type:Fu}),i.setRenderTarget(this.renderTarget)}else{let e=this.containerOrCanvas.clientWidth,t=this.containerOrCanvas.clientHeight;this.containerOrCanvas.append(i.domElement),i.setPixelRatio(window.devicePixelRatio),i.setSize(e,t)}i.outputEncoding=gr,i.toneMappingExposure=1,i.physicallyCorrectLights=!0,i.setClearColor(11119017,1),i.shadowMap.enabled=!0,i.shadowMap.type=By,this.renderer=i,t||(this.pmremGenerator=new xp(i),this.pmremGenerator.compileEquirectangularShader(),this.setEnvironmentFromDataArray())}initCamera(){if(!this.scene)return;let e=this.containerOrCanvas.clientWidth||this.containerOrCanvas.width||0,t=this.containerOrCanvas.clientHeight||this.containerOrCanvas.height||0,i=1;e&&t&&(i=e/t),this.camera=new Xr(68,i,.05,1e4),this.camera.position.set(10,10,10),this.camera.lookAt(0,0,0),this.scene.add(this.camera)}initControls(){if(!this.renderer)return;let e=this.camera;if(!e)return;let t=new $l(e,this.renderer.domElement);t.smoothTime=.5,t.enabled=!0,t.keyTruckSpeed=10,t.keys={left:"KeyD",up:"KeyE",right:"KeyA",bottom:"KeyQ"},t.update(0),this.controls=t,t.addEventListener("update",(()=>{!this.isBrowserMode()&&this.renderer&&this.renderer.render(this.scene,e)}))}initLights(){if(!this.scene)return;let e=16777215,t=new $s(e,.3);t.position.set(-2,2,4);let i=new Cl(3158064),r=new df(e,14540253,3);r.position.set(0,300,0),this.scene.add(t),this.scene.add(i),this.scene.add(r)}initPointerEvents(){if(!this.renderer||!this.camera||!this.controls)return;let e=!1,t=!1,i=-1,r=-1;this.renderer.domElement.addEventListener("pointerdown",(t=>{i=t.x,r=t.y,e=!1})),this.renderer.domElement.addEventListener("pointermove",(t=>{i>=0&&r>=0&&(Math.abs(t.x-i)>5||Math.abs(t.y-r)>5)&&(e=!0)})),this.renderer.domElement.addEventListener("pointerup",(()=>{t&&setTimeout((()=>{t=!1}),200),i=-1,r=-1})),this.renderer.domElement.addEventListener("dblclick",(i=>{t=!0,e||(this.handleMouseClick(i),this.flyToSelectedObject())}))}animate(){var e;this.isBrowserMode()&&requestAnimationFrame(this.animate.bind(this));let t=this.clock.getDelta();this.controls&&this.controls.update(t),this.scene&&this.camera&&(null==(e=this.renderer)||e.render(this.scene,this.camera))}destroy(){this.camera=void 0,this.scene&&this.scene.clear(),this.renderer&&(this.containerOrCanvas.removeChild(this.renderer.domElement),this.renderer.clear(),this.renderer.dispose(),this.renderer=void 0),this.controls&&(this.controls.dispose(),this.controls=void 0),this.renderTarget&&(this.renderTarget.dispose(),this.renderTarget=void 0),this.raycaster=void 0,this.selectedObject=void 0,this.savedMaterialsForOpacity=void 0,Object.keys(this.loadedModels).forEach((e=>{delete this.loadedModels[e]}))}loadLocalModel(e,t,i){return ht(this,null,(function*(){let r=yield(new $c).loadLocalModel(e,t.src,i);return r?(this.applyOptionsAndAddToScene(e,r,t),Promise.resolve()):Promise.reject()}))}loadModel(e,t){return ht(this,null,(function*(){this.increaseJobCount();let i=yield(new $c).loadModel(e.src,e.fileFormat,t);return i?(this.applyOptionsAndAddToScene(e.src,i,e),Promise.resolve()):Promise.reject()}))}parseGltf(e,t,i,r){this.increaseJobCount(),(new $c).parseGltf(e,t.src,(e=>{this.applyOptionsAndAddToScene(t.src,e,t),i&&i(e)}),(e=>{r&&r(e)}))}addLoadedModelToScene(e,t){if(!this.scene)return;e.updateMatrix(),this.scene.add(e);let i=new Hg(e);i.name="BIM_VIEWER_BOX_HELPER",i.visible=!1,i.material&&(i.material=void 0,i.layers.set(11));let r=t.modelId||t.src;if(this.loadedModels[r]){let e=1;for(;this.loadedModels[`${r}_${e}`];)e++;r=`${r}_${e}`,ne.warn(`[BimViewer] Model '${r}' is loaded more than once!`)}this.loadedModels[r]={id:e.id,bbox:i},this.computeBoundingBox();let n=Object.values(this.loadedModels).map((e=>e.id));(!n||n.length<=1)&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),this.scene.add(i),t.edges&&ei.addOutlines(e),this.decreaseJobCount(),ne.info(`[SimplifiedBimViewer] Added '${t.src}' to scene`)}addOrRemoveObjectOpacity(e=!0,t=.3,i,r){if(this.savedMaterialsForOpacity||(this.savedMaterialsForOpacity=[]),!this.scene)return;let n=this.scene,s=[];Object.keys(this.loadedModels).forEach((a=>{let o=this.loadedModels[a];if(e){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&ei.revertObjectOpacityById(n,o.id,this.savedMaterialsForOpacity);let e=ei.setObjectOpacityById(n,o.id,t,i,r);s.push(...e)}else this.savedMaterialsForOpacity&&ei.revertObjectOpacityById(n,o.id,this.savedMaterialsForOpacity)})),this.savedMaterialsForOpacity=e?s:[]}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}getIntersections(e){if(!this.raycaster||!this.camera||!this.scene)return[];let t=new le;e&&(t=Ci.getScreenPointByEvent(e,this.containerOrCanvas));let i=Ci.screenPoint2NdcPoint(t,this.camera,this.containerOrCanvas);this.raycaster.setFromCamera(i,this.camera);let r=[];return Object.values(this.loadedModels).forEach((e=>{let t=this.scene&&this.scene.getObjectById(e.id);t&&t.visible&&r.push(t)})),this.raycaster.intersectObjects(r,!0)||[]}handleMouseClick(e){let t=this.getIntersections(e).find((e=>{let t=e.object;return t.visible&&(!1!==t.userData.selectable||t instanceof rt)})),i=t&&t.object||void 0;i&&this.selectedObject&&this.selectedObject.id===i.id&&(i=void 0),i?this.selectObject(i):this.clearSelection()}selectObject(e){if(this.selectedObject){let e=this.selectedObject.userData;if(e.originalMaterial){if(this.selectedObject.material){let e=this.selectedObject.material;Array.isArray(e)?e.forEach((e=>e.dispose())):e instanceof zr&&e.dispose()}this.selectedObject.material=e.originalMaterial,delete e.originalMaterial}this.selectedObject=void 0}if(!this.scene||!e)return;let t=Cs.clonedHighlightMaterials(e);t&&(this.selectedObject=e,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=t)}clearSelection(){this.selectObject()}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new A,i=new A,r=new Dt;e.forEach((e=>{let t=Tn.getBoundingBox(e);r.union(t)}));let n=new A;this.camera.getWorldDirection(n),xs.getCameraPositionByBboxAndDirection(r,t,i,this.camera.projectionMatrix,n),this.flyTo(t,i)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){this.selectedObject&&this.flyToObject(this.selectedObject)}flyTo(e,t,i){var r;let n=this.camera,s=this.controls;if(!n||!s)return;let a=e=Array.isArray(e)?new A(e[0],e[1],e[2]):e,o=t=Array.isArray(t)?new A(t[0],t[1],t[2]):t;ne.info("[SimplifiedBimViewer] flyTo: ",_t.vectorToString(a)),s.setPosition(a.x,a.y,a.z),s.setTarget(o.x,o.y,o.z),this.isBrowserMode()||null==(r=this.renderer)||r.render(this.scene,n),i&&i()}goToHomeView(){var e;let t=new A,i=new A,r=new A,n=new A;this.bbox.getSize(n),this.bbox.getCenter(r);let s=(n.x+n.y+n.z)/3*1.5,a=new A(r.x+s,r.y+s/1.5,r.z+s),o=r.clone().sub(a);xs.getCameraPositionByBboxAndDirection(this.bbox,t,i,null==(e=this.camera)?void 0:e.projectionMatrix,o),t.equals(i)||this.flyTo(t,i)}setEnvironmentFromDataArray(e){Nc.createEnvTextureFromDataArray(this.pmremGenerator,e).then((e=>{this.scene.environment=e,this.isBrowserMode()||this.animate()}))}tryAdjustCameraNearAndFar(){let e=this.camera;if(!this.scene||!e)return;let t=this.bbox,i=e.near,r=e.far,n=t.max.x-t.min.x,s=t.max.y-t.min.y,a=t.max.z-t.min.z,o=Math.max(n,s,a),l=o/5,h=5*o;if(i>l||r_t.numberToString(e);ne.info(`[SimplifiedBimViewer] BBox's longest side is: ${t(o)}`),i>l&&(ne.warn(`[SimplifiedBimViewer] camera.near(${t(i)}) shouldn't bigger than ${t(l)}, will change it!`),e.near=l),r0?void 0:this.transparentObjectIds,i=this.transparentObjectIds.length>0?this.transparentObjectIds:void 0,r=new or({color:16777215,transparent:!0,opacity:.1});Object.keys(this.loadedModels).forEach((e=>{let n=this.loadedModels[e];ei.applyMaterialToObjectById(this.scene,n.id,r,i,t)})),this.outlineRoot.clear();let n=[];if(e.forEach((e=>{let t=e.modelId,i=t?this.scene.getObjectById(this.loadedModels[t].id):this.scene;i||(ne.warn(`[BimViewer] The ModelId of ${t} has no corresponding model.`),i=this.scene),i.traverse((t=>{if((0,G3.includes)(e.id,(0,G3.get)(t.userData,"UniqueId"))){let e=this.getMeshes(t);n=n.concat(e)}}))})),n.length>0){n.forEach((e=>{var t;let i=ei.createOutline(e.geometry,e.matrix,this.outlineMaterial);null!=(t=e.parent)&&t.matrixWorld&&i.applyMatrix4(e.parent.matrixWorld),this.outlineRoot.add(i)}));let e=n.map((e=>e.id));Object.keys(this.loadedModels).forEach((t=>{let i=this.loadedModels[t];ei.revertAppliedMaterialToObjectById(this.scene,i.id,e)})),this.transparentObjectIds=e,this.flyToObjects(n)}else ne.warn(`[BimViewer] No object found with uniqueIds: ${e.map((e=>e.id))}`);this.isBrowserMode()||this.animate()}increaseJobCount(){++this.jobCount}decreaseJobCount(){--this.jobCount}computeBoundingBox(){let e=new Dt;return Object.values(this.loadedModels).forEach((t=>{if(t.bbox){t.bbox.geometry.computeBoundingBox();let i=t.bbox.geometry.boundingBox;i&&!i.isEmpty()&&e.union(i)}})),this.bbox=e,e}getContext(){var e;return null==(e=this.renderer)?void 0:e.getContext()}getCameraDirection(){var e;let t=new A;return null==(e=this.camera)||e.getWorldDirection(t),{x:t.x,y:t.y,z:t.z}}setFov(e){this.camera&&(this.camera.fov=e,this.camera.updateProjectionMatrix())}},PCe=kn(ql(),1),pm=class extends ur{constructor(e,t,i=10){super(),this.images=e,this.thumbnailImages=t,this.size=i,this.textureLoader=new bs,this.mesh=new rt}fadeIn(e=1e3){let t=this.getMaterials();if(!(Array.isArray(t)&&t.length>0))return void(this.visible=!0);t.forEach((e=>e.opacity=0));let i=1/(e/10);this.visible=!0,this.clearFading(),this.renderOrder+=1,this.fadingInInterval=setInterval((()=>{let e=1,r=this.getMaterials();this.materialEquals(t,r)||(t=r),t.length>0&&(e=Math.min(t[0].opacity+i,1),t.forEach((t=>t.opacity=e))),e>=1&&this.clearFading()}),10)}materialEquals(e,t){return PCe.default.isEqualWith(e,t,((e,t)=>{if(!Array.isArray(e)||!Array.isArray(t))return e.id===t.id}))}fadeOut(e=1e3){let t=this.getMaterials(),i=1/(e/10),r=1/(e/10);this.clearFading(),this.scale.set(2,2,2),this.fadingOutInterval=setInterval((()=>{let e=this.scale.x+r;this.scale.set(e,e,e);let n=0;t.length>0&&(n=Math.max(t[0].opacity-i,0),t.forEach((e=>e.opacity=n))),(n<=0||e>=3)&&this.clearFading()}),10)}clearFading(){let e=this.getMaterials();this.fadingInInterval&&(clearInterval(this.fadingInInterval),this.fadingInInterval=void 0,this.visible=!0,e.forEach((e=>e.opacity=1)),this.renderOrder-=1),this.fadingOutInterval&&(clearInterval(this.fadingOutInterval),this.fadingOutInterval=void 0,this.visible=!1,e.forEach((e=>e.opacity=1)),this.scale.set(1,1,1))}getMaterials(){let e=this.thumbnailMesh;e||(e=this.mesh);let t=[];return Array.isArray(e.material)?t.push(...e.material):e.material&&t.push(e.material),t}create(){}createThumbnailMesh(e){return ht(this,null,(function*(){if(!this.thumbnailImages||6!=this.thumbnailImages.length)return;this.thumbnailMesh=new rt(new eo(e,e,e)),this.thumbnailMesh.geometry.scale(1,1,-1);let t=(yield this.loadTexturesAsync(this.thumbnailImages)).map((e=>new or({map:e,side:tn,transparent:!0})));this.thumbnailMesh&&(this.thumbnailMesh.material=t,this.add(this.thumbnailMesh))}))}loadTextures(e){return e.map((e=>this.textureLoader.load(e)))}loadTexturesAsync(e){return ht(this,null,(function*(){let t=e.map((e=>this.textureLoader.loadAsync(e)));return yield Promise.all(t)}))}destroyMesh(e){var t;this.remove(e),e.clear(),e.geometry.dispose(),Array.isArray(e.material)?e.material.forEach((e=>{var t;null==(t=e.map)||t.dispose(),e.dispose()})):(null==(t=e.material.map)||t.dispose(),e.material.dispose())}destroy(){this.clearFading(),this.images=[],this.mesh&&(this.mesh instanceof rt?this.destroyMesh(this.mesh):this.mesh.traverse((e=>{e instanceof rt&&this.destroyMesh(e)})),this.mesh=void 0)}},V3=class extends pm{constructor(e,t,i=200){if(super(e,t,i),6!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${e.length}`)}create(){return ht(this,null,(function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()}))}createMesh(){return ht(this,null,(function*(){let e=this.mesh;e.geometry=new eo(this.size,this.size,this.size),e.geometry.scale(1,1,-1);let t=(yield this.loadTexturesAsync(this.images)).map((e=>new or({map:e,side:tn,transparent:!0})));e.material=t,this.add(e),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.thumbnailMesh=void 0,this.thumbnailImages=void 0)}))}},z3=class extends pm{constructor(e,t,i=200){if(super(e,t,i),24!==e.length)throw new Error(`[VRCube24Faces] Wrong number of images! Expected 24, got ${e.length}`);this.ratio=1,this.subPlaneWidth0=this.size*(this.ratio/(this.ratio+1)),this.subPlaneWidth1=this.size-this.subPlaneWidth0}create(){return ht(this,null,(function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()}))}createMesh(){return ht(this,null,(function*(){var e;this.mesh=new ur,this.mesh.scale.set(1,1,-1);let t=(yield this.loadTexturesAsync(this.images)).map((e=>new or({map:e,side:zn,transparent:!0})));if(24!==t.length)throw new Error(`[VRCube24Faces] Wrong number of materials! Expected 24, got ${t.length}`);let i=this.createPlaneOfAFace(t.slice(0,4));i.rotateOnAxis(new A(0,1,0),-Math.PI/2),i.position.set(this.size/2,0,0);let r=this.createPlaneOfAFace(t.slice(4,8));r.rotateOnAxis(new A(0,1,0),Math.PI/2),r.position.set(-this.size/2,0,0);let n=this.createPlaneOfAFace(t.slice(8,12));n.rotateOnAxis(new A(1,0,0),-Math.PI/2),n.rotateOnAxis(new A(0,0,1),Math.PI),n.rotateOnAxis(new A(1,0,0),Math.PI),n.position.set(0,this.size/2,0);let s=this.createPlaneOfAFace(t.slice(12,16));s.rotateOnAxis(new A(1,0,0),Math.PI/2),s.rotateOnAxis(new A(0,0,1),Math.PI),s.rotateOnAxis(new A(1,0,0),Math.PI),s.position.set(0,-this.size/2,0);let a=this.createPlaneOfAFace(t.slice(16,20));a.rotateOnAxis(new A(0,1,0),Math.PI),a.position.set(0,0,this.size/2),this.createPlaneOfAFace(t.slice(20,24)).position.set(0,0,-this.size/2),this.add(this.mesh),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),null==(e=this.thumbnailMesh)||e.clear(),this.thumbnailMesh=void 0)}))}createPlaneOfAFace(e){var t;let i=new ur,r=new ts(this.subPlaneWidth0,this.subPlaneWidth0),n=new ts(this.subPlaneWidth1,this.subPlaneWidth0),s=new ts(this.subPlaneWidth0,this.subPlaneWidth1),a=new ts(this.subPlaneWidth1,this.subPlaneWidth1),o=new rt(r,e[0]),l=new rt(n,e[1]),h=new rt(s,e[2]),u=new rt(a,e[3]);return o.position.set(this.subPlaneWidth1/2,this.subPlaneWidth1/2,0),l.position.set(-this.subPlaneWidth0/2,this.subPlaneWidth1/2,0),h.position.set(this.subPlaneWidth1/2,-this.subPlaneWidth0/2,0),u.position.set(-this.subPlaneWidth0/2,-this.subPlaneWidth0/2,0),o.geometry.scale(-1,1,1),l.geometry.scale(-1,1,1),h.geometry.scale(-1,1,1),u.geometry.scale(-1,1,1),i.add(o,l,h,u),null==(t=this.mesh)||t.add(i),i}},j3=class extends pm{constructor(e,t,i=100){if(super(e,t,i),1!==e.length)throw new Error(`[VRSphere] Wrong number of images! Expected 1, got ${e.length}`)}create(){return ht(this,null,(function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()}))}createMesh(){return ht(this,null,(function*(){var e;let t=this.mesh;t.geometry=new ro(this.size,100,100),t.geometry.scale(-1,1,1);let i=(yield this.loadTexturesAsync(this.images)).map((e=>new or({map:e,side:tn,transparent:!0})));t.material=i[0],this.add(t),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),null==(e=this.thumbnailMesh)||e.clear(),this.thumbnailMesh=void 0)}))}},NCe=class extends tm{constructor(e,t){super(e),this.name="BaseViewer",this.minFov=50,this.maxFov=95,this.raycaster=new Oc,this.autoRotate=!0,this.events=[],this.lastFrameExecuteTime=Date.now(),this.maxFps=60,this.isMousePressing=!1,this.settings=cT,this.jobCount=0,this.viewpoints=[],this.previousViewpointId="",this.previousPanoramaId="",this.activeViewpointId="",this.activePanoramaId="",this.viewpointAssetsMap=new Map,this.loadingPanos=[],this.onResize=()=>{var e;let t=null==(e=this.renderer)?void 0:e.domElement;t&&t.parentElement&&this.resize(t.parentElement.clientWidth,t.parentElement.clientHeight)},this.onMouseWheel=e=>{let t=e.wheelDelta>0?-5:5;this.updateFov(t)},this.viewerCfg=e,this.cameraCfg=t||{eye:[0,0,0],look:[0,0,0]},this.settings=cT,this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.setSpinnerVisibility(++this.jobCount>0),this.init(),this.animate(),this.setSpinnerVisibility(--this.jobCount>0)}init(){let e=this.viewerCfg;this.initSpinner(),this.initScene(),this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initEvents(),this.initOthers(),!0===e.enableAxisGizmo&&(this.axes=this.initAxes()),e.enableToolbar&&(this.toolbar=this.initToolbar()),e.enableBottomBar&&(this.bottomBar=this.initBottomBar())}initScene(){let e=new Pn;e.background=new je(16777215),e.matrixAutoUpdate=!0,this.scene=e}initRenderer(){var e,t;this.renderer=new Ol({antialias:!1,preserveDrawingBuffer:!1}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.css2dRenderer=new _f,this.css2dRenderer.setSize(this.width,this.height),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0",null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement),null==(t=this.viewerContainer)||t.appendChild(this.css2dRenderer.domElement)}initCamera(){this.scene&&(this.camera=new Xr(75,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.scene.add(this.camera))}initControls(){if(!this.renderer||!this.camera)return;let e=this.camera,t=this.viewerCfg,i=new EO(e,this.renderer.domElement,!0);i.enabled=!0,i.autoRotate=this.autoRotate,i.autoRotateSpeed=t.autoRotateSpeed||-2,i.enablePan=!1,i.enableZoom=!1,i.enableRotate=!0,i.rotateSpeed=.3,i.minPolarAngle=.05*Math.PI,i.maxPolarAngle=.95*Math.PI,i.listenToKeyEvents(document.body),i.update(),this.controls=i,this.controlsHelper=new rA(e,i),this.controls.controlsHelper=this.controlsHelper,this.autoRotate&&this.controlsHelper.delayAutoRotate(),this.controlsHelper.automaticallyAdjustCameraPosition=!1,this.controls.addEventListener("end",(()=>{this.handleDragEnd&&this.handleDragEnd()}));let r=new A(0,0,0),n=new A(10,0,0);this.setCameraPositionAndDirection(r,n)}onKeyDown(e){return t=>{var i,r;let n=e.camera,s=e.controls;!n||!s||(("ArrowLeft"===t.code||"ArrowRight"===t.code||"ArrowUp"===t.code||"ArrowDown"===t.code)&&(null==(i=this.controlsHelper)||i.startToRotate(t)),null==(r=this.controlsHelper)||r.delayAutoRotate())}}initLights(){if(!this.scene)return;let e=new $s(16777215,.3);e.position.set(-2,2,4),this.scene.add(e)}initEvents(){let e=this.renderer,t=this.camera;if(!e||!t)return;let i=!1,r=-1,n=-1;this.addEvent(window,"keydown",this.onKeyDown(this)),this.addEvent(window,"resize",this.onResize),this.addEvent(window,"mousewheel",this.onMouseWheel),this.addEvent(window,"pointerdown",(t=>{var s;r=t.x,n=t.y,i=!1,this.isMousePressing=!0,this.autoRotate&&(null==(s=this.controlsHelper)||s.delayAutoRotate()),t.button===rC.LEFT&&t.target instanceof HTMLCanvasElement&&(e.domElement.style.cursor="move")})),this.addEvent(window,"pointermove",(e=>{r>=0&&n>=0&&(Math.abs(e.x-r)>5||Math.abs(e.y-n)>5)&&(i=!0)})),this.addEvent(window,"pointerup",(r=>{var n,s;if(this.isMousePressing=!1,this.autoRotate&&(null==(n=this.controlsHelper)||n.delayAutoRotate()),e.domElement.style.cursor="auto",!i&&r.button===rC.LEFT)if(r.target&&r.target instanceof HTMLDivElement){let e=wf.tryFindObjectId(r.target);if(e){let t=null==(s=this.scene)?void 0:s.getObjectById(e);if(t){let e=t.userData.hotpoint;e&&(ne.info("[VRViewer] Clicked on hotpoint: ",e.hotpointId||e),this.onHotpointClicked&&this.onHotpointClicked(e))}}}else{let e=this.getIntersection(r);if(e){let i=e=>_t.vectorToString(e),r=e.point,n=r.clone().sub(t.position).normalize();ne.info(`[VRViewer] Clicked at: ${i(r)},\n Camera position: ${i(t.position)},\n Target direction: ${i(n)}`)}}}))}initSpinner(){var e;let t=document.createElement("div");t.classList.add("spinner");let i=document.createElement("div");i.classList.add(uo,"icon-loading"),t.append(i),null==(e=this.widgetContainer)||e.appendChild(t),this.spinner=t,this.setSpinnerVisibility(this.jobCount>0)}initOthers(){!this.controls||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initAxes(){var e;let t=document.createElement("div");t.classList.add("axesRenderer");let i=new Sf(t,this.camera);return null==(e=this.widgetContainer)||e.append(t),i}initToolbar(){let e=this.viewerCfg;return new Eh(this,Br(Br({},RDe),e.toolbarMenuConfig),[["SceneClear"]])}initBottomBar(){return new om(this)}animate(){var e,t,i;if(requestAnimationFrame(this.animate.bind(this)),this.maxFps>0){let e=Date.now()-this.lastFrameExecuteTime;if(e<1e3/this.maxFps)return;if(this.lastFrameExecuteTime=Date.now(),this.autoRotate){let t=this.controlsHelper;t&&t.autoRotateRemainingTime>0&&!this.isMousePressing&&(t.autoRotateRemainingTime-=e,t.autoRotateRemainingTime<=0&&this.controls&&t.startAutoRotate())}}this.controls.update(),this.scene&&this.camera&&(null==(e=this.renderer)||e.render(this.scene,this.camera),null==(t=this.css2dRenderer)||t.render(this.scene,this.camera),null==(i=this.css3dRenderer)||i.render(this.scene,this.camera))}clearAllCachedPanoramas(){this.handleCameraUpdateInterval(),this.loadingPanos.forEach((e=>{e.creationPromise&&(e.creationPromise.cancel(),e.creationPromise=void 0)})),this.viewpointAssetsMap.forEach((e=>{var t;let i=e.panoramas;for(let e=i.length-1;e>=0;--e){let r=i[e];r.box.destroy(),null==(t=this.scene)||t.remove(r.box)}})),this.loadingPanos=[],this.viewpointAssetsMap.clear(),this.activePanoramaId="",this.activePanoramaId="",this.previousViewpointId="",this.previousPanoramaId=""}destroy(){var e,t,i,r;this.events.forEach((e=>e.node.removeEventListener(e.type,e.func))),this.events=[],this.clearAllCachedPanoramas(),this.css2dRenderer&&(null==(e=this.viewerContainer)||e.removeChild(this.css2dRenderer.domElement)),null==(t=this.spinner)||t.remove(),null==(i=this.axes)||i.dispose(),null==(r=this.toolbar)||r.destroy(),super.destroy()}updateFov(e){var t;let i=this.camera;if(!i)return;let r=this.minFov,n=this.maxFov,s=e=>{let t=i.fov+e;t=Math.min(t,n),t=Math.max(t,r),i.fov!==t&&(i.fov=t,i.updateProjectionMatrix())},a=e/20;for(let e=0;e<20;++e)setTimeout((()=>s(a)),5*e);this.autoRotate&&(null==(t=this.controlsHelper)||t.delayAutoRotate())}setMinAndMaxFov(e,t){let i=this.controls;i&&(this.minFov=e,this.maxFov=t,i.minFov=e,i.maxFov=t)}resize(e,t){var i,r,n;let s=this.camera;s&&(this.width=e||window.innerWidth,this.height=t||window.innerHeight,s.aspect=this.width/this.height,s.updateProjectionMatrix(),null==(i=this.renderer)||i.setSize(this.width,this.height),null==(r=this.css2dRenderer)||r.setSize(this.width,this.height),null==(n=this.css3dRenderer)||n.setSize(this.width,this.height))}enableAutoRotate(e){this.controls&&(this.autoRotate=e,this.controls.autoRotate=e)}setAutoRotateSpeed(e=1){this.controls&&(this.controls.autoRotateSpeed=e)}setCameraFov(e=75){let t=this.camera;t&&(t.fov=e,t.updateProjectionMatrix())}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}addEvent(e,t,i){e.addEventListener(t,i),this.events.push({node:e,type:t,func:i})}setCameraPositionAndDirection(e,t,i){let r,n,s=this.camera,a=this.controls;if(!s||!a)return;r=t?Array.isArray(t)?new A(t[0],t[1],t[2]):new A(t.x,t.y,t.z):a.target.clone().sub(s.position),r.normalize(),n=Array.isArray(e)?new A(e[0],e[1],e[2]):new A(e.x,e.y,e.z);let o=n.clone().addScaledVector(r,.01);this.fianlCameraPosition=n,this.finalCameraTarget=o;let l=(e,t)=>{s.position.set(e.x,e.y,e.z),a.target.set(t.x,t.y,t.z),a.update()};if(!1===i)return this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),void l(n,o);let h=s.position.clone(),u=a.target.clone(),c=500,p=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let e=Date.now()-p;e>c&&(e=c);let t=(e,t,i)=>{let r=e.x+(t.x-e.x)*i,n=e.y+(t.y-e.y)*i,s=e.z+(t.z-e.z)*i;return new A(r,n,s)},i=t(h,n,e/c),r=t(u,o,e/c);l(i,r),e>=c&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)}),10)}getCameraPositionAndDirection(){let e=this.camera;if(!e)return;let t=e.position,i=new A;return e.getWorldDirection(i),{position:{x:t.x,y:t.y,z:t.z},direction:{x:i.x,y:i.y,z:i.z}}}getCameraFov(){let e=this.camera;if(e)return e.fov}setViewpoints(e){this.handleCameraUpdateInterval(),this.viewpointAssetsMap.size>0&&(this.viewpointAssetsMap.forEach((e=>{let t=e.panoramas,i=e.css2dObjects;t.forEach((e=>{var t;e.box.destroy(),null==(t=this.scene)||t.remove(e.box)})),i.forEach((e=>{var t;null==(t=this.scene)||t.remove(e)}))})),this.viewpointAssetsMap.clear()),this.loadingPanos.forEach((e=>{e.creationPromise&&(e.creationPromise.cancel(),e.creationPromise=void 0)})),this.loadingPanos=[],this.previousViewpointId="",this.previousPanoramaId="",this.activeViewpointId="",this.activePanoramaId="",this.viewpoints=e}addPanorama(e,t){let i=this.viewpoints.find((t=>t.id===e));if(!i)throw new Error(`[VRViewer] Failed to find viewpoint by id '${e}'`);i.panoramas||(i.panoramas=[]),i.panoramas.push(t)}findPanorama(e,t){let i=this.viewpoints.find((t=>t.id===e));if(i&&i.panoramas)return i.panoramas.find((e=>e.id===t))}setHotpointsVisibility(e,t="",i=[]){if(!this.viewpoints)return;let r=t=>{var r;let n=this.viewpointAssetsMap.get(t.id),s=(null==n?void 0:n.css2dObjects)||[];null==(r=t.hotpoints)||r.forEach((r=>{if(i&&i.length>0){if(-1===i.findIndex((e=>e===r.hotpointId)))return;if(r.visible=e,this.activeViewpointId===t.id){let t=s.find((e=>e.userData.hotpoint.hotpointId===r.hotpointId));t&&(t.visible=e)}}else r.visible=e,this.activeViewpointId===t.id&&s.forEach((t=>t.visible=e))}))};if(t){let e=this.viewpoints.find((e=>e.id===t));e&&r(e)}else this.viewpoints.forEach((e=>r(e)))}addHotpoints(e){if(!this.activeViewpointId||!e)return;let t=this.viewpoints.find((e=>e.id===this.activeViewpointId)),i=this.viewpointAssetsMap.get(this.activeViewpointId);!t||!i||(t.hotpoints||(t.hotpoints=[]),e.forEach((e=>{var r,n;if(-1!==(null==(r=t.hotpoints)?void 0:r.findIndex((t=>t.hotpointId===e.hotpointId))))return void ne.warn(`[VRViewer] Duplicated hotpointId: ${e.hotpointId}`);let s=t.position||[0,0,0],a=e.anchorPosition,o=wf.createHotpoint(e.html),l=new A(a[0],a[1],a[2]),h=new A(s[0],s[1],s[2]);this.relocateAnchorIfTooCloseToCamera(o,l,h),o.visible=!1!==e.visible,o.userData.hotpoint=e,i.css2dObjects.push(o),null==(n=this.scene)||n.add(o),t.hotpoints.push(e)})))}removeHotpoints(e){if(!this.activeViewpointId||!e)return;let t=this.viewpoints.find((e=>e.id===this.activeViewpointId)),i=this.viewpointAssetsMap.get(this.activeViewpointId);!t||!i||e.forEach((e=>{var r,n;if(t.hotpoints)for(let i=t.hotpoints.length-1;i>=0;--i)e===t.hotpoints[i].hotpointId&&t.hotpoints.splice(i,1);for(let t=i.css2dObjects.length-1;t>=0;--t){let s=i.css2dObjects[t];e===(null==(r=s.userData.hotpoint)?void 0:r.hotpointId)&&(i.css2dObjects.splice(t,1),null==(n=this.scene)||n.remove(s))}}))}activeViewpointById(e,t,i,r){this.activatePanoramaById(e,"",!0,t,i,r)}activatePanoramaById(e,t,i=!0,r,n,s){if(e===this.activeViewpointId&&t===this.activePanoramaId)return;let a=this.viewpoints.find((t=>t.id===e));a&&this.activatePanorama(a,t,i,r,n,s)}removeCachedPanoramas(){this.viewpointAssetsMap.forEach(((e,t)=>{var i;let r=e.panoramas;for(let e=r.length-1;e>=0;--e){let n=r[e];if(t===this.activeViewpointId&&n.id===this.activePanoramaId||t===this.previousViewpointId&&n.id===this.previousPanoramaId)return;n.box.destroy(),null==(i=this.scene)||i.remove(n.box),r.splice(e,1)}}))}unlimitControlsAndShowAssets(e=!1){if(this.controls){let e=this.controls;e.enablePan=!0,e.enableZoom=!0}this.viewpointAssetsMap.forEach((t=>{t.panoramas.forEach((e=>{e.box.visible=!0})),e&&t.css2dObjects.forEach((e=>{e.visible=!0}))}))}relocateAnchorIfTooCloseToCamera(e,t,i){let r=this.camera;if(!r)return ne.error("[VRViewer] Camera is not initialized"),void e.position.set(t.x,t.y,t.z);let n,s=Math.abs(t.distanceTo(i));if(s{let r=e.panoramas.find((e=>e.id===t)),n=null==r?void 0:r.box;n&&(i?this.fadeIn(n):this.fadeOut(n))},u=(e,t)=>{e.css2dObjects.forEach((e=>{t?!1!==e.userData.hotpoint.visible&&(e.visible=t):e.visible=t}))},c=()=>{var t;let n=new A(0,0,0),s=new A(1,0,0),a=null==(t=this.getCameraPositionAndDirection())?void 0:t.direction;a&&s.set(a.x,a.y,a.z);let o=e.position;if(o&&3===o.length&&n.set(o[0],o[1],o[2]),i){let t=e.initialDirection;t&&3===t.length&&s.set(t[0],t[1],t[2])}this.setCameraPositionAndDirection(n,s,r)};!t&&(null==(a=e.panoramas)?void 0:a.length)>0&&(t=e.panoramas[0].id||""),this.handleCameraUpdateInterval();let p=this.viewpointAssetsMap.get(this.activeViewpointId),d=this.viewpointAssetsMap.get(e.id);if(this.activeViewpointId&&p&&(this.activeViewpointId!==e.id&&u(p,!1),h(p,this.activePanoramaId,!1)),d&&d.panoramas.find((e=>e.id===t)))return h(d,t,!0),this.activeViewpointId!==e.id&&u(d,!0),this.activeViewpointId!==e.id&&c(),this.activeViewpointId=e.id,this.activePanoramaId=t,void(n&&n(e));this.previousViewpointId=this.activeViewpointId,this.previousPanoramaId=this.activePanoramaId,this.activeViewpointId=e.id,this.activePanoramaId=t;try{if(this.loadingPanos.some((i=>i.viewpointId===e.id&&i.panoramaId===t)))return void ne.warn(`[VRViewer] Panorama with viewpointId=${e.id} and panoramaId=${t} is being created`);let i=new OC(this.createBoxByImageOrImages(e,t));this.loadingPanos.push({viewpointId:e.id,panoramaId:t,creationPromise:i});let r=yield i.promise;this.loadingPanos=this.loadingPanos.filter((i=>i.viewpointId!==e.id||i.panoramaId!==t));let s=e.position;s&&3===s.length&&r.position.set(s[0],s[1],s[2]),this.activeViewpointId===e.id&&this.activePanoramaId===t?(this.fadeIn(r),null==(o=this.scene)||o.add(r),c()):(r.visible=!1,null==(l=this.scene)||l.add(r));let a={id:t,box:r},h=this.viewpointAssetsMap.get(e.id);if(h)h.panoramas.push(a),u(h,!0);else{let i=[];e.hotpoints&&e.hotpoints.forEach((n=>{let s=n.anchorPosition,a=wf.createHotpoint(n.html);a.visible=!1!==n.visible,a.userData.hotpoint=n;let o=new A(s[0],s[1],s[2]);this.relocateAnchorIfTooCloseToCamera(a,o,r.position),(this.activeViewpointId!==e.id||this.activePanoramaId!==t)&&(a.visible=!1),i.push(a)}));let n={panoramas:[a],css2dObjects:i};this.viewpointAssetsMap.set(e.id,n),i.forEach((e=>{var t;return null==(t=this.scene)?void 0:t.add(e)}))}n&&n(e)}catch(e){"cancel"!==e.type&&s&&s(e)}}))}createBoxByImageOrImages(e,t){var i;let r=e.imageOrImages,n=e.thumbnailImages;if((null==(i=e.panoramas)?void 0:i.length)>0){let i=this.findPanorama(e.id,t);i||(i=e.panoramas[0],ne.warn(`[VRViewer] Failed to find panorama by id '${t}', will use the first one`)),r=i.images,n=i.thumbnails}if(!r)throw new Error("[VRViewer] Invalid images!");if(Array.isArray(r)||(r=[r]),1===r.length)return this.createBoxByImage(r,n);if(6===r.length)return this.createBoxBy6Images(r,n);if(24===r.length)return this.createBoxBy24Images(r,n);throw new Error(`[VRViewer] Wrong number of images! Expected 1/6/24, got ${r.length}`)}createBoxByImage(e,t){return ht(this,null,(function*(){let i=new j3(e,t);return yield i.create(),i}))}createBoxBy6Images(e,t){return ht(this,null,(function*(){if(6!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${e.length}`);let i=new V3(e,t);return yield i.create(),i}))}createBoxBy24Images(e,t){return ht(this,null,(function*(){if(24!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 24, got ${e.length}`);let i=new z3(e,t);return yield i.create(),i}))}getIntersection(e){if(!this.camera||!this.scene)return;let t=this.viewpointAssetsMap.get(this.activeViewpointId);if(!t)return;let i=t.panoramas.find((e=>e.id===this.activePanoramaId));if(!i)return;let r=i.box,n=this.viewerContainer,s=new le;e&&(s=Ci.getScreenPointByEvent(e,n));let a=Ci.screenPoint2NdcPoint(s,this.camera,n);this.raycaster.setFromCamera(a,this.camera);let o=[r],l=this.raycaster.intersectObjects(o,!0)||[];return l.length>0?l.find((e=>{let t=e.object;return t.visible&&t instanceof rt})):void 0}fadeIn(e,t=500){e.fadeIn(t)}fadeOut(e,t=1e3){e.fadeOut(t)}handleCameraUpdateInterval(){if(this.cameraUpdateInterval){clearInterval(this.cameraUpdateInterval);let e=this.fianlCameraPosition,t=this.finalCameraTarget;if(e&&t&&this.controls&&this.camera){this.camera.position.set(e.x,e.y,e.z);let i=this.controls;i.target.set(t.x,t.y,t.z),i.update()}this.cameraUpdateInterval=void 0}this.fianlCameraPosition=void 0,this.finalCameraTarget=void 0}getHitResult(e){let t={location:null};if(!this.camera)return t;let i=this.getIntersection(e);return t.location=i?{x:i.point.x,y:i.point.y,z:i.point.z}:null,t}lookToPosition(e){var t;if(!this.camera)return;this.handleCameraUpdateInterval();let i=new A(e[0],e[1],e[2]).clone().sub(this.camera.position);null==(t=this.controlsHelper)||t.lookTo(i)}};export{Rqt as AXIS_SECTION_PLANE_CONTROL_ID,wqt as AXIS_SECTION_PLANE_ID,jO as AngleMeasurement,V8 as AnnotationTable,WO as AreaMeasurement,XB as ArrowMarkup,GO as AxisPlaneSection,SDe as AxisType,D8 as BYBLOCK,QA as BYLAYER,tu as BaseMeasurement,nm as BaseSection,ch as BaseTable,pm as BaseVRMesh,tm as BaseViewer,RCe as BimViewer,Af as BinaryReader,R0 as BitView,Jf as BoxSelectHelper,wf as CSS2DObjectUtils,$l as CameraControlsEx,OC as CancelablePromise,wr as CanvasRender,$B as CircleMarkup,kp as CloudLineMarkup,KB as CloudRectMarkup,_t as CommonUtils,P0 as CompareDrawable,rA as ControlsHelper,oT as CoordinateAxes,Sf as CoordinateAxesViewport,Ci as CoordinateConversionUtils,qO as CoordinateMeasurement,zx as CreateEdgesGeometryWorker,wDe as DEFAULT_BIMVIEWER_TOOLBAR_CONFIG,DDe as DEFAULT_BIM_VIEWER_CONFIG,MDe as DEFAULT_DXFVIEWER_TOOLBAR_CONFIG,hpe as DEFAULT_LABEL_FONT_SIZE,Jvt as DEFAULT_LINE_WIDTH,EDe as DEFAULT_MARKUP_TOOLBAR_CONFIG,uO as DEFAULT_SIZE,RDe as DEFAULT_VRVIEWER_TOOLBAR_CONFIG,Er as DXFLoader,wi as DeviceUtils,YO as DistanceMeasurement,ZB as DotMarkup,Aa as Drawable,Xu as DrawableList,L8 as DxfChangeType,qn as DxfCompare,yDe as DxfCompareMarkupManager,QT as DxfDataTable,I0 as DxfParser,mMe as DxfRenderOrder,CCe as DxfViewer,Sqt as ENTER_KEY,_qt as ESC_KEY,JB as EllipseMarkup,Ks as Event,Zx as Exploder,zg as ExportUtils,uh as FontDataTable,HC as FpsUtils,Mpe as GROUND_PLANE_RENDER_ORDER,TDe as GROUP_CONFIG,BC as GenerateMeshBvhWorker,kt as GeometryUtils,Js as GroundUtils,uo as ICON_FONT_CLASS,k_ as IUploader,ss as IndexedDbManager,M0 as InputManager,iA as InstantiateHelper,xqt as KEYDOWN_EVENT,Iqt as KEYUP_EVENT,C2t as Keys,oO as LinePatternShaders,$c as LoadingHelper,CDe as LocalDxfUploader,ADe as LocalImageUploader,$O as LocalModelUploader,AB as MOUSEDOWN_EVENT,Mf as MOUSEMOVE_EVENT,CB as MOUSEUP_EVENT,P_ as MarkupManager,BO as MarkupToolbar,Yo as MarkupType,Cs as MaterialUtils,sr as MathUtils,ru as MeasurementManager,Ql as MeasurementType,UO as MenuTypeEnums,qi as MergeUtils,tE as MeshBvhHelper,ZO as NavCube,JO as NavCubeViewport,E0 as NestCompareTypes,DO as OSnapHelper,N2t as OSnapType,XMe as ObjectPixelSizeHelper,ei as ObjectUtils,QO as ObjectsBoxSection,UC as Offset,OMe as Orientation,e3 as PickPlaneSection,Cf as PolygonUtils,QB as PolylineMarkup,dT as RafHelper,ek as RectMarkup,Cqt as SECTION_BOX_ID,Dqt as SECTION_PLANE_CONTROL_ID,Mqt as SECTION_PLANE_ID,OB as SECTION_PLANE_NAME,GMe as SHP,TO as SHPLoader,vO as SHPParser,eAr as SIMPLE_BIM_VIEWER_CONFIG,cpe as SNAP_ICON_COLOR,upe as SNAP_ICON_SIZE,D2t as STATE,epe as SVGObject,lT as SVGObjectUtils,tpe as SVGRenderer,Tn as SceneUtils,t3 as SectionManager,hT as SectionType,Yu as SectionUtils,yO as ShpThree,Yc as ShxFont,w0 as ShxFontLoader,S0 as ShxFontType,OCe as SimplifiedBimViewer,Jx as SimplifyUtils,qo as SkyboxUtils,rl as SnapDrawable,ppe as SnapType,tk as TextMarkup,Nc as TextureUtils,Eh as Toolbar,dG as ToolbarMenu,N_ as ToolbarMenuId,cE as UndoRedoHelper,k8 as Units,EO as VRControls,V3 as VRCube,z3 as VRCube24Faces,j3 as VRSphere,NCe as VRViewer,xs as Viewer3DUtils,Kg as ViewerEvent,TLt as ViewerMode,pE as ViewerName,z8 as ViewpointTable,YB as Views,U3 as WebCam,rk as XMarkup,dE as ZoomToRectHelper,B8 as bspline,AMe as checkIsNewVersion,Cpe as cn,MMe as createHatchPatternShaderMaterial,p2t as decodeDxfTextCharacterCodes,f2t as decodeDxfTextMbcsCharacterCodes,d2t as decodeDxfTextUnicodeCodePoints,Dpe as en,YYt as getLengthValueByUnit,Qx as getUnitStr,g2t as getVersionFromLocalStorage,qu as layerForNonSnapableObjects,Nn as layerForUnselectableObjects,ne as log,yn as matrixAutoUpdate,lO as parseDxfMTextContent,cO as parseDxfTextContent,H8 as round10,bqt as sceneAutoUpdate,LC as setIcon,lpe as setLogLevel,v2t as setVersionToLocalStorage,Wu as showPrecisionValue,ude as unitConversionByMeter,cTt as unitLabel,G8 as unitScaleConversion,DMe as unitScaleToMeter};