mirror of
https://github.com/brunopostle/ifcurl.git
synced 2026-07-12 10:18:14 +00:00
three 0.177→0.184, web-ifc 0.0.75→0.0.77, @thatopen/components 3.3.1→3.4.2, @thatopen/fragments 3.3.1→3.4.3, + new camera-controls 3.1.2 peer dep. Reduces fast-xml-parser findings from 2 critical to 1 high + 1 low; remaining issues are upstream in @thatopen >= 3.3.3 with no fix released yet. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 lines
1.3 MiB
11 lines
1.3 MiB
var F5=Object.defineProperty,V5=(e,t,s)=>t in e?F5(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,k=(e,t,s)=>(V5(e,typeof t!="symbol"?t+"":t,s),s),d1=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},ct=(e,t,s)=>(d1(e,t,"read from private field"),s?s.call(e):t.get(e)),ee=(e,t,s)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,s)},Qt=(e,t,s,i)=>(d1(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),m1=(e,t,s,i)=>({set _(n){Qt(e,t,n,s)},get _(){return ct(e,t,i)}}),Vt=(e,t,s)=>(d1(e,t,"access private method"),s),W1,qv,wp,hl,Bp,PS,bp,jv,Fv,Lr,ul,sr,ti,re,yo,fl,da,rc,Vp,nc,Gp,Fp,ll,zp,$d,fo,Vv,Xg,vM,BS,my,uL,pl,_M,zC,YS,Qv,pL,Ef,Ty,If,Ry,wL,R1,YC,$v,EL,Hv,tL,vs,Gs,fL,gM,MS,Wv,mf,Oy,IL,S1,OP,LM=class{constructor(){k(this,"_list",new Map),k(this,"_communicationKey",0)}setupInput(t){t.requestId=this._communicationKey++}set(t,s,i){let n=this.newHandler(s,i);this._list.set(t,n)}run(t){let s=this._list.get(t.requestId);this._list.delete(t.requestId),s(t)}newHandler(t,s){return i=>{if(i.errorInfo){t(i.errorInfo);return}s(i)}}};var BL="182",c_=0,kC=1,H5=2,z1=1,Y1=100,k1=204,K1=205,Z1=3,W5=0,KC=300,q1=1e3,X_=1001,j1=1002,Q1=1003,z5=1006,Y5=1008,k5=1009,K5=1014,yL=1015,xM=1023,Z5=1028,q5=1029,ZC="",fh="srgb",$1="srgb-linear",J1="linear",vP="srgb",aS=7680,X1=519,tU=35044,Jd=2e3,PM=2001;function j5(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}function eU(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}var sU={};function ar(...e){let t="THREE."+e.shift();console.warn(t,...e)}function Qd(...e){let t="THREE."+e.shift();console.error(t,...e)}function iU(...e){let t=e.join(" ");t in sU||(sU[t]=!0,ar(...e))}var kS=class{addEventListener(t,s){this._listeners===void 0&&(this._listeners={});let i=this._listeners;i[t]===void 0&&(i[t]=[]),i[t].indexOf(s)===-1&&i[t].push(s)}hasEventListener(t,s){let i=this._listeners;return i===void 0?!1:i[t]!==void 0&&i[t].indexOf(s)!==-1}removeEventListener(t,s){let i=this._listeners;if(i===void 0)return;let n=i[t];if(n!==void 0){let c=n.indexOf(s);c!==-1&&n.splice(c,1)}}dispatchEvent(t){let s=this._listeners;if(s===void 0)return;let i=s[t.type];if(i!==void 0){t.target=this;let n=i.slice(0);for(let c=0,u=n.length;c<u;c++)n[c].call(this,t);t.target=null}}},wc=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],nU=1234567,qC=Math.PI/180,jC=180/Math.PI;function sN(){let e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,s=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(wc[e&255]+wc[e>>8&255]+wc[e>>16&255]+wc[e>>24&255]+"-"+wc[t&255]+wc[t>>8&255]+"-"+wc[t>>16&15|64]+wc[t>>24&255]+"-"+wc[s&63|128]+wc[s>>8&255]+"-"+wc[s>>16&255]+wc[s>>24&255]+wc[i&255]+wc[i>>8&255]+wc[i>>16&255]+wc[i>>24&255]).toLowerCase()}function he(e,t,s){return Math.max(t,Math.min(s,e))}function N1(e,t){return(e%t+t)%t}function Q5(e,t,s,i,n){return i+(e-t)*(n-i)/(s-t)}function $5(e,t,s){return e!==t?(s-e)/(t-e):0}function Jv(e,t,s){return(1-s)*e+s*t}function J5(e,t,s,i){return Jv(e,t,1-Math.exp(-s*i))}function X5(e,t=1){return t-Math.abs(N1(e,t*2)-t)}function t6(e,t,s){return e<=t?0:e>=s?1:(e=(e-t)/(s-t),e*e*(3-2*e))}function e6(e,t,s){return e<=t?0:e>=s?1:(e=(e-t)/(s-t),e*e*e*(e*(e*6-15)+10))}function s6(e,t){return e+Math.floor(Math.random()*(t-e+1))}function i6(e,t){return e+Math.random()*(t-e)}function n6(e){return e*(.5-Math.random())}function r6(e){e!==void 0&&(nU=e);let t=nU+=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 c6(e){return e*qC}function a6(e){return e*jC}function o6(e){return(e&e-1)===0&&e!==0}function h6(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function l6(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function u6(e,t,s,i,n){let c=Math.cos,u=Math.sin,I=c(s/2),D=u(s/2),g=c((t+i)/2),U=u((t+i)/2),F=c((t-i)/2),V=u((t-i)/2),H=c((i-t)/2),z=u((i-t)/2);switch(n){case"XYX":e.set(I*U,D*F,D*V,I*g);break;case"YZY":e.set(D*V,I*U,D*F,I*g);break;case"ZXZ":e.set(D*F,D*V,I*U,I*g);break;case"XZX":e.set(I*U,D*z,D*H,I*g);break;case"YXY":e.set(D*H,I*U,D*z,I*g);break;case"ZYZ":e.set(D*z,D*H,I*U,I*g);break;default:ar("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+n)}}function US(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/4294967295;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/2147483647,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function fa(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(e*4294967295);case Uint16Array:return Math.round(e*65535);case Uint8Array:return Math.round(e*255);case Int32Array:return Math.round(e*2147483647);case Int16Array:return Math.round(e*32767);case Int8Array:return Math.round(e*127);default:throw new Error("Invalid component type.")}}var p6={DEG2RAD:qC,RAD2DEG:jC,generateUUID:sN,clamp:he,euclideanModulo:N1,mapLinear:Q5,inverseLerp:$5,lerp:Jv,damp:J5,pingpong:X5,smoothstep:t6,smootherstep:e6,randInt:s6,randFloat:i6,randFloatSpread:n6,seededRandom:r6,degToRad:c6,radToDeg:a6,isPowerOfTwo:o6,ceilPowerOfTwo:h6,floorPowerOfTwo:l6,setQuaternionFromProperEuler:u6,normalize:fa,denormalize:US},vn=class e{constructor(t=0,s=0){e.prototype.isVector2=!0,this.x=t,this.y=s}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,s){return this.x=t,this.y=s,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,s){switch(t){case 0:this.x=s;break;case 1:this.y=s;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,s){return this.x=t.x+s.x,this.y=t.y+s.y,this}addScaledVector(t,s){return this.x+=t.x*s,this.y+=t.y*s,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,s){return this.x=t.x-s.x,this.y=t.y-s.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 s=this.x,i=this.y,n=t.elements;return this.x=n[0]*s+n[3]*i+n[6],this.y=n[1]*s+n[4]*i+n[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,s){return this.x=he(this.x,t.x,s.x),this.y=he(this.y,t.y,s.y),this}clampScalar(t,s){return this.x=he(this.x,t,s),this.y=he(this.y,t,s),this}clampLength(t,s){let i=this.length();return this.divideScalar(i||1).multiplyScalar(he(i,t,s))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){let s=Math.sqrt(this.lengthSq()*t.lengthSq());if(s===0)return Math.PI/2;let i=this.dot(t)/s;return Math.acos(he(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let s=this.x-t.x,i=this.y-t.y;return s*s+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,s){return this.x+=(t.x-this.x)*s,this.y+=(t.y-this.y)*s,this}lerpVectors(t,s,i){return this.x=t.x+(s.x-t.x)*i,this.y=t.y+(s.y-t.y)*i,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,s=0){return this.x=t[s],this.y=t[s+1],this}toArray(t=[],s=0){return t[s]=this.x,t[s+1]=this.y,t}fromBufferAttribute(t,s){return this.x=t.getX(s),this.y=t.getY(s),this}rotateAround(t,s){let i=Math.cos(s),n=Math.sin(s),c=this.x-t.x,u=this.y-t.y;return this.x=c*i-u*n+t.x,this.y=c*n+u*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},My=class{constructor(t=0,s=0,i=0,n=1){this.isQuaternion=!0,this._x=t,this._y=s,this._z=i,this._w=n}static slerpFlat(t,s,i,n,c,u,I){let D=i[n+0],g=i[n+1],U=i[n+2],F=i[n+3],V=c[u+0],H=c[u+1],z=c[u+2],j=c[u+3];if(I<=0){t[s+0]=D,t[s+1]=g,t[s+2]=U,t[s+3]=F;return}if(I>=1){t[s+0]=V,t[s+1]=H,t[s+2]=z,t[s+3]=j;return}if(F!==j||D!==V||g!==H||U!==z){let Q=D*V+g*H+U*z+F*j;Q<0&&(V=-V,H=-H,z=-z,j=-j,Q=-Q);let Z=1-I;if(Q<.9995){let X=Math.acos(Q),$=Math.sin(X);Z=Math.sin(Z*X)/$,I=Math.sin(I*X)/$,D=D*Z+V*I,g=g*Z+H*I,U=U*Z+z*I,F=F*Z+j*I}else{D=D*Z+V*I,g=g*Z+H*I,U=U*Z+z*I,F=F*Z+j*I;let X=1/Math.sqrt(D*D+g*g+U*U+F*F);D*=X,g*=X,U*=X,F*=X}}t[s]=D,t[s+1]=g,t[s+2]=U,t[s+3]=F}static multiplyQuaternionsFlat(t,s,i,n,c,u){let I=i[n],D=i[n+1],g=i[n+2],U=i[n+3],F=c[u],V=c[u+1],H=c[u+2],z=c[u+3];return t[s]=I*z+U*F+D*H-g*V,t[s+1]=D*z+U*V+g*F-I*H,t[s+2]=g*z+U*H+I*V-D*F,t[s+3]=U*z-I*F-D*V-g*H,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,s,i,n){return this._x=t,this._y=s,this._z=i,this._w=n,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,s=!0){let i=t._x,n=t._y,c=t._z,u=t._order,I=Math.cos,D=Math.sin,g=I(i/2),U=I(n/2),F=I(c/2),V=D(i/2),H=D(n/2),z=D(c/2);switch(u){case"XYZ":this._x=V*U*F+g*H*z,this._y=g*H*F-V*U*z,this._z=g*U*z+V*H*F,this._w=g*U*F-V*H*z;break;case"YXZ":this._x=V*U*F+g*H*z,this._y=g*H*F-V*U*z,this._z=g*U*z-V*H*F,this._w=g*U*F+V*H*z;break;case"ZXY":this._x=V*U*F-g*H*z,this._y=g*H*F+V*U*z,this._z=g*U*z+V*H*F,this._w=g*U*F-V*H*z;break;case"ZYX":this._x=V*U*F-g*H*z,this._y=g*H*F+V*U*z,this._z=g*U*z-V*H*F,this._w=g*U*F+V*H*z;break;case"YZX":this._x=V*U*F+g*H*z,this._y=g*H*F+V*U*z,this._z=g*U*z-V*H*F,this._w=g*U*F-V*H*z;break;case"XZY":this._x=V*U*F-g*H*z,this._y=g*H*F-V*U*z,this._z=g*U*z+V*H*F,this._w=g*U*F+V*H*z;break;default:ar("Quaternion: .setFromEuler() encountered an unknown order: "+u)}return s===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,s){let i=s/2,n=Math.sin(i);return this._x=t.x*n,this._y=t.y*n,this._z=t.z*n,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(t){let s=t.elements,i=s[0],n=s[4],c=s[8],u=s[1],I=s[5],D=s[9],g=s[2],U=s[6],F=s[10],V=i+I+F;if(V>0){let H=.5/Math.sqrt(V+1);this._w=.25/H,this._x=(U-D)*H,this._y=(c-g)*H,this._z=(u-n)*H}else if(i>I&&i>F){let H=2*Math.sqrt(1+i-I-F);this._w=(U-D)/H,this._x=.25*H,this._y=(n+u)/H,this._z=(c+g)/H}else if(I>F){let H=2*Math.sqrt(1+I-i-F);this._w=(c-g)/H,this._x=(n+u)/H,this._y=.25*H,this._z=(D+U)/H}else{let H=2*Math.sqrt(1+F-i-I);this._w=(u-n)/H,this._x=(c+g)/H,this._y=(D+U)/H,this._z=.25*H}return this._onChangeCallback(),this}setFromUnitVectors(t,s){let i=t.dot(s)+1;return i<1e-8?(i=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=i):(this._x=0,this._y=-t.z,this._z=t.y,this._w=i)):(this._x=t.y*s.z-t.z*s.y,this._y=t.z*s.x-t.x*s.z,this._z=t.x*s.y-t.y*s.x,this._w=i),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(he(this.dot(t),-1,1)))}rotateTowards(t,s){let i=this.angleTo(t);if(i===0)return this;let n=Math.min(1,s/i);return this.slerp(t,n),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,s){let i=t._x,n=t._y,c=t._z,u=t._w,I=s._x,D=s._y,g=s._z,U=s._w;return this._x=i*U+u*I+n*g-c*D,this._y=n*U+u*D+c*I-i*g,this._z=c*U+u*g+i*D-n*I,this._w=u*U-i*I-n*D-c*g,this._onChangeCallback(),this}slerp(t,s){if(s<=0)return this;if(s>=1)return this.copy(t);let i=t._x,n=t._y,c=t._z,u=t._w,I=this.dot(t);I<0&&(i=-i,n=-n,c=-c,u=-u,I=-I);let D=1-s;if(I<.9995){let g=Math.acos(I),U=Math.sin(g);D=Math.sin(D*g)/U,s=Math.sin(s*g)/U,this._x=this._x*D+i*s,this._y=this._y*D+n*s,this._z=this._z*D+c*s,this._w=this._w*D+u*s,this._onChangeCallback()}else this._x=this._x*D+i*s,this._y=this._y*D+n*s,this._z=this._z*D+c*s,this._w=this._w*D+u*s,this.normalize();return this}slerpQuaternions(t,s,i){return this.copy(t).slerp(s,i)}random(){let t=2*Math.PI*Math.random(),s=2*Math.PI*Math.random(),i=Math.random(),n=Math.sqrt(1-i),c=Math.sqrt(i);return this.set(n*Math.sin(t),n*Math.cos(t),c*Math.sin(s),c*Math.cos(s))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,s=0){return this._x=t[s],this._y=t[s+1],this._z=t[s+2],this._w=t[s+3],this._onChangeCallback(),this}toArray(t=[],s=0){return t[s]=this._x,t[s+1]=this._y,t[s+2]=this._z,t[s+3]=this._w,t}fromBufferAttribute(t,s){return this._x=t.getX(s),this._y=t.getY(s),this._z=t.getZ(s),this._w=t.getW(s),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},it=class e{constructor(t=0,s=0,i=0){e.prototype.isVector3=!0,this.x=t,this.y=s,this.z=i}set(t,s,i){return i===void 0&&(i=this.z),this.x=t,this.y=s,this.z=i,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,s){switch(t){case 0:this.x=s;break;case 1:this.y=s;break;case 2:this.z=s;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,s){return this.x=t.x+s.x,this.y=t.y+s.y,this.z=t.z+s.z,this}addScaledVector(t,s){return this.x+=t.x*s,this.y+=t.y*s,this.z+=t.z*s,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,s){return this.x=t.x-s.x,this.y=t.y-s.y,this.z=t.z-s.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,s){return this.x=t.x*s.x,this.y=t.y*s.y,this.z=t.z*s.z,this}applyEuler(t){return this.applyQuaternion(rU.setFromEuler(t))}applyAxisAngle(t,s){return this.applyQuaternion(rU.setFromAxisAngle(t,s))}applyMatrix3(t){let s=this.x,i=this.y,n=this.z,c=t.elements;return this.x=c[0]*s+c[3]*i+c[6]*n,this.y=c[1]*s+c[4]*i+c[7]*n,this.z=c[2]*s+c[5]*i+c[8]*n,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let s=this.x,i=this.y,n=this.z,c=t.elements,u=1/(c[3]*s+c[7]*i+c[11]*n+c[15]);return this.x=(c[0]*s+c[4]*i+c[8]*n+c[12])*u,this.y=(c[1]*s+c[5]*i+c[9]*n+c[13])*u,this.z=(c[2]*s+c[6]*i+c[10]*n+c[14])*u,this}applyQuaternion(t){let s=this.x,i=this.y,n=this.z,c=t.x,u=t.y,I=t.z,D=t.w,g=2*(u*n-I*i),U=2*(I*s-c*n),F=2*(c*i-u*s);return this.x=s+D*g+u*F-I*U,this.y=i+D*U+I*g-c*F,this.z=n+D*F+c*U-u*g,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let s=this.x,i=this.y,n=this.z,c=t.elements;return this.x=c[0]*s+c[4]*i+c[8]*n,this.y=c[1]*s+c[5]*i+c[9]*n,this.z=c[2]*s+c[6]*i+c[10]*n,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,s){return this.x=he(this.x,t.x,s.x),this.y=he(this.y,t.y,s.y),this.z=he(this.z,t.z,s.z),this}clampScalar(t,s){return this.x=he(this.x,t,s),this.y=he(this.y,t,s),this.z=he(this.z,t,s),this}clampLength(t,s){let i=this.length();return this.divideScalar(i||1).multiplyScalar(he(i,t,s))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,s){return this.x+=(t.x-this.x)*s,this.y+=(t.y-this.y)*s,this.z+=(t.z-this.z)*s,this}lerpVectors(t,s,i){return this.x=t.x+(s.x-t.x)*i,this.y=t.y+(s.y-t.y)*i,this.z=t.z+(s.z-t.z)*i,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,s){let i=t.x,n=t.y,c=t.z,u=s.x,I=s.y,D=s.z;return this.x=n*D-c*I,this.y=c*u-i*D,this.z=i*I-n*u,this}projectOnVector(t){let s=t.lengthSq();if(s===0)return this.set(0,0,0);let i=t.dot(this)/s;return this.copy(t).multiplyScalar(i)}projectOnPlane(t){return _P.copy(this).projectOnVector(t),this.sub(_P)}reflect(t){return this.sub(_P.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let s=Math.sqrt(this.lengthSq()*t.lengthSq());if(s===0)return Math.PI/2;let i=this.dot(t)/s;return Math.acos(he(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let s=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return s*s+i*i+n*n}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,s,i){let n=Math.sin(s)*t;return this.x=n*Math.sin(i),this.y=Math.cos(s)*t,this.z=n*Math.cos(i),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,s,i){return this.x=t*Math.sin(s),this.y=i,this.z=t*Math.cos(s),this}setFromMatrixPosition(t){let s=t.elements;return this.x=s[12],this.y=s[13],this.z=s[14],this}setFromMatrixScale(t){let s=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=s,this.y=i,this.z=n,this}setFromMatrixColumn(t,s){return this.fromArray(t.elements,s*4)}setFromMatrix3Column(t,s){return this.fromArray(t.elements,s*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,s=0){return this.x=t[s],this.y=t[s+1],this.z=t[s+2],this}toArray(t=[],s=0){return t[s]=this.x,t[s+1]=this.y,t[s+2]=this.z,t}fromBufferAttribute(t,s){return this.x=t.getX(s),this.y=t.getY(s),this.z=t.getZ(s),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let t=Math.random()*Math.PI*2,s=Math.random()*2-1,i=Math.sqrt(1-s*s);return this.x=i*Math.cos(t),this.y=s,this.z=i*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},_P=new it,rU=new My,Of=class e{constructor(t,s,i,n,c,u,I,D,g){e.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,s,i,n,c,u,I,D,g)}set(t,s,i,n,c,u,I,D,g){let U=this.elements;return U[0]=t,U[1]=n,U[2]=I,U[3]=s,U[4]=c,U[5]=D,U[6]=i,U[7]=u,U[8]=g,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let s=this.elements,i=t.elements;return s[0]=i[0],s[1]=i[1],s[2]=i[2],s[3]=i[3],s[4]=i[4],s[5]=i[5],s[6]=i[6],s[7]=i[7],s[8]=i[8],this}extractBasis(t,s,i){return t.setFromMatrix3Column(this,0),s.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(t){let s=t.elements;return this.set(s[0],s[4],s[8],s[1],s[5],s[9],s[2],s[6],s[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,s){let i=t.elements,n=s.elements,c=this.elements,u=i[0],I=i[3],D=i[6],g=i[1],U=i[4],F=i[7],V=i[2],H=i[5],z=i[8],j=n[0],Q=n[3],Z=n[6],X=n[1],$=n[4],q=n[7],tt=n[2],at=n[5],nt=n[8];return c[0]=u*j+I*X+D*tt,c[3]=u*Q+I*$+D*at,c[6]=u*Z+I*q+D*nt,c[1]=g*j+U*X+F*tt,c[4]=g*Q+U*$+F*at,c[7]=g*Z+U*q+F*nt,c[2]=V*j+H*X+z*tt,c[5]=V*Q+H*$+z*at,c[8]=V*Z+H*q+z*nt,this}multiplyScalar(t){let s=this.elements;return s[0]*=t,s[3]*=t,s[6]*=t,s[1]*=t,s[4]*=t,s[7]*=t,s[2]*=t,s[5]*=t,s[8]*=t,this}determinant(){let t=this.elements,s=t[0],i=t[1],n=t[2],c=t[3],u=t[4],I=t[5],D=t[6],g=t[7],U=t[8];return s*u*U-s*I*g-i*c*U+i*I*D+n*c*g-n*u*D}invert(){let t=this.elements,s=t[0],i=t[1],n=t[2],c=t[3],u=t[4],I=t[5],D=t[6],g=t[7],U=t[8],F=U*u-I*g,V=I*D-U*c,H=g*c-u*D,z=s*F+i*V+n*H;if(z===0)return this.set(0,0,0,0,0,0,0,0,0);let j=1/z;return t[0]=F*j,t[1]=(n*g-U*i)*j,t[2]=(I*i-n*u)*j,t[3]=V*j,t[4]=(U*s-n*D)*j,t[5]=(n*c-I*s)*j,t[6]=H*j,t[7]=(i*D-g*s)*j,t[8]=(u*s-i*c)*j,this}transpose(){let t,s=this.elements;return t=s[1],s[1]=s[3],s[3]=t,t=s[2],s[2]=s[6],s[6]=t,t=s[5],s[5]=s[7],s[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){let s=this.elements;return t[0]=s[0],t[1]=s[3],t[2]=s[6],t[3]=s[1],t[4]=s[4],t[5]=s[7],t[6]=s[2],t[7]=s[5],t[8]=s[8],this}setUvTransform(t,s,i,n,c,u,I){let D=Math.cos(c),g=Math.sin(c);return this.set(i*D,i*g,-i*(D*u+g*I)+u+t,-n*g,n*D,-n*(-g*u+D*I)+I+s,0,0,1),this}scale(t,s){return this.premultiply(gP.makeScale(t,s)),this}rotate(t){return this.premultiply(gP.makeRotation(-t)),this}translate(t,s){return this.premultiply(gP.makeTranslation(t,s)),this}makeTranslation(t,s){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,s,0,0,1),this}makeRotation(t){let s=Math.cos(t),i=Math.sin(t);return this.set(s,-i,0,i,s,0,0,0,1),this}makeScale(t,s){return this.set(t,0,0,0,s,0,0,0,1),this}equals(t){let s=this.elements,i=t.elements;for(let n=0;n<9;n++)if(s[n]!==i[n])return!1;return!0}fromArray(t,s=0){for(let i=0;i<9;i++)this.elements[i]=t[i+s];return this}toArray(t=[],s=0){let i=this.elements;return t[s]=i[0],t[s+1]=i[1],t[s+2]=i[2],t[s+3]=i[3],t[s+4]=i[4],t[s+5]=i[5],t[s+6]=i[6],t[s+7]=i[7],t[s+8]=i[8],t}clone(){return new this.constructor().fromArray(this.elements)}},gP=new Of,cU=new Of().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),aU=new Of().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function E6(){let e={enabled:!0,workingColorSpace:$1,spaces:{},convert:function(n,c,u){return this.enabled===!1||c===u||!c||!u||(this.spaces[c].transfer===vP&&(n.r=Af(n.r),n.g=Af(n.g),n.b=Af(n.b)),this.spaces[c].primaries!==this.spaces[u].primaries&&(n.applyMatrix3(this.spaces[c].toXYZ),n.applyMatrix3(this.spaces[u].fromXYZ)),this.spaces[u].transfer===vP&&(n.r=VS(n.r),n.g=VS(n.g),n.b=VS(n.b))),n},workingToColorSpace:function(n,c){return this.convert(n,this.workingColorSpace,c)},colorSpaceToWorking:function(n,c){return this.convert(n,c,this.workingColorSpace)},getPrimaries:function(n){return this.spaces[n].primaries},getTransfer:function(n){return n===ZC?J1:this.spaces[n].transfer},getToneMappingMode:function(n){return this.spaces[n].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(n,c=this.workingColorSpace){return n.fromArray(this.spaces[c].luminanceCoefficients)},define:function(n){Object.assign(this.spaces,n)},_getMatrix:function(n,c,u){return n.copy(this.spaces[c].toXYZ).multiply(this.spaces[u].fromXYZ)},_getDrawingBufferColorSpace:function(n){return this.spaces[n].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(n=this.workingColorSpace){return this.spaces[n].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(n,c){return iU("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),e.workingToColorSpace(n,c)},toWorkingColorSpace:function(n,c){return iU("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),e.colorSpaceToWorking(n,c)}},t=[.64,.33,.3,.6,.15,.06],s=[.2126,.7152,.0722],i=[.3127,.329];return e.define({[$1]:{primaries:t,whitePoint:i,transfer:J1,toXYZ:cU,fromXYZ:aU,luminanceCoefficients:s,workingColorSpaceConfig:{unpackColorSpace:fh},outputColorSpaceConfig:{drawingBufferColorSpace:fh}},[fh]:{primaries:t,whitePoint:i,transfer:vP,toXYZ:cU,fromXYZ:aU,luminanceCoefficients:s,outputColorSpaceConfig:{drawingBufferColorSpace:fh}}}),e}var ol=E6();function Af(e){return e<.04045?e*.0773993808:Math.pow(e*.9478672986+.0521327014,2.4)}function VS(e){return e<.0031308?e*12.92:1.055*Math.pow(e,.41666)-.055}var oS,MM=class{static getDataURL(t,s="image/png"){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let i;if(t instanceof HTMLCanvasElement)i=t;else{oS===void 0&&(oS=eU("canvas")),oS.width=t.width,oS.height=t.height;let n=oS.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),i=oS}return i.toDataURL(s)}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){let s=eU("canvas");s.width=t.width,s.height=t.height;let i=s.getContext("2d");i.drawImage(t,0,0,t.width,t.height);let n=i.getImageData(0,0,t.width,t.height),c=n.data;for(let u=0;u<c.length;u++)c[u]=Af(c[u]/255)*255;return i.putImageData(n,0,0),s}else if(t.data){let s=t.data.slice(0);for(let i=0;i<s.length;i++)s instanceof Uint8Array||s instanceof Uint8ClampedArray?s[i]=Math.floor(Af(s[i]/255)*255):s[i]=Af(s[i]);return{data:s,width:t.width,height:t.height}}else return ar("ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),t}},f6=0,UM=class{constructor(t=null){this.isSource=!0,Object.defineProperty(this,"id",{value:f6++}),this.uuid=sN(),this.data=t,this.dataReady=!0,this.version=0}getSize(t){let s=this.data;return typeof HTMLVideoElement<"u"&&s instanceof HTMLVideoElement?t.set(s.videoWidth,s.videoHeight,0):typeof VideoFrame<"u"&&s instanceof VideoFrame?t.set(s.displayHeight,s.displayWidth,0):s!==null?t.set(s.width,s.height,s.depth||0):t.set(0,0,0),t}set needsUpdate(t){t===!0&&this.version++}toJSON(t){let s=t===void 0||typeof t=="string";if(!s&&t.images[this.uuid]!==void 0)return t.images[this.uuid];let i={uuid:this.uuid,url:""},n=this.data;if(n!==null){let c;if(Array.isArray(n)){c=[];for(let u=0,I=n.length;u<I;u++)n[u].isDataTexture?c.push(LP(n[u].image)):c.push(LP(n[u]))}else c=LP(n);i.url=c}return s||(t.images[this.uuid]=i),i}};function LP(e){return typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap?MM.getDataURL(e):e.data?{data:Array.from(e.data),width:e.width,height:e.height,type:e.data.constructor.name}:(ar("Texture: Unable to serialize Texture."),{})}var I6=0,xP=new it,KS=class e extends kS{constructor(t=e.DEFAULT_IMAGE,s=e.DEFAULT_MAPPING,i=X_,n=X_,c=z5,u=Y5,I=xM,D=k5,g=e.DEFAULT_ANISOTROPY,U=ZC){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:I6++}),this.uuid=sN(),this.name="",this.source=new UM(t),this.mipmaps=[],this.mapping=s,this.channel=0,this.wrapS=i,this.wrapT=n,this.magFilter=c,this.minFilter=u,this.anisotropy=g,this.format=I,this.internalFormat=null,this.type=D,this.offset=new vn(0,0),this.repeat=new vn(1,1),this.center=new vn(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Of,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=U,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(t&&t.depth&&t.depth>1),this.pmremVersion=0}get width(){return this.source.getSize(xP).x}get height(){return this.source.getSize(xP).y}get depth(){return this.source.getSize(xP).z}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(t,s){this.updateRanges.push({start:t,count:s})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.renderTarget=t.renderTarget,this.isRenderTargetTexture=t.isRenderTargetTexture,this.isArrayTexture=t.isArrayTexture,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}setValues(t){for(let s in t){let i=t[s];if(i===void 0){ar(`Texture.setValues(): parameter '${s}' has value of undefined.`);continue}let n=this[s];if(n===void 0){ar(`Texture.setValues(): property '${s}' does not exist.`);continue}n&&i&&n.isVector2&&i.isVector2||n&&i&&n.isVector3&&i.isVector3||n&&i&&n.isMatrix3&&i.isMatrix3?n.copy(i):this[s]=i}}toJSON(t){let s=t===void 0||typeof t=="string";if(!s&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];let i={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),s||(t.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==KC)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case q1:t.x=t.x-Math.floor(t.x);break;case X_:t.x=t.x<0?0:1;break;case j1: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 q1:t.y=t.y-Math.floor(t.y);break;case X_:t.y=t.y<0?0:1;break;case j1: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)}set needsPMREMUpdate(t){t===!0&&this.pmremVersion++}};KS.DEFAULT_IMAGE=null;KS.DEFAULT_MAPPING=KC;KS.DEFAULT_ANISOTROPY=1;var a_=class e{constructor(t=0,s=0,i=0,n=1){e.prototype.isVector4=!0,this.x=t,this.y=s,this.z=i,this.w=n}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,s,i,n){return this.x=t,this.y=s,this.z=i,this.w=n,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,s){switch(t){case 0:this.x=s;break;case 1:this.y=s;break;case 2:this.z=s;break;case 3:this.w=s;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,s){return this.x=t.x+s.x,this.y=t.y+s.y,this.z=t.z+s.z,this.w=t.w+s.w,this}addScaledVector(t,s){return this.x+=t.x*s,this.y+=t.y*s,this.z+=t.z*s,this.w+=t.w*s,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,s){return this.x=t.x-s.x,this.y=t.y-s.y,this.z=t.z-s.z,this.w=t.w-s.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 s=this.x,i=this.y,n=this.z,c=this.w,u=t.elements;return this.x=u[0]*s+u[4]*i+u[8]*n+u[12]*c,this.y=u[1]*s+u[5]*i+u[9]*n+u[13]*c,this.z=u[2]*s+u[6]*i+u[10]*n+u[14]*c,this.w=u[3]*s+u[7]*i+u[11]*n+u[15]*c,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let s=Math.sqrt(1-t.w*t.w);return s<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/s,this.y=t.y/s,this.z=t.z/s),this}setAxisAngleFromRotationMatrix(t){let s,i,n,c,D=t.elements,g=D[0],U=D[4],F=D[8],V=D[1],H=D[5],z=D[9],j=D[2],Q=D[6],Z=D[10];if(Math.abs(U-V)<.01&&Math.abs(F-j)<.01&&Math.abs(z-Q)<.01){if(Math.abs(U+V)<.1&&Math.abs(F+j)<.1&&Math.abs(z+Q)<.1&&Math.abs(g+H+Z-3)<.1)return this.set(1,0,0,0),this;s=Math.PI;let $=(g+1)/2,q=(H+1)/2,tt=(Z+1)/2,at=(U+V)/4,nt=(F+j)/4,ht=(z+Q)/4;return $>q&&$>tt?$<.01?(i=0,n=.707106781,c=.707106781):(i=Math.sqrt($),n=at/i,c=nt/i):q>tt?q<.01?(i=.707106781,n=0,c=.707106781):(n=Math.sqrt(q),i=at/n,c=ht/n):tt<.01?(i=.707106781,n=.707106781,c=0):(c=Math.sqrt(tt),i=nt/c,n=ht/c),this.set(i,n,c,s),this}let X=Math.sqrt((Q-z)*(Q-z)+(F-j)*(F-j)+(V-U)*(V-U));return Math.abs(X)<.001&&(X=1),this.x=(Q-z)/X,this.y=(F-j)/X,this.z=(V-U)/X,this.w=Math.acos((g+H+Z-1)/2),this}setFromMatrixPosition(t){let s=t.elements;return this.x=s[12],this.y=s[13],this.z=s[14],this.w=s[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,s){return this.x=he(this.x,t.x,s.x),this.y=he(this.y,t.y,s.y),this.z=he(this.z,t.z,s.z),this.w=he(this.w,t.w,s.w),this}clampScalar(t,s){return this.x=he(this.x,t,s),this.y=he(this.y,t,s),this.z=he(this.z,t,s),this.w=he(this.w,t,s),this}clampLength(t,s){let i=this.length();return this.divideScalar(i||1).multiplyScalar(he(i,t,s))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,s){return this.x+=(t.x-this.x)*s,this.y+=(t.y-this.y)*s,this.z+=(t.z-this.z)*s,this.w+=(t.w-this.w)*s,this}lerpVectors(t,s,i){return this.x=t.x+(s.x-t.x)*i,this.y=t.y+(s.y-t.y)*i,this.z=t.z+(s.z-t.z)*i,this.w=t.w+(s.w-t.w)*i,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,s=0){return this.x=t[s],this.y=t[s+1],this.z=t[s+2],this.w=t[s+3],this}toArray(t=[],s=0){return t[s]=this.x,t[s+1]=this.y,t[s+2]=this.z,t[s+3]=this.w,t}fromBufferAttribute(t,s){return this.x=t.getX(s),this.y=t.getY(s),this.z=t.getZ(s),this.w=t.getW(s),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}},rs=class{constructor(t=new it(1/0,1/0,1/0),s=new it(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=s}set(t,s){return this.min.copy(t),this.max.copy(s),this}setFromArray(t){this.makeEmpty();for(let s=0,i=t.length;s<i;s+=3)this.expandByPoint(ru.fromArray(t,s));return this}setFromBufferAttribute(t){this.makeEmpty();for(let s=0,i=t.count;s<i;s++)this.expandByPoint(ru.fromBufferAttribute(t,s));return this}setFromPoints(t){this.makeEmpty();for(let s=0,i=t.length;s<i;s++)this.expandByPoint(t[s]);return this}setFromCenterAndSize(t,s){let i=ru.copy(s).multiplyScalar(.5);return this.min.copy(t).sub(i),this.max.copy(t).add(i),this}setFromObject(t,s=!1){return this.makeEmpty(),this.expandByObject(t,s)}clone(){return new this.constructor().copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t,s=!1){t.updateWorldMatrix(!1,!1);let i=t.geometry;if(i!==void 0){let c=i.getAttribute("position");if(s===!0&&c!==void 0&&t.isInstancedMesh!==!0)for(let u=0,I=c.count;u<I;u++)t.isMesh===!0?t.getVertexPosition(u,ru):ru.fromBufferAttribute(c,u),ru.applyMatrix4(t.matrixWorld),this.expandByPoint(ru);else t.boundingBox!==void 0?(t.boundingBox===null&&t.computeBoundingBox(),tg.copy(t.boundingBox)):(i.boundingBox===null&&i.computeBoundingBox(),tg.copy(i.boundingBox)),tg.applyMatrix4(t.matrixWorld),this.union(tg)}let n=t.children;for(let c=0,u=n.length;c<u;c++)this.expandByObject(n[c],s);return this}containsPoint(t){return t.x>=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,s){return s.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,ru),ru.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let s,i;return t.normal.x>0?(s=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(s=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(s+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(s+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(s+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(s+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),s<=-t.constant&&i>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Av),eg.subVectors(this.max,Av),hS.subVectors(t.a,Av),lS.subVectors(t.b,Av),uS.subVectors(t.c,Av),uy.subVectors(lS,hS),py.subVectors(uS,lS),Hd.subVectors(hS,uS);let s=[0,-uy.z,uy.y,0,-py.z,py.y,0,-Hd.z,Hd.y,uy.z,0,-uy.x,py.z,0,-py.x,Hd.z,0,-Hd.x,-uy.y,uy.x,0,-py.y,py.x,0,-Hd.y,Hd.x,0];return!PP(s,hS,lS,uS,eg)||(s=[1,0,0,0,1,0,0,0,1],!PP(s,hS,lS,uS,eg))?!1:(sg.crossVectors(uy,py),s=[sg.x,sg.y,sg.z],PP(s,hS,lS,uS,eg))}clampPoint(t,s){return s.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,ru).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(ru).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:(af[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),af[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),af[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),af[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),af[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),af[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),af[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),af[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(af),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)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(t){return this.min.fromArray(t.min),this.max.fromArray(t.max),this}},af=[new it,new it,new it,new it,new it,new it,new it,new it],ru=new it,tg=new rs,hS=new it,lS=new it,uS=new it,uy=new it,py=new it,Hd=new it,Av=new it,eg=new it,sg=new it,Wd=new it;function PP(e,t,s,i,n){for(let c=0,u=e.length-3;c<=u;c+=3){Wd.fromArray(e,c);let I=n.x*Math.abs(Wd.x)+n.y*Math.abs(Wd.y)+n.z*Math.abs(Wd.z),D=t.dot(Wd),g=s.dot(Wd),U=i.dot(Wd);if(Math.max(-Math.max(D,g,U),Math.min(D,g,U))>I)return!1}return!0}var y6=new rs,Dv=new it,MP=new it,Ro=class{constructor(t=new it,s=-1){this.isSphere=!0,this.center=t,this.radius=s}set(t,s){return this.center.copy(t),this.radius=s,this}setFromPoints(t,s){let i=this.center;s!==void 0?i.copy(s):y6.setFromPoints(t).getCenter(i);let n=0;for(let c=0,u=t.length;c<u;c++)n=Math.max(n,i.distanceToSquared(t[c]));return this.radius=Math.sqrt(n),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){let s=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=s*s}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,s){let i=this.center.distanceToSquared(t);return s.copy(t),i>this.radius*this.radius&&(s.sub(this.center).normalize(),s.multiplyScalar(this.radius).add(this.center)),s}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;Dv.subVectors(t,this.center);let s=Dv.lengthSq();if(s>this.radius*this.radius){let i=Math.sqrt(s),n=(i-this.radius)*.5;this.center.addScaledVector(Dv,n/i),this.radius+=n}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):(MP.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Dv.copy(t.center).add(MP)),this.expandByPoint(Dv.copy(t.center).sub(MP))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(t){return this.radius=t.radius,this.center.fromArray(t.center),this}},of=new it,UP=new it,ig=new it,Ey=new it,CP=new it,ng=new it,bP=new it,Zp=class{constructor(t=new it,s=new it(0,0,-1)){this.origin=t,this.direction=s}set(t,s){return this.origin.copy(t),this.direction.copy(s),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,s){return s.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,of)),this}closestPointToPoint(t,s){s.subVectors(t,this.origin);let i=s.dot(this.direction);return i<0?s.copy(this.origin):s.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let s=of.subVectors(t,this.origin).dot(this.direction);return s<0?this.origin.distanceToSquared(t):(of.copy(this.origin).addScaledVector(this.direction,s),of.distanceToSquared(t))}distanceSqToSegment(t,s,i,n){UP.copy(t).add(s).multiplyScalar(.5),ig.copy(s).sub(t).normalize(),Ey.copy(this.origin).sub(UP);let c=t.distanceTo(s)*.5,u=-this.direction.dot(ig),I=Ey.dot(this.direction),D=-Ey.dot(ig),g=Ey.lengthSq(),U=Math.abs(1-u*u),F,V,H,z;if(U>0)if(F=u*D-I,V=u*I-D,z=c*U,F>=0)if(V>=-z)if(V<=z){let j=1/U;F*=j,V*=j,H=F*(F+u*V+2*I)+V*(u*F+V+2*D)+g}else V=c,F=Math.max(0,-(u*V+I)),H=-F*F+V*(V+2*D)+g;else V=-c,F=Math.max(0,-(u*V+I)),H=-F*F+V*(V+2*D)+g;else V<=-z?(F=Math.max(0,-(-u*c+I)),V=F>0?-c:Math.min(Math.max(-c,-D),c),H=-F*F+V*(V+2*D)+g):V<=z?(F=0,V=Math.min(Math.max(-c,-D),c),H=V*(V+2*D)+g):(F=Math.max(0,-(u*c+I)),V=F>0?c:Math.min(Math.max(-c,-D),c),H=-F*F+V*(V+2*D)+g);else V=u>0?-c:c,F=Math.max(0,-(u*V+I)),H=-F*F+V*(V+2*D)+g;return i&&i.copy(this.origin).addScaledVector(this.direction,F),n&&n.copy(UP).addScaledVector(ig,V),H}intersectSphere(t,s){of.subVectors(t.center,this.origin);let i=of.dot(this.direction),n=of.dot(of)-i*i,c=t.radius*t.radius;if(n>c)return null;let u=Math.sqrt(c-n),I=i-u,D=i+u;return D<0?null:I<0?this.at(D,s):this.at(I,s)}intersectsSphere(t){return t.radius<0?!1:this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let s=t.normal.dot(this.direction);if(s===0)return t.distanceToPoint(this.origin)===0?0:null;let i=-(this.origin.dot(t.normal)+t.constant)/s;return i>=0?i:null}intersectPlane(t,s){let i=this.distanceToPlane(t);return i===null?null:this.at(i,s)}intersectsPlane(t){let s=t.distanceToPoint(this.origin);return s===0||t.normal.dot(this.direction)*s<0}intersectBox(t,s){let i,n,c,u,I,D,g=1/this.direction.x,U=1/this.direction.y,F=1/this.direction.z,V=this.origin;return g>=0?(i=(t.min.x-V.x)*g,n=(t.max.x-V.x)*g):(i=(t.max.x-V.x)*g,n=(t.min.x-V.x)*g),U>=0?(c=(t.min.y-V.y)*U,u=(t.max.y-V.y)*U):(c=(t.max.y-V.y)*U,u=(t.min.y-V.y)*U),i>u||c>n||((c>i||isNaN(i))&&(i=c),(u<n||isNaN(n))&&(n=u),F>=0?(I=(t.min.z-V.z)*F,D=(t.max.z-V.z)*F):(I=(t.max.z-V.z)*F,D=(t.min.z-V.z)*F),i>D||I>n)||((I>i||i!==i)&&(i=I),(D<n||n!==n)&&(n=D),n<0)?null:this.at(i>=0?i:n,s)}intersectsBox(t){return this.intersectBox(t,of)!==null}intersectTriangle(t,s,i,n,c){CP.subVectors(s,t),ng.subVectors(i,t),bP.crossVectors(CP,ng);let u=this.direction.dot(bP),I;if(u>0){if(n)return null;I=1}else if(u<0)I=-1,u=-u;else return null;Ey.subVectors(this.origin,t);let D=I*this.direction.dot(ng.crossVectors(Ey,ng));if(D<0)return null;let g=I*this.direction.dot(CP.cross(Ey));if(g<0||D+g>u)return null;let U=-I*Ey.dot(bP);return U<0?null:this.at(U/u,c)}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)}},Ee=class e{constructor(t,s,i,n,c,u,I,D,g,U,F,V,H,z,j,Q){e.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,s,i,n,c,u,I,D,g,U,F,V,H,z,j,Q)}set(t,s,i,n,c,u,I,D,g,U,F,V,H,z,j,Q){let Z=this.elements;return Z[0]=t,Z[4]=s,Z[8]=i,Z[12]=n,Z[1]=c,Z[5]=u,Z[9]=I,Z[13]=D,Z[2]=g,Z[6]=U,Z[10]=F,Z[14]=V,Z[3]=H,Z[7]=z,Z[11]=j,Z[15]=Q,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 e().fromArray(this.elements)}copy(t){let s=this.elements,i=t.elements;return s[0]=i[0],s[1]=i[1],s[2]=i[2],s[3]=i[3],s[4]=i[4],s[5]=i[5],s[6]=i[6],s[7]=i[7],s[8]=i[8],s[9]=i[9],s[10]=i[10],s[11]=i[11],s[12]=i[12],s[13]=i[13],s[14]=i[14],s[15]=i[15],this}copyPosition(t){let s=this.elements,i=t.elements;return s[12]=i[12],s[13]=i[13],s[14]=i[14],this}setFromMatrix3(t){let s=t.elements;return this.set(s[0],s[3],s[6],0,s[1],s[4],s[7],0,s[2],s[5],s[8],0,0,0,0,1),this}extractBasis(t,s,i){return this.determinant()===0?(t.set(1,0,0),s.set(0,1,0),i.set(0,0,1),this):(t.setFromMatrixColumn(this,0),s.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this)}makeBasis(t,s,i){return this.set(t.x,s.x,i.x,0,t.y,s.y,i.y,0,t.z,s.z,i.z,0,0,0,0,1),this}extractRotation(t){if(t.determinant()===0)return this.identity();let s=this.elements,i=t.elements,n=1/pS.setFromMatrixColumn(t,0).length(),c=1/pS.setFromMatrixColumn(t,1).length(),u=1/pS.setFromMatrixColumn(t,2).length();return s[0]=i[0]*n,s[1]=i[1]*n,s[2]=i[2]*n,s[3]=0,s[4]=i[4]*c,s[5]=i[5]*c,s[6]=i[6]*c,s[7]=0,s[8]=i[8]*u,s[9]=i[9]*u,s[10]=i[10]*u,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,this}makeRotationFromEuler(t){let s=this.elements,i=t.x,n=t.y,c=t.z,u=Math.cos(i),I=Math.sin(i),D=Math.cos(n),g=Math.sin(n),U=Math.cos(c),F=Math.sin(c);if(t.order==="XYZ"){let V=u*U,H=u*F,z=I*U,j=I*F;s[0]=D*U,s[4]=-D*F,s[8]=g,s[1]=H+z*g,s[5]=V-j*g,s[9]=-I*D,s[2]=j-V*g,s[6]=z+H*g,s[10]=u*D}else if(t.order==="YXZ"){let V=D*U,H=D*F,z=g*U,j=g*F;s[0]=V+j*I,s[4]=z*I-H,s[8]=u*g,s[1]=u*F,s[5]=u*U,s[9]=-I,s[2]=H*I-z,s[6]=j+V*I,s[10]=u*D}else if(t.order==="ZXY"){let V=D*U,H=D*F,z=g*U,j=g*F;s[0]=V-j*I,s[4]=-u*F,s[8]=z+H*I,s[1]=H+z*I,s[5]=u*U,s[9]=j-V*I,s[2]=-u*g,s[6]=I,s[10]=u*D}else if(t.order==="ZYX"){let V=u*U,H=u*F,z=I*U,j=I*F;s[0]=D*U,s[4]=z*g-H,s[8]=V*g+j,s[1]=D*F,s[5]=j*g+V,s[9]=H*g-z,s[2]=-g,s[6]=I*D,s[10]=u*D}else if(t.order==="YZX"){let V=u*D,H=u*g,z=I*D,j=I*g;s[0]=D*U,s[4]=j-V*F,s[8]=z*F+H,s[1]=F,s[5]=u*U,s[9]=-I*U,s[2]=-g*U,s[6]=H*F+z,s[10]=V-j*F}else if(t.order==="XZY"){let V=u*D,H=u*g,z=I*D,j=I*g;s[0]=D*U,s[4]=-F,s[8]=g*U,s[1]=V*F+j,s[5]=u*U,s[9]=H*F-z,s[2]=z*F-H,s[6]=I*U,s[10]=j*F+V}return s[3]=0,s[7]=0,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,this}makeRotationFromQuaternion(t){return this.compose(T6,t,d6)}lookAt(t,s,i){let n=this.elements;return uh.subVectors(t,s),uh.lengthSq()===0&&(uh.z=1),uh.normalize(),fy.crossVectors(i,uh),fy.lengthSq()===0&&(Math.abs(i.z)===1?uh.x+=1e-4:uh.z+=1e-4,uh.normalize(),fy.crossVectors(i,uh)),fy.normalize(),rg.crossVectors(uh,fy),n[0]=fy.x,n[4]=rg.x,n[8]=uh.x,n[1]=fy.y,n[5]=rg.y,n[9]=uh.y,n[2]=fy.z,n[6]=rg.z,n[10]=uh.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,s){let i=t.elements,n=s.elements,c=this.elements,u=i[0],I=i[4],D=i[8],g=i[12],U=i[1],F=i[5],V=i[9],H=i[13],z=i[2],j=i[6],Q=i[10],Z=i[14],X=i[3],$=i[7],q=i[11],tt=i[15],at=n[0],nt=n[4],ht=n[8],ut=n[12],ot=n[1],pt=n[5],Et=n[9],dt=n[13],Dt=n[2],Ut=n[6],Xt=n[10],Yt=n[14],Jt=n[3],ve=n[7],Tt=n[11],le=n[15];return c[0]=u*at+I*ot+D*Dt+g*Jt,c[4]=u*nt+I*pt+D*Ut+g*ve,c[8]=u*ht+I*Et+D*Xt+g*Tt,c[12]=u*ut+I*dt+D*Yt+g*le,c[1]=U*at+F*ot+V*Dt+H*Jt,c[5]=U*nt+F*pt+V*Ut+H*ve,c[9]=U*ht+F*Et+V*Xt+H*Tt,c[13]=U*ut+F*dt+V*Yt+H*le,c[2]=z*at+j*ot+Q*Dt+Z*Jt,c[6]=z*nt+j*pt+Q*Ut+Z*ve,c[10]=z*ht+j*Et+Q*Xt+Z*Tt,c[14]=z*ut+j*dt+Q*Yt+Z*le,c[3]=X*at+$*ot+q*Dt+tt*Jt,c[7]=X*nt+$*pt+q*Ut+tt*ve,c[11]=X*ht+$*Et+q*Xt+tt*Tt,c[15]=X*ut+$*dt+q*Yt+tt*le,this}multiplyScalar(t){let s=this.elements;return s[0]*=t,s[4]*=t,s[8]*=t,s[12]*=t,s[1]*=t,s[5]*=t,s[9]*=t,s[13]*=t,s[2]*=t,s[6]*=t,s[10]*=t,s[14]*=t,s[3]*=t,s[7]*=t,s[11]*=t,s[15]*=t,this}determinant(){let t=this.elements,s=t[0],i=t[4],n=t[8],c=t[12],u=t[1],I=t[5],D=t[9],g=t[13],U=t[2],F=t[6],V=t[10],H=t[14],z=t[3],j=t[7],Q=t[11],Z=t[15],X=D*H-g*V,$=I*H-g*F,q=I*V-D*F,tt=u*H-g*U,at=u*V-D*U,nt=u*F-I*U;return s*(j*X-Q*$+Z*q)-i*(z*X-Q*tt+Z*at)+n*(z*$-j*tt+Z*nt)-c*(z*q-j*at+Q*nt)}transpose(){let t=this.elements,s;return s=t[1],t[1]=t[4],t[4]=s,s=t[2],t[2]=t[8],t[8]=s,s=t[6],t[6]=t[9],t[9]=s,s=t[3],t[3]=t[12],t[12]=s,s=t[7],t[7]=t[13],t[13]=s,s=t[11],t[11]=t[14],t[14]=s,this}setPosition(t,s,i){let n=this.elements;return t.isVector3?(n[12]=t.x,n[13]=t.y,n[14]=t.z):(n[12]=t,n[13]=s,n[14]=i),this}invert(){let t=this.elements,s=t[0],i=t[1],n=t[2],c=t[3],u=t[4],I=t[5],D=t[6],g=t[7],U=t[8],F=t[9],V=t[10],H=t[11],z=t[12],j=t[13],Q=t[14],Z=t[15],X=F*Q*g-j*V*g+j*D*H-I*Q*H-F*D*Z+I*V*Z,$=z*V*g-U*Q*g-z*D*H+u*Q*H+U*D*Z-u*V*Z,q=U*j*g-z*F*g+z*I*H-u*j*H-U*I*Z+u*F*Z,tt=z*F*D-U*j*D-z*I*V+u*j*V+U*I*Q-u*F*Q,at=s*X+i*$+n*q+c*tt;if(at===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let nt=1/at;return t[0]=X*nt,t[1]=(j*V*c-F*Q*c-j*n*H+i*Q*H+F*n*Z-i*V*Z)*nt,t[2]=(I*Q*c-j*D*c+j*n*g-i*Q*g-I*n*Z+i*D*Z)*nt,t[3]=(F*D*c-I*V*c-F*n*g+i*V*g+I*n*H-i*D*H)*nt,t[4]=$*nt,t[5]=(U*Q*c-z*V*c+z*n*H-s*Q*H-U*n*Z+s*V*Z)*nt,t[6]=(z*D*c-u*Q*c-z*n*g+s*Q*g+u*n*Z-s*D*Z)*nt,t[7]=(u*V*c-U*D*c+U*n*g-s*V*g-u*n*H+s*D*H)*nt,t[8]=q*nt,t[9]=(z*F*c-U*j*c-z*i*H+s*j*H+U*i*Z-s*F*Z)*nt,t[10]=(u*j*c-z*I*c+z*i*g-s*j*g-u*i*Z+s*I*Z)*nt,t[11]=(U*I*c-u*F*c-U*i*g+s*F*g+u*i*H-s*I*H)*nt,t[12]=tt*nt,t[13]=(U*j*n-z*F*n+z*i*V-s*j*V-U*i*Q+s*F*Q)*nt,t[14]=(z*I*n-u*j*n-z*i*D+s*j*D+u*i*Q-s*I*Q)*nt,t[15]=(u*F*n-U*I*n+U*i*D-s*F*D-u*i*V+s*I*V)*nt,this}scale(t){let s=this.elements,i=t.x,n=t.y,c=t.z;return s[0]*=i,s[4]*=n,s[8]*=c,s[1]*=i,s[5]*=n,s[9]*=c,s[2]*=i,s[6]*=n,s[10]*=c,s[3]*=i,s[7]*=n,s[11]*=c,this}getMaxScaleOnAxis(){let t=this.elements,s=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],i=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],n=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(s,i,n))}makeTranslation(t,s,i){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,s,0,0,1,i,0,0,0,1),this}makeRotationX(t){let s=Math.cos(t),i=Math.sin(t);return this.set(1,0,0,0,0,s,-i,0,0,i,s,0,0,0,0,1),this}makeRotationY(t){let s=Math.cos(t),i=Math.sin(t);return this.set(s,0,i,0,0,1,0,0,-i,0,s,0,0,0,0,1),this}makeRotationZ(t){let s=Math.cos(t),i=Math.sin(t);return this.set(s,-i,0,0,i,s,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,s){let i=Math.cos(s),n=Math.sin(s),c=1-i,u=t.x,I=t.y,D=t.z,g=c*u,U=c*I;return this.set(g*u+i,g*I-n*D,g*D+n*I,0,g*I+n*D,U*I+i,U*D-n*u,0,g*D-n*I,U*D+n*u,c*D*D+i,0,0,0,0,1),this}makeScale(t,s,i){return this.set(t,0,0,0,0,s,0,0,0,0,i,0,0,0,0,1),this}makeShear(t,s,i,n,c,u){return this.set(1,i,c,0,t,1,u,0,s,n,1,0,0,0,0,1),this}compose(t,s,i){let n=this.elements,c=s._x,u=s._y,I=s._z,D=s._w,g=c+c,U=u+u,F=I+I,V=c*g,H=c*U,z=c*F,j=u*U,Q=u*F,Z=I*F,X=D*g,$=D*U,q=D*F,tt=i.x,at=i.y,nt=i.z;return n[0]=(1-(j+Z))*tt,n[1]=(H+q)*tt,n[2]=(z-$)*tt,n[3]=0,n[4]=(H-q)*at,n[5]=(1-(V+Z))*at,n[6]=(Q+X)*at,n[7]=0,n[8]=(z+$)*nt,n[9]=(Q-X)*nt,n[10]=(1-(V+j))*nt,n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,this}decompose(t,s,i){let n=this.elements;if(t.x=n[12],t.y=n[13],t.z=n[14],this.determinant()===0)return i.set(1,1,1),s.identity(),this;let c=pS.set(n[0],n[1],n[2]).length(),u=pS.set(n[4],n[5],n[6]).length(),I=pS.set(n[8],n[9],n[10]).length();this.determinant()<0&&(c=-c),cu.copy(this);let g=1/c,U=1/u,F=1/I;return cu.elements[0]*=g,cu.elements[1]*=g,cu.elements[2]*=g,cu.elements[4]*=U,cu.elements[5]*=U,cu.elements[6]*=U,cu.elements[8]*=F,cu.elements[9]*=F,cu.elements[10]*=F,s.setFromRotationMatrix(cu),i.x=c,i.y=u,i.z=I,this}makePerspective(t,s,i,n,c,u,I=Jd,D=!1){let g=this.elements,U=2*c/(s-t),F=2*c/(i-n),V=(s+t)/(s-t),H=(i+n)/(i-n),z,j;if(D)z=c/(u-c),j=u*c/(u-c);else if(I===Jd)z=-(u+c)/(u-c),j=-2*u*c/(u-c);else if(I===PM)z=-u/(u-c),j=-u*c/(u-c);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+I);return g[0]=U,g[4]=0,g[8]=V,g[12]=0,g[1]=0,g[5]=F,g[9]=H,g[13]=0,g[2]=0,g[6]=0,g[10]=z,g[14]=j,g[3]=0,g[7]=0,g[11]=-1,g[15]=0,this}makeOrthographic(t,s,i,n,c,u,I=Jd,D=!1){let g=this.elements,U=2/(s-t),F=2/(i-n),V=-(s+t)/(s-t),H=-(i+n)/(i-n),z,j;if(D)z=1/(u-c),j=u/(u-c);else if(I===Jd)z=-2/(u-c),j=-(u+c)/(u-c);else if(I===PM)z=-1/(u-c),j=-c/(u-c);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+I);return g[0]=U,g[4]=0,g[8]=0,g[12]=V,g[1]=0,g[5]=F,g[9]=0,g[13]=H,g[2]=0,g[6]=0,g[10]=z,g[14]=j,g[3]=0,g[7]=0,g[11]=0,g[15]=1,this}equals(t){let s=this.elements,i=t.elements;for(let n=0;n<16;n++)if(s[n]!==i[n])return!1;return!0}fromArray(t,s=0){for(let i=0;i<16;i++)this.elements[i]=t[i+s];return this}toArray(t=[],s=0){let i=this.elements;return t[s]=i[0],t[s+1]=i[1],t[s+2]=i[2],t[s+3]=i[3],t[s+4]=i[4],t[s+5]=i[5],t[s+6]=i[6],t[s+7]=i[7],t[s+8]=i[8],t[s+9]=i[9],t[s+10]=i[10],t[s+11]=i[11],t[s+12]=i[12],t[s+13]=i[13],t[s+14]=i[14],t[s+15]=i[15],t}},pS=new it,cu=new Ee,T6=new it(0,0,0),d6=new it(1,1,1),fy=new it,rg=new it,uh=new it,oU=new Ee,hU=new My,o_=class e{constructor(t=0,s=0,i=0,n=e.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=s,this._z=i,this._order=n}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,s,i,n=this._order){return this._x=t,this._y=s,this._z=i,this._order=n,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,s=this._order,i=!0){let n=t.elements,c=n[0],u=n[4],I=n[8],D=n[1],g=n[5],U=n[9],F=n[2],V=n[6],H=n[10];switch(s){case"XYZ":this._y=Math.asin(he(I,-1,1)),Math.abs(I)<.9999999?(this._x=Math.atan2(-U,H),this._z=Math.atan2(-u,c)):(this._x=Math.atan2(V,g),this._z=0);break;case"YXZ":this._x=Math.asin(-he(U,-1,1)),Math.abs(U)<.9999999?(this._y=Math.atan2(I,H),this._z=Math.atan2(D,g)):(this._y=Math.atan2(-F,c),this._z=0);break;case"ZXY":this._x=Math.asin(he(V,-1,1)),Math.abs(V)<.9999999?(this._y=Math.atan2(-F,H),this._z=Math.atan2(-u,g)):(this._y=0,this._z=Math.atan2(D,c));break;case"ZYX":this._y=Math.asin(-he(F,-1,1)),Math.abs(F)<.9999999?(this._x=Math.atan2(V,H),this._z=Math.atan2(D,c)):(this._x=0,this._z=Math.atan2(-u,g));break;case"YZX":this._z=Math.asin(he(D,-1,1)),Math.abs(D)<.9999999?(this._x=Math.atan2(-U,g),this._y=Math.atan2(-F,c)):(this._x=0,this._y=Math.atan2(I,H));break;case"XZY":this._z=Math.asin(-he(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(V,g),this._y=Math.atan2(I,c)):(this._x=Math.atan2(-U,H),this._y=0);break;default:ar("Euler: .setFromRotationMatrix() encountered an unknown order: "+s)}return this._order=s,i===!0&&this._onChangeCallback(),this}setFromQuaternion(t,s,i){return oU.makeRotationFromQuaternion(t),this.setFromRotationMatrix(oU,s,i)}setFromVector3(t,s=this._order){return this.set(t.x,t.y,t.z,s)}reorder(t){return hU.setFromEuler(this),this.setFromQuaternion(hU,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=[],s=0){return t[s]=this._x,t[s+1]=this._y,t[s+2]=this._z,t[s+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}};o_.DEFAULT_ORDER="XYZ";var CM=class{constructor(){this.mask=1}set(t){this.mask=(1<<t|0)>>>0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return(this.mask&t.mask)!==0}isEnabled(t){return(this.mask&(1<<t|0))!==0}},m6=0,lU=new it,ES=new My,hf=new Ee,cg=new it,Ov=new it,R6=new it,S6=new My,uU=new it(1,0,0),pU=new it(0,1,0),EU=new it(0,0,1),fU={type:"added"},N6={type:"removed"},fS={type:"childadded",child:null},wP={type:"childremoved",child:null},vf=class e extends kS{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:m6++}),this.uuid=sN(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=e.DEFAULT_UP.clone();let t=new it,s=new o_,i=new My,n=new it(1,1,1);function c(){i.setFromEuler(s,!1)}function u(){s.setFromQuaternion(i,void 0,!1)}s._onChange(c),i._onChange(u),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:s},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:n},modelViewMatrix:{value:new Ee},normalMatrix:{value:new Of}}),this.matrix=new Ee,this.matrixWorld=new Ee,this.matrixAutoUpdate=e.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=e.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new CM,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,s){this.quaternion.setFromAxisAngle(t,s)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,s){return ES.setFromAxisAngle(t,s),this.quaternion.multiply(ES),this}rotateOnWorldAxis(t,s){return ES.setFromAxisAngle(t,s),this.quaternion.premultiply(ES),this}rotateX(t){return this.rotateOnAxis(uU,t)}rotateY(t){return this.rotateOnAxis(pU,t)}rotateZ(t){return this.rotateOnAxis(EU,t)}translateOnAxis(t,s){return lU.copy(t).applyQuaternion(this.quaternion),this.position.add(lU.multiplyScalar(s)),this}translateX(t){return this.translateOnAxis(uU,t)}translateY(t){return this.translateOnAxis(pU,t)}translateZ(t){return this.translateOnAxis(EU,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(hf.copy(this.matrixWorld).invert())}lookAt(t,s,i){t.isVector3?cg.copy(t):cg.set(t,s,i);let n=this.parent;this.updateWorldMatrix(!0,!1),Ov.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?hf.lookAt(Ov,cg,this.up):hf.lookAt(cg,Ov,this.up),this.quaternion.setFromRotationMatrix(hf),n&&(hf.extractRotation(n.matrixWorld),ES.setFromRotationMatrix(hf),this.quaternion.premultiply(ES.invert()))}add(t){if(arguments.length>1){for(let s=0;s<arguments.length;s++)this.add(arguments[s]);return this}return t===this?(Qd("Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(t.removeFromParent(),t.parent=this,this.children.push(t),t.dispatchEvent(fU),fS.child=t,this.dispatchEvent(fS),fS.child=null):Qd("Object3D.add: object not an instance of THREE.Object3D.",t),this)}remove(t){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}let s=this.children.indexOf(t);return s!==-1&&(t.parent=null,this.children.splice(s,1),t.dispatchEvent(N6),wP.child=t,this.dispatchEvent(wP),wP.child=null),this}removeFromParent(){let t=this.parent;return t!==null&&t.remove(this),this}clear(){return this.remove(...this.children)}attach(t){return this.updateWorldMatrix(!0,!1),hf.copy(this.matrixWorld).invert(),t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),hf.multiply(t.parent.matrixWorld)),t.applyMatrix4(hf),t.removeFromParent(),t.parent=this,this.children.push(t),t.updateWorldMatrix(!1,!0),t.dispatchEvent(fU),fS.child=t,this.dispatchEvent(fS),fS.child=null,this}getObjectById(t){return this.getObjectByProperty("id",t)}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,s){if(this[t]===s)return this;for(let i=0,n=this.children.length;i<n;i++){let u=this.children[i].getObjectByProperty(t,s);if(u!==void 0)return u}}getObjectsByProperty(t,s,i=[]){this[t]===s&&i.push(this);let n=this.children;for(let c=0,u=n.length;c<u;c++)n[c].getObjectsByProperty(t,s,i);return i}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ov,t,R6),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ov,S6,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let s=this.matrixWorld.elements;return t.set(s[8],s[9],s[10]).normalize()}raycast(){}traverse(t){t(this);let s=this.children;for(let i=0,n=s.length;i<n;i++)s[i].traverse(t)}traverseVisible(t){if(this.visible===!1)return;t(this);let s=this.children;for(let i=0,n=s.length;i<n;i++)s[i].traverseVisible(t)}traverseAncestors(t){let s=this.parent;s!==null&&(t(s),s.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);let s=this.children;for(let i=0,n=s.length;i<n;i++)s[i].updateMatrixWorld(t)}updateWorldMatrix(t,s){let i=this.parent;if(t===!0&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),s===!0){let n=this.children;for(let c=0,u=n.length;c<u;c++)n[c].updateWorldMatrix(!1,!0)}}toJSON(t){let s=t===void 0||typeof t=="string",i={};s&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});let n={};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.castShadow===!0&&(n.castShadow=!0),this.receiveShadow===!0&&(n.receiveShadow=!0),this.visible===!1&&(n.visible=!1),this.frustumCulled===!1&&(n.frustumCulled=!1),this.renderOrder!==0&&(n.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(n.userData=this.userData),n.layers=this.layers.mask,n.matrix=this.matrix.toArray(),n.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(n.matrixAutoUpdate=!1),this.isInstancedMesh&&(n.type="InstancedMesh",n.count=this.count,n.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(n.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(n.type="BatchedMesh",n.perObjectFrustumCulled=this.perObjectFrustumCulled,n.sortObjects=this.sortObjects,n.drawRanges=this._drawRanges,n.reservedRanges=this._reservedRanges,n.geometryInfo=this._geometryInfo.map(I=>({...I,boundingBox:I.boundingBox?I.boundingBox.toJSON():void 0,boundingSphere:I.boundingSphere?I.boundingSphere.toJSON():void 0})),n.instanceInfo=this._instanceInfo.map(I=>({...I})),n.availableInstanceIds=this._availableInstanceIds.slice(),n.availableGeometryIds=this._availableGeometryIds.slice(),n.nextIndexStart=this._nextIndexStart,n.nextVertexStart=this._nextVertexStart,n.geometryCount=this._geometryCount,n.maxInstanceCount=this._maxInstanceCount,n.maxVertexCount=this._maxVertexCount,n.maxIndexCount=this._maxIndexCount,n.geometryInitialized=this._geometryInitialized,n.matricesTexture=this._matricesTexture.toJSON(t),n.indirectTexture=this._indirectTexture.toJSON(t),this._colorsTexture!==null&&(n.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&&(n.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(n.boundingBox=this.boundingBox.toJSON()));function c(I,D){return I[D.uuid]===void 0&&(I[D.uuid]=D.toJSON(t)),D.uuid}if(this.isScene)this.background&&(this.background.isColor?n.background=this.background.toJSON():this.background.isTexture&&(n.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(n.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){n.geometry=c(t.geometries,this.geometry);let I=this.geometry.parameters;if(I!==void 0&&I.shapes!==void 0){let D=I.shapes;if(Array.isArray(D))for(let g=0,U=D.length;g<U;g++){let F=D[g];c(t.shapes,F)}else c(t.shapes,D)}}if(this.isSkinnedMesh&&(n.bindMode=this.bindMode,n.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(c(t.skeletons,this.skeleton),n.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){let I=[];for(let D=0,g=this.material.length;D<g;D++)I.push(c(t.materials,this.material[D]));n.material=I}else n.material=c(t.materials,this.material);if(this.children.length>0){n.children=[];for(let I=0;I<this.children.length;I++)n.children.push(this.children[I].toJSON(t).object)}if(this.animations.length>0){n.animations=[];for(let I=0;I<this.animations.length;I++){let D=this.animations[I];n.animations.push(c(t.animations,D))}}if(s){let I=u(t.geometries),D=u(t.materials),g=u(t.textures),U=u(t.images),F=u(t.shapes),V=u(t.skeletons),H=u(t.animations),z=u(t.nodes);I.length>0&&(i.geometries=I),D.length>0&&(i.materials=D),g.length>0&&(i.textures=g),U.length>0&&(i.images=U),F.length>0&&(i.shapes=F),V.length>0&&(i.skeletons=V),H.length>0&&(i.animations=H),z.length>0&&(i.nodes=z)}return i.object=n,i;function u(I){let D=[];for(let g in I){let U=I[g];delete U.metadata,D.push(U)}return D}}clone(t){return new this.constructor().copy(this,t)}copy(t,s=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),s===!0)for(let i=0;i<t.children.length;i++){let n=t.children[i];this.add(n.clone())}return this}};vf.DEFAULT_UP=new it(0,1,0);vf.DEFAULT_MATRIX_AUTO_UPDATE=!0;vf.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;var au=new it,lf=new it,BP=new it,uf=new it,IS=new it,yS=new it,IU=new it,GP=new it,FP=new it,VP=new it,HP=new a_,WP=new a_,zP=new a_,ya=class e{constructor(t=new it,s=new it,i=new it){this.a=t,this.b=s,this.c=i}static getNormal(t,s,i,n){n.subVectors(i,s),au.subVectors(t,s),n.cross(au);let c=n.lengthSq();return c>0?n.multiplyScalar(1/Math.sqrt(c)):n.set(0,0,0)}static getBarycoord(t,s,i,n,c){au.subVectors(n,s),lf.subVectors(i,s),BP.subVectors(t,s);let u=au.dot(au),I=au.dot(lf),D=au.dot(BP),g=lf.dot(lf),U=lf.dot(BP),F=u*g-I*I;if(F===0)return c.set(0,0,0),null;let V=1/F,H=(g*D-I*U)*V,z=(u*U-I*D)*V;return c.set(1-H-z,z,H)}static containsPoint(t,s,i,n){return this.getBarycoord(t,s,i,n,uf)===null?!1:uf.x>=0&&uf.y>=0&&uf.x+uf.y<=1}static getInterpolation(t,s,i,n,c,u,I,D){return this.getBarycoord(t,s,i,n,uf)===null?(D.x=0,D.y=0,"z"in D&&(D.z=0),"w"in D&&(D.w=0),null):(D.setScalar(0),D.addScaledVector(c,uf.x),D.addScaledVector(u,uf.y),D.addScaledVector(I,uf.z),D)}static getInterpolatedAttribute(t,s,i,n,c,u){return HP.setScalar(0),WP.setScalar(0),zP.setScalar(0),HP.fromBufferAttribute(t,s),WP.fromBufferAttribute(t,i),zP.fromBufferAttribute(t,n),u.setScalar(0),u.addScaledVector(HP,c.x),u.addScaledVector(WP,c.y),u.addScaledVector(zP,c.z),u}static isFrontFacing(t,s,i,n){return au.subVectors(i,s),lf.subVectors(t,s),au.cross(lf).dot(n)<0}set(t,s,i){return this.a.copy(t),this.b.copy(s),this.c.copy(i),this}setFromPointsAndIndices(t,s,i,n){return this.a.copy(t[s]),this.b.copy(t[i]),this.c.copy(t[n]),this}setFromAttributeAndIndices(t,s,i,n){return this.a.fromBufferAttribute(t,s),this.b.fromBufferAttribute(t,i),this.c.fromBufferAttribute(t,n),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 au.subVectors(this.c,this.b),lf.subVectors(this.a,this.b),au.cross(lf).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return e.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,s){return e.getBarycoord(t,this.a,this.b,this.c,s)}getInterpolation(t,s,i,n,c){return e.getInterpolation(t,this.a,this.b,this.c,s,i,n,c)}containsPoint(t){return e.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return e.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,s){let i=this.a,n=this.b,c=this.c,u,I;IS.subVectors(n,i),yS.subVectors(c,i),GP.subVectors(t,i);let D=IS.dot(GP),g=yS.dot(GP);if(D<=0&&g<=0)return s.copy(i);FP.subVectors(t,n);let U=IS.dot(FP),F=yS.dot(FP);if(U>=0&&F<=U)return s.copy(n);let V=D*F-U*g;if(V<=0&&D>=0&&U<=0)return u=D/(D-U),s.copy(i).addScaledVector(IS,u);VP.subVectors(t,c);let H=IS.dot(VP),z=yS.dot(VP);if(z>=0&&H<=z)return s.copy(c);let j=H*g-D*z;if(j<=0&&g>=0&&z<=0)return I=g/(g-z),s.copy(i).addScaledVector(yS,I);let Q=U*z-H*F;if(Q<=0&&F-U>=0&&H-z>=0)return IU.subVectors(c,n),I=(F-U)/(F-U+(H-z)),s.copy(n).addScaledVector(IU,I);let Z=1/(Q+j+V);return u=j*Z,I=V*Z,s.copy(i).addScaledVector(IS,u).addScaledVector(yS,I)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},QC={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},Iy={h:0,s:0,l:0},ag={h:0,s:0,l:0};function YP(e,t,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?e+(t-e)*6*s:s<1/2?t:s<2/3?e+(t-e)*6*(2/3-s):e}var Tl=class{constructor(t,s,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,s,i)}set(t,s,i){if(s===void 0&&i===void 0){let n=t;n&&n.isColor?this.copy(n):typeof n=="number"?this.setHex(n):typeof n=="string"&&this.setStyle(n)}else this.setRGB(t,s,i);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,s=fh){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,ol.colorSpaceToWorking(this,s),this}setRGB(t,s,i,n=ol.workingColorSpace){return this.r=t,this.g=s,this.b=i,ol.colorSpaceToWorking(this,n),this}setHSL(t,s,i,n=ol.workingColorSpace){if(t=N1(t,1),s=he(s,0,1),i=he(i,0,1),s===0)this.r=this.g=this.b=i;else{let c=i<=.5?i*(1+s):i+s-i*s,u=2*i-c;this.r=YP(u,c,t+1/3),this.g=YP(u,c,t),this.b=YP(u,c,t-1/3)}return ol.colorSpaceToWorking(this,n),this}setStyle(t,s=fh){function i(c){c!==void 0&&parseFloat(c)<1&&ar("Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^(\w+)\(([^\)]*)\)/.exec(t)){let c,u=n[1],I=n[2];switch(u){case"rgb":case"rgba":if(c=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(I))return i(c[4]),this.setRGB(Math.min(255,parseInt(c[1],10))/255,Math.min(255,parseInt(c[2],10))/255,Math.min(255,parseInt(c[3],10))/255,s);if(c=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(I))return i(c[4]),this.setRGB(Math.min(100,parseInt(c[1],10))/100,Math.min(100,parseInt(c[2],10))/100,Math.min(100,parseInt(c[3],10))/100,s);break;case"hsl":case"hsla":if(c=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(I))return i(c[4]),this.setHSL(parseFloat(c[1])/360,parseFloat(c[2])/100,parseFloat(c[3])/100,s);break;default:ar("Color: Unknown color model "+t)}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){let c=n[1],u=c.length;if(u===3)return this.setRGB(parseInt(c.charAt(0),16)/15,parseInt(c.charAt(1),16)/15,parseInt(c.charAt(2),16)/15,s);if(u===6)return this.setHex(parseInt(c,16),s);ar("Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,s);return this}setColorName(t,s=fh){let i=QC[t.toLowerCase()];return i!==void 0?this.setHex(i,s):ar("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=Af(t.r),this.g=Af(t.g),this.b=Af(t.b),this}copyLinearToSRGB(t){return this.r=VS(t.r),this.g=VS(t.g),this.b=VS(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=fh){return ol.workingToColorSpace(Bc.copy(this),t),Math.round(he(Bc.r*255,0,255))*65536+Math.round(he(Bc.g*255,0,255))*256+Math.round(he(Bc.b*255,0,255))}getHexString(t=fh){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,s=ol.workingColorSpace){ol.workingToColorSpace(Bc.copy(this),s);let i=Bc.r,n=Bc.g,c=Bc.b,u=Math.max(i,n,c),I=Math.min(i,n,c),D,g,U=(I+u)/2;if(I===u)D=0,g=0;else{let F=u-I;switch(g=U<=.5?F/(u+I):F/(2-u-I),u){case i:D=(n-c)/F+(n<c?6:0);break;case n:D=(c-i)/F+2;break;case c:D=(i-n)/F+4;break}D/=6}return t.h=D,t.s=g,t.l=U,t}getRGB(t,s=ol.workingColorSpace){return ol.workingToColorSpace(Bc.copy(this),s),t.r=Bc.r,t.g=Bc.g,t.b=Bc.b,t}getStyle(t=fh){ol.workingToColorSpace(Bc.copy(this),t);let s=Bc.r,i=Bc.g,n=Bc.b;return t!==fh?`color(${t} ${s.toFixed(3)} ${i.toFixed(3)} ${n.toFixed(3)})`:`rgb(${Math.round(s*255)},${Math.round(i*255)},${Math.round(n*255)})`}offsetHSL(t,s,i){return this.getHSL(Iy),this.setHSL(Iy.h+t,Iy.s+s,Iy.l+i)}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,s){return this.r=t.r+s.r,this.g=t.g+s.g,this.b=t.b+s.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,s){return this.r+=(t.r-this.r)*s,this.g+=(t.g-this.g)*s,this.b+=(t.b-this.b)*s,this}lerpColors(t,s,i){return this.r=t.r+(s.r-t.r)*i,this.g=t.g+(s.g-t.g)*i,this.b=t.b+(s.b-t.b)*i,this}lerpHSL(t,s){this.getHSL(Iy),t.getHSL(ag);let i=Jv(Iy.h,ag.h,s),n=Jv(Iy.s,ag.s,s),c=Jv(Iy.l,ag.l,s);return this.setHSL(i,n,c),this}setFromVector3(t){return this.r=t.x,this.g=t.y,this.b=t.z,this}applyMatrix3(t){let s=this.r,i=this.g,n=this.b,c=t.elements;return this.r=c[0]*s+c[3]*i+c[6]*n,this.g=c[1]*s+c[4]*i+c[7]*n,this.b=c[2]*s+c[5]*i+c[8]*n,this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,s=0){return this.r=t[s],this.g=t[s+1],this.b=t[s+2],this}toArray(t=[],s=0){return t[s]=this.r,t[s+1]=this.g,t[s+2]=this.b,t}fromBufferAttribute(t,s){return this.r=t.getX(s),this.g=t.getY(s),this.b=t.getZ(s),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}},Bc=new Tl;Tl.NAMES=QC;var A6=0,A1=class extends kS{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:A6++}),this.uuid=sN(),this.name="",this.type="Material",this.blending=z1,this.side=c_,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=k1,this.blendDst=K1,this.blendEquation=Y1,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Tl(0,0,0),this.blendAlpha=0,this.depthFunc=Z1,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=X1,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=aS,this.stencilZFail=aS,this.stencilZPass=aS,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.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let s in t){let i=t[s];if(i===void 0){ar(`Material: parameter '${s}' has value of undefined.`);continue}let n=this[s];if(n===void 0){ar(`Material: '${s}' is not a property of THREE.${this.type}.`);continue}n&&n.isColor?n.set(i):n&&n.isVector3&&i&&i.isVector3?n.copy(i):this[s]=i}}toJSON(t){let s=t===void 0||typeof t=="string";s&&(t={textures:{},images:{}});let i={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(i.sheenColorMap=this.sheenColorMap.toJSON(t).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(i.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(t).uuid),this.dispersion!==void 0&&(i.dispersion=this.dispersion),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(t).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(t).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(t).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(t).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(t).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapRotation!==void 0&&(i.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==z1&&(i.blending=this.blending),this.side!==c_&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==k1&&(i.blendSrc=this.blendSrc),this.blendDst!==K1&&(i.blendDst=this.blendDst),this.blendEquation!==Y1&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==Z1&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==X1&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==aS&&(i.stencilFail=this.stencilFail),this.stencilZFail!==aS&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==aS&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.allowOverride===!1&&(i.allowOverride=!1),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function n(c){let u=[];for(let I in c){let D=c[I];delete D.metadata,u.push(D)}return u}if(s){let c=n(t.textures),u=n(t.images);c.length>0&&(i.textures=c),u.length>0&&(i.images=u)}return i}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;let s=t.clippingPlanes,i=null;if(s!==null){let n=s.length;i=new Array(n);for(let c=0;c!==n;++c)i[c]=s[c].clone()}return this.clippingPlanes=i,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.allowOverride=t.allowOverride,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++}},bM=class extends A1{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Tl(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new o_,this.combine=W5,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}},An=new it,og=new vn,D6=0,Sa=class{constructor(t,s,i=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:D6++}),this.name="",this.array=t,this.itemSize=s,this.count=t!==void 0?t.length/s:0,this.normalized=i,this.usage=tU,this.updateRanges=[],this.gpuType=yL,this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,s){this.updateRanges.push({start:t,count:s})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,s,i){t*=this.itemSize,i*=s.itemSize;for(let n=0,c=this.itemSize;n<c;n++)this.array[t+n]=s.array[i+n];return this}copyArray(t){return this.array.set(t),this}applyMatrix3(t){if(this.itemSize===2)for(let s=0,i=this.count;s<i;s++)og.fromBufferAttribute(this,s),og.applyMatrix3(t),this.setXY(s,og.x,og.y);else if(this.itemSize===3)for(let s=0,i=this.count;s<i;s++)An.fromBufferAttribute(this,s),An.applyMatrix3(t),this.setXYZ(s,An.x,An.y,An.z);return this}applyMatrix4(t){for(let s=0,i=this.count;s<i;s++)An.fromBufferAttribute(this,s),An.applyMatrix4(t),this.setXYZ(s,An.x,An.y,An.z);return this}applyNormalMatrix(t){for(let s=0,i=this.count;s<i;s++)An.fromBufferAttribute(this,s),An.applyNormalMatrix(t),this.setXYZ(s,An.x,An.y,An.z);return this}transformDirection(t){for(let s=0,i=this.count;s<i;s++)An.fromBufferAttribute(this,s),An.transformDirection(t),this.setXYZ(s,An.x,An.y,An.z);return this}set(t,s=0){return this.array.set(t,s),this}getComponent(t,s){let i=this.array[t*this.itemSize+s];return this.normalized&&(i=US(i,this.array)),i}setComponent(t,s,i){return this.normalized&&(i=fa(i,this.array)),this.array[t*this.itemSize+s]=i,this}getX(t){let s=this.array[t*this.itemSize];return this.normalized&&(s=US(s,this.array)),s}setX(t,s){return this.normalized&&(s=fa(s,this.array)),this.array[t*this.itemSize]=s,this}getY(t){let s=this.array[t*this.itemSize+1];return this.normalized&&(s=US(s,this.array)),s}setY(t,s){return this.normalized&&(s=fa(s,this.array)),this.array[t*this.itemSize+1]=s,this}getZ(t){let s=this.array[t*this.itemSize+2];return this.normalized&&(s=US(s,this.array)),s}setZ(t,s){return this.normalized&&(s=fa(s,this.array)),this.array[t*this.itemSize+2]=s,this}getW(t){let s=this.array[t*this.itemSize+3];return this.normalized&&(s=US(s,this.array)),s}setW(t,s){return this.normalized&&(s=fa(s,this.array)),this.array[t*this.itemSize+3]=s,this}setXY(t,s,i){return t*=this.itemSize,this.normalized&&(s=fa(s,this.array),i=fa(i,this.array)),this.array[t+0]=s,this.array[t+1]=i,this}setXYZ(t,s,i,n){return t*=this.itemSize,this.normalized&&(s=fa(s,this.array),i=fa(i,this.array),n=fa(n,this.array)),this.array[t+0]=s,this.array[t+1]=i,this.array[t+2]=n,this}setXYZW(t,s,i,n,c){return t*=this.itemSize,this.normalized&&(s=fa(s,this.array),i=fa(i,this.array),n=fa(n,this.array),c=fa(c,this.array)),this.array[t+0]=s,this.array[t+1]=i,this.array[t+2]=n,this.array[t+3]=c,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){let t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(t.name=this.name),this.usage!==tU&&(t.usage=this.usage),t}},wM=class extends Sa{constructor(t,s,i){super(new Uint16Array(t),s,i)}},BM=class extends Sa{constructor(t,s,i){super(new Uint32Array(t),s,i)}},h_=class extends Sa{constructor(t,s,i){super(new Float32Array(t),s,i)}},O6=0,cl=new Ee,kP=new vf,TS=new it,ph=new rs,vv=new rs,_r=new it,qp=class e extends kS{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:O6++}),this.uuid=sN(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(j5(t)?BM:wM)(t,1):this.index=t,this}setIndirect(t,s=0){return this.indirect=t,this.indirectOffset=s,this}getIndirect(){return this.indirect}getAttribute(t){return this.attributes[t]}setAttribute(t,s){return this.attributes[t]=s,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return this.attributes[t]!==void 0}addGroup(t,s,i=0){this.groups.push({start:t,count:s,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(t,s){this.drawRange.start=t,this.drawRange.count=s}applyMatrix4(t){let s=this.attributes.position;s!==void 0&&(s.applyMatrix4(t),s.needsUpdate=!0);let i=this.attributes.normal;if(i!==void 0){let c=new Of().getNormalMatrix(t);i.applyNormalMatrix(c),i.needsUpdate=!0}let n=this.attributes.tangent;return n!==void 0&&(n.transformDirection(t),n.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(t){return cl.makeRotationFromQuaternion(t),this.applyMatrix4(cl),this}rotateX(t){return cl.makeRotationX(t),this.applyMatrix4(cl),this}rotateY(t){return cl.makeRotationY(t),this.applyMatrix4(cl),this}rotateZ(t){return cl.makeRotationZ(t),this.applyMatrix4(cl),this}translate(t,s,i){return cl.makeTranslation(t,s,i),this.applyMatrix4(cl),this}scale(t,s,i){return cl.makeScale(t,s,i),this.applyMatrix4(cl),this}lookAt(t){return kP.lookAt(t),kP.updateMatrix(),this.applyMatrix4(kP.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(TS).negate(),this.translate(TS.x,TS.y,TS.z),this}setFromPoints(t){let s=this.getAttribute("position");if(s===void 0){let i=[];for(let n=0,c=t.length;n<c;n++){let u=t[n];i.push(u.x,u.y,u.z||0)}this.setAttribute("position",new h_(i,3))}else{let i=Math.min(t.length,s.count);for(let n=0;n<i;n++){let c=t[n];s.setXYZ(n,c.x,c.y,c.z||0)}t.length>s.count&&ar("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),s.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new rs);let t=this.attributes.position,s=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){Qd("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new it(-1/0,-1/0,-1/0),new it(1/0,1/0,1/0));return}if(t!==void 0){if(this.boundingBox.setFromBufferAttribute(t),s)for(let i=0,n=s.length;i<n;i++){let c=s[i];ph.setFromBufferAttribute(c),this.morphTargetsRelative?(_r.addVectors(this.boundingBox.min,ph.min),this.boundingBox.expandByPoint(_r),_r.addVectors(this.boundingBox.max,ph.max),this.boundingBox.expandByPoint(_r)):(this.boundingBox.expandByPoint(ph.min),this.boundingBox.expandByPoint(ph.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&Qd('BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Ro);let t=this.attributes.position,s=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){Qd("BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),this.boundingSphere.set(new it,1/0);return}if(t){let i=this.boundingSphere.center;if(ph.setFromBufferAttribute(t),s)for(let c=0,u=s.length;c<u;c++){let I=s[c];vv.setFromBufferAttribute(I),this.morphTargetsRelative?(_r.addVectors(ph.min,vv.min),ph.expandByPoint(_r),_r.addVectors(ph.max,vv.max),ph.expandByPoint(_r)):(ph.expandByPoint(vv.min),ph.expandByPoint(vv.max))}ph.getCenter(i);let n=0;for(let c=0,u=t.count;c<u;c++)_r.fromBufferAttribute(t,c),n=Math.max(n,i.distanceToSquared(_r));if(s)for(let c=0,u=s.length;c<u;c++){let I=s[c],D=this.morphTargetsRelative;for(let g=0,U=I.count;g<U;g++)_r.fromBufferAttribute(I,g),D&&(TS.fromBufferAttribute(t,g),_r.add(TS)),n=Math.max(n,i.distanceToSquared(_r))}this.boundingSphere.radius=Math.sqrt(n),isNaN(this.boundingSphere.radius)&&Qd('BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){let t=this.index,s=this.attributes;if(t===null||s.position===void 0||s.normal===void 0||s.uv===void 0){Qd("BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}let i=s.position,n=s.normal,c=s.uv;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new Sa(new Float32Array(4*i.count),4));let u=this.getAttribute("tangent"),I=[],D=[];for(let ht=0;ht<i.count;ht++)I[ht]=new it,D[ht]=new it;let g=new it,U=new it,F=new it,V=new vn,H=new vn,z=new vn,j=new it,Q=new it;function Z(ht,ut,ot){g.fromBufferAttribute(i,ht),U.fromBufferAttribute(i,ut),F.fromBufferAttribute(i,ot),V.fromBufferAttribute(c,ht),H.fromBufferAttribute(c,ut),z.fromBufferAttribute(c,ot),U.sub(g),F.sub(g),H.sub(V),z.sub(V);let pt=1/(H.x*z.y-z.x*H.y);isFinite(pt)&&(j.copy(U).multiplyScalar(z.y).addScaledVector(F,-H.y).multiplyScalar(pt),Q.copy(F).multiplyScalar(H.x).addScaledVector(U,-z.x).multiplyScalar(pt),I[ht].add(j),I[ut].add(j),I[ot].add(j),D[ht].add(Q),D[ut].add(Q),D[ot].add(Q))}let X=this.groups;X.length===0&&(X=[{start:0,count:t.count}]);for(let ht=0,ut=X.length;ht<ut;++ht){let ot=X[ht],pt=ot.start,Et=ot.count;for(let dt=pt,Dt=pt+Et;dt<Dt;dt+=3)Z(t.getX(dt+0),t.getX(dt+1),t.getX(dt+2))}let $=new it,q=new it,tt=new it,at=new it;function nt(ht){tt.fromBufferAttribute(n,ht),at.copy(tt);let ut=I[ht];$.copy(ut),$.sub(tt.multiplyScalar(tt.dot(ut))).normalize(),q.crossVectors(at,ut);let pt=q.dot(D[ht])<0?-1:1;u.setXYZW(ht,$.x,$.y,$.z,pt)}for(let ht=0,ut=X.length;ht<ut;++ht){let ot=X[ht],pt=ot.start,Et=ot.count;for(let dt=pt,Dt=pt+Et;dt<Dt;dt+=3)nt(t.getX(dt+0)),nt(t.getX(dt+1)),nt(t.getX(dt+2))}}computeVertexNormals(){let t=this.index,s=this.getAttribute("position");if(s!==void 0){let i=this.getAttribute("normal");if(i===void 0)i=new Sa(new Float32Array(s.count*3),3),this.setAttribute("normal",i);else for(let V=0,H=i.count;V<H;V++)i.setXYZ(V,0,0,0);let n=new it,c=new it,u=new it,I=new it,D=new it,g=new it,U=new it,F=new it;if(t)for(let V=0,H=t.count;V<H;V+=3){let z=t.getX(V+0),j=t.getX(V+1),Q=t.getX(V+2);n.fromBufferAttribute(s,z),c.fromBufferAttribute(s,j),u.fromBufferAttribute(s,Q),U.subVectors(u,c),F.subVectors(n,c),U.cross(F),I.fromBufferAttribute(i,z),D.fromBufferAttribute(i,j),g.fromBufferAttribute(i,Q),I.add(U),D.add(U),g.add(U),i.setXYZ(z,I.x,I.y,I.z),i.setXYZ(j,D.x,D.y,D.z),i.setXYZ(Q,g.x,g.y,g.z)}else for(let V=0,H=s.count;V<H;V+=3)n.fromBufferAttribute(s,V+0),c.fromBufferAttribute(s,V+1),u.fromBufferAttribute(s,V+2),U.subVectors(u,c),F.subVectors(n,c),U.cross(F),i.setXYZ(V+0,U.x,U.y,U.z),i.setXYZ(V+1,U.x,U.y,U.z),i.setXYZ(V+2,U.x,U.y,U.z);this.normalizeNormals(),i.needsUpdate=!0}}normalizeNormals(){let t=this.attributes.normal;for(let s=0,i=t.count;s<i;s++)_r.fromBufferAttribute(t,s),_r.normalize(),t.setXYZ(s,_r.x,_r.y,_r.z)}toNonIndexed(){function t(I,D){let g=I.array,U=I.itemSize,F=I.normalized,V=new g.constructor(D.length*U),H=0,z=0;for(let j=0,Q=D.length;j<Q;j++){I.isInterleavedBufferAttribute?H=D[j]*I.data.stride+I.offset:H=D[j]*U;for(let Z=0;Z<U;Z++)V[z++]=g[H++]}return new Sa(V,U,F)}if(this.index===null)return ar("BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;let s=new e,i=this.index.array,n=this.attributes;for(let I in n){let D=n[I],g=t(D,i);s.setAttribute(I,g)}let c=this.morphAttributes;for(let I in c){let D=[],g=c[I];for(let U=0,F=g.length;U<F;U++){let V=g[U],H=t(V,i);D.push(H)}s.morphAttributes[I]=D}s.morphTargetsRelative=this.morphTargetsRelative;let u=this.groups;for(let I=0,D=u.length;I<D;I++){let g=u[I];s.addGroup(g.start,g.count,g.materialIndex)}return s}toJSON(){let t={metadata:{version:4.7,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),this.parameters!==void 0){let D=this.parameters;for(let g in D)D[g]!==void 0&&(t[g]=D[g]);return t}t.data={attributes:{}};let s=this.index;s!==null&&(t.data.index={type:s.array.constructor.name,array:Array.prototype.slice.call(s.array)});let i=this.attributes;for(let D in i){let g=i[D];t.data.attributes[D]=g.toJSON(t.data)}let n={},c=!1;for(let D in this.morphAttributes){let g=this.morphAttributes[D],U=[];for(let F=0,V=g.length;F<V;F++){let H=g[F];U.push(H.toJSON(t.data))}U.length>0&&(n[D]=U,c=!0)}c&&(t.data.morphAttributes=n,t.data.morphTargetsRelative=this.morphTargetsRelative);let u=this.groups;u.length>0&&(t.data.groups=JSON.parse(JSON.stringify(u)));let I=this.boundingSphere;return I!==null&&(t.data.boundingSphere=I.toJSON()),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 s={};this.name=t.name;let i=t.index;i!==null&&this.setIndex(i.clone());let n=t.attributes;for(let g in n){let U=n[g];this.setAttribute(g,U.clone(s))}let c=t.morphAttributes;for(let g in c){let U=[],F=c[g];for(let V=0,H=F.length;V<H;V++)U.push(F[V].clone(s));this.morphAttributes[g]=U}this.morphTargetsRelative=t.morphTargetsRelative;let u=t.groups;for(let g=0,U=u.length;g<U;g++){let F=u[g];this.addGroup(F.start,F.count,F.materialIndex)}let I=t.boundingBox;I!==null&&(this.boundingBox=I.clone());let D=t.boundingSphere;return D!==null&&(this.boundingSphere=D.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}},yU=new Ee,zd=new Zp,hg=new Ro,TU=new it,lg=new it,ug=new it,pg=new it,KP=new it,Eg=new it,dU=new it,fg=new it,dl=class extends vf{constructor(t=new qp,s=new bM){super(),this.isMesh=!0,this.type="Mesh",this.geometry=t,this.material=s,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(t,s){return super.copy(t,s),t.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),t.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}updateMorphTargets(){let s=this.geometry.morphAttributes,i=Object.keys(s);if(i.length>0){let n=s[i[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let c=0,u=n.length;c<u;c++){let I=n[c].name||String(c);this.morphTargetInfluences.push(0),this.morphTargetDictionary[I]=c}}}}getVertexPosition(t,s){let i=this.geometry,n=i.attributes.position,c=i.morphAttributes.position,u=i.morphTargetsRelative;s.fromBufferAttribute(n,t);let I=this.morphTargetInfluences;if(c&&I){Eg.set(0,0,0);for(let D=0,g=c.length;D<g;D++){let U=I[D],F=c[D];U!==0&&(KP.fromBufferAttribute(F,t),u?Eg.addScaledVector(KP,U):Eg.addScaledVector(KP.sub(s),U))}s.add(Eg)}return s}raycast(t,s){let i=this.geometry,n=this.material,c=this.matrixWorld;n!==void 0&&(i.boundingSphere===null&&i.computeBoundingSphere(),hg.copy(i.boundingSphere),hg.applyMatrix4(c),zd.copy(t.ray).recast(t.near),!(hg.containsPoint(zd.origin)===!1&&(zd.intersectSphere(hg,TU)===null||zd.origin.distanceToSquared(TU)>(t.far-t.near)**2))&&(yU.copy(c).invert(),zd.copy(t.ray).applyMatrix4(yU),!(i.boundingBox!==null&&zd.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(t,s,zd)))}_computeIntersections(t,s,i){let n,c=this.geometry,u=this.material,I=c.index,D=c.attributes.position,g=c.attributes.uv,U=c.attributes.uv1,F=c.attributes.normal,V=c.groups,H=c.drawRange;if(I!==null)if(Array.isArray(u))for(let z=0,j=V.length;z<j;z++){let Q=V[z],Z=u[Q.materialIndex],X=Math.max(Q.start,H.start),$=Math.min(I.count,Math.min(Q.start+Q.count,H.start+H.count));for(let q=X,tt=$;q<tt;q+=3){let at=I.getX(q),nt=I.getX(q+1),ht=I.getX(q+2);n=Ig(this,Z,t,i,g,U,F,at,nt,ht),n&&(n.faceIndex=Math.floor(q/3),n.face.materialIndex=Q.materialIndex,s.push(n))}}else{let z=Math.max(0,H.start),j=Math.min(I.count,H.start+H.count);for(let Q=z,Z=j;Q<Z;Q+=3){let X=I.getX(Q),$=I.getX(Q+1),q=I.getX(Q+2);n=Ig(this,u,t,i,g,U,F,X,$,q),n&&(n.faceIndex=Math.floor(Q/3),s.push(n))}}else if(D!==void 0)if(Array.isArray(u))for(let z=0,j=V.length;z<j;z++){let Q=V[z],Z=u[Q.materialIndex],X=Math.max(Q.start,H.start),$=Math.min(D.count,Math.min(Q.start+Q.count,H.start+H.count));for(let q=X,tt=$;q<tt;q+=3){let at=q,nt=q+1,ht=q+2;n=Ig(this,Z,t,i,g,U,F,at,nt,ht),n&&(n.faceIndex=Math.floor(q/3),n.face.materialIndex=Q.materialIndex,s.push(n))}}else{let z=Math.max(0,H.start),j=Math.min(D.count,H.start+H.count);for(let Q=z,Z=j;Q<Z;Q+=3){let X=Q,$=Q+1,q=Q+2;n=Ig(this,u,t,i,g,U,F,X,$,q),n&&(n.faceIndex=Math.floor(Q/3),s.push(n))}}}};function v6(e,t,s,i,n,c,u,I){let D;if(t.side===kC?D=i.intersectTriangle(u,c,n,!0,I):D=i.intersectTriangle(n,c,u,t.side===c_,I),D===null)return null;fg.copy(I),fg.applyMatrix4(e.matrixWorld);let g=s.ray.origin.distanceTo(fg);return g<s.near||g>s.far?null:{distance:g,point:fg.clone(),object:e}}function Ig(e,t,s,i,n,c,u,I,D,g){e.getVertexPosition(I,lg),e.getVertexPosition(D,ug),e.getVertexPosition(g,pg);let U=v6(e,t,s,i,lg,ug,pg,dU);if(U){let F=new it;ya.getBarycoord(dU,lg,ug,pg,F),n&&(U.uv=ya.getInterpolatedAttribute(n,I,D,g,F,new vn)),c&&(U.uv1=ya.getInterpolatedAttribute(c,I,D,g,F,new vn)),u&&(U.normal=ya.getInterpolatedAttribute(u,I,D,g,F,new it),U.normal.dot(i.direction)>0&&U.normal.multiplyScalar(-1));let V={a:I,b:D,c:g,normal:new it,materialIndex:0};ya.getNormal(lg,ug,pg,V.normal),U.face=V,U.barycoord=F}return U}var HS=class extends KS{constructor(t=null,s=1,i=1,n,c,u,I,D,g=Q1,U=Q1,F,V){super(null,u,I,D,g,U,n,c,F,V),this.isDataTexture=!0,this.image={data:t,width:s,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},TL=class extends Sa{constructor(t,s,i,n=1){super(t,s,i),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){let t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}},dS=new Ee,mU=new Ee,yg=[],RU=new rs,_6=new Ee,_v=new dl,gv=new Ro,GM=class extends dl{constructor(t,s,i){super(t,s),this.isInstancedMesh=!0,this.instanceMatrix=new TL(new Float32Array(i*16),16),this.instanceColor=null,this.morphTexture=null,this.count=i,this.boundingBox=null,this.boundingSphere=null;for(let n=0;n<i;n++)this.setMatrixAt(n,_6)}computeBoundingBox(){let t=this.geometry,s=this.count;this.boundingBox===null&&(this.boundingBox=new rs),t.boundingBox===null&&t.computeBoundingBox(),this.boundingBox.makeEmpty();for(let i=0;i<s;i++)this.getMatrixAt(i,dS),RU.copy(t.boundingBox).applyMatrix4(dS),this.boundingBox.union(RU)}computeBoundingSphere(){let t=this.geometry,s=this.count;this.boundingSphere===null&&(this.boundingSphere=new Ro),t.boundingSphere===null&&t.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let i=0;i<s;i++)this.getMatrixAt(i,dS),gv.copy(t.boundingSphere).applyMatrix4(dS),this.boundingSphere.union(gv)}copy(t,s){return super.copy(t,s),this.instanceMatrix.copy(t.instanceMatrix),t.morphTexture!==null&&(this.morphTexture=t.morphTexture.clone()),t.instanceColor!==null&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}getColorAt(t,s){s.fromArray(this.instanceColor.array,t*3)}getMatrixAt(t,s){s.fromArray(this.instanceMatrix.array,t*16)}getMorphAt(t,s){let i=s.morphTargetInfluences,n=this.morphTexture.source.data.data,c=i.length+1,u=t*c+1;for(let I=0;I<i.length;I++)i[I]=n[u+I]}raycast(t,s){let i=this.matrixWorld,n=this.count;if(_v.geometry=this.geometry,_v.material=this.material,_v.material!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),gv.copy(this.boundingSphere),gv.applyMatrix4(i),t.ray.intersectsSphere(gv)!==!1))for(let c=0;c<n;c++){this.getMatrixAt(c,dS),mU.multiplyMatrices(i,dS),_v.matrixWorld=mU,_v.raycast(t,yg);for(let u=0,I=yg.length;u<I;u++){let D=yg[u];D.instanceId=c,D.object=this,s.push(D)}yg.length=0}}setColorAt(t,s){this.instanceColor===null&&(this.instanceColor=new TL(new Float32Array(this.instanceMatrix.count*3).fill(1),3)),s.toArray(this.instanceColor.array,t*3)}setMatrixAt(t,s){s.toArray(this.instanceMatrix.array,t*16)}setMorphAt(t,s){let i=s.morphTargetInfluences,n=i.length+1;this.morphTexture===null&&(this.morphTexture=new HS(new Float32Array(n*this.count),n,this.count,Z5,yL));let c=this.morphTexture.source.data.data,u=0;for(let g=0;g<i.length;g++)u+=i[g];let I=this.geometry.morphTargetsRelative?1:1-u,D=n*t;c[D]=I,c.set(i,D+1)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"}),this.morphTexture!==null&&(this.morphTexture.dispose(),this.morphTexture=null)}},ZP=new it,g6=new it,L6=new Of,cc=class{constructor(t=new it(1,0,0),s=0){this.isPlane=!0,this.normal=t,this.constant=s}set(t,s){return this.normal.copy(t),this.constant=s,this}setComponents(t,s,i,n){return this.normal.set(t,s,i),this.constant=n,this}setFromNormalAndCoplanarPoint(t,s){return this.normal.copy(t),this.constant=-s.dot(this.normal),this}setFromCoplanarPoints(t,s,i){let n=ZP.subVectors(i,s).cross(g6.subVectors(t,s)).normalize();return this.setFromNormalAndCoplanarPoint(n,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,s){return s.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,s){let i=t.delta(ZP),n=this.normal.dot(i);if(n===0)return this.distanceToPoint(t.start)===0?s.copy(t.start):null;let c=-(t.start.dot(this.normal)+this.constant)/n;return c<0||c>1?null:s.copy(t.start).addScaledVector(i,c)}intersectsLine(t){let s=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return s<0&&i>0||i<0&&s>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,s){let i=s||L6.getNormalMatrix(t),n=this.coplanarPoint(ZP).applyMatrix4(t),c=this.normal.applyMatrix3(i).normalize();return this.constant=-n.dot(c),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)}},Yd=new Ro,x6=new vn(.5,.5),Tg=new it,rm=class{constructor(t=new cc,s=new cc,i=new cc,n=new cc,c=new cc,u=new cc){this.planes=[t,s,i,n,c,u]}set(t,s,i,n,c,u){let I=this.planes;return I[0].copy(t),I[1].copy(s),I[2].copy(i),I[3].copy(n),I[4].copy(c),I[5].copy(u),this}copy(t){let s=this.planes;for(let i=0;i<6;i++)s[i].copy(t.planes[i]);return this}setFromProjectionMatrix(t,s=Jd,i=!1){let n=this.planes,c=t.elements,u=c[0],I=c[1],D=c[2],g=c[3],U=c[4],F=c[5],V=c[6],H=c[7],z=c[8],j=c[9],Q=c[10],Z=c[11],X=c[12],$=c[13],q=c[14],tt=c[15];if(n[0].setComponents(g-u,H-U,Z-z,tt-X).normalize(),n[1].setComponents(g+u,H+U,Z+z,tt+X).normalize(),n[2].setComponents(g+I,H+F,Z+j,tt+$).normalize(),n[3].setComponents(g-I,H-F,Z-j,tt-$).normalize(),i)n[4].setComponents(D,V,Q,q).normalize(),n[5].setComponents(g-D,H-V,Z-Q,tt-q).normalize();else if(n[4].setComponents(g-D,H-V,Z-Q,tt-q).normalize(),s===Jd)n[5].setComponents(g+D,H+V,Z+Q,tt+q).normalize();else if(s===PM)n[5].setComponents(D,V,Q,q).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+s);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),Yd.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{let s=t.geometry;s.boundingSphere===null&&s.computeBoundingSphere(),Yd.copy(s.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Yd)}intersectsSprite(t){Yd.center.set(0,0,0);let s=x6.distanceTo(t.center);return Yd.radius=.7071067811865476+s,Yd.applyMatrix4(t.matrixWorld),this.intersectsSphere(Yd)}intersectsSphere(t){let s=this.planes,i=t.center,n=-t.radius;for(let c=0;c<6;c++)if(s[c].distanceToPoint(i)<n)return!1;return!0}intersectsBox(t){let s=this.planes;for(let i=0;i<6;i++){let n=s[i];if(Tg.x=n.normal.x>0?t.max.x:t.min.x,Tg.y=n.normal.y>0?t.max.y:t.min.y,Tg.z=n.normal.z>0?t.max.z:t.min.z,n.distanceToPoint(Tg)<0)return!1}return!0}containsPoint(t){let s=this.planes;for(let i=0;i<6;i++)if(s[i].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},Pp=new Ee,Mp=new rm,FM=class e{constructor(){this.coordinateSystem=Jd}intersectsObject(t,s){if(!s.isArrayCamera||s.cameras.length===0)return!1;for(let i=0;i<s.cameras.length;i++){let n=s.cameras[i];if(Pp.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),Mp.setFromProjectionMatrix(Pp,n.coordinateSystem,n.reversedDepth),Mp.intersectsObject(t))return!0}return!1}intersectsSprite(t,s){if(!s||!s.cameras||s.cameras.length===0)return!1;for(let i=0;i<s.cameras.length;i++){let n=s.cameras[i];if(Pp.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),Mp.setFromProjectionMatrix(Pp,n.coordinateSystem,n.reversedDepth),Mp.intersectsSprite(t))return!0}return!1}intersectsSphere(t,s){if(!s||!s.cameras||s.cameras.length===0)return!1;for(let i=0;i<s.cameras.length;i++){let n=s.cameras[i];if(Pp.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),Mp.setFromProjectionMatrix(Pp,n.coordinateSystem,n.reversedDepth),Mp.intersectsSphere(t))return!0}return!1}intersectsBox(t,s){if(!s||!s.cameras||s.cameras.length===0)return!1;for(let i=0;i<s.cameras.length;i++){let n=s.cameras[i];if(Pp.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),Mp.setFromProjectionMatrix(Pp,n.coordinateSystem,n.reversedDepth),Mp.intersectsBox(t))return!0}return!1}containsPoint(t,s){if(!s||!s.cameras||s.cameras.length===0)return!1;for(let i=0;i<s.cameras.length;i++){let n=s.cameras[i];if(Pp.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),Mp.setFromProjectionMatrix(Pp,n.coordinateSystem,n.reversedDepth),Mp.containsPoint(t))return!0}return!1}clone(){return new e}};function qP(e,t){return e-t}function P6(e,t){return e.z-t.z}function M6(e,t){return t.z-e.z}var VM=class{constructor(){this.index=0,this.pool=[],this.list=[]}push(t,s,i,n){let c=this.pool,u=this.list;this.index>=c.length&&c.push({start:-1,count:-1,z:-1,index:-1});let I=c[this.index];u.push(I),this.index++,I.start=t,I.count=s,I.z=i,I.index=n}reset(){this.list.length=0,this.index=0}},Eo=new Ee,U6=new Tl(1,1,1),SU=new rm,C6=new FM,dg=new rs,kd=new Ro,Lv=new it,NU=new it,b6=new it,jP=new VM,Gc=new dl,mg=[];function w6(e,t,s=0){let i=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){let n=e.count;for(let c=0;c<n;c++)for(let u=0;u<i;u++)t.setComponent(c+s,u,e.getComponent(c,u))}else t.array.set(e.array,s*i);t.needsUpdate=!0}function Kd(e,t){if(e.constructor!==t.constructor){let s=Math.min(e.length,t.length);for(let i=0;i<s;i++)t[i]=e[i]}else{let s=Math.min(e.length,t.length);t.set(new e.constructor(e.buffer,0,s))}}var HM=class extends dl{constructor(t,s,i=s*2,n){super(new qp,n),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._instanceInfo=[],this._geometryInfo=[],this._availableInstanceIds=[],this._availableGeometryIds=[],this._nextIndexStart=0,this._nextVertexStart=0,this._geometryCount=0,this._visibilityChanged=!0,this._geometryInitialized=!1,this._maxInstanceCount=t,this._maxVertexCount=s,this._maxIndexCount=i,this._multiDrawCounts=new Int32Array(t),this._multiDrawStarts=new Int32Array(t),this._multiDrawCount=0,this._multiDrawInstances=null,this._matricesTexture=null,this._indirectTexture=null,this._colorsTexture=null,this._initMatricesTexture(),this._initIndirectTexture()}get maxInstanceCount(){return this._maxInstanceCount}get instanceCount(){return this._instanceInfo.length-this._availableInstanceIds.length}get unusedVertexCount(){return this._maxVertexCount-this._nextVertexStart}get unusedIndexCount(){return this._maxIndexCount-this._nextIndexStart}_initMatricesTexture(){let t=Math.sqrt(this._maxInstanceCount*4);t=Math.ceil(t/4)*4,t=Math.max(t,4);let s=new Float32Array(t*t*4),i=new HS(s,t,t,xM,yL);this._matricesTexture=i}_initIndirectTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);let s=new Uint32Array(t*t),i=new HS(s,t,t,q5,K5);this._indirectTexture=i}_initColorsTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);let s=new Float32Array(t*t*4).fill(1),i=new HS(s,t,t,xM,yL);i.colorSpace=ol.workingColorSpace,this._colorsTexture=i}_initializeGeometry(t){let s=this.geometry,i=this._maxVertexCount,n=this._maxIndexCount;if(this._geometryInitialized===!1){for(let c in t.attributes){let u=t.getAttribute(c),{array:I,itemSize:D,normalized:g}=u,U=new I.constructor(i*D),F=new Sa(U,D,g);s.setAttribute(c,F)}if(t.getIndex()!==null){let c=i>65535?new Uint32Array(n):new Uint16Array(n);s.setIndex(new Sa(c,1))}this._geometryInitialized=!0}}_validateGeometry(t){let s=this.geometry;if(!!t.getIndex()!=!!s.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(let i in s.attributes){if(!t.hasAttribute(i))throw new Error(`THREE.BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);let n=t.getAttribute(i),c=s.getAttribute(i);if(n.itemSize!==c.itemSize||n.normalized!==c.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(t){let s=this._instanceInfo;if(t<0||t>=s.length||s[t].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${t}. Instance is either out of range or has been deleted.`)}validateGeometryId(t){let s=this._geometryInfo;if(t<0||t>=s.length||s[t].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${t}. Geometry is either out of range or has been deleted.`)}setCustomSort(t){return this.customSort=t,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new rs);let t=this.boundingBox,s=this._instanceInfo;t.makeEmpty();for(let i=0,n=s.length;i<n;i++){if(s[i].active===!1)continue;let c=s[i].geometryIndex;this.getMatrixAt(i,Eo),this.getBoundingBoxAt(c,dg).applyMatrix4(Eo),t.union(dg)}}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Ro);let t=this.boundingSphere,s=this._instanceInfo;t.makeEmpty();for(let i=0,n=s.length;i<n;i++){if(s[i].active===!1)continue;let c=s[i].geometryIndex;this.getMatrixAt(i,Eo),this.getBoundingSphereAt(c,kd).applyMatrix4(Eo),t.union(kd)}}addInstance(t){if(this._instanceInfo.length>=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");let i={visible:!0,active:!0,geometryIndex:t},n=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(qP),n=this._availableInstanceIds.shift(),this._instanceInfo[n]=i):(n=this._instanceInfo.length,this._instanceInfo.push(i));let c=this._matricesTexture;Eo.identity().toArray(c.image.data,n*16),c.needsUpdate=!0;let u=this._colorsTexture;return u&&(U6.toArray(u.image.data,n*4),u.needsUpdate=!0),this._visibilityChanged=!0,n}addGeometry(t,s=-1,i=-1){this._initializeGeometry(t),this._validateGeometry(t);let n={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},c=this._geometryInfo;n.vertexStart=this._nextVertexStart,n.reservedVertexCount=s===-1?t.getAttribute("position").count:s;let u=t.getIndex();if(u!==null&&(n.indexStart=this._nextIndexStart,n.reservedIndexCount=i===-1?u.count:i),n.indexStart!==-1&&n.indexStart+n.reservedIndexCount>this._maxIndexCount||n.vertexStart+n.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let D;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(qP),D=this._availableGeometryIds.shift(),c[D]=n):(D=this._geometryCount,this._geometryCount++,c.push(n)),this.setGeometryAt(D,t),this._nextIndexStart=n.indexStart+n.reservedIndexCount,this._nextVertexStart=n.vertexStart+n.reservedVertexCount,D}setGeometryAt(t,s){if(t>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(s);let i=this.geometry,n=i.getIndex()!==null,c=i.getIndex(),u=s.getIndex(),I=this._geometryInfo[t];if(n&&u.count>I.reservedIndexCount||s.attributes.position.count>I.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");let D=I.vertexStart,g=I.reservedVertexCount;I.vertexCount=s.getAttribute("position").count;for(let U in i.attributes){let F=s.getAttribute(U),V=i.getAttribute(U);w6(F,V,D);let H=F.itemSize;for(let z=F.count,j=g;z<j;z++){let Q=D+z;for(let Z=0;Z<H;Z++)V.setComponent(Q,Z,0)}V.needsUpdate=!0,V.addUpdateRange(D*H,g*H)}if(n){let U=I.indexStart,F=I.reservedIndexCount;I.indexCount=s.getIndex().count;for(let V=0;V<u.count;V++)c.setX(U+V,D+u.getX(V));for(let V=u.count,H=F;V<H;V++)c.setX(U+V,D);c.needsUpdate=!0,c.addUpdateRange(U,I.reservedIndexCount)}return I.start=n?I.indexStart:I.vertexStart,I.count=n?I.indexCount:I.vertexCount,I.boundingBox=null,s.boundingBox!==null&&(I.boundingBox=s.boundingBox.clone()),I.boundingSphere=null,s.boundingSphere!==null&&(I.boundingSphere=s.boundingSphere.clone()),this._visibilityChanged=!0,t}deleteGeometry(t){let s=this._geometryInfo;if(t>=s.length||s[t].active===!1)return this;let i=this._instanceInfo;for(let n=0,c=i.length;n<c;n++)i[n].active&&i[n].geometryIndex===t&&this.deleteInstance(n);return s[t].active=!1,this._availableGeometryIds.push(t),this._visibilityChanged=!0,this}deleteInstance(t){return this.validateInstanceId(t),this._instanceInfo[t].active=!1,this._availableInstanceIds.push(t),this._visibilityChanged=!0,this}optimize(){let t=0,s=0,i=this._geometryInfo,n=i.map((u,I)=>I).sort((u,I)=>i[u].vertexStart-i[I].vertexStart),c=this.geometry;for(let u=0,I=i.length;u<I;u++){let D=n[u],g=i[D];if(g.active!==!1){if(c.index!==null){if(g.indexStart!==s){let{indexStart:U,vertexStart:F,reservedIndexCount:V}=g,H=c.index,z=H.array,j=t-F;for(let Q=U;Q<U+V;Q++)z[Q]=z[Q]+j;H.array.copyWithin(s,U,U+V),H.addUpdateRange(s,V),H.needsUpdate=!0,g.indexStart=s}s+=g.reservedIndexCount}if(g.vertexStart!==t){let{vertexStart:U,reservedVertexCount:F}=g,V=c.attributes;for(let H in V){let z=V[H],{array:j,itemSize:Q}=z;j.copyWithin(t*Q,U*Q,(U+F)*Q),z.addUpdateRange(t*Q,F*Q),z.needsUpdate=!0}g.vertexStart=t}t+=g.reservedVertexCount,g.start=c.index?g.indexStart:g.vertexStart,this._nextIndexStart=c.index?g.indexStart+g.reservedIndexCount:0,this._nextVertexStart=g.vertexStart+g.reservedVertexCount}}return this._visibilityChanged=!0,this}getBoundingBoxAt(t,s){if(t>=this._geometryCount)return null;let i=this.geometry,n=this._geometryInfo[t];if(n.boundingBox===null){let c=new rs,u=i.index,I=i.attributes.position;for(let D=n.start,g=n.start+n.count;D<g;D++){let U=D;u&&(U=u.getX(U)),c.expandByPoint(Lv.fromBufferAttribute(I,U))}n.boundingBox=c}return s.copy(n.boundingBox),s}getBoundingSphereAt(t,s){if(t>=this._geometryCount)return null;let i=this.geometry,n=this._geometryInfo[t];if(n.boundingSphere===null){let c=new Ro;this.getBoundingBoxAt(t,dg),dg.getCenter(c.center);let u=i.index,I=i.attributes.position,D=0;for(let g=n.start,U=n.start+n.count;g<U;g++){let F=g;u&&(F=u.getX(F)),Lv.fromBufferAttribute(I,F),D=Math.max(D,c.center.distanceToSquared(Lv))}c.radius=Math.sqrt(D),n.boundingSphere=c}return s.copy(n.boundingSphere),s}setMatrixAt(t,s){this.validateInstanceId(t);let i=this._matricesTexture,n=this._matricesTexture.image.data;return s.toArray(n,t*16),i.needsUpdate=!0,this}getMatrixAt(t,s){return this.validateInstanceId(t),s.fromArray(this._matricesTexture.image.data,t*16)}setColorAt(t,s){return this.validateInstanceId(t),this._colorsTexture===null&&this._initColorsTexture(),s.toArray(this._colorsTexture.image.data,t*4),this._colorsTexture.needsUpdate=!0,this}getColorAt(t,s){return this.validateInstanceId(t),s.fromArray(this._colorsTexture.image.data,t*4)}setVisibleAt(t,s){return this.validateInstanceId(t),this._instanceInfo[t].visible===s?this:(this._instanceInfo[t].visible=s,this._visibilityChanged=!0,this)}getVisibleAt(t){return this.validateInstanceId(t),this._instanceInfo[t].visible}setGeometryIdAt(t,s){return this.validateInstanceId(t),this.validateGeometryId(s),this._instanceInfo[t].geometryIndex=s,this}getGeometryIdAt(t){return this.validateInstanceId(t),this._instanceInfo[t].geometryIndex}getGeometryRangeAt(t,s={}){this.validateGeometryId(t);let i=this._geometryInfo[t];return s.vertexStart=i.vertexStart,s.vertexCount=i.vertexCount,s.reservedVertexCount=i.reservedVertexCount,s.indexStart=i.indexStart,s.indexCount=i.indexCount,s.reservedIndexCount=i.reservedIndexCount,s.start=i.start,s.count=i.count,s}setInstanceCount(t){let s=this._availableInstanceIds,i=this._instanceInfo;for(s.sort(qP);s[s.length-1]===i.length-1;)i.pop(),s.pop();if(t<i.length)throw new Error(`BatchedMesh: Instance ids outside the range ${t} are being used. Cannot shrink instance count.`);let n=new Int32Array(t),c=new Int32Array(t);Kd(this._multiDrawCounts,n),Kd(this._multiDrawStarts,c),this._multiDrawCounts=n,this._multiDrawStarts=c,this._maxInstanceCount=t;let u=this._indirectTexture,I=this._matricesTexture,D=this._colorsTexture;u.dispose(),this._initIndirectTexture(),Kd(u.image.data,this._indirectTexture.image.data),I.dispose(),this._initMatricesTexture(),Kd(I.image.data,this._matricesTexture.image.data),D&&(D.dispose(),this._initColorsTexture(),Kd(D.image.data,this._colorsTexture.image.data))}setGeometrySize(t,s){let i=[...this._geometryInfo].filter(I=>I.active);if(Math.max(...i.map(I=>I.vertexStart+I.reservedVertexCount))>t)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${s}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...i.map(D=>D.indexStart+D.reservedIndexCount))>s)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${s}. Cannot shrink further.`);let c=this.geometry;c.dispose(),this._maxVertexCount=t,this._maxIndexCount=s,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new qp,this._initializeGeometry(c));let u=this.geometry;c.index&&Kd(c.index.array,u.index.array);for(let I in c.attributes)Kd(c.attributes[I].array,u.attributes[I].array)}raycast(t,s){let i=this._instanceInfo,n=this._geometryInfo,c=this.matrixWorld,u=this.geometry;Gc.material=this.material,Gc.geometry.index=u.index,Gc.geometry.attributes=u.attributes,Gc.geometry.boundingBox===null&&(Gc.geometry.boundingBox=new rs),Gc.geometry.boundingSphere===null&&(Gc.geometry.boundingSphere=new Ro);for(let I=0,D=i.length;I<D;I++){if(!i[I].visible||!i[I].active)continue;let g=i[I].geometryIndex,U=n[g];Gc.geometry.setDrawRange(U.start,U.count),this.getMatrixAt(I,Gc.matrixWorld).premultiply(c),this.getBoundingBoxAt(g,Gc.geometry.boundingBox),this.getBoundingSphereAt(g,Gc.geometry.boundingSphere),Gc.raycast(t,mg);for(let F=0,V=mg.length;F<V;F++){let H=mg[F];H.object=this,H.batchId=I,s.push(H)}mg.length=0}Gc.material=null,Gc.geometry.index=null,Gc.geometry.attributes={},Gc.geometry.setDrawRange(0,1/0)}copy(t){return super.copy(t),this.geometry=t.geometry.clone(),this.perObjectFrustumCulled=t.perObjectFrustumCulled,this.sortObjects=t.sortObjects,this.boundingBox=t.boundingBox!==null?t.boundingBox.clone():null,this.boundingSphere=t.boundingSphere!==null?t.boundingSphere.clone():null,this._geometryInfo=t._geometryInfo.map(s=>({...s,boundingBox:s.boundingBox!==null?s.boundingBox.clone():null,boundingSphere:s.boundingSphere!==null?s.boundingSphere.clone():null})),this._instanceInfo=t._instanceInfo.map(s=>({...s})),this._availableInstanceIds=t._availableInstanceIds.slice(),this._availableGeometryIds=t._availableGeometryIds.slice(),this._nextIndexStart=t._nextIndexStart,this._nextVertexStart=t._nextVertexStart,this._geometryCount=t._geometryCount,this._maxInstanceCount=t._maxInstanceCount,this._maxVertexCount=t._maxVertexCount,this._maxIndexCount=t._maxIndexCount,this._geometryInitialized=t._geometryInitialized,this._multiDrawCounts=t._multiDrawCounts.slice(),this._multiDrawStarts=t._multiDrawStarts.slice(),this._indirectTexture=t._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=t._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=t._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(t,s,i,n,c){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;let u=n.getIndex(),I=u===null?1:u.array.BYTES_PER_ELEMENT,D=this._instanceInfo,g=this._multiDrawStarts,U=this._multiDrawCounts,F=this._geometryInfo,V=this.perObjectFrustumCulled,H=this._indirectTexture,z=H.image.data,j=i.isArrayCamera?C6:SU;V&&!i.isArrayCamera&&(Eo.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),SU.setFromProjectionMatrix(Eo,i.coordinateSystem,i.reversedDepth));let Q=0;if(this.sortObjects){Eo.copy(this.matrixWorld).invert(),Lv.setFromMatrixPosition(i.matrixWorld).applyMatrix4(Eo),NU.set(0,0,-1).transformDirection(i.matrixWorld).transformDirection(Eo);for(let $=0,q=D.length;$<q;$++)if(D[$].visible&&D[$].active){let tt=D[$].geometryIndex;this.getMatrixAt($,Eo),this.getBoundingSphereAt(tt,kd).applyMatrix4(Eo);let at=!1;if(V&&(at=!j.intersectsSphere(kd,i)),!at){let nt=F[tt],ht=b6.subVectors(kd.center,Lv).dot(NU);jP.push(nt.start,nt.count,ht,$)}}let Z=jP.list,X=this.customSort;X===null?Z.sort(c.transparent?M6:P6):X.call(this,Z,i);for(let $=0,q=Z.length;$<q;$++){let tt=Z[$];g[Q]=tt.start*I,U[Q]=tt.count,z[Q]=tt.index,Q++}jP.reset()}else for(let Z=0,X=D.length;Z<X;Z++)if(D[Z].visible&&D[Z].active){let $=D[Z].geometryIndex,q=!1;if(V&&(this.getMatrixAt(Z,Eo),this.getBoundingSphereAt($,kd).applyMatrix4(Eo),q=!j.intersectsSphere(kd,i)),!q){let tt=F[$];g[Q]=tt.start*I,U[Q]=tt.count,z[Q]=Z,Q++}}H.needsUpdate=!0,this._multiDrawCount=Q,this._visibilityChanged=!1}onBeforeShadow(t,s,i,n,c,u){this.onBeforeRender(t,null,n,c,u)}},WM=class extends A1{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Tl(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}},dL=new it,mL=new it,AU=new Ee,xv=new Zp,Rg=new Ro,QP=new it,DU=new it,ZS=class extends vf{constructor(t=new qp,s=new WM){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=s,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(t,s){return super.copy(t,s),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){let t=this.geometry;if(t.index===null){let s=t.attributes.position,i=[0];for(let n=1,c=s.count;n<c;n++)dL.fromBufferAttribute(s,n-1),mL.fromBufferAttribute(s,n),i[n]=i[n-1],i[n]+=dL.distanceTo(mL);t.setAttribute("lineDistance",new h_(i,1))}else ar("Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(t,s){let i=this.geometry,n=this.matrixWorld,c=t.params.Line.threshold,u=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),Rg.copy(i.boundingSphere),Rg.applyMatrix4(n),Rg.radius+=c,t.ray.intersectsSphere(Rg)===!1)return;AU.copy(n).invert(),xv.copy(t.ray).applyMatrix4(AU);let I=c/((this.scale.x+this.scale.y+this.scale.z)/3),D=I*I,g=this.isLineSegments?2:1,U=i.index,V=i.attributes.position;if(U!==null){let H=Math.max(0,u.start),z=Math.min(U.count,u.start+u.count);for(let j=H,Q=z-1;j<Q;j+=g){let Z=U.getX(j),X=U.getX(j+1),$=Sg(this,t,xv,D,Z,X,j);$&&s.push($)}if(this.isLineLoop){let j=U.getX(z-1),Q=U.getX(H),Z=Sg(this,t,xv,D,j,Q,z-1);Z&&s.push(Z)}}else{let H=Math.max(0,u.start),z=Math.min(V.count,u.start+u.count);for(let j=H,Q=z-1;j<Q;j+=g){let Z=Sg(this,t,xv,D,j,j+1,j);Z&&s.push(Z)}if(this.isLineLoop){let j=Sg(this,t,xv,D,z-1,H,z-1);j&&s.push(j)}}}updateMorphTargets(){let s=this.geometry.morphAttributes,i=Object.keys(s);if(i.length>0){let n=s[i[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let c=0,u=n.length;c<u;c++){let I=n[c].name||String(c);this.morphTargetInfluences.push(0),this.morphTargetDictionary[I]=c}}}}};function Sg(e,t,s,i,n,c,u){let I=e.geometry.attributes.position;if(dL.fromBufferAttribute(I,n),mL.fromBufferAttribute(I,c),s.distanceSqToSegment(dL,mL,QP,DU)>i)return;QP.applyMatrix4(e.matrixWorld);let g=t.ray.origin.distanceTo(QP);if(!(g<t.near||g>t.far))return{distance:g,point:DU.clone().applyMatrix4(e.matrixWorld),index:u,face:null,faceIndex:null,barycoord:null,object:e}}var OU=new it,vU=new it,RL=class extends ZS{constructor(t,s){super(t,s),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let t=this.geometry;if(t.index===null){let s=t.attributes.position,i=[];for(let n=0,c=s.count;n<c;n+=2)OU.fromBufferAttribute(s,n),vU.fromBufferAttribute(s,n+1),i[n]=n===0?0:i[n-1],i[n+1]=i[n]+OU.distanceTo(vU);t.setAttribute("lineDistance",new h_(i,1))}else ar("LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}},SL=class extends ZS{constructor(t,s){super(t,s),this.isLineLoop=!0,this.type="LineLoop"}},zM=class extends A1{constructor(t){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Tl(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}},_U=new Ee,YM=new Zp,Ng=new Ro,Ag=new it,NL=class extends vf{constructor(t=new qp,s=new zM){super(),this.isPoints=!0,this.type="Points",this.geometry=t,this.material=s,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(t,s){return super.copy(t,s),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}raycast(t,s){let i=this.geometry,n=this.matrixWorld,c=t.params.Points.threshold,u=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ng.copy(i.boundingSphere),Ng.applyMatrix4(n),Ng.radius+=c,t.ray.intersectsSphere(Ng)===!1)return;_U.copy(n).invert(),YM.copy(t.ray).applyMatrix4(_U);let I=c/((this.scale.x+this.scale.y+this.scale.z)/3),D=I*I,g=i.index,F=i.attributes.position;if(g!==null){let V=Math.max(0,u.start),H=Math.min(g.count,u.start+u.count);for(let z=V,j=H;z<j;z++){let Q=g.getX(z);Ag.fromBufferAttribute(F,Q),gU(Ag,Q,D,n,t,s,this)}}else{let V=Math.max(0,u.start),H=Math.min(F.count,u.start+u.count);for(let z=V,j=H;z<j;z++)Ag.fromBufferAttribute(F,z),gU(Ag,z,D,n,t,s,this)}}updateMorphTargets(){let s=this.geometry.morphAttributes,i=Object.keys(s);if(i.length>0){let n=s[i[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let c=0,u=n.length;c<u;c++){let I=n[c].name||String(c);this.morphTargetInfluences.push(0),this.morphTargetDictionary[I]=c}}}}};function gU(e,t,s,i,n,c,u){let I=YM.distanceSqToPoint(e);if(I<s){let D=new it;YM.closestPointToPoint(e,D),D.applyMatrix4(i);let g=n.ray.origin.distanceTo(D);if(g<n.near||g>n.far)return;c.push({distance:g,distanceToRay:Math.sqrt(I),point:D,index:t,face:null,faceIndex:null,barycoord:null,object:u})}}var LU=new it,Dg=new it,mS=new it,RS=new it,$P=new it,B6=new it,G6=new it,So=class{constructor(t=new it,s=new it){this.start=t,this.end=s}set(t,s){return this.start.copy(t),this.end.copy(s),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,s){return this.delta(s).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,s){LU.subVectors(t,this.start),Dg.subVectors(this.end,this.start);let i=Dg.dot(Dg),c=Dg.dot(LU)/i;return s&&(c=he(c,0,1)),c}closestPointToPoint(t,s,i){let n=this.closestPointToPointParameter(t,s);return this.delta(i).multiplyScalar(n).add(this.start)}distanceSqToLine3(t,s=B6,i=G6){let n=10000000000000001e-32,c,u,I=this.start,D=t.start,g=this.end,U=t.end;mS.subVectors(g,I),RS.subVectors(U,D),$P.subVectors(I,D);let F=mS.dot(mS),V=RS.dot(RS),H=RS.dot($P);if(F<=n&&V<=n)return s.copy(I),i.copy(D),s.sub(i),s.dot(s);if(F<=n)c=0,u=H/V,u=he(u,0,1);else{let z=mS.dot($P);if(V<=n)u=0,c=he(-z/F,0,1);else{let j=mS.dot(RS),Q=F*V-j*j;Q!==0?c=he((j*H-z*V)/Q,0,1):c=0,u=(j*c+H)/V,u<0?(u=0,c=he(-z/F,0,1)):u>1&&(u=1,c=he((j-z)/F,0,1))}}return s.copy(I).add(mS.multiplyScalar(c)),i.copy(D).add(RS.multiplyScalar(u)),s.sub(i),s.dot(s)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return new this.constructor().copy(this)}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:BL}}));typeof window<"u"&&(window.__THREE__?ar("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=BL);var qS=65536,lu=(e=>(e[e.LINE=0]="LINE",e[e.SHELL=1]="SHELL",e))(lu||{}),vy=(e=>(e[e.UPDATE=0]="UPDATE",e[e.CREATE=1]="CREATE",e[e.DELETE=2]="DELETE",e[e.FINISH=3]="FINISH",e))(vy||{}),de=(e=>(e[e.GEOMETRY=0]="GEOMETRY",e[e.WIRES=1]="WIRES",e[e.INVISIBLE=2]="INVISIBLE",e))(de||{}),ml=(e=>(e[e.CREATE_MODEL=0]="CREATE_MODEL",e[e.DELETE_MODEL=1]="DELETE_MODEL",e[e.EXECUTE=2]="EXECUTE",e[e.RAYCAST=3]="RAYCAST",e[e.FETCH_BOXES=4]="FETCH_BOXES",e[e.REFRESH_VIEW=5]="REFRESH_VIEW",e[e.RECOMPUTE_MESHES=6]="RECOMPUTE_MESHES",e[e.CREATE_MATERIAL=7]="CREATE_MATERIAL",e[e.THROW_ERROR=8]="THROW_ERROR",e[e.LOAD_PROGRESS=9]="LOAD_PROGRESS",e[e.ABORT_MODEL=10]="ABORT_MODEL",e))(ml||{}),kM=class extends Error{constructor(t){super(`Fragments: Load of model "${t}" was aborted.`),this.name="LoadAbortedError"}},KM=(e=>(e[e.VISIBLE=0]="VISIBLE",e))(KM||{}),dy=(e=>(e[e.POINT=0]="POINT",e[e.LINE=1]="LINE",e[e.FACE=2]="FACE",e))(dy||{}),xU="ThatOpenAlignment",PU="ThatOpenGrid",eL=(e=>(e[e.DEFAULT=0]="DEFAULT",e[e.ALL_VISIBLE=1]="ALL_VISIBLE",e[e.ALL_GEOMETRY=2]="ALL_GEOMETRY",e))(eL||{}),Ta=class e{static newThread(t,s){return s?new Worker(t):new Worker(t,{type:"module"})}static newUpdater(t,s){return setInterval(t,s)}static getMeshComputeRequest(t,s){return{class:ml.RECOMPUTE_MESHES,modelId:t,list:s}}static planeSet(t){let s=[];for(let i of t){let n=this.array(i.normal),c=i.constant,u=new cc(n,c);s.push(u)}return s}static data(t){var s,i;if(t?.elements!==void 0)return e.transform(t);if(t?.origin!==void 0&&t?.direction!==void 0)return e.beam(t);if(t?.planes!==void 0)return e.frustum(t);let I=t?.normal!==void 0,D=t?.constant!==void 0;if(I&&D)return e.plane(t);let U=((s=t[0])==null?void 0:s.normal)!==void 0,F=((i=t[0])==null?void 0:i.constant)!==void 0;if(U&&F)return e.planeSet(t);let H=t?.x!==void 0,z=t?.y!==void 0,j=t?.z!==void 0;return H&&z&&j?e.array(t):t}static getExecuteRequest(t,s,i){let n=Array.from(i);return{class:ml.EXECUTE,modelId:t,function:s,parameters:n}}static plane(t){let s=this.array(t.normal),i=t.constant;return new cc(s,i)}static getRequestContent(t){let s=[];for(let i of t.list)e.setupCreateRequest(i,s),e.setupUpdateRequest(i,s);return s}static array(t){let s=new it;return s.set(t.x,t.y,t.z),s}static cleanRequests(t){let s=[],i=e;for(let n of t)i.isFinishRequest(n)||s.push(n);return s}static frustum(t){let s=this.planeSet(t.planes),[i,n,c,u,I,D]=s;return new rm(i,n,c,u,I,D)}static beam(t){let s=this.array(t.origin),i=this.array(t.direction);return new Zp(s,i)}static transform(t){let s=new Ee;return s.copy(t),s}static deleteUpdater(t){clearInterval(t)}static areCoresAvailable(t){let s=e.getCpuCapacity(),i=Math.max(s,2);return t<i}static isFinishRequest(t){return t.tileRequestClass===vy.FINISH}static setupUpdateRequest(t,s){t.tileRequestClass===vy.UPDATE&&this.addAllTileData(t,s)}static getCpuCapacity(){var t;return(t=globalThis.navigator)!=null&&t.hardwareConcurrency?navigator.hardwareConcurrency-3:0}static addAllTileData(t,s){this.addRequestTileData(t,s,"visibilityData");let i=["highlightIds"];this.addRequestTileData(t,s,"highlightData",i)}static addRequestContent(t,s,i){if(!s[t])return;let n=s[t].buffer;i.push(n)}static addRequestTileData(t,s,i,n=[]){let c=t.tileData[i];if(c){s.push(c.position.buffer),s.push(c.size.buffer);for(let u of n)s.push(t.tileData[u].buffer)}}static setupCreateRequest(t,s){if(t.tileRequestClass!==vy.CREATE)return;let i=this.getCreateRequestIds();for(let n of i)this.addRequestContent(n,t,s);this.addAllTileData(t,s)}static getCreateRequestIds(){return["positions","indices","normals","itemIds"]}},ZM=class{constructor(t){k(this,"_handlers",new LM),k(this,"_handleInput"),k(this,"_port"),k(this,"onInput",s=>{if(s.data.toMainThread){this._handlers.run(s.data);return}this.manageInput(s.data)}),this._handleInput=t}fetchMeshCompute(t,s){let i=Ta,n=i.getMeshComputeRequest(t,s),c=i.getRequestContent(n);this.fetch(n,c)}fetch(t,s){return this._handlers.setupInput(t),new Promise((i,n)=>{this._handlers.set(t.requestId,n,i),this.executeConnection(t,s)})}init(t){this._port=t,this.initConnection(t)}initConnection(t){t.onmessage=this.onInput}async fetchConnection(t){if(!this._port)throw new Error("Fragments: Connection not initialized");return this._port}async executeConnection(t,s){(await this.fetchConnection(t)).postMessage(t,s)}async manageOutput(t){let s=await this.fetchConnection(t);t.toMainThread=!0,s.postMessage(t)}async manageConnection(t){try{await this._handleInput(t)}catch(s){t.errorInfo=s.toString(),s?.name!=="LoadAbortedError"&&console.error(s)}}async manageInput(t){await this.manageConnection(t),await this.manageOutput(t)}};var F6=4,MU=0,UU=1,V6=2;function iN(e){let t=e.length;for(;--t>=0;)e[t]=0}var H6=0,$C=1,W6=2,z6=3,Y6=258,D1=29,g_=256,l_=g_+1+D1,WS=30,O1=19,JC=2*l_+1,Xd=15,JP=16,k6=7,v1=256,XC=16,tb=17,eb=18,qM=new Uint8Array([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]),sL=new Uint8Array([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]),K6=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),sb=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Z6=512,yf=new Array((l_+2)*2);iN(yf);var Xv=new Array(WS*2);iN(Xv);var u_=new Array(Z6);iN(u_);var p_=new Array(Y6-z6+1);iN(p_);var _1=new Array(D1);iN(_1);var AL=new Array(WS);iN(AL);function XP(e,t,s,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=s,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}var ib,nb,rb;function tM(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var cb=e=>e<256?u_[e]:u_[256+(e>>>7)],E_=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},To=(e,t,s)=>{e.bi_valid>JP-s?(e.bi_buf|=t<<e.bi_valid&65535,E_(e,e.bi_buf),e.bi_buf=t>>JP-e.bi_valid,e.bi_valid+=s-JP):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=s)},Hp=(e,t,s)=>{To(e,s[t*2],s[t*2+1])},ab=(e,t)=>{let s=0;do s|=e&1,e>>>=1,s<<=1;while(--t>0);return s>>>1},q6=e=>{e.bi_valid===16?(E_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},j6=(e,t)=>{let s=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,c=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,I=t.stat_desc.extra_base,D=t.stat_desc.max_length,g,U,F,V,H,z,j=0;for(V=0;V<=Xd;V++)e.bl_count[V]=0;for(s[e.heap[e.heap_max]*2+1]=0,g=e.heap_max+1;g<JC;g++)U=e.heap[g],V=s[s[U*2+1]*2+1]+1,V>D&&(V=D,j++),s[U*2+1]=V,!(U>i)&&(e.bl_count[V]++,H=0,U>=I&&(H=u[U-I]),z=s[U*2],e.opt_len+=z*(V+H),c&&(e.static_len+=z*(n[U*2+1]+H)));if(j!==0){do{for(V=D-1;e.bl_count[V]===0;)V--;e.bl_count[V]--,e.bl_count[V+1]+=2,e.bl_count[D]--,j-=2}while(j>0);for(V=D;V!==0;V--)for(U=e.bl_count[V];U!==0;)F=e.heap[--g],!(F>i)&&(s[F*2+1]!==V&&(e.opt_len+=(V-s[F*2+1])*s[F*2],s[F*2+1]=V),U--)}},ob=(e,t,s)=>{let i=new Array(Xd+1),n=0,c,u;for(c=1;c<=Xd;c++)n=n+s[c-1]<<1,i[c]=n;for(u=0;u<=t;u++){let I=e[u*2+1];I!==0&&(e[u*2]=ab(i[I]++,I))}},Q6=()=>{let e,t,s,i,n,c=new Array(Xd+1);for(s=0,i=0;i<D1-1;i++)for(_1[i]=s,e=0;e<1<<qM[i];e++)p_[s++]=i;for(p_[s-1]=i,n=0,i=0;i<16;i++)for(AL[i]=n,e=0;e<1<<sL[i];e++)u_[n++]=i;for(n>>=7;i<WS;i++)for(AL[i]=n<<7,e=0;e<1<<sL[i]-7;e++)u_[256+n++]=i;for(t=0;t<=Xd;t++)c[t]=0;for(e=0;e<=143;)yf[e*2+1]=8,e++,c[8]++;for(;e<=255;)yf[e*2+1]=9,e++,c[9]++;for(;e<=279;)yf[e*2+1]=7,e++,c[7]++;for(;e<=287;)yf[e*2+1]=8,e++,c[8]++;for(ob(yf,l_+1,c),e=0;e<WS;e++)Xv[e*2+1]=5,Xv[e*2]=ab(e,5);ib=new XP(yf,qM,g_+1,l_,Xd),nb=new XP(Xv,sL,0,WS,Xd),rb=new XP(new Array(0),K6,0,O1,k6)},hb=e=>{let t;for(t=0;t<l_;t++)e.dyn_ltree[t*2]=0;for(t=0;t<WS;t++)e.dyn_dtree[t*2]=0;for(t=0;t<O1;t++)e.bl_tree[t*2]=0;e.dyn_ltree[v1*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},lb=e=>{e.bi_valid>8?E_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},CU=(e,t,s,i)=>{let n=t*2,c=s*2;return e[n]<e[c]||e[n]===e[c]&&i[t]<=i[s]},eM=(e,t,s)=>{let i=e.heap[s],n=s<<1;for(;n<=e.heap_len&&(n<e.heap_len&&CU(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!CU(t,i,e.heap[n],e.depth));)e.heap[s]=e.heap[n],s=n,n<<=1;e.heap[s]=i},bU=(e,t,s)=>{let i,n,c=0,u,I;if(e.sym_next!==0)do i=e.pending_buf[e.sym_buf+c++]&255,i+=(e.pending_buf[e.sym_buf+c++]&255)<<8,n=e.pending_buf[e.sym_buf+c++],i===0?Hp(e,n,t):(u=p_[n],Hp(e,u+g_+1,t),I=qM[u],I!==0&&(n-=_1[u],To(e,n,I)),i--,u=cb(i),Hp(e,u,s),I=sL[u],I!==0&&(i-=AL[u],To(e,i,I)));while(c<e.sym_next);Hp(e,v1,t)},jM=(e,t)=>{let s=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,c=t.stat_desc.elems,u,I,D=-1,g;for(e.heap_len=0,e.heap_max=JC,u=0;u<c;u++)s[u*2]!==0?(e.heap[++e.heap_len]=D=u,e.depth[u]=0):s[u*2+1]=0;for(;e.heap_len<2;)g=e.heap[++e.heap_len]=D<2?++D:0,s[g*2]=1,e.depth[g]=0,e.opt_len--,n&&(e.static_len-=i[g*2+1]);for(t.max_code=D,u=e.heap_len>>1;u>=1;u--)eM(e,s,u);g=c;do u=e.heap[1],e.heap[1]=e.heap[e.heap_len--],eM(e,s,1),I=e.heap[1],e.heap[--e.heap_max]=u,e.heap[--e.heap_max]=I,s[g*2]=s[u*2]+s[I*2],e.depth[g]=(e.depth[u]>=e.depth[I]?e.depth[u]:e.depth[I])+1,s[u*2+1]=s[I*2+1]=g,e.heap[1]=g++,eM(e,s,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],j6(e,t),ob(s,D,e.bl_count)},wU=(e,t,s)=>{let i,n=-1,c,u=t[1],I=0,D=7,g=4;for(u===0&&(D=138,g=3),t[(s+1)*2+1]=65535,i=0;i<=s;i++)c=u,u=t[(i+1)*2+1],!(++I<D&&c===u)&&(I<g?e.bl_tree[c*2]+=I:c!==0?(c!==n&&e.bl_tree[c*2]++,e.bl_tree[XC*2]++):I<=10?e.bl_tree[tb*2]++:e.bl_tree[eb*2]++,I=0,n=c,u===0?(D=138,g=3):c===u?(D=6,g=3):(D=7,g=4))},BU=(e,t,s)=>{let i,n=-1,c,u=t[1],I=0,D=7,g=4;for(u===0&&(D=138,g=3),i=0;i<=s;i++)if(c=u,u=t[(i+1)*2+1],!(++I<D&&c===u)){if(I<g)do Hp(e,c,e.bl_tree);while(--I!==0);else c!==0?(c!==n&&(Hp(e,c,e.bl_tree),I--),Hp(e,XC,e.bl_tree),To(e,I-3,2)):I<=10?(Hp(e,tb,e.bl_tree),To(e,I-3,3)):(Hp(e,eb,e.bl_tree),To(e,I-11,7));I=0,n=c,u===0?(D=138,g=3):c===u?(D=6,g=3):(D=7,g=4)}},$6=e=>{let t;for(wU(e,e.dyn_ltree,e.l_desc.max_code),wU(e,e.dyn_dtree,e.d_desc.max_code),jM(e,e.bl_desc),t=O1-1;t>=3&&e.bl_tree[sb[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},J6=(e,t,s,i)=>{let n;for(To(e,t-257,5),To(e,s-1,5),To(e,i-4,4),n=0;n<i;n++)To(e,e.bl_tree[sb[n]*2+1],3);BU(e,e.dyn_ltree,t-1),BU(e,e.dyn_dtree,s-1)},X6=e=>{let t=4093624447,s;for(s=0;s<=31;s++,t>>>=1)if(t&1&&e.dyn_ltree[s*2]!==0)return MU;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return UU;for(s=32;s<g_;s++)if(e.dyn_ltree[s*2]!==0)return UU;return MU},GU=!1,tG=e=>{GU||(Q6(),GU=!0),e.l_desc=new tM(e.dyn_ltree,ib),e.d_desc=new tM(e.dyn_dtree,nb),e.bl_desc=new tM(e.bl_tree,rb),e.bi_buf=0,e.bi_valid=0,hb(e)},ub=(e,t,s,i)=>{To(e,(H6<<1)+(i?1:0),3),lb(e),E_(e,s),E_(e,~s),s&&e.pending_buf.set(e.window.subarray(t,t+s),e.pending),e.pending+=s},eG=e=>{To(e,$C<<1,3),Hp(e,v1,yf),q6(e)},sG=(e,t,s,i)=>{let n,c,u=0;e.level>0?(e.strm.data_type===V6&&(e.strm.data_type=X6(e)),jM(e,e.l_desc),jM(e,e.d_desc),u=$6(e),n=e.opt_len+3+7>>>3,c=e.static_len+3+7>>>3,c<=n&&(n=c)):n=c=s+5,s+4<=n&&t!==-1?ub(e,t,s,i):e.strategy===F6||c===n?(To(e,($C<<1)+(i?1:0),3),bU(e,yf,Xv)):(To(e,(W6<<1)+(i?1:0),3),J6(e,e.l_desc.max_code+1,e.d_desc.max_code+1,u+1),bU(e,e.dyn_ltree,e.dyn_dtree)),hb(e),i&&lb(e)},iG=(e,t,s)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=s,t===0?e.dyn_ltree[s*2]++:(e.matches++,t--,e.dyn_ltree[(p_[s]+g_+1)*2]++,e.dyn_dtree[cb(t)*2]++),e.sym_next===e.sym_end),nG=tG,rG=ub,cG=sG,aG=iG,oG=eG,hG={_tr_init:nG,_tr_stored_block:rG,_tr_flush_block:cG,_tr_tally:aG,_tr_align:oG},lG=(e,t,s,i)=>{let n=e&65535|0,c=e>>>16&65535|0,u=0;for(;s!==0;){u=s>2e3?2e3:s,s-=u;do n=n+t[i++]|0,c=c+n|0;while(--u);n%=65521,c%=65521}return n|c<<16|0},f_=lG,uG=()=>{let e,t=[];for(var s=0;s<256;s++){e=s;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;t[s]=e}return t},pG=new Uint32Array(uG()),EG=(e,t,s,i)=>{let n=pG,c=i+s;e^=-1;for(let u=i;u<c;u++)e=e>>>8^n[(e^t[u])&255];return e^-1},gr=EG,cm={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},L_={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:fG,_tr_stored_block:QM,_tr_flush_block:IG,_tr_tally:Ly,_tr_align:yG}=hG,{Z_NO_FLUSH:xy,Z_PARTIAL_FLUSH:TG,Z_FULL_FLUSH:dG,Z_FINISH:El,Z_BLOCK:FU,Z_OK:ic,Z_STREAM_END:VU,Z_STREAM_ERROR:Yp,Z_DATA_ERROR:mG,Z_BUF_ERROR:sM,Z_DEFAULT_COMPRESSION:RG,Z_FILTERED:SG,Z_HUFFMAN_ONLY:Og,Z_RLE:NG,Z_FIXED:AG,Z_DEFAULT_STRATEGY:DG,Z_UNKNOWN:OG,Z_DEFLATED:GL}=L_,vG=9,_G=15,gG=8,LG=29,xG=256,$M=xG+1+LG,PG=30,MG=19,UG=2*$M+1,CG=15,Oe=3,_y=258,kp=_y+Oe+1,bG=32,jS=42,g1=57,JM=69,XM=73,t0=91,e0=103,tm=113,zv=666,ma=1,nN=2,am=3,rN=4,wG=3,em=(e,t)=>(e.msg=cm[t],t),HU=e=>e*2-(e>4?9:0),Ay=e=>{let t=e.length;for(;--t>=0;)e[t]=0},BG=e=>{let t,s,i,n=e.w_size;t=e.hash_size,i=t;do s=e.head[--i],e.head[i]=s>=n?s-n:0;while(--t);t=n,i=t;do s=e.prev[--i],e.prev[i]=s>=n?s-n:0;while(--t)},GG=(e,t,s)=>(t<<e.hash_shift^s)&e.hash_mask,Py=GG,Eh=e=>{let t=e.state,s=t.pending;s>e.avail_out&&(s=e.avail_out),s!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+s),e.next_out),e.next_out+=s,t.pending_out+=s,e.total_out+=s,e.avail_out-=s,t.pending-=s,t.pending===0&&(t.pending_out=0))},yh=(e,t)=>{IG(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Eh(e.strm)},ts=(e,t)=>{e.pending_buf[e.pending++]=t},Pv=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},s0=(e,t,s,i)=>{let n=e.avail_in;return n>i&&(n=i),n===0?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),s),e.state.wrap===1?e.adler=f_(e.adler,t,n,s):e.state.wrap===2&&(e.adler=gr(e.adler,t,n,s)),e.next_in+=n,e.total_in+=n,n)},pb=(e,t)=>{let s=e.max_chain_length,i=e.strstart,n,c,u=e.prev_length,I=e.nice_match,D=e.strstart>e.w_size-kp?e.strstart-(e.w_size-kp):0,g=e.window,U=e.w_mask,F=e.prev,V=e.strstart+_y,H=g[i+u-1],z=g[i+u];e.prev_length>=e.good_match&&(s>>=2),I>e.lookahead&&(I=e.lookahead);do if(n=t,!(g[n+u]!==z||g[n+u-1]!==H||g[n]!==g[i]||g[++n]!==g[i+1])){i+=2,n++;do;while(g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&i<V);if(c=_y-(V-i),i=V-_y,c>u){if(e.match_start=t,u=c,c>=I)break;H=g[i+u-1],z=g[i+u]}}while((t=F[t&U])>D&&--s!==0);return u<=e.lookahead?u:e.lookahead},QS=e=>{let t=e.w_size,s,i,n;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-kp)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),BG(e),i+=t),e.strm.avail_in===0)break;if(s=s0(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=s,e.lookahead+e.insert>=Oe)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Py(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Py(e,e.ins_h,e.window[n+Oe-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<Oe)););}while(e.lookahead<kp&&e.strm.avail_in!==0)},Eb=(e,t)=>{let s=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,i,n,c,u=0,I=e.strm.avail_in;do{if(i=65535,c=e.bi_valid+42>>3,e.strm.avail_out<c||(c=e.strm.avail_out-c,n=e.strstart-e.block_start,i>n+e.strm.avail_in&&(i=n+e.strm.avail_in),i>c&&(i=c),i<s&&(i===0&&t!==El||t===xy||i!==n+e.strm.avail_in)))break;u=t===El&&i===n+e.strm.avail_in?1:0,QM(e,0,0,u),e.pending_buf[e.pending-4]=i,e.pending_buf[e.pending-3]=i>>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,Eh(e.strm),n&&(n>i&&(n=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,i-=n),i&&(s0(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(u===0);return I-=e.strm.avail_in,I&&(I>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=I&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-I,e.strm.next_in),e.strstart),e.strstart+=I,e.insert+=I>e.w_size-e.insert?e.w_size-e.insert:I),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),u?rN:t!==xy&&t!==El&&e.strm.avail_in===0&&e.strstart===e.block_start?nN:(c=e.window_size-e.strstart,e.strm.avail_in>c&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,c+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),c>e.strm.avail_in&&(c=e.strm.avail_in),c&&(s0(e.strm,e.window,e.strstart,c),e.strstart+=c,e.insert+=c>e.w_size-e.insert?e.w_size-e.insert:c),e.high_water<e.strstart&&(e.high_water=e.strstart),c=e.bi_valid+42>>3,c=e.pending_buf_size-c>65535?65535:e.pending_buf_size-c,s=c>e.w_size?e.w_size:c,n=e.strstart-e.block_start,(n>=s||(n||t===El)&&t!==xy&&e.strm.avail_in===0&&n<=c)&&(i=n>c?c:n,u=t===El&&e.strm.avail_in===0&&i===n?1:0,QM(e,e.block_start,i,u),e.block_start+=i,Eh(e.strm)),u?am:ma)},iM=(e,t)=>{let s,i;for(;;){if(e.lookahead<kp){if(QS(e),e.lookahead<kp&&t===xy)return ma;if(e.lookahead===0)break}if(s=0,e.lookahead>=Oe&&(e.ins_h=Py(e,e.ins_h,e.window[e.strstart+Oe-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),s!==0&&e.strstart-s<=e.w_size-kp&&(e.match_length=pb(e,s)),e.match_length>=Oe)if(i=Ly(e,e.strstart-e.match_start,e.match_length-Oe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Oe){e.match_length--;do e.strstart++,e.ins_h=Py(e,e.ins_h,e.window[e.strstart+Oe-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Py(e,e.ins_h,e.window[e.strstart+1]);else i=Ly(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(yh(e,!1),e.strm.avail_out===0))return ma}return e.insert=e.strstart<Oe-1?e.strstart:Oe-1,t===El?(yh(e,!0),e.strm.avail_out===0?am:rN):e.sym_next&&(yh(e,!1),e.strm.avail_out===0)?ma:nN},SS=(e,t)=>{let s,i,n;for(;;){if(e.lookahead<kp){if(QS(e),e.lookahead<kp&&t===xy)return ma;if(e.lookahead===0)break}if(s=0,e.lookahead>=Oe&&(e.ins_h=Py(e,e.ins_h,e.window[e.strstart+Oe-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Oe-1,s!==0&&e.prev_length<e.max_lazy_match&&e.strstart-s<=e.w_size-kp&&(e.match_length=pb(e,s),e.match_length<=5&&(e.strategy===SG||e.match_length===Oe&&e.strstart-e.match_start>4096)&&(e.match_length=Oe-1)),e.prev_length>=Oe&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-Oe,i=Ly(e,e.strstart-1-e.prev_match,e.prev_length-Oe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=Py(e,e.ins_h,e.window[e.strstart+Oe-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=Oe-1,e.strstart++,i&&(yh(e,!1),e.strm.avail_out===0))return ma}else if(e.match_available){if(i=Ly(e,0,e.window[e.strstart-1]),i&&yh(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ma}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=Ly(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Oe-1?e.strstart:Oe-1,t===El?(yh(e,!0),e.strm.avail_out===0?am:rN):e.sym_next&&(yh(e,!1),e.strm.avail_out===0)?ma:nN},FG=(e,t)=>{let s,i,n,c,u=e.window;for(;;){if(e.lookahead<=_y){if(QS(e),e.lookahead<=_y&&t===xy)return ma;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Oe&&e.strstart>0&&(n=e.strstart-1,i=u[n],i===u[++n]&&i===u[++n]&&i===u[++n])){c=e.strstart+_y;do;while(i===u[++n]&&i===u[++n]&&i===u[++n]&&i===u[++n]&&i===u[++n]&&i===u[++n]&&i===u[++n]&&i===u[++n]&&n<c);e.match_length=_y-(c-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Oe?(s=Ly(e,1,e.match_length-Oe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(s=Ly(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),s&&(yh(e,!1),e.strm.avail_out===0))return ma}return e.insert=0,t===El?(yh(e,!0),e.strm.avail_out===0?am:rN):e.sym_next&&(yh(e,!1),e.strm.avail_out===0)?ma:nN},VG=(e,t)=>{let s;for(;;){if(e.lookahead===0&&(QS(e),e.lookahead===0)){if(t===xy)return ma;break}if(e.match_length=0,s=Ly(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,s&&(yh(e,!1),e.strm.avail_out===0))return ma}return e.insert=0,t===El?(yh(e,!0),e.strm.avail_out===0?am:rN):e.sym_next&&(yh(e,!1),e.strm.avail_out===0)?ma:nN};function Up(e,t,s,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=s,this.max_chain=i,this.func=n}var Yv=[new Up(0,0,0,0,Eb),new Up(4,4,8,4,iM),new Up(4,5,16,8,iM),new Up(4,6,32,32,iM),new Up(4,4,16,16,SS),new Up(8,16,32,32,SS),new Up(8,16,128,128,SS),new Up(8,32,128,256,SS),new Up(32,128,258,1024,SS),new Up(32,258,258,4096,SS)],HG=e=>{e.window_size=2*e.w_size,Ay(e.head),e.max_lazy_match=Yv[e.level].max_lazy,e.good_match=Yv[e.level].good_length,e.nice_match=Yv[e.level].nice_length,e.max_chain_length=Yv[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Oe-1,e.match_available=0,e.ins_h=0};function WG(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=GL,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(UG*2),this.dyn_dtree=new Uint16Array((2*PG+1)*2),this.bl_tree=new Uint16Array((2*MG+1)*2),Ay(this.dyn_ltree),Ay(this.dyn_dtree),Ay(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(CG+1),this.heap=new Uint16Array(2*$M+1),Ay(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*$M+1),Ay(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var x_=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==jS&&t.status!==g1&&t.status!==JM&&t.status!==XM&&t.status!==t0&&t.status!==e0&&t.status!==tm&&t.status!==zv?1:0},fb=e=>{if(x_(e))return em(e,Yp);e.total_in=e.total_out=0,e.data_type=OG;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?g1:t.wrap?jS:tm,e.adler=t.wrap===2?0:1,t.last_flush=-2,fG(t),ic},Ib=e=>{let t=fb(e);return t===ic&&HG(e.state),t},zG=(e,t)=>x_(e)||e.state.wrap!==2?Yp:(e.state.gzhead=t,ic),yb=(e,t,s,i,n,c)=>{if(!e)return Yp;let u=1;if(t===RG&&(t=6),i<0?(u=0,i=-i):i>15&&(u=2,i-=16),n<1||n>vG||s!==GL||i<8||i>15||t<0||t>9||c<0||c>AG||i===8&&u!==1)return em(e,Yp);i===8&&(i=9);let I=new WG;return e.state=I,I.strm=e,I.status=jS,I.wrap=u,I.gzhead=null,I.w_bits=i,I.w_size=1<<I.w_bits,I.w_mask=I.w_size-1,I.hash_bits=n+7,I.hash_size=1<<I.hash_bits,I.hash_mask=I.hash_size-1,I.hash_shift=~~((I.hash_bits+Oe-1)/Oe),I.window=new Uint8Array(I.w_size*2),I.head=new Uint16Array(I.hash_size),I.prev=new Uint16Array(I.w_size),I.lit_bufsize=1<<n+6,I.pending_buf_size=I.lit_bufsize*4,I.pending_buf=new Uint8Array(I.pending_buf_size),I.sym_buf=I.lit_bufsize,I.sym_end=(I.lit_bufsize-1)*3,I.level=t,I.strategy=c,I.method=s,Ib(e)},YG=(e,t)=>yb(e,t,GL,_G,gG,DG),kG=(e,t)=>{if(x_(e)||t>FU||t<0)return e?em(e,Yp):Yp;let s=e.state;if(!e.output||e.avail_in!==0&&!e.input||s.status===zv&&t!==El)return em(e,e.avail_out===0?sM:Yp);let i=s.last_flush;if(s.last_flush=t,s.pending!==0){if(Eh(e),e.avail_out===0)return s.last_flush=-1,ic}else if(e.avail_in===0&&HU(t)<=HU(i)&&t!==El)return em(e,sM);if(s.status===zv&&e.avail_in!==0)return em(e,sM);if(s.status===jS&&s.wrap===0&&(s.status=tm),s.status===jS){let n=GL+(s.w_bits-8<<4)<<8,c=-1;if(s.strategy>=Og||s.level<2?c=0:s.level<6?c=1:s.level===6?c=2:c=3,n|=c<<6,s.strstart!==0&&(n|=bG),n+=31-n%31,Pv(s,n),s.strstart!==0&&(Pv(s,e.adler>>>16),Pv(s,e.adler&65535)),e.adler=1,s.status=tm,Eh(e),s.pending!==0)return s.last_flush=-1,ic}if(s.status===g1){if(e.adler=0,ts(s,31),ts(s,139),ts(s,8),s.gzhead)ts(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),ts(s,s.gzhead.time&255),ts(s,s.gzhead.time>>8&255),ts(s,s.gzhead.time>>16&255),ts(s,s.gzhead.time>>24&255),ts(s,s.level===9?2:s.strategy>=Og||s.level<2?4:0),ts(s,s.gzhead.os&255),s.gzhead.extra&&s.gzhead.extra.length&&(ts(s,s.gzhead.extra.length&255),ts(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=gr(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=JM;else if(ts(s,0),ts(s,0),ts(s,0),ts(s,0),ts(s,0),ts(s,s.level===9?2:s.strategy>=Og||s.level<2?4:0),ts(s,wG),s.status=tm,Eh(e),s.pending!==0)return s.last_flush=-1,ic}if(s.status===JM){if(s.gzhead.extra){let n=s.pending,c=(s.gzhead.extra.length&65535)-s.gzindex;for(;s.pending+c>s.pending_buf_size;){let I=s.pending_buf_size-s.pending;if(s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex,s.gzindex+I),s.pending),s.pending=s.pending_buf_size,s.gzhead.hcrc&&s.pending>n&&(e.adler=gr(e.adler,s.pending_buf,s.pending-n,n)),s.gzindex+=I,Eh(e),s.pending!==0)return s.last_flush=-1,ic;n=0,c-=I}let u=new Uint8Array(s.gzhead.extra);s.pending_buf.set(u.subarray(s.gzindex,s.gzindex+c),s.pending),s.pending+=c,s.gzhead.hcrc&&s.pending>n&&(e.adler=gr(e.adler,s.pending_buf,s.pending-n,n)),s.gzindex=0}s.status=XM}if(s.status===XM){if(s.gzhead.name){let n=s.pending,c;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>n&&(e.adler=gr(e.adler,s.pending_buf,s.pending-n,n)),Eh(e),s.pending!==0)return s.last_flush=-1,ic;n=0}s.gzindex<s.gzhead.name.length?c=s.gzhead.name.charCodeAt(s.gzindex++)&255:c=0,ts(s,c)}while(c!==0);s.gzhead.hcrc&&s.pending>n&&(e.adler=gr(e.adler,s.pending_buf,s.pending-n,n)),s.gzindex=0}s.status=t0}if(s.status===t0){if(s.gzhead.comment){let n=s.pending,c;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>n&&(e.adler=gr(e.adler,s.pending_buf,s.pending-n,n)),Eh(e),s.pending!==0)return s.last_flush=-1,ic;n=0}s.gzindex<s.gzhead.comment.length?c=s.gzhead.comment.charCodeAt(s.gzindex++)&255:c=0,ts(s,c)}while(c!==0);s.gzhead.hcrc&&s.pending>n&&(e.adler=gr(e.adler,s.pending_buf,s.pending-n,n))}s.status=e0}if(s.status===e0){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size&&(Eh(e),s.pending!==0))return s.last_flush=-1,ic;ts(s,e.adler&255),ts(s,e.adler>>8&255),e.adler=0}if(s.status=tm,Eh(e),s.pending!==0)return s.last_flush=-1,ic}if(e.avail_in!==0||s.lookahead!==0||t!==xy&&s.status!==zv){let n=s.level===0?Eb(s,t):s.strategy===Og?VG(s,t):s.strategy===NG?FG(s,t):Yv[s.level].func(s,t);if((n===am||n===rN)&&(s.status=zv),n===ma||n===am)return e.avail_out===0&&(s.last_flush=-1),ic;if(n===nN&&(t===TG?yG(s):t!==FU&&(QM(s,0,0,!1),t===dG&&(Ay(s.head),s.lookahead===0&&(s.strstart=0,s.block_start=0,s.insert=0))),Eh(e),e.avail_out===0))return s.last_flush=-1,ic}return t!==El?ic:s.wrap<=0?VU:(s.wrap===2?(ts(s,e.adler&255),ts(s,e.adler>>8&255),ts(s,e.adler>>16&255),ts(s,e.adler>>24&255),ts(s,e.total_in&255),ts(s,e.total_in>>8&255),ts(s,e.total_in>>16&255),ts(s,e.total_in>>24&255)):(Pv(s,e.adler>>>16),Pv(s,e.adler&65535)),Eh(e),s.wrap>0&&(s.wrap=-s.wrap),s.pending!==0?ic:VU)},KG=e=>{if(x_(e))return Yp;let t=e.state.status;return e.state=null,t===tm?em(e,mG):ic},ZG=(e,t)=>{let s=t.length;if(x_(e))return Yp;let i=e.state,n=i.wrap;if(n===2||n===1&&i.status!==jS||i.lookahead)return Yp;if(n===1&&(e.adler=f_(e.adler,t,s,0)),i.wrap=0,s>=i.w_size){n===0&&(Ay(i.head),i.strstart=0,i.block_start=0,i.insert=0);let D=new Uint8Array(i.w_size);D.set(t.subarray(s-i.w_size,s),0),t=D,s=i.w_size}let c=e.avail_in,u=e.next_in,I=e.input;for(e.avail_in=s,e.next_in=0,e.input=t,QS(i);i.lookahead>=Oe;){let D=i.strstart,g=i.lookahead-(Oe-1);do i.ins_h=Py(i,i.ins_h,i.window[D+Oe-1]),i.prev[D&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=D,D++;while(--g);i.strstart=D,i.lookahead=Oe-1,QS(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=Oe-1,i.match_available=0,e.next_in=u,e.input=I,e.avail_in=c,i.wrap=n,ic},qG=YG,jG=yb,QG=Ib,$G=fb,JG=zG,XG=kG,tF=KG,eF=ZG,sF="pako deflate (from Nodeca project)",t_={deflateInit:qG,deflateInit2:jG,deflateReset:QG,deflateResetKeep:$G,deflateSetHeader:JG,deflate:XG,deflateEnd:tF,deflateSetDictionary:eF,deflateInfo:sF},iF=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),nF=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let s=t.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(let i in s)iF(s,i)&&(e[i]=s[i])}}return e},rF=e=>{let t=0;for(let i=0,n=e.length;i<n;i++)t+=e[i].length;let s=new Uint8Array(t);for(let i=0,n=0,c=e.length;i<c;i++){let u=e[i];s.set(u,n),n+=u.length}return s},FL={assign:nF,flattenChunks:rF},Tb=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Tb=!1}var I_=new Uint8Array(256);for(let e=0;e<256;e++)I_[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;I_[254]=I_[254]=1;var cF=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,s,i,n,c,u=e.length,I=0;for(n=0;n<u;n++)s=e.charCodeAt(n),(s&64512)===55296&&n+1<u&&(i=e.charCodeAt(n+1),(i&64512)===56320&&(s=65536+(s-55296<<10)+(i-56320),n++)),I+=s<128?1:s<2048?2:s<65536?3:4;for(t=new Uint8Array(I),c=0,n=0;c<I;n++)s=e.charCodeAt(n),(s&64512)===55296&&n+1<u&&(i=e.charCodeAt(n+1),(i&64512)===56320&&(s=65536+(s-55296<<10)+(i-56320),n++)),s<128?t[c++]=s:s<2048?(t[c++]=192|s>>>6,t[c++]=128|s&63):s<65536?(t[c++]=224|s>>>12,t[c++]=128|s>>>6&63,t[c++]=128|s&63):(t[c++]=240|s>>>18,t[c++]=128|s>>>12&63,t[c++]=128|s>>>6&63,t[c++]=128|s&63);return t},aF=(e,t)=>{if(t<65534&&e.subarray&&Tb)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let s="";for(let i=0;i<t;i++)s+=String.fromCharCode(e[i]);return s},oF=(e,t)=>{let s=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let i,n,c=new Array(s*2);for(n=0,i=0;i<s;){let u=e[i++];if(u<128){c[n++]=u;continue}let I=I_[u];if(I>4){c[n++]=65533,i+=I-1;continue}for(u&=I===2?31:I===3?15:7;I>1&&i<s;)u=u<<6|e[i++]&63,I--;if(I>1){c[n++]=65533;continue}u<65536?c[n++]=u:(u-=65536,c[n++]=55296|u>>10&1023,c[n++]=56320|u&1023)}return aF(c,n)},hF=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let s=t-1;for(;s>=0&&(e[s]&192)===128;)s--;return s<0||s===0?t:s+I_[e[s]]>t?s:t},y_={string2buf:cF,buf2string:oF,utf8border:hF};function lF(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var db=lF,mb=Object.prototype.toString,{Z_NO_FLUSH:uF,Z_SYNC_FLUSH:pF,Z_FULL_FLUSH:EF,Z_FINISH:fF,Z_OK:DL,Z_STREAM_END:IF,Z_DEFAULT_COMPRESSION:yF,Z_DEFAULT_STRATEGY:TF,Z_DEFLATED:dF}=L_;function P_(e){this.options=FL.assign({level:yF,method:dF,chunkSize:16384,windowBits:15,memLevel:8,strategy:TF},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new db,this.strm.avail_out=0;let s=t_.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(s!==DL)throw new Error(cm[s]);if(t.header&&t_.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=y_.string2buf(t.dictionary):mb.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,s=t_.deflateSetDictionary(this.strm,i),s!==DL)throw new Error(cm[s]);this._dict_set=!0}}P_.prototype.push=function(e,t){let s=this.strm,i=this.options.chunkSize,n,c;if(this.ended)return!1;for(t===~~t?c=t:c=t===!0?fF:uF,typeof e=="string"?s.input=y_.string2buf(e):mb.call(e)==="[object ArrayBuffer]"?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;;){if(s.avail_out===0&&(s.output=new Uint8Array(i),s.next_out=0,s.avail_out=i),(c===pF||c===EF)&&s.avail_out<=6){this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;continue}if(n=t_.deflate(s,c),n===IF)return s.next_out>0&&this.onData(s.output.subarray(0,s.next_out)),n=t_.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===DL;if(s.avail_out===0){this.onData(s.output);continue}if(c>0&&s.next_out>0){this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;continue}if(s.avail_in===0)break}return!0};P_.prototype.onData=function(e){this.chunks.push(e)};P_.prototype.onEnd=function(e){e===DL&&(this.result=FL.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function L1(e,t){let s=new P_(t);if(s.push(e,!0),s.err)throw s.msg||cm[s.err];return s.result}function mF(e,t){return t=t||{},t.raw=!0,L1(e,t)}function RF(e,t){return t=t||{},t.gzip=!0,L1(e,t)}var SF=P_,NF=L1,AF=mF,DF=RF,OF={Deflate:SF,deflate:NF,deflateRaw:AF,gzip:DF},vg=16209,vF=16191,_F=function(t,s){let i,n,c,u,I,D,g,U,F,V,H,z,j,Q,Z,X,$,q,tt,at,nt,ht,ut,ot,pt=t.state;i=t.next_in,ut=t.input,n=i+(t.avail_in-5),c=t.next_out,ot=t.output,u=c-(s-t.avail_out),I=c+(t.avail_out-257),D=pt.dmax,g=pt.wsize,U=pt.whave,F=pt.wnext,V=pt.window,H=pt.hold,z=pt.bits,j=pt.lencode,Q=pt.distcode,Z=(1<<pt.lenbits)-1,X=(1<<pt.distbits)-1;t:do{z<15&&(H+=ut[i++]<<z,z+=8,H+=ut[i++]<<z,z+=8),$=j[H&Z];e:for(;;){if(q=$>>>24,H>>>=q,z-=q,q=$>>>16&255,q===0)ot[c++]=$&65535;else if(q&16){tt=$&65535,q&=15,q&&(z<q&&(H+=ut[i++]<<z,z+=8),tt+=H&(1<<q)-1,H>>>=q,z-=q),z<15&&(H+=ut[i++]<<z,z+=8,H+=ut[i++]<<z,z+=8),$=Q[H&X];s:for(;;){if(q=$>>>24,H>>>=q,z-=q,q=$>>>16&255,q&16){if(at=$&65535,q&=15,z<q&&(H+=ut[i++]<<z,z+=8,z<q&&(H+=ut[i++]<<z,z+=8)),at+=H&(1<<q)-1,at>D){t.msg="invalid distance too far back",pt.mode=vg;break t}if(H>>>=q,z-=q,q=c-u,at>q){if(q=at-q,q>U&&pt.sane){t.msg="invalid distance too far back",pt.mode=vg;break t}if(nt=0,ht=V,F===0){if(nt+=g-q,q<tt){tt-=q;do ot[c++]=V[nt++];while(--q);nt=c-at,ht=ot}}else if(F<q){if(nt+=g+F-q,q-=F,q<tt){tt-=q;do ot[c++]=V[nt++];while(--q);if(nt=0,F<tt){q=F,tt-=q;do ot[c++]=V[nt++];while(--q);nt=c-at,ht=ot}}}else if(nt+=F-q,q<tt){tt-=q;do ot[c++]=V[nt++];while(--q);nt=c-at,ht=ot}for(;tt>2;)ot[c++]=ht[nt++],ot[c++]=ht[nt++],ot[c++]=ht[nt++],tt-=3;tt&&(ot[c++]=ht[nt++],tt>1&&(ot[c++]=ht[nt++]))}else{nt=c-at;do ot[c++]=ot[nt++],ot[c++]=ot[nt++],ot[c++]=ot[nt++],tt-=3;while(tt>2);tt&&(ot[c++]=ot[nt++],tt>1&&(ot[c++]=ot[nt++]))}}else if((q&64)===0){$=Q[($&65535)+(H&(1<<q)-1)];continue s}else{t.msg="invalid distance code",pt.mode=vg;break t}break}}else if((q&64)===0){$=j[($&65535)+(H&(1<<q)-1)];continue e}else if(q&32){pt.mode=vF;break t}else{t.msg="invalid literal/length code",pt.mode=vg;break t}break}}while(i<n&&c<I);tt=z>>3,i-=tt,z-=tt<<3,H&=(1<<z)-1,t.next_in=i,t.next_out=c,t.avail_in=i<n?5+(n-i):5-(i-n),t.avail_out=c<I?257+(I-c):257-(c-I),pt.hold=H,pt.bits=z},NS=15,WU=852,zU=592,YU=0,nM=1,kU=2,gF=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),LF=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),xF=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),PF=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),MF=(e,t,s,i,n,c,u,I)=>{let D=I.bits,g=0,U=0,F=0,V=0,H=0,z=0,j=0,Q=0,Z=0,X=0,$,q,tt,at,nt,ht=null,ut,ot=new Uint16Array(NS+1),pt=new Uint16Array(NS+1),Et=null,dt,Dt,Ut;for(g=0;g<=NS;g++)ot[g]=0;for(U=0;U<i;U++)ot[t[s+U]]++;for(H=D,V=NS;V>=1&&ot[V]===0;V--);if(H>V&&(H=V),V===0)return n[c++]=1<<24|64<<16|0,n[c++]=1<<24|64<<16|0,I.bits=1,0;for(F=1;F<V&&ot[F]===0;F++);for(H<F&&(H=F),Q=1,g=1;g<=NS;g++)if(Q<<=1,Q-=ot[g],Q<0)return-1;if(Q>0&&(e===YU||V!==1))return-1;for(pt[1]=0,g=1;g<NS;g++)pt[g+1]=pt[g]+ot[g];for(U=0;U<i;U++)t[s+U]!==0&&(u[pt[t[s+U]]++]=U);if(e===YU?(ht=Et=u,ut=20):e===nM?(ht=gF,Et=LF,ut=257):(ht=xF,Et=PF,ut=0),X=0,U=0,g=F,nt=c,z=H,j=0,tt=-1,Z=1<<H,at=Z-1,e===nM&&Z>WU||e===kU&&Z>zU)return 1;for(;;){dt=g-j,u[U]+1<ut?(Dt=0,Ut=u[U]):u[U]>=ut?(Dt=Et[u[U]-ut],Ut=ht[u[U]-ut]):(Dt=96,Ut=0),$=1<<g-j,q=1<<z,F=q;do q-=$,n[nt+(X>>j)+q]=dt<<24|Dt<<16|Ut|0;while(q!==0);for($=1<<g-1;X&$;)$>>=1;if($!==0?(X&=$-1,X+=$):X=0,U++,--ot[g]===0){if(g===V)break;g=t[s+u[U]]}if(g>H&&(X&at)!==tt){for(j===0&&(j=H),nt+=F,z=g-j,Q=1<<z;z+j<V&&(Q-=ot[z+j],!(Q<=0));)z++,Q<<=1;if(Z+=1<<z,e===nM&&Z>WU||e===kU&&Z>zU)return 1;tt=X&at,n[tt]=H<<24|z<<16|nt-c|0}}return X!==0&&(n[nt+X]=g-j<<24|64<<16|0),I.bits=H,0},e_=MF,UF=0,Rb=1,Sb=2,{Z_FINISH:KU,Z_BLOCK:CF,Z_TREES:_g,Z_OK:om,Z_STREAM_END:bF,Z_NEED_DICT:wF,Z_STREAM_ERROR:Rl,Z_DATA_ERROR:Nb,Z_MEM_ERROR:Ab,Z_BUF_ERROR:BF,Z_DEFLATED:ZU}=L_,VL=16180,qU=16181,jU=16182,QU=16183,$U=16184,JU=16185,XU=16186,tC=16187,eC=16188,sC=16189,OL=16190,pf=16191,rM=16192,iC=16193,cM=16194,nC=16195,rC=16196,cC=16197,aC=16198,gg=16199,Lg=16200,oC=16201,hC=16202,lC=16203,uC=16204,pC=16205,aM=16206,EC=16207,fC=16208,Xs=16209,Db=16210,Ob=16211,GF=852,FF=592,VF=15,HF=VF,IC=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function WF(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Em=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<VL||t.mode>Ob?1:0},vb=e=>{if(Em(e))return Rl;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=VL,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(GF),t.distcode=t.distdyn=new Int32Array(FF),t.sane=1,t.back=-1,om},_b=e=>{if(Em(e))return Rl;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,vb(e)},gb=(e,t)=>{let s;if(Em(e))return Rl;let i=e.state;return t<0?(s=0,t=-t):(s=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Rl:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=s,i.wbits=t,_b(e))},Lb=(e,t)=>{if(!e)return Rl;let s=new WF;e.state=s,s.strm=e,s.window=null,s.mode=VL;let i=gb(e,t);return i!==om&&(e.state=null),i},zF=e=>Lb(e,HF),yC=!0,oM,hM,YF=e=>{if(yC){oM=new Int32Array(512),hM=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(e_(Rb,e.lens,0,288,oM,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;e_(Sb,e.lens,0,32,hM,0,e.work,{bits:5}),yC=!1}e.lencode=oM,e.lenbits=9,e.distcode=hM,e.distbits=5},xb=(e,t,s,i)=>{let n,c=e.state;return c.window===null&&(c.wsize=1<<c.wbits,c.wnext=0,c.whave=0,c.window=new Uint8Array(c.wsize)),i>=c.wsize?(c.window.set(t.subarray(s-c.wsize,s),0),c.wnext=0,c.whave=c.wsize):(n=c.wsize-c.wnext,n>i&&(n=i),c.window.set(t.subarray(s-i,s-i+n),c.wnext),i-=n,i?(c.window.set(t.subarray(s-i,s),0),c.wnext=i,c.whave=c.wsize):(c.wnext+=n,c.wnext===c.wsize&&(c.wnext=0),c.whave<c.wsize&&(c.whave+=n))),0},kF=(e,t)=>{let s,i,n,c,u,I,D,g,U,F,V,H,z,j,Q=0,Z,X,$,q,tt,at,nt,ht,ut=new Uint8Array(4),ot,pt,Et=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Em(e)||!e.output||!e.input&&e.avail_in!==0)return Rl;s=e.state,s.mode===pf&&(s.mode=rM),u=e.next_out,n=e.output,D=e.avail_out,c=e.next_in,i=e.input,I=e.avail_in,g=s.hold,U=s.bits,F=I,V=D,ht=om;t:for(;;)switch(s.mode){case VL:if(s.wrap===0){s.mode=rM;break}for(;U<16;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if(s.wrap&2&&g===35615){s.wbits===0&&(s.wbits=15),s.check=0,ut[0]=g&255,ut[1]=g>>>8&255,s.check=gr(s.check,ut,2,0),g=0,U=0,s.mode=qU;break}if(s.head&&(s.head.done=!1),!(s.wrap&1)||(((g&255)<<8)+(g>>8))%31){e.msg="incorrect header check",s.mode=Xs;break}if((g&15)!==ZU){e.msg="unknown compression method",s.mode=Xs;break}if(g>>>=4,U-=4,nt=(g&15)+8,s.wbits===0&&(s.wbits=nt),nt>15||nt>s.wbits){e.msg="invalid window size",s.mode=Xs;break}s.dmax=1<<s.wbits,s.flags=0,e.adler=s.check=1,s.mode=g&512?sC:pf,g=0,U=0;break;case qU:for(;U<16;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if(s.flags=g,(s.flags&255)!==ZU){e.msg="unknown compression method",s.mode=Xs;break}if(s.flags&57344){e.msg="unknown header flags set",s.mode=Xs;break}s.head&&(s.head.text=g>>8&1),s.flags&512&&s.wrap&4&&(ut[0]=g&255,ut[1]=g>>>8&255,s.check=gr(s.check,ut,2,0)),g=0,U=0,s.mode=jU;case jU:for(;U<32;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}s.head&&(s.head.time=g),s.flags&512&&s.wrap&4&&(ut[0]=g&255,ut[1]=g>>>8&255,ut[2]=g>>>16&255,ut[3]=g>>>24&255,s.check=gr(s.check,ut,4,0)),g=0,U=0,s.mode=QU;case QU:for(;U<16;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}s.head&&(s.head.xflags=g&255,s.head.os=g>>8),s.flags&512&&s.wrap&4&&(ut[0]=g&255,ut[1]=g>>>8&255,s.check=gr(s.check,ut,2,0)),g=0,U=0,s.mode=$U;case $U:if(s.flags&1024){for(;U<16;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}s.length=g,s.head&&(s.head.extra_len=g),s.flags&512&&s.wrap&4&&(ut[0]=g&255,ut[1]=g>>>8&255,s.check=gr(s.check,ut,2,0)),g=0,U=0}else s.head&&(s.head.extra=null);s.mode=JU;case JU:if(s.flags&1024&&(H=s.length,H>I&&(H=I),H&&(s.head&&(nt=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(i.subarray(c,c+H),nt)),s.flags&512&&s.wrap&4&&(s.check=gr(s.check,i,H,c)),I-=H,c+=H,s.length-=H),s.length))break t;s.length=0,s.mode=XU;case XU:if(s.flags&2048){if(I===0)break t;H=0;do nt=i[c+H++],s.head&&nt&&s.length<65536&&(s.head.name+=String.fromCharCode(nt));while(nt&&H<I);if(s.flags&512&&s.wrap&4&&(s.check=gr(s.check,i,H,c)),I-=H,c+=H,nt)break t}else s.head&&(s.head.name=null);s.length=0,s.mode=tC;case tC:if(s.flags&4096){if(I===0)break t;H=0;do nt=i[c+H++],s.head&&nt&&s.length<65536&&(s.head.comment+=String.fromCharCode(nt));while(nt&&H<I);if(s.flags&512&&s.wrap&4&&(s.check=gr(s.check,i,H,c)),I-=H,c+=H,nt)break t}else s.head&&(s.head.comment=null);s.mode=eC;case eC:if(s.flags&512){for(;U<16;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if(s.wrap&4&&g!==(s.check&65535)){e.msg="header crc mismatch",s.mode=Xs;break}g=0,U=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),e.adler=s.check=0,s.mode=pf;break;case sC:for(;U<32;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}e.adler=s.check=IC(g),g=0,U=0,s.mode=OL;case OL:if(s.havedict===0)return e.next_out=u,e.avail_out=D,e.next_in=c,e.avail_in=I,s.hold=g,s.bits=U,wF;e.adler=s.check=1,s.mode=pf;case pf:if(t===CF||t===_g)break t;case rM:if(s.last){g>>>=U&7,U-=U&7,s.mode=aM;break}for(;U<3;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}switch(s.last=g&1,g>>>=1,U-=1,g&3){case 0:s.mode=iC;break;case 1:if(YF(s),s.mode=gg,t===_g){g>>>=2,U-=2;break t}break;case 2:s.mode=rC;break;case 3:e.msg="invalid block type",s.mode=Xs}g>>>=2,U-=2;break;case iC:for(g>>>=U&7,U-=U&7;U<32;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if((g&65535)!==(g>>>16^65535)){e.msg="invalid stored block lengths",s.mode=Xs;break}if(s.length=g&65535,g=0,U=0,s.mode=cM,t===_g)break t;case cM:s.mode=nC;case nC:if(H=s.length,H){if(H>I&&(H=I),H>D&&(H=D),H===0)break t;n.set(i.subarray(c,c+H),u),I-=H,c+=H,D-=H,u+=H,s.length-=H;break}s.mode=pf;break;case rC:for(;U<14;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if(s.nlen=(g&31)+257,g>>>=5,U-=5,s.ndist=(g&31)+1,g>>>=5,U-=5,s.ncode=(g&15)+4,g>>>=4,U-=4,s.nlen>286||s.ndist>30){e.msg="too many length or distance symbols",s.mode=Xs;break}s.have=0,s.mode=cC;case cC:for(;s.have<s.ncode;){for(;U<3;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}s.lens[Et[s.have++]]=g&7,g>>>=3,U-=3}for(;s.have<19;)s.lens[Et[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,ot={bits:s.lenbits},ht=e_(UF,s.lens,0,19,s.lencode,0,s.work,ot),s.lenbits=ot.bits,ht){e.msg="invalid code lengths set",s.mode=Xs;break}s.have=0,s.mode=aC;case aC:for(;s.have<s.nlen+s.ndist;){for(;Q=s.lencode[g&(1<<s.lenbits)-1],Z=Q>>>24,X=Q>>>16&255,$=Q&65535,!(Z<=U);){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if($<16)g>>>=Z,U-=Z,s.lens[s.have++]=$;else{if($===16){for(pt=Z+2;U<pt;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if(g>>>=Z,U-=Z,s.have===0){e.msg="invalid bit length repeat",s.mode=Xs;break}nt=s.lens[s.have-1],H=3+(g&3),g>>>=2,U-=2}else if($===17){for(pt=Z+3;U<pt;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}g>>>=Z,U-=Z,nt=0,H=3+(g&7),g>>>=3,U-=3}else{for(pt=Z+7;U<pt;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}g>>>=Z,U-=Z,nt=0,H=11+(g&127),g>>>=7,U-=7}if(s.have+H>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=Xs;break}for(;H--;)s.lens[s.have++]=nt}}if(s.mode===Xs)break;if(s.lens[256]===0){e.msg="invalid code -- missing end-of-block",s.mode=Xs;break}if(s.lenbits=9,ot={bits:s.lenbits},ht=e_(Rb,s.lens,0,s.nlen,s.lencode,0,s.work,ot),s.lenbits=ot.bits,ht){e.msg="invalid literal/lengths set",s.mode=Xs;break}if(s.distbits=6,s.distcode=s.distdyn,ot={bits:s.distbits},ht=e_(Sb,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,ot),s.distbits=ot.bits,ht){e.msg="invalid distances set",s.mode=Xs;break}if(s.mode=gg,t===_g)break t;case gg:s.mode=Lg;case Lg:if(I>=6&&D>=258){e.next_out=u,e.avail_out=D,e.next_in=c,e.avail_in=I,s.hold=g,s.bits=U,_F(e,V),u=e.next_out,n=e.output,D=e.avail_out,c=e.next_in,i=e.input,I=e.avail_in,g=s.hold,U=s.bits,s.mode===pf&&(s.back=-1);break}for(s.back=0;Q=s.lencode[g&(1<<s.lenbits)-1],Z=Q>>>24,X=Q>>>16&255,$=Q&65535,!(Z<=U);){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if(X&&(X&240)===0){for(q=Z,tt=X,at=$;Q=s.lencode[at+((g&(1<<q+tt)-1)>>q)],Z=Q>>>24,X=Q>>>16&255,$=Q&65535,!(q+Z<=U);){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}g>>>=q,U-=q,s.back+=q}if(g>>>=Z,U-=Z,s.back+=Z,s.length=$,X===0){s.mode=pC;break}if(X&32){s.back=-1,s.mode=pf;break}if(X&64){e.msg="invalid literal/length code",s.mode=Xs;break}s.extra=X&15,s.mode=oC;case oC:if(s.extra){for(pt=s.extra;U<pt;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}s.length+=g&(1<<s.extra)-1,g>>>=s.extra,U-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=hC;case hC:for(;Q=s.distcode[g&(1<<s.distbits)-1],Z=Q>>>24,X=Q>>>16&255,$=Q&65535,!(Z<=U);){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if((X&240)===0){for(q=Z,tt=X,at=$;Q=s.distcode[at+((g&(1<<q+tt)-1)>>q)],Z=Q>>>24,X=Q>>>16&255,$=Q&65535,!(q+Z<=U);){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}g>>>=q,U-=q,s.back+=q}if(g>>>=Z,U-=Z,s.back+=Z,X&64){e.msg="invalid distance code",s.mode=Xs;break}s.offset=$,s.extra=X&15,s.mode=lC;case lC:if(s.extra){for(pt=s.extra;U<pt;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}s.offset+=g&(1<<s.extra)-1,g>>>=s.extra,U-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){e.msg="invalid distance too far back",s.mode=Xs;break}s.mode=uC;case uC:if(D===0)break t;if(H=V-D,s.offset>H){if(H=s.offset-H,H>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=Xs;break}H>s.wnext?(H-=s.wnext,z=s.wsize-H):z=s.wnext-H,H>s.length&&(H=s.length),j=s.window}else j=n,z=u-s.offset,H=s.length;H>D&&(H=D),D-=H,s.length-=H;do n[u++]=j[z++];while(--H);s.length===0&&(s.mode=Lg);break;case pC:if(D===0)break t;n[u++]=s.length,D--,s.mode=Lg;break;case aM:if(s.wrap){for(;U<32;){if(I===0)break t;I--,g|=i[c++]<<U,U+=8}if(V-=D,e.total_out+=V,s.total+=V,s.wrap&4&&V&&(e.adler=s.check=s.flags?gr(s.check,n,V,u-V):f_(s.check,n,V,u-V)),V=D,s.wrap&4&&(s.flags?g:IC(g))!==s.check){e.msg="incorrect data check",s.mode=Xs;break}g=0,U=0}s.mode=EC;case EC:if(s.wrap&&s.flags){for(;U<32;){if(I===0)break t;I--,g+=i[c++]<<U,U+=8}if(s.wrap&4&&g!==(s.total&4294967295)){e.msg="incorrect length check",s.mode=Xs;break}g=0,U=0}s.mode=fC;case fC:ht=bF;break t;case Xs:ht=Nb;break t;case Db:return Ab;case Ob:default:return Rl}return e.next_out=u,e.avail_out=D,e.next_in=c,e.avail_in=I,s.hold=g,s.bits=U,(s.wsize||V!==e.avail_out&&s.mode<Xs&&(s.mode<aM||t!==KU))&&xb(e,e.output,e.next_out,V-e.avail_out),F-=e.avail_in,V-=e.avail_out,e.total_in+=F,e.total_out+=V,s.total+=V,s.wrap&4&&V&&(e.adler=s.check=s.flags?gr(s.check,n,V,e.next_out-V):f_(s.check,n,V,e.next_out-V)),e.data_type=s.bits+(s.last?64:0)+(s.mode===pf?128:0)+(s.mode===gg||s.mode===cM?256:0),(F===0&&V===0||t===KU)&&ht===om&&(ht=BF),ht},KF=e=>{if(Em(e))return Rl;let t=e.state;return t.window&&(t.window=null),e.state=null,om},ZF=(e,t)=>{if(Em(e))return Rl;let s=e.state;return(s.wrap&2)===0?Rl:(s.head=t,t.done=!1,om)},qF=(e,t)=>{let s=t.length,i,n,c;return Em(e)||(i=e.state,i.wrap!==0&&i.mode!==OL)?Rl:i.mode===OL&&(n=1,n=f_(n,t,s,0),n!==i.check)?Nb:(c=xb(e,t,s,s),c?(i.mode=Db,Ab):(i.havedict=1,om))},jF=_b,QF=gb,$F=vb,JF=zF,XF=Lb,t8=kF,e8=KF,s8=ZF,i8=qF,n8="pako inflate (from Nodeca project)",Tf={inflateReset:jF,inflateReset2:QF,inflateResetKeep:$F,inflateInit:JF,inflateInit2:XF,inflate:t8,inflateEnd:e8,inflateGetHeader:s8,inflateSetDictionary:i8,inflateInfo:n8};function r8(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var c8=r8,Pb=Object.prototype.toString,{Z_NO_FLUSH:a8,Z_FINISH:o8,Z_OK:T_,Z_STREAM_END:lM,Z_NEED_DICT:uM,Z_STREAM_ERROR:h8,Z_DATA_ERROR:TC,Z_MEM_ERROR:l8}=L_;function M_(e){this.options=FL.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new db,this.strm.avail_out=0;let s=Tf.inflateInit2(this.strm,t.windowBits);if(s!==T_)throw new Error(cm[s]);if(this.header=new c8,Tf.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=y_.string2buf(t.dictionary):Pb.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(s=Tf.inflateSetDictionary(this.strm,t.dictionary),s!==T_)))throw new Error(cm[s])}M_.prototype.push=function(e,t){let s=this.strm,i=this.options.chunkSize,n=this.options.dictionary,c,u,I;if(this.ended)return!1;for(t===~~t?u=t:u=t===!0?o8:a8,Pb.call(e)==="[object ArrayBuffer]"?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;;){for(s.avail_out===0&&(s.output=new Uint8Array(i),s.next_out=0,s.avail_out=i),c=Tf.inflate(s,u),c===uM&&n&&(c=Tf.inflateSetDictionary(s,n),c===T_?c=Tf.inflate(s,u):c===TC&&(c=uM));s.avail_in>0&&c===lM&&s.state.wrap>0&&e[s.next_in]!==0;)Tf.inflateReset(s),c=Tf.inflate(s,u);switch(c){case h8:case TC:case uM:case l8:return this.onEnd(c),this.ended=!0,!1}if(I=s.avail_out,s.next_out&&(s.avail_out===0||c===lM))if(this.options.to==="string"){let D=y_.utf8border(s.output,s.next_out),g=s.next_out-D,U=y_.buf2string(s.output,D);s.next_out=g,s.avail_out=i-g,g&&s.output.set(s.output.subarray(D,D+g),0),this.onData(U)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out));if(!(c===T_&&I===0)){if(c===lM)return c=Tf.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,!0;if(s.avail_in===0)break}}return!0};M_.prototype.onData=function(e){this.chunks.push(e)};M_.prototype.onEnd=function(e){e===T_&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=FL.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function x1(e,t){let s=new M_(t);if(s.push(e),s.err)throw s.msg||cm[s.err];return s.result}function u8(e,t){return t=t||{},t.raw=!0,x1(e,t)}var p8=M_,E8=x1,f8=u8,I8=x1,y8={Inflate:p8,inflate:E8,inflateRaw:f8,ungzip:I8},{Deflate:T8,deflate:d8,deflateRaw:m8,gzip:R8}=OF,{Inflate:S8,inflate:N8,inflateRaw:A8,ungzip:D8}=y8,O8=T8,v8=d8,_8=m8,g8=R8,L8=S8,x8=N8,P8=A8,M8=D8,U8=L_,$S={Deflate:O8,deflate:v8,deflateRaw:_8,gzip:g8,Inflate:L8,inflate:x8,inflateRaw:P8,ungzip:M8,constants:U8},_f=class{constructor(t){k(this,"id"),k(this,"thread"),this.id=this.getId(),this.thread=t,this.thread.actions[this.id]=s=>this.execute(s)}},pM=2,Wp=4,Rf=4,No=4,Sy=new Int32Array(2),dC=new Float32Array(Sy.buffer),mC=new Float64Array(Sy.buffer),xg=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1,i0;(function(e){e[e.UTF8_BYTES=1]="UTF8_BYTES",e[e.UTF16_STRING=2]="UTF16_STRING"})(i0||(i0={}));var JS=class e{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new e(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<<BigInt(32)))}readUint64(t){return BigInt.asUintN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<<BigInt(32)))}readFloat32(t){return Sy[0]=this.readInt32(t),dC[0]}readFloat64(t){return Sy[xg?0:1]=this.readInt32(t),Sy[xg?1:0]=this.readInt32(t+4),mC[0]}writeInt8(t,s){this.bytes_[t]=s}writeUint8(t,s){this.bytes_[t]=s}writeInt16(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8}writeUint16(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8}writeInt32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeUint32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeInt64(t,s){this.writeInt32(t,Number(BigInt.asIntN(32,s))),this.writeInt32(t+4,Number(BigInt.asIntN(32,s>>BigInt(32))))}writeUint64(t,s){this.writeUint32(t,Number(BigInt.asUintN(32,s))),this.writeUint32(t+4,Number(BigInt.asUintN(32,s>>BigInt(32))))}writeFloat32(t,s){dC[0]=s,this.writeInt32(t,Sy[0])}writeFloat64(t,s){mC[0]=s,this.writeInt32(t,Sy[xg?0:1]),this.writeInt32(t+4,Sy[xg?1:0])}getBufferIdentifier(){if(this.bytes_.length<this.position_+Wp+Rf)throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier.");let t="";for(let s=0;s<Rf;s++)t+=String.fromCharCode(this.readInt8(this.position_+Wp+s));return t}__offset(t,s){let i=t-this.readInt32(t);return s<this.readInt16(i)?this.readInt16(i+s):0}__union(t,s){return t.bb_pos=s+this.readInt32(s),t.bb=this,t}__string(t,s){t+=this.readInt32(t);let i=this.readInt32(t);t+=Wp;let n=this.bytes_.subarray(t,t+i);return s===i0.UTF8_BYTES?n:this.text_decoder_.decode(n)}__union_with_string(t,s){return typeof t=="string"?this.__string(s):this.__union(t,s)}__indirect(t){return t+this.readInt32(t)}__vector(t){return t+this.readInt32(t)+Wp}__vector_len(t){return this.readInt32(t+this.readInt32(t))}__has_identifier(t){if(t.length!=Rf)throw new Error("FlatBuffers: file identifier must be length "+Rf);for(let s=0;s<Rf;s++)if(t.charCodeAt(s)!=this.readInt8(this.position()+Wp+s))return!1;return!0}createScalarList(t,s){let i=[];for(let n=0;n<s;++n){let c=t(n);c!==null&&i.push(c)}return i}createObjList(t,s){let i=[];for(let n=0;n<s;++n){let c=t(n);c!==null&&i.push(c.unpack())}return i}},vL=class e{constructor(t){this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1,this.string_maps=null,this.text_encoder=new TextEncoder;let s;t?s=t:s=1024,this.bb=JS.allocate(s),this.space=s}clear(){this.bb.clear(),this.space=this.bb.capacity(),this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1,this.string_maps=null}forceDefaults(t){this.force_defaults=t}dataBuffer(){return this.bb}asUint8Array(){return this.bb.bytes().subarray(this.bb.position(),this.bb.position()+this.offset())}prep(t,s){t>this.minalign&&(this.minalign=t);let i=~(this.bb.capacity()-this.space+s)+1&t-1;for(;this.space<i+t+s;){let n=this.bb.capacity();this.bb=e.growByteBuffer(this.bb),this.space+=this.bb.capacity()-n}this.pad(i)}pad(t){for(let s=0;s<t;s++)this.bb.writeInt8(--this.space,0)}writeInt8(t){this.bb.writeInt8(this.space-=1,t)}writeInt16(t){this.bb.writeInt16(this.space-=2,t)}writeInt32(t){this.bb.writeInt32(this.space-=4,t)}writeInt64(t){this.bb.writeInt64(this.space-=8,t)}writeFloat32(t){this.bb.writeFloat32(this.space-=4,t)}writeFloat64(t){this.bb.writeFloat64(this.space-=8,t)}addInt8(t){this.prep(1,0),this.writeInt8(t)}addInt16(t){this.prep(2,0),this.writeInt16(t)}addInt32(t){this.prep(4,0),this.writeInt32(t)}addInt64(t){this.prep(8,0),this.writeInt64(t)}addFloat32(t){this.prep(4,0),this.writeFloat32(t)}addFloat64(t){this.prep(8,0),this.writeFloat64(t)}addFieldInt8(t,s,i){(this.force_defaults||s!=i)&&(this.addInt8(s),this.slot(t))}addFieldInt16(t,s,i){(this.force_defaults||s!=i)&&(this.addInt16(s),this.slot(t))}addFieldInt32(t,s,i){(this.force_defaults||s!=i)&&(this.addInt32(s),this.slot(t))}addFieldInt64(t,s,i){(this.force_defaults||s!==i)&&(this.addInt64(s),this.slot(t))}addFieldFloat32(t,s,i){(this.force_defaults||s!=i)&&(this.addFloat32(s),this.slot(t))}addFieldFloat64(t,s,i){(this.force_defaults||s!=i)&&(this.addFloat64(s),this.slot(t))}addFieldOffset(t,s,i){(this.force_defaults||s!=i)&&(this.addOffset(s),this.slot(t))}addFieldStruct(t,s,i){s!=i&&(this.nested(s),this.slot(t))}nested(t){if(t!=this.offset())throw new TypeError("FlatBuffers: struct must be serialized inline.")}notNested(){if(this.isNested)throw new TypeError("FlatBuffers: object serialization must not be nested.")}slot(t){this.vtable!==null&&(this.vtable[t]=this.offset())}offset(){return this.bb.capacity()-this.space}static growByteBuffer(t){let s=t.capacity();if(s&3221225472)throw new Error("FlatBuffers: cannot grow buffer beyond 2 gigabytes.");let i=s<<1,n=JS.allocate(i);return n.setPosition(i-s),n.bytes().set(t.bytes(),i-s),n}addOffset(t){this.prep(Wp,0),this.writeInt32(this.offset()-t+Wp)}startObject(t){this.notNested(),this.vtable==null&&(this.vtable=[]),this.vtable_in_use=t;for(let s=0;s<t;s++)this.vtable[s]=0;this.isNested=!0,this.object_start=this.offset()}endObject(){if(this.vtable==null||!this.isNested)throw new Error("FlatBuffers: endObject called without startObject");this.addInt32(0);let t=this.offset(),s=this.vtable_in_use-1;for(;s>=0&&this.vtable[s]==0;s--);let i=s+1;for(;s>=0;s--)this.addInt16(this.vtable[s]!=0?t-this.vtable[s]:0);let n=2;this.addInt16(t-this.object_start);let c=(i+n)*pM;this.addInt16(c);let u=0,I=this.space;t:for(s=0;s<this.vtables.length;s++){let D=this.bb.capacity()-this.vtables[s];if(c==this.bb.readInt16(D)){for(let g=pM;g<c;g+=pM)if(this.bb.readInt16(I+g)!=this.bb.readInt16(D+g))continue t;u=this.vtables[s];break}}return u?(this.space=this.bb.capacity()-t,this.bb.writeInt32(this.space,u-t)):(this.vtables.push(this.offset()),this.bb.writeInt32(this.bb.capacity()-t,this.offset()-t)),this.isNested=!1,t}finish(t,s,i){let n=i?No:0;if(s){let c=s;if(this.prep(this.minalign,Wp+Rf+n),c.length!=Rf)throw new TypeError("FlatBuffers: file identifier must be length "+Rf);for(let u=Rf-1;u>=0;u--)this.writeInt8(c.charCodeAt(u))}this.prep(this.minalign,Wp+n),this.addOffset(t),n&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)}finishSizePrefixed(t,s){this.finish(t,s,!0)}requiredField(t,s){let i=this.bb.capacity()-t,n=i-this.bb.readInt32(i);if(!(s<this.bb.readInt16(n)&&this.bb.readInt16(n+s)!=0))throw new TypeError("FlatBuffers: field "+s+" must be set")}startVector(t,s,i){this.notNested(),this.vector_num_elems=s,this.prep(Wp,t*s),this.prep(i,t*s)}endVector(){return this.writeInt32(this.vector_num_elems),this.offset()}createSharedString(t){if(!t)return 0;if(this.string_maps||(this.string_maps=new Map),this.string_maps.has(t))return this.string_maps.get(t);let s=this.createString(t);return this.string_maps.set(t,s),s}createString(t){if(t==null)return 0;let s;return t instanceof Uint8Array?s=t:s=this.text_encoder.encode(t),this.addInt8(0),this.startVector(1,s.length,1),this.bb.setPosition(this.space-=s.length),this.bb.bytes().set(s,this.space),this.endVector()}createByteVector(t){return t==null?0:(this.startVector(1,t.length,1),this.bb.setPosition(this.space-=t.length),this.bb.bytes().set(t,this.space),this.endVector())}createObjectOffset(t){return t===null?0:typeof t=="string"?this.createString(t):t.pack(this)}createObjectOffsetList(t){let s=[];for(let i=0;i<t.length;++i){let n=t[i];if(n!==null)s.push(this.createObjectOffset(n));else throw new TypeError("FlatBuffers: Argument for createObjectOffsetList cannot contain null.")}return s}createStructOffsetList(t,s){return s(this,t.length),this.createObjectOffsetList(t.slice().reverse()),this.endVector()}},Mb=0,C8=1,b8=2,RC=2,EM=1.25,SC=1,Fc=32,nr=Fc/4,Ub=65535,iL=Math.pow(2,-24),P1=Symbol("SKIP_GENERATION"),Cb={strategy:Mb,maxDepth:40,maxLeafSize:10,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,indirect:!1,verbose:!0,range:null,[P1]:!1};function Li(e,t,s){return s.min.x=t[e],s.min.y=t[e+1],s.min.z=t[e+2],s.max.x=t[e+3],s.max.y=t[e+4],s.max.z=t[e+5],s}function NC(e){let t=-1,s=-1/0;for(let i=0;i<3;i++){let n=e[i+3]-e[i];n>s&&(s=n,t=i)}return t}function AC(e,t){t.set(e)}function DC(e,t,s){let i,n;for(let c=0;c<3;c++){let u=c+3;i=e[c],n=t[c],s[c]=i<n?i:n,i=e[u],n=t[u],s[u]=i>n?i:n}}function Pg(e,t,s){for(let i=0;i<3;i++){let n=t[e+2*i],c=t[e+2*i+1],u=n-c,I=n+c;u<s[i]&&(s[i]=u),I>s[i+3]&&(s[i+3]=I)}}function Mv(e){let t=e[3]-e[0],s=e[4]-e[1],i=e[5]-e[2];return 2*(t*s+s*i+i*t)}function rr(e,t){return t[e+15]===Ub}function Vc(e,t){return t[e+6]}function Ra(e,t){return t[e+14]}function xr(e){return e+nr}function Pr(e,t){let s=t[e+6];return e+s*nr}function M1(e,t){return t[e+7]}function fM(e,t,s,i,n){let c=1/0,u=1/0,I=1/0,D=-1/0,g=-1/0,U=-1/0,F=1/0,V=1/0,H=1/0,z=-1/0,j=-1/0,Q=-1/0,Z=e.offset||0;for(let X=(t-Z)*6,$=(t+s-Z)*6;X<$;X+=6){let q=e[X+0],tt=e[X+1],at=q-tt,nt=q+tt;at<c&&(c=at),nt>D&&(D=nt),q<F&&(F=q),q>z&&(z=q);let ht=e[X+2],ut=e[X+3],ot=ht-ut,pt=ht+ut;ot<u&&(u=ot),pt>g&&(g=pt),ht<V&&(V=ht),ht>j&&(j=ht);let Et=e[X+4],dt=e[X+5],Dt=Et-dt,Ut=Et+dt;Dt<I&&(I=Dt),Ut>U&&(U=Ut),Et<H&&(H=Et),Et>Q&&(Q=Et)}i[0]=c,i[1]=u,i[2]=I,i[3]=D,i[4]=g,i[5]=U,n[0]=F,n[1]=V,n[2]=H,n[3]=z,n[4]=j,n[5]=Q}var ff=32,w8=(e,t)=>e.candidate-t.candidate,yy=new Array(ff).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),Mg=new Float32Array(6);function B8(e,t,s,i,n,c){let u=-1,I=0;if(c===Mb)u=NC(t),u!==-1&&(I=(t[u]+t[u+3])/2);else if(c===C8)u=NC(e),u!==-1&&(I=G8(s,i,n,u));else if(c===b8){let D=Mv(e),g=EM*n,U=s.offset||0,F=(i-U)*6,V=(i+n-U)*6;for(let H=0;H<3;H++){let z=t[H],Z=(t[H+3]-z)/ff;if(n<ff/4){let X=[...yy];X.length=n;let $=0;for(let tt=F;tt<V;tt+=6,$++){let at=X[$];at.candidate=s[tt+2*H],at.count=0;let{bounds:nt,leftCacheBounds:ht,rightCacheBounds:ut}=at;for(let ot=0;ot<3;ot++)ut[ot]=1/0,ut[ot+3]=-1/0,ht[ot]=1/0,ht[ot+3]=-1/0,nt[ot]=1/0,nt[ot+3]=-1/0;Pg(tt,s,nt)}X.sort(w8);let q=n;for(let tt=0;tt<q;tt++){let at=X[tt];for(;tt+1<q&&X[tt+1].candidate===at.candidate;)X.splice(tt+1,1),q--}for(let tt=F;tt<V;tt+=6){let at=s[tt+2*H];for(let nt=0;nt<q;nt++){let ht=X[nt];at>=ht.candidate?Pg(tt,s,ht.rightCacheBounds):(Pg(tt,s,ht.leftCacheBounds),ht.count++)}}for(let tt=0;tt<q;tt++){let at=X[tt],nt=at.count,ht=n-at.count,ut=at.leftCacheBounds,ot=at.rightCacheBounds,pt=0;nt!==0&&(pt=Mv(ut)/D);let Et=0;ht!==0&&(Et=Mv(ot)/D);let dt=SC+EM*(pt*nt+Et*ht);dt<g&&(u=H,g=dt,I=at.candidate)}}else{for(let q=0;q<ff;q++){let tt=yy[q];tt.count=0,tt.candidate=z+Z+q*Z;let at=tt.bounds;for(let nt=0;nt<3;nt++)at[nt]=1/0,at[nt+3]=-1/0}for(let q=F;q<V;q+=6){let nt=~~((s[q+2*H]-z)/Z);nt>=ff&&(nt=ff-1);let ht=yy[nt];ht.count++,Pg(q,s,ht.bounds)}let X=yy[ff-1];AC(X.bounds,X.rightCacheBounds);for(let q=ff-2;q>=0;q--){let tt=yy[q],at=yy[q+1];DC(tt.bounds,at.rightCacheBounds,tt.rightCacheBounds)}let $=0;for(let q=0;q<ff-1;q++){let tt=yy[q],at=tt.count,nt=tt.bounds,ut=yy[q+1].rightCacheBounds;at!==0&&($===0?AC(nt,Mg):DC(nt,Mg,Mg)),$+=at;let ot=0,pt=0;$!==0&&(ot=Mv(Mg)/D);let Et=n-$;Et!==0&&(pt=Mv(ut)/D);let dt=SC+EM*(ot*$+pt*Et);dt<g&&(u=H,g=dt,I=tt.candidate)}}}}else console.warn(`BVH: Invalid build strategy value ${c} used.`);return{axis:u,pos:I}}function G8(e,t,s,i){let n=0,c=e.offset;for(let u=t,I=t+s;u<I;u++)n+=e[(u-c)*6+i*2];return n/s}var s_=class{constructor(){this.boundingData=new Float32Array(6)}};function F8(e,t,s,i,n,c){let u=i,I=i+n-1,D=c.pos,g=c.axis*2,U=s.offset||0;for(;;){for(;u<=I&&s[(u-U)*6+g]<D;)u++;for(;u<=I&&s[(I-U)*6+g]>=D;)I--;if(u<I){for(let F=0;F<t;F++){let V=e[u*t+F];e[u*t+F]=e[I*t+F],e[I*t+F]=V}for(let F=0;F<6;F++){let V=u-U,H=I-U,z=s[V*6+F];s[V*6+F]=s[H*6+F],s[H*6+F]=z}u++,I--}else return u}}var bb,nL,n0,wb,V8=Math.pow(2,32);function r0(e){return"count"in e?1:1+r0(e.left)+r0(e.right)}function H8(e,t,s){return bb=new Float32Array(s),nL=new Uint32Array(s),n0=new Uint16Array(s),wb=new Uint8Array(s),c0(e,t)}function c0(e,t){let s=e/4,i=e/2,n="count"in t,c=t.boundingData;for(let u=0;u<6;u++)bb[s+u]=c[u];if(n)return t.buffer?(wb.set(new Uint8Array(t.buffer),e),e+t.buffer.byteLength):(nL[s+6]=t.offset,n0[i+14]=t.count,n0[i+15]=Ub,e+Fc);{let{left:u,right:I,splitAxis:D}=t,g=e+Fc,U=c0(g,u),F=e/Fc,H=U/Fc-F;if(H>V8)throw new Error("MeshBVH: Cannot store relative child node offset greater than 32 bits.");return nL[s+6]=H,nL[s+7]=D,c0(U,I)}}function W8(e,t,s,i,n,c){let{maxDepth:u,verbose:I,maxLeafSize:D,strategy:g,onProgress:U}=n,F=e.primitiveBuffer,V=e.primitiveBufferStride,H=new Float32Array(6),z=!1,j=new s_;return fM(t,s,i,j.boundingData,H),Z(j,s,i,H),j;function Q(X){U&&U((X-c.offset)/c.count)}function Z(X,$,q,tt=null,at=0){if(!z&&at>=u&&(z=!0,I&&console.warn(`BVH: Max depth of ${u} reached when generating BVH. Consider increasing maxDepth.`)),q<=D||at>=u)return Q($+q),X.offset=$,X.count=q,X;let nt=B8(X.boundingData,tt,t,$,q,g);if(nt.axis===-1)return Q($+q),X.offset=$,X.count=q,X;let ht=F8(F,V,t,$,q,nt);if(ht===$||ht===$+q)Q($+q),X.offset=$,X.count=q;else{X.splitAxis=nt.axis;let ut=new s_,ot=$,pt=ht-$;X.left=ut,fM(t,ot,pt,ut.boundingData,H),Z(ut,ot,pt,H,at+1);let Et=new s_,dt=ht,Dt=q-pt;X.right=Et,fM(t,dt,Dt,Et.boundingData,H),Z(Et,dt,Dt,H,at+1)}return X}}function z8(e,t){let s=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,i=e.getRootRanges(t.range),n=i[0],c=i[i.length-1],u={offset:n.offset,count:c.offset+c.count-n.offset},I=new Float32Array(6*u.count);I.offset=u.offset,e.computePrimitiveBounds(u.offset,u.count,I),e._roots=i.map(D=>{let g=W8(e,I,D.offset,D.count,t,u),U=r0(g),F=new s(Fc*U);return H8(0,g,F),F})}var d_=class{constructor(t){this._getNewPrimitive=t,this._primitives=[]}getPrimitive(){let t=this._primitives;return t.length===0?this._getNewPrimitive():t.pop()}releasePrimitive(t){this._primitives.push(t)}},a0=class{constructor(){this.float32Array=null,this.uint16Array=null,this.uint32Array=null;let t=[],s=null;this.setBuffer=i=>{s&&t.push(s),s=i,this.float32Array=new Float32Array(i),this.uint16Array=new Uint16Array(i),this.uint32Array=new Uint32Array(i)},this.clearBuffer=()=>{s=null,this.float32Array=null,this.uint16Array=null,this.uint32Array=null,t.length!==0&&this.setBuffer(t.pop())}}},Fs=new a0,gy,GS,AS=[],Ug=new d_(()=>new rs);function Y8(e,t,s,i,n,c){gy=Ug.getPrimitive(),GS=Ug.getPrimitive(),AS.push(gy,GS),Fs.setBuffer(e._roots[t]);let u=o0(0,e.geometry,s,i,n,c);Fs.clearBuffer(),Ug.releasePrimitive(gy),Ug.releasePrimitive(GS),AS.pop(),AS.pop();let I=AS.length;return I>0&&(GS=AS[I-1],gy=AS[I-2]),u}function o0(e,t,s,i,n=null,c=0,u=0){let{float32Array:I,uint16Array:D,uint32Array:g}=Fs,U=e*2;if(rr(U,D)){let V=Vc(e,g),H=Ra(U,D);return Li(e,I,gy),i(V,H,!1,u,c+e/nr,gy)}else{let V=function(Et){let{uint16Array:dt,uint32Array:Dt}=Fs,Ut=Et*2;for(;!rr(Ut,dt);)Et=xr(Et),Ut=Et*2;return Vc(Et,Dt)},H=function(Et){let{uint16Array:dt,uint32Array:Dt}=Fs,Ut=Et*2;for(;!rr(Ut,dt);)Et=Pr(Et,Dt),Ut=Et*2;return Vc(Et,Dt)+Ra(Ut,dt)},z=xr(e),j=Pr(e,g),Q=z,Z=j,X,$,q,tt;if(n&&(q=gy,tt=GS,Li(Q,I,q),Li(Z,I,tt),X=n(q),$=n(tt),$<X)){Q=j,Z=z;let Et=X;X=$,$=Et,q=tt}q||(q=gy,Li(Q,I,q));let at=rr(Q*2,D),nt=s(q,at,X,u+1,c+Q/nr),ht;if(nt===RC){let Et=V(Q),Dt=H(Q)-Et;ht=i(Et,Dt,!0,u+1,c+Q/nr,q)}else ht=nt&&o0(Q,t,s,i,n,c,u+1);if(ht)return!0;tt=GS,Li(Z,I,tt);let ut=rr(Z*2,D),ot=s(tt,ut,$,u+1,c+Z/nr),pt;if(ot===RC){let Et=V(Z),Dt=H(Z)-Et;pt=i(Et,Dt,!0,u+1,c+Z/nr,tt)}else pt=ot&&o0(Z,t,s,i,n,c,u+1);return!!pt}}var i_=new Fs.constructor,_L=new Fs.constructor,Ny=new d_(()=>new rs),DS=new rs,OS=new rs,IM=new rs,yM=new rs,TM=!1;function k8(e,t,s,i){if(TM)throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");TM=!0;let n=e._roots,c=t._roots,u,I=0,D=0,g=new Ee().copy(s).invert();for(let U=0,F=n.length;U<F;U++){i_.setBuffer(n[U]),D=0;let V=Ny.getPrimitive();Li(0,i_.float32Array,V),V.applyMatrix4(g);for(let H=0,z=c.length;H<z&&(_L.setBuffer(c[H]),u=ou(0,0,s,g,i,I,D,0,0,V),_L.clearBuffer(),D+=c[H].byteLength/Fc,!u);H++);if(Ny.releasePrimitive(V),i_.clearBuffer(),I+=n[U].byteLength/Fc,u)break}return TM=!1,u}function ou(e,t,s,i,n,c=0,u=0,I=0,D=0,g=null,U=!1){let F,V;U?(F=_L,V=i_):(F=i_,V=_L);let H=F.float32Array,z=F.uint32Array,j=F.uint16Array,Q=V.float32Array,Z=V.uint32Array,X=V.uint16Array,$=e*2,q=t*2,tt=rr($,j),at=rr(q,X),nt=!1;if(at&&tt)U?nt=n(Vc(t,Z),Ra(t*2,X),Vc(e,z),Ra(e*2,j),D,u+t/nr,I,c+e/nr):nt=n(Vc(e,z),Ra(e*2,j),Vc(t,Z),Ra(t*2,X),I,c+e/nr,D,u+t/nr);else if(at){let ht=Ny.getPrimitive();Li(t,Q,ht),ht.applyMatrix4(s);let ut=xr(e),ot=Pr(e,z);Li(ut,H,DS),Li(ot,H,OS);let pt=ht.intersectsBox(DS),Et=ht.intersectsBox(OS);nt=pt&&ou(t,ut,i,s,n,u,c,D,I+1,ht,!U)||Et&&ou(t,ot,i,s,n,u,c,D,I+1,ht,!U),Ny.releasePrimitive(ht)}else{let ht=xr(t),ut=Pr(t,Z);Li(ht,Q,IM),Li(ut,Q,yM);let ot=g.intersectsBox(IM),pt=g.intersectsBox(yM);if(ot&&pt)nt=ou(e,ht,s,i,n,c,u,I,D+1,g,U)||ou(e,ut,s,i,n,c,u,I,D+1,g,U);else if(ot)if(tt)nt=ou(e,ht,s,i,n,c,u,I,D+1,g,U);else{let Et=Ny.getPrimitive();Et.copy(IM).applyMatrix4(s);let dt=xr(e),Dt=Pr(e,z);Li(dt,H,DS),Li(Dt,H,OS);let Ut=Et.intersectsBox(DS),Xt=Et.intersectsBox(OS);nt=Ut&&ou(ht,dt,i,s,n,u,c,D,I+1,Et,!U)||Xt&&ou(ht,Dt,i,s,n,u,c,D,I+1,Et,!U),Ny.releasePrimitive(Et)}else if(pt)if(tt)nt=ou(e,ut,s,i,n,c,u,I,D+1,g,U);else{let Et=Ny.getPrimitive();Et.copy(yM).applyMatrix4(s);let dt=xr(e),Dt=Pr(e,z);Li(dt,H,DS),Li(Dt,H,OS);let Ut=Et.intersectsBox(DS),Xt=Et.intersectsBox(OS);nt=Ut&&ou(ut,dt,i,s,n,u,c,D,I+1,Et,!U)||Xt&&ou(ut,Dt,i,s,n,u,c,D,I+1,Et,!U),Ny.releasePrimitive(Et)}}return nt}var OC=new rs,vS=new Float32Array(6),h0=class{constructor(){this._roots=null,this.primitiveBuffer=null,this.primitiveBufferStride=null}init(t){t={...Cb,...t},z8(this,t)}getRootRanges(){throw new Error("BVH: getRootRanges() not implemented")}writePrimitiveBounds(){throw new Error("BVH: writePrimitiveBounds() not implemented")}writePrimitiveRangeBounds(t,s,i,n){let c=1/0,u=1/0,I=1/0,D=-1/0,g=-1/0,U=-1/0;for(let F=t,V=t+s;F<V;F++){this.writePrimitiveBounds(F,vS,0);let[H,z,j,Q,Z,X]=vS;H<c&&(c=H),Q>D&&(D=Q),z<u&&(u=z),Z>g&&(g=Z),j<I&&(I=j),X>U&&(U=X)}return i[n+0]=c,i[n+1]=u,i[n+2]=I,i[n+3]=D,i[n+4]=g,i[n+5]=U,i}computePrimitiveBounds(t,s,i){let n=i.offset||0;for(let c=t,u=t+s;c<u;c++){this.writePrimitiveBounds(c,vS,0);let[I,D,g,U,F,V]=vS,H=(I+U)/2,z=(D+F)/2,j=(g+V)/2,Q=(U-I)/2,Z=(F-D)/2,X=(V-g)/2,$=(c-n)*6;i[$+0]=H,i[$+1]=Q+(Math.abs(H)+Q)*iL,i[$+2]=z,i[$+3]=Z+(Math.abs(z)+Z)*iL,i[$+4]=j,i[$+5]=X+(Math.abs(j)+X)*iL}return i}shiftPrimitiveOffsets(t){let s=this._indirectBuffer;if(s)for(let i=0,n=s.length;i<n;i++)s[i]+=t;else{let i=this._roots;for(let n=0;n<i.length;n++){let c=i[n],u=new Uint32Array(c),I=new Uint16Array(c),D=c.byteLength/Fc;for(let g=0;g<D;g++){let U=nr*g,F=2*U;rr(F,I)&&(u[U+6]+=t)}}}}traverse(t,s=0){let i=this._roots[s],n=new Uint32Array(i),c=new Uint16Array(i);u(0);function u(I,D=0){let g=I*2,U=rr(g,c);if(U){let F=n[I+6],V=c[g+14];t(D,U,new Float32Array(i,I*4,6),F,V)}else{let F=xr(I),V=Pr(I,n),H=M1(I,n);t(D,U,new Float32Array(i,I*4,6),H)||(u(F,D+1),u(V,D+1))}}}refit(){let t=this._roots;for(let s=0,i=t.length;s<i;s++){let n=t[s],c=new Uint32Array(n),u=new Uint16Array(n),I=new Float32Array(n),D=n.byteLength/Fc;for(let g=D-1;g>=0;g--){let U=g*nr,F=U*2;if(rr(F,u)){let H=Vc(U,c),z=Ra(F,u);this.writePrimitiveRangeBounds(H,z,vS,0),I.set(vS,U)}else{let H=xr(U),z=Pr(U,c);for(let j=0;j<3;j++){let Q=I[H+j],Z=I[H+j+3],X=I[z+j],$=I[z+j+3];I[U+j]=Q<X?Q:X,I[U+j+3]=Z>$?Z:$}}}}}getBoundingBox(t){return t.makeEmpty(),this._roots.forEach(i=>{Li(0,new Float32Array(i),OC),t.union(OC)}),t}shapecast(t){let{boundsTraverseOrder:s,intersectsBounds:i,intersectsRange:n,intersectsPrimitive:c,scratchPrimitive:u,iterate:I}=t;if(n&&c){let F=n;n=(V,H,z,j,Q)=>F(V,H,z,j,Q)?!0:I(V,H,this,c,z,j,u)}else n||(c?n=(F,V,H,z)=>I(F,V,this,c,H,z,u):n=(F,V,H)=>H);let D=!1,g=0,U=this._roots;for(let F=0,V=U.length;F<V;F++){let H=U[F];if(D=Y8(this,F,i,n,s,g),D)break;g+=H.byteLength/Fc}return D}bvhcast(t,s,i){let{intersectsRanges:n}=i;return k8(this,t,s,n)}};function K8(){return typeof SharedArrayBuffer<"u"}function U1(e){return e.index?e.index.count:e.attributes.position.count}function HL(e){return U1(e)/3}function Z8(e,t=ArrayBuffer){return e>65535?new Uint32Array(new t(4*e)):new Uint16Array(new t(2*e))}function q8(e,t){if(!e.index){let s=e.attributes.position.count,i=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,n=Z8(s,i);e.setIndex(new Sa(n,1));for(let c=0;c<s;c++)n[c]=c}}function j8(e,t,s){let i=U1(e)/s,n=t||e.drawRange,c=n.start/s,u=(n.start+n.count)/s,I=Math.max(0,c),D=Math.min(i,u)-I;return{offset:Math.floor(I),count:Math.floor(D)}}function Q8(e,t){return e.groups.map(s=>({offset:s.start/t,count:s.count/t}))}function vC(e,t,s){let i=j8(e,t,s),n=Q8(e,s);if(!n.length)return[i];let c=[],u=i.offset,I=i.offset+i.count,D=U1(e)/s,g=[];for(let V of n){let{offset:H,count:z}=V,j=H,Q=isFinite(z)?z:D-H,Z=H+Q;j<I&&Z>u&&(g.push({pos:Math.max(u,j),isStart:!0}),g.push({pos:Math.min(I,Z),isStart:!1}))}g.sort((V,H)=>V.pos!==H.pos?V.pos-H.pos:V.type==="end"?-1:1);let U=0,F=null;for(let V of g){let H=V.pos;U!==0&&H!==F&&c.push({offset:F,count:H-F}),U+=V.isStart?1:-1,F=H}return c}function $8(e,t){let s=e[e.length-1],i=s.offset+s.count>2**16,n=e.reduce((g,U)=>g+U.count,0),c=i?4:2,u=t?new SharedArrayBuffer(n*c):new ArrayBuffer(n*c),I=i?new Uint32Array(u):new Uint16Array(u),D=0;for(let g=0;g<e.length;g++){let{offset:U,count:F}=e[g];for(let V=0;V<F;V++)I[D+V]=U+V;D+=F}return I}var l0=class extends h0{get indirect(){return!!this._indirectBuffer}get primitiveStride(){return null}get primitiveBufferStride(){return this.indirect?1:this.primitiveStride}set primitiveBufferStride(t){}get primitiveBuffer(){return this.indirect?this._indirectBuffer:this.geometry.index.array}set primitiveBuffer(t){}constructor(t,s={}){if(t.isBufferGeometry){if(t.index&&t.index.isInterleavedBufferAttribute)throw new Error("BVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("BVH: Only BufferGeometries are supported.");if(s.useSharedArrayBuffer&&!K8())throw new Error("BVH: SharedArrayBuffer is not available.");super(),this.geometry=t,this.resolvePrimitiveIndex=s.indirect?i=>this._indirectBuffer[i]:i=>i,this.primitiveBuffer=null,this.primitiveBufferStride=null,this._indirectBuffer=null,s={...Cb,...s},s[P1]||this.init(s)}init(t){let{geometry:s,primitiveStride:i}=this;if(t.indirect){let n=vC(s,t.range,i),c=$8(n,t.useSharedArrayBuffer);this._indirectBuffer=c}else q8(s,t);super.init(t),!s.boundingBox&&t.setBoundingBox&&(s.boundingBox=this.getBoundingBox(new rs))}getRootRanges(t){return this.indirect?[{offset:0,count:this._indirectBuffer.length}]:vC(this.geometry,t,this.primitiveStride)}raycastObject3D(){throw new Error("BVH: raycastObject3D() not implemented")}},pu=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(t,s){let i=1/0,n=-1/0;for(let c=0,u=t.length;c<u;c++){let D=t[c][s];i=D<i?D:i,n=D>n?D:n}this.min=i,this.max=n}setFromPoints(t,s){let i=1/0,n=-1/0;for(let c=0,u=s.length;c<u;c++){let I=s[c],D=t.dot(I);i=D<i?D:i,n=D>n?D:n}this.min=i,this.max=n}isSeparated(t){return this.min>t.max||t.min>this.max}};pu.prototype.setFromBox=(function(){let e=new it;return function(s,i){let n=i.min,c=i.max,u=1/0,I=-1/0;for(let D=0;D<=1;D++)for(let g=0;g<=1;g++)for(let U=0;U<=1;U++){e.x=n.x*D+c.x*(1-D),e.y=n.y*g+c.y*(1-g),e.z=n.z*U+c.z*(1-U);let F=s.dot(e);u=Math.min(F,u),I=Math.max(F,I)}this.min=u,this.max=I}})();var J8=(function(){let e=new it,t=new it,s=new it;return function(n,c,u){let I=n.start,D=e,g=c.start,U=t;s.subVectors(I,g),e.subVectors(n.end,n.start),t.subVectors(c.end,c.start);let F=s.dot(U),V=U.dot(D),H=U.dot(U),z=s.dot(D),Q=D.dot(D)*H-V*V,Z,X;Q!==0?Z=(F*V-z*H)/Q:Z=0,X=(F+Z*V)/H,u.x=Z,u.y=X}})(),C1=(function(){let e=new vn,t=new it,s=new it;return function(n,c,u,I){J8(n,c,e);let D=e.x,g=e.y;if(D>=0&&D<=1&&g>=0&&g<=1){n.at(D,u),c.at(g,I);return}else if(D>=0&&D<=1){g<0?c.at(0,I):c.at(1,I),n.closestPointToPoint(I,!0,u);return}else if(g>=0&&g<=1){D<0?n.at(0,u):n.at(1,u),c.closestPointToPoint(u,!0,I);return}else{let U;D<0?U=n.start:U=n.end;let F;g<0?F=c.start:F=c.end;let V=t,H=s;if(n.closestPointToPoint(F,!0,t),c.closestPointToPoint(U,!0,s),V.distanceToSquared(F)<=H.distanceToSquared(U)){u.copy(V),I.copy(F);return}else{u.copy(U),I.copy(H);return}}}})(),X8=(function(){let e=new it,t=new it,s=new cc,i=new So;return function(c,u){let{radius:I,center:D}=c,{a:g,b:U,c:F}=u;if(i.start=g,i.end=U,i.closestPointToPoint(D,!0,e).distanceTo(D)<=I||(i.start=g,i.end=F,i.closestPointToPoint(D,!0,e).distanceTo(D)<=I)||(i.start=U,i.end=F,i.closestPointToPoint(D,!0,e).distanceTo(D)<=I))return!0;let j=u.getPlane(s);if(Math.abs(j.distanceToPoint(D))<=I){let Z=j.projectPoint(D,t);if(u.containsPoint(Z))return!0}return!1}})(),t7=["x","y","z"],df=1e-15,_C=df*df;function al(e){return Math.abs(e)<df}var Th=class extends ya{constructor(...t){super(...t),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new it),this.satBounds=new Array(4).fill().map(()=>new pu),this.points=[this.a,this.b,this.c],this.plane=new cc,this.isDegenerateIntoSegment=!1,this.isDegenerateIntoPoint=!1,this.degenerateSegment=new So,this.needsUpdate=!0}intersectsSphere(t){return X8(t,this)}update(){let t=this.a,s=this.b,i=this.c,n=this.points,c=this.satAxes,u=this.satBounds,I=c[0],D=u[0];this.getNormal(I),D.setFromPoints(I,n);let g=c[1],U=u[1];g.subVectors(t,s),U.setFromPoints(g,n);let F=c[2],V=u[2];F.subVectors(s,i),V.setFromPoints(F,n);let H=c[3],z=u[3];H.subVectors(i,t),z.setFromPoints(H,n);let j=g.length(),Q=F.length(),Z=H.length();this.isDegenerateIntoPoint=!1,this.isDegenerateIntoSegment=!1,j<df?Q<df||Z<df?this.isDegenerateIntoPoint=!0:(this.isDegenerateIntoSegment=!0,this.degenerateSegment.start.copy(t),this.degenerateSegment.end.copy(i)):Q<df?Z<df?this.isDegenerateIntoPoint=!0:(this.isDegenerateIntoSegment=!0,this.degenerateSegment.start.copy(s),this.degenerateSegment.end.copy(t)):Z<df&&(this.isDegenerateIntoSegment=!0,this.degenerateSegment.start.copy(i),this.degenerateSegment.end.copy(s)),this.plane.setFromNormalAndCoplanarPoint(I,t),this.needsUpdate=!1}};Th.prototype.closestPointToSegment=(function(){let e=new it,t=new it,s=new So;return function(n,c=null,u=null){let{start:I,end:D}=n,g=this.points,U,F=1/0;for(let V=0;V<3;V++){let H=(V+1)%3;s.start.copy(g[V]),s.end.copy(g[H]),C1(s,n,e,t),U=e.distanceToSquared(t),U<F&&(F=U,c&&c.copy(e),u&&u.copy(t))}return this.closestPointToPoint(I,e),U=I.distanceToSquared(e),U<F&&(F=U,c&&c.copy(e),u&&u.copy(I)),this.closestPointToPoint(D,e),U=D.distanceToSquared(e),U<F&&(F=U,c&&c.copy(e),u&&u.copy(D)),Math.sqrt(F)}})();Th.prototype.intersectsTriangle=(function(){let e=new Th,t=new pu,s=new pu,i=new it,n=new it,c=new it,u=new it,I=new So,D=new So,g=new it,U=new vn,F=new vn;function V($,q,tt,at){let nt=i;!$.isDegenerateIntoPoint&&!$.isDegenerateIntoSegment?nt.copy($.plane.normal):nt.copy(q.plane.normal);let ht=$.satBounds,ut=$.satAxes;for(let Et=1;Et<4;Et++){let dt=ht[Et],Dt=ut[Et];if(t.setFromPoints(Dt,q.points),dt.isSeparated(t)||(u.copy(nt).cross(Dt),t.setFromPoints(u,$.points),s.setFromPoints(u,q.points),t.isSeparated(s)))return!1}let ot=q.satBounds,pt=q.satAxes;for(let Et=1;Et<4;Et++){let dt=ot[Et],Dt=pt[Et];if(t.setFromPoints(Dt,$.points),dt.isSeparated(t)||(u.crossVectors(nt,Dt),t.setFromPoints(u,$.points),s.setFromPoints(u,q.points),t.isSeparated(s)))return!1}return tt&&(at||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),tt.start.set(0,0,0),tt.end.set(0,0,0)),!0}function H($,q,tt,at,nt,ht,ut,ot,pt,Et,dt){let Dt=ut/(ut-ot);Et.x=at+(nt-at)*Dt,dt.start.subVectors(q,$).multiplyScalar(Dt).add($),Dt=ut/(ut-pt),Et.y=at+(ht-at)*Dt,dt.end.subVectors(tt,$).multiplyScalar(Dt).add($)}function z($,q,tt,at,nt,ht,ut,ot,pt,Et,dt){if(nt>0)H($.c,$.a,$.b,at,q,tt,pt,ut,ot,Et,dt);else if(ht>0)H($.b,$.a,$.c,tt,q,at,ot,ut,pt,Et,dt);else if(ot*pt>0||ut!=0)H($.a,$.b,$.c,q,tt,at,ut,ot,pt,Et,dt);else if(ot!=0)H($.b,$.a,$.c,tt,q,at,ot,ut,pt,Et,dt);else if(pt!=0)H($.c,$.a,$.b,at,q,tt,pt,ut,ot,Et,dt);else return!0;return!1}function j($,q,tt,at){let nt=q.degenerateSegment,ht=$.plane.distanceToPoint(nt.start),ut=$.plane.distanceToPoint(nt.end);return al(ht)?al(ut)?V($,q,tt,at):(tt&&(tt.start.copy(nt.start),tt.end.copy(nt.start)),$.containsPoint(nt.start)):al(ut)?(tt&&(tt.start.copy(nt.end),tt.end.copy(nt.end)),$.containsPoint(nt.end)):$.plane.intersectLine(nt,i)!=null?(tt&&(tt.start.copy(i),tt.end.copy(i)),$.containsPoint(i)):!1}function Q($,q,tt){let at=q.a;return al($.plane.distanceToPoint(at))&&$.containsPoint(at)?(tt&&(tt.start.copy(at),tt.end.copy(at)),!0):!1}function Z($,q,tt){let at=$.degenerateSegment,nt=q.a;return at.closestPointToPoint(nt,!0,i),nt.distanceToSquared(i)<_C?(tt&&(tt.start.copy(nt),tt.end.copy(nt)),!0):!1}function X($,q,tt,at){if($.isDegenerateIntoSegment)if(q.isDegenerateIntoSegment){let nt=$.degenerateSegment,ht=q.degenerateSegment,ut=n,ot=c;nt.delta(ut),ht.delta(ot);let pt=i.subVectors(ht.start,nt.start),Et=ut.x*ot.y-ut.y*ot.x;if(al(Et))return!1;let dt=(pt.x*ot.y-pt.y*ot.x)/Et,Dt=-(ut.x*pt.y-ut.y*pt.x)/Et;if(dt<0||dt>1||Dt<0||Dt>1)return!1;let Ut=nt.start.z+ut.z*dt,Xt=ht.start.z+ot.z*Dt;return al(Ut-Xt)?(tt&&(tt.start.copy(nt.start).addScaledVector(ut,dt),tt.end.copy(nt.start).addScaledVector(ut,dt)),!0):!1}else return q.isDegenerateIntoPoint?Z($,q,tt):j(q,$,tt,at);else{if($.isDegenerateIntoPoint)return q.isDegenerateIntoPoint?q.a.distanceToSquared($.a)<_C?(tt&&(tt.start.copy($.a),tt.end.copy($.a)),!0):!1:q.isDegenerateIntoSegment?Z(q,$,tt):Q(q,$,tt);if(q.isDegenerateIntoPoint)return Q($,q,tt);if(q.isDegenerateIntoSegment)return j($,q,tt,at)}}return function(q,tt=null,at=!1){this.needsUpdate&&this.update(),q.isExtendedTriangle?q.needsUpdate&&q.update():(e.copy(q),e.update(),q=e);let nt=X(this,q,tt,at);if(nt!==void 0)return nt;let ht=this.plane,ut=q.plane,ot=ut.distanceToPoint(this.a),pt=ut.distanceToPoint(this.b),Et=ut.distanceToPoint(this.c);al(ot)&&(ot=0),al(pt)&&(pt=0),al(Et)&&(Et=0);let dt=ot*pt,Dt=ot*Et;if(dt>0&&Dt>0)return!1;let Ut=ht.distanceToPoint(q.a),Xt=ht.distanceToPoint(q.b),Yt=ht.distanceToPoint(q.c);al(Ut)&&(Ut=0),al(Xt)&&(Xt=0),al(Yt)&&(Yt=0);let Jt=Ut*Xt,ve=Ut*Yt;if(Jt>0&&ve>0)return!1;n.copy(ht.normal),c.copy(ut.normal);let Tt=n.cross(c),le=0,fs=Math.abs(Tt.x),Mr=Math.abs(Tt.y);Mr>fs&&(fs=Mr,le=1),Math.abs(Tt.z)>fs&&(le=2);let _s=t7[le],or=this.a[_s],si=this.b[_s],Ur=this.c[_s],hr=q.a[_s],Qi=q.b[_s],$i=q.c[_s];if(z(this,or,si,Ur,dt,Dt,ot,pt,Et,U,I))return V(this,q,tt,at);if(z(q,hr,Qi,$i,Jt,ve,Ut,Xt,Yt,F,D))return V(this,q,tt,at);if(U.y<U.x){let Ii=U.y;U.y=U.x,U.x=Ii,g.copy(I.start),I.start.copy(I.end),I.end.copy(g)}if(F.y<F.x){let Ii=F.y;F.y=F.x,F.x=Ii,g.copy(D.start),D.start.copy(D.end),D.end.copy(g)}return U.y<F.x||F.y<U.x?!1:(tt&&(F.x>U.x?tt.start.copy(D.start):tt.start.copy(I.start),F.y<U.y?tt.end.copy(D.end):tt.end.copy(I.end)),!0)}})();Th.prototype.distanceToPoint=(function(){let e=new it;return function(s){return this.closestPointToPoint(s,e),s.distanceTo(e)}})();Th.prototype.distanceToTriangle=(function(){let e=new it,t=new it,s=["a","b","c"],i=new So,n=new So;return function(u,I=null,D=null){let g=I||D?i:null;if(this.intersectsTriangle(u,g))return(I||D)&&(I&&g.getCenter(I),D&&g.getCenter(D)),0;let U=1/0;for(let F=0;F<3;F++){let V,H=s[F],z=u[H];this.closestPointToPoint(z,e),V=z.distanceToSquared(e),V<U&&(U=V,I&&I.copy(e),D&&D.copy(z));let j=this[H];u.closestPointToPoint(j,e),V=j.distanceToSquared(e),V<U&&(U=V,I&&I.copy(j),D&&D.copy(e))}for(let F=0;F<3;F++){let V=s[F],H=s[(F+1)%3];i.set(this[V],this[H]);for(let z=0;z<3;z++){let j=s[z],Q=s[(z+1)%3];n.set(u[j],u[Q]),C1(i,n,e,t);let Z=e.distanceToSquared(t);Z<U&&(U=Z,I&&I.copy(e),D&&D.copy(t))}}return Math.sqrt(U)}})();var ac=class{constructor(t,s,i){this.isOrientedBox=!0,this.min=new it,this.max=new it,this.matrix=new Ee,this.invMatrix=new Ee,this.points=new Array(8).fill().map(()=>new it),this.satAxes=new Array(3).fill().map(()=>new it),this.satBounds=new Array(3).fill().map(()=>new pu),this.alignedSatBounds=new Array(3).fill().map(()=>new pu),this.needsUpdate=!1,t&&this.min.copy(t),s&&this.max.copy(s),i&&this.matrix.copy(i)}set(t,s,i){this.min.copy(t),this.max.copy(s),this.matrix.copy(i),this.needsUpdate=!0}copy(t){this.min.copy(t.min),this.max.copy(t.max),this.matrix.copy(t.matrix),this.needsUpdate=!0}};ac.prototype.update=(function(){return function(){let t=this.matrix,s=this.min,i=this.max,n=this.points;for(let g=0;g<=1;g++)for(let U=0;U<=1;U++)for(let F=0;F<=1;F++){let V=1*g|2*U|4*F,H=n[V];H.x=g?i.x:s.x,H.y=U?i.y:s.y,H.z=F?i.z:s.z,H.applyMatrix4(t)}let c=this.satBounds,u=this.satAxes,I=n[0];for(let g=0;g<3;g++){let U=u[g],F=c[g],V=1<<g,H=n[V];U.subVectors(I,H),F.setFromPoints(U,n)}let D=this.alignedSatBounds;D[0].setFromPointsField(n,"x"),D[1].setFromPointsField(n,"y"),D[2].setFromPointsField(n,"z"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1}})();ac.prototype.intersectsBox=(function(){let e=new pu;return function(s){this.needsUpdate&&this.update();let i=s.min,n=s.max,c=this.satBounds,u=this.satAxes,I=this.alignedSatBounds;if(e.min=i.x,e.max=n.x,I[0].isSeparated(e)||(e.min=i.y,e.max=n.y,I[1].isSeparated(e))||(e.min=i.z,e.max=n.z,I[2].isSeparated(e)))return!1;for(let D=0;D<3;D++){let g=u[D],U=c[D];if(e.setFromBox(g,s),U.isSeparated(e))return!1}return!0}})();ac.prototype.intersectsTriangle=(function(){let e=new Th,t=new Array(3),s=new pu,i=new pu,n=new it;return function(u){this.needsUpdate&&this.update(),u.isExtendedTriangle?u.needsUpdate&&u.update():(e.copy(u),e.update(),u=e);let I=this.satBounds,D=this.satAxes;t[0]=u.a,t[1]=u.b,t[2]=u.c;for(let V=0;V<3;V++){let H=I[V],z=D[V];if(s.setFromPoints(z,t),H.isSeparated(s))return!1}let g=u.satBounds,U=u.satAxes,F=this.points;for(let V=0;V<3;V++){let H=g[V],z=U[V];if(s.setFromPoints(z,F),H.isSeparated(s))return!1}for(let V=0;V<3;V++){let H=D[V];for(let z=0;z<4;z++){let j=U[z];if(n.crossVectors(H,j),s.setFromPoints(n,t),i.setFromPoints(n,F),s.isSeparated(i))return!1}}return!0}})();ac.prototype.closestPointToPoint=(function(){return function(t,s){return this.needsUpdate&&this.update(),s.copy(t).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),s}})();ac.prototype.distanceToPoint=(function(){let e=new it;return function(s){return this.closestPointToPoint(s,e),s.distanceTo(e)}})();ac.prototype.distanceToBox=(function(){let e=["x","y","z"],t=new Array(12).fill().map(()=>new So),s=new Array(12).fill().map(()=>new So),i=new it,n=new it;return function(u,I=0,D=null,g=null){if(this.needsUpdate&&this.update(),this.intersectsBox(u))return(D||g)&&(u.getCenter(n),this.closestPointToPoint(n,i),u.closestPointToPoint(i,n),D&&D.copy(i),g&&g.copy(n)),0;let U=I*I,F=u.min,V=u.max,H=this.points,z=1/0;for(let Q=0;Q<8;Q++){let Z=H[Q];n.copy(Z).clamp(F,V);let X=Z.distanceToSquared(n);if(X<z&&(z=X,D&&D.copy(Z),g&&g.copy(n),X<U))return Math.sqrt(X)}let j=0;for(let Q=0;Q<3;Q++)for(let Z=0;Z<=1;Z++)for(let X=0;X<=1;X++){let $=(Q+1)%3,q=(Q+2)%3,tt=Z<<$|X<<q,at=1<<Q|Z<<$|X<<q,nt=H[tt],ht=H[at];t[j].set(nt,ht);let ot=e[Q],pt=e[$],Et=e[q],dt=s[j],Dt=dt.start,Ut=dt.end;Dt[ot]=F[ot],Dt[pt]=Z?F[pt]:V[pt],Dt[Et]=X?F[Et]:V[pt],Ut[ot]=V[ot],Ut[pt]=Z?F[pt]:V[pt],Ut[Et]=X?F[Et]:V[pt],j++}for(let Q=0;Q<=1;Q++)for(let Z=0;Z<=1;Z++)for(let X=0;X<=1;X++){n.x=Q?V.x:F.x,n.y=Z?V.y:F.y,n.z=X?V.z:F.z,this.closestPointToPoint(n,i);let $=n.distanceToSquared(i);if($<z&&(z=$,D&&D.copy(i),g&&g.copy(n),$<U))return Math.sqrt($)}for(let Q=0;Q<12;Q++){let Z=t[Q];for(let X=0;X<12;X++){let $=s[X];C1(Z,$,i,n);let q=i.distanceToSquared(n);if(q<z&&(z=q,D&&D.copy(i),g&&g.copy(n),q<U))return Math.sqrt(q)}}return Math.sqrt(z)}})();var u0=class extends d_{constructor(){super(()=>new Th)}},Il=new u0,Uv=new it,dM=new it;function e7(e,t,s={},i=0,n=1/0){let c=i*i,u=n*n,I=1/0,D=null;if(e.shapecast({boundsTraverseOrder:U=>(Uv.copy(t).clamp(U.min,U.max),Uv.distanceToSquared(t)),intersectsBounds:(U,F,V)=>V<I&&V<u,intersectsTriangle:(U,F)=>{U.closestPointToPoint(t,Uv);let V=t.distanceToSquared(Uv);return V<I&&(dM.copy(Uv),I=V,D=F),V<c}}),I===1/0)return null;let g=Math.sqrt(I);return s.point?s.point.copy(dM):s.point=dM.clone(),s.distance=g,s.faceIndex=D,s}var Cg=parseInt(BL)>=169,s7=parseInt(BL)<=161,Zd=new it,qd=new it,jd=new it,bg=new vn,wg=new vn,Bg=new vn,gC=new it,LC=new it,xC=new it,Cv=new it;function i7(e,t,s,i,n,c,u,I){let D;if(c===kC?D=e.intersectTriangle(i,s,t,!0,n):D=e.intersectTriangle(t,s,i,c!==H5,n),D===null)return null;let g=e.origin.distanceTo(n);return g<u||g>I?null:{distance:g,point:n.clone()}}function PC(e,t,s,i,n,c,u,I,D,g,U){Zd.fromBufferAttribute(t,c),qd.fromBufferAttribute(t,u),jd.fromBufferAttribute(t,I);let F=i7(e,Zd,qd,jd,Cv,D,g,U);if(F){if(i){bg.fromBufferAttribute(i,c),wg.fromBufferAttribute(i,u),Bg.fromBufferAttribute(i,I),F.uv=new vn;let H=ya.getInterpolation(Cv,Zd,qd,jd,bg,wg,Bg,F.uv);Cg||(F.uv=H)}if(n){bg.fromBufferAttribute(n,c),wg.fromBufferAttribute(n,u),Bg.fromBufferAttribute(n,I),F.uv1=new vn;let H=ya.getInterpolation(Cv,Zd,qd,jd,bg,wg,Bg,F.uv1);Cg||(F.uv1=H),s7&&(F.uv2=F.uv1)}if(s){gC.fromBufferAttribute(s,c),LC.fromBufferAttribute(s,u),xC.fromBufferAttribute(s,I),F.normal=new it;let H=ya.getInterpolation(Cv,Zd,qd,jd,gC,LC,xC,F.normal);F.normal.dot(e.direction)>0&&F.normal.multiplyScalar(-1),Cg||(F.normal=H)}let V={a:c,b:u,c:I,normal:new it,materialIndex:0};if(ya.getNormal(Zd,qd,jd,V.normal),F.face=V,F.faceIndex=c,Cg){let H=new it;ya.getBarycoord(Cv,Zd,qd,jd,H),F.barycoord=H}}return F}function MC(e){return e&&e.isMaterial?e.side:e}function WL(e,t,s,i,n,c,u){let I=i*3,D=I+0,g=I+1,U=I+2,{index:F,groups:V}=e;e.index&&(D=F.getX(D),g=F.getX(g),U=F.getX(U));let{position:H,normal:z,uv:j,uv1:Q}=e.attributes;if(Array.isArray(t)){let Z=i*3;for(let X=0,$=V.length;X<$;X++){let{start:q,count:tt,materialIndex:at}=V[X];if(Z>=q&&Z<q+tt){let nt=MC(t[at]),ht=PC(s,H,z,j,Q,D,g,U,nt,c,u);if(ht)if(ht.faceIndex=i,ht.face.materialIndex=at,n)n.push(ht);else return ht}}}else{let Z=MC(t),X=PC(s,H,z,j,Q,D,g,U,Z,c,u);if(X)if(X.faceIndex=i,X.face.materialIndex=0,n)n.push(X);else return X}return null}function On(e,t,s,i){let n=e.a,c=e.b,u=e.c,I=t,D=t+1,g=t+2;s&&(I=s.getX(I),D=s.getX(D),g=s.getX(g)),n.x=i.getX(I),n.y=i.getY(I),n.z=i.getZ(I),c.x=i.getX(D),c.y=i.getY(D),c.z=i.getZ(D),u.x=i.getX(g),u.y=i.getY(g),u.z=i.getZ(g)}function n7(e,t,s,i,n,c,u,I){let{geometry:D,_indirectBuffer:g}=e;for(let U=i,F=i+n;U<F;U++)WL(D,t,s,U,c,u,I)}function r7(e,t,s,i,n,c,u){let{geometry:I,_indirectBuffer:D}=e,g=1/0,U=null;for(let F=i,V=i+n;F<V;F++){let H;H=WL(I,t,s,F,null,c,u),H&&H.distance<g&&(U=H,g=H.distance)}return U}function c7(e,t,s,i,n,c,u){let{geometry:I}=s,{index:D}=I,g=I.attributes.position;for(let U=e,F=t+e;U<F;U++){let V;if(V=U,On(u,V*3,D,g),u.needsUpdate=!0,i(u,V,n,c))return!0}return!1}function a7(e,t=null){t&&Array.isArray(t)&&(t=new Set(t));let s=e.geometry,i=s.index?s.index.array:null,n=s.attributes.position,c,u,I,D,g=0,U=e._roots;for(let V=0,H=U.length;V<H;V++)c=U[V],u=new Uint32Array(c),I=new Uint16Array(c),D=new Float32Array(c),F(0,g),g+=c.byteLength;function F(V,H,z=!1){let j=V*2;if(rr(j,I)){let Q=Vc(V,u),Z=Ra(j,I),X=1/0,$=1/0,q=1/0,tt=-1/0,at=-1/0,nt=-1/0;for(let ht=3*Q,ut=3*(Q+Z);ht<ut;ht++){let ot=i[ht],pt=n.getX(ot),Et=n.getY(ot),dt=n.getZ(ot);pt<X&&(X=pt),pt>tt&&(tt=pt),Et<$&&($=Et),Et>at&&(at=Et),dt<q&&(q=dt),dt>nt&&(nt=dt)}return D[V+0]!==X||D[V+1]!==$||D[V+2]!==q||D[V+3]!==tt||D[V+4]!==at||D[V+5]!==nt?(D[V+0]=X,D[V+1]=$,D[V+2]=q,D[V+3]=tt,D[V+4]=at,D[V+5]=nt,!0):!1}else{let Q=xr(V),Z=Pr(V,u),X=z,$=!1,q=!1;if(t){if(!X){let ot=Q/nr+H/Fc,pt=Z/nr+H/Fc;$=t.has(ot),q=t.has(pt),X=!$&&!q}}else $=!0,q=!0;let tt=X||$,at=X||q,nt=!1;tt&&(nt=F(Q,H,X));let ht=!1;at&&(ht=F(Z,H,X));let ut=nt||ht;if(ut)for(let ot=0;ot<3;ot++){let pt=Q+ot,Et=Z+ot,dt=D[pt],Dt=D[pt+3],Ut=D[Et],Xt=D[Et+3];D[V+ot]=dt<Ut?dt:Ut,D[V+ot+3]=Dt>Xt?Dt:Xt}return ut}}}function Uy(e,t,s,i,n){let c,u,I,D,g,U,F=1/s.direction.x,V=1/s.direction.y,H=1/s.direction.z,z=s.origin.x,j=s.origin.y,Q=s.origin.z,Z=t[e],X=t[e+3],$=t[e+1],q=t[e+3+1],tt=t[e+2],at=t[e+3+2];return F>=0?(c=(Z-z)*F,u=(X-z)*F):(c=(X-z)*F,u=(Z-z)*F),V>=0?(I=($-j)*V,D=(q-j)*V):(I=(q-j)*V,D=($-j)*V),c>D||I>u||((I>c||isNaN(c))&&(c=I),(D<u||isNaN(u))&&(u=D),H>=0?(g=(tt-Q)*H,U=(at-Q)*H):(g=(at-Q)*H,U=(tt-Q)*H),c>U||g>u)?!1:((g>c||c!==c)&&(c=g),(U<u||u!==u)&&(u=U),c<=n&&u>=i)}function o7(e,t,s,i,n,c,u,I){let{geometry:D,_indirectBuffer:g}=e;for(let U=i,F=i+n;U<F;U++){let V=g?g[U]:U;WL(D,t,s,V,c,u,I)}}function h7(e,t,s,i,n,c,u){let{geometry:I,_indirectBuffer:D}=e,g=1/0,U=null;for(let F=i,V=i+n;F<V;F++){let H;H=WL(I,t,s,D?D[F]:F,null,c,u),H&&H.distance<g&&(U=H,g=H.distance)}return U}function l7(e,t,s,i,n,c,u){let{geometry:I}=s,{index:D}=I,g=I.attributes.position;for(let U=e,F=t+e;U<F;U++){let V;if(V=s.resolveTriangleIndex(U),On(u,V*3,D,g),u.needsUpdate=!0,i(u,V,n,c))return!0}return!1}function u7(e,t,s,i,n,c,u){Fs.setBuffer(e._roots[t]),p0(0,e,s,i,n,c,u),Fs.clearBuffer()}function p0(e,t,s,i,n,c,u){let{float32Array:I,uint16Array:D,uint32Array:g}=Fs,U=e*2;if(rr(U,D)){let V=Vc(e,g),H=Ra(U,D);n7(t,s,i,V,H,n,c,u)}else{let V=xr(e);Uy(V,I,i,c,u)&&p0(V,t,s,i,n,c,u);let H=Pr(e,g);Uy(H,I,i,c,u)&&p0(H,t,s,i,n,c,u)}}var p7=["x","y","z"];function E7(e,t,s,i,n,c){Fs.setBuffer(e._roots[t]);let u=E0(0,e,s,i,n,c);return Fs.clearBuffer(),u}function E0(e,t,s,i,n,c){let{float32Array:u,uint16Array:I,uint32Array:D}=Fs,g=e*2;if(rr(g,I)){let F=Vc(e,D),V=Ra(g,I);return r7(t,s,i,F,V,n,c)}else{let F=M1(e,D),V=p7[F],z=i.direction[V]>=0,j,Q;z?(j=xr(e),Q=Pr(e,D)):(j=Pr(e,D),Q=xr(e));let X=Uy(j,u,i,n,c)?E0(j,t,s,i,n,c):null;if(X){let tt=X.point[V];if(z?tt<=u[Q+F]:tt>=u[Q+F+3])return X}let q=Uy(Q,u,i,n,c)?E0(Q,t,s,i,n,c):null;return X&&q?X.distance<=q.distance?X:q:X||q||null}}var Gg=new rs,_S=new Th,gS=new Th,bv=new Ee,UC=new ac,Fg=new ac;function f7(e,t,s,i){Fs.setBuffer(e._roots[t]);let n=f0(0,e,s,i);return Fs.clearBuffer(),n}function f0(e,t,s,i,n=null){let{float32Array:c,uint16Array:u,uint32Array:I}=Fs,D=e*2;if(n===null&&(s.boundingBox||s.computeBoundingBox(),UC.set(s.boundingBox.min,s.boundingBox.max,i),n=UC),rr(D,u)){let U=t.geometry,F=U.index,V=U.attributes.position,H=s.index,z=s.attributes.position,j=Vc(e,I),Q=Ra(D,u);if(bv.copy(i).invert(),s.boundsTree)return Li(e,c,Fg),Fg.matrix.copy(bv),Fg.needsUpdate=!0,s.boundsTree.shapecast({intersectsBounds:X=>Fg.intersectsBox(X),intersectsTriangle:X=>{X.a.applyMatrix4(i),X.b.applyMatrix4(i),X.c.applyMatrix4(i),X.needsUpdate=!0;for(let $=j*3,q=(Q+j)*3;$<q;$+=3)if(On(gS,$,F,V),gS.needsUpdate=!0,X.intersectsTriangle(gS))return!0;return!1}});{let Z=HL(s);for(let X=j*3,$=(Q+j)*3;X<$;X+=3){On(_S,X,F,V),_S.a.applyMatrix4(bv),_S.b.applyMatrix4(bv),_S.c.applyMatrix4(bv),_S.needsUpdate=!0;for(let q=0,tt=Z*3;q<tt;q+=3)if(On(gS,q,H,z),gS.needsUpdate=!0,_S.intersectsTriangle(gS))return!0}}}else{let U=xr(e),F=Pr(e,I);return Li(U,c,Gg),!!(n.intersectsBox(Gg)&&f0(U,t,s,i,n)||(Li(F,c,Gg),n.intersectsBox(Gg)&&f0(F,t,s,i,n)))}}var Vg=new Ee,mM=new ac,wv=new ac,I7=new it,y7=new it,T7=new it,d7=new it;function m7(e,t,s,i={},n={},c=0,u=1/0){t.boundingBox||t.computeBoundingBox(),mM.set(t.boundingBox.min,t.boundingBox.max,s),mM.needsUpdate=!0;let I=e.geometry,D=I.attributes.position,g=I.index,U=t.attributes.position,F=t.index,V=Il.getPrimitive(),H=Il.getPrimitive(),z=I7,j=y7,Q=null,Z=null;n&&(Q=T7,Z=d7);let X=1/0,$=null,q=null;return Vg.copy(s).invert(),wv.matrix.copy(Vg),e.shapecast({boundsTraverseOrder:tt=>mM.distanceToBox(tt),intersectsBounds:(tt,at,nt)=>nt<X&&nt<u?(at&&(wv.min.copy(tt.min),wv.max.copy(tt.max),wv.needsUpdate=!0),!0):!1,intersectsRange:(tt,at)=>{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:ht=>wv.distanceToBox(ht),intersectsBounds:(ht,ut,ot)=>ot<X&&ot<u,intersectsRange:(ht,ut)=>{for(let ot=ht,pt=ht+ut;ot<pt;ot++){On(H,3*ot,F,U),H.a.applyMatrix4(s),H.b.applyMatrix4(s),H.c.applyMatrix4(s),H.needsUpdate=!0;for(let Et=tt,dt=tt+at;Et<dt;Et++){On(V,3*Et,g,D),V.needsUpdate=!0;let Dt=V.distanceToTriangle(H,z,Q);if(Dt<X&&(j.copy(z),Z&&Z.copy(Q),X=Dt,$=Et,q=ot),Dt<c)return!0}}}});{let nt=HL(t);for(let ht=0,ut=nt;ht<ut;ht++){On(H,3*ht,F,U),H.a.applyMatrix4(s),H.b.applyMatrix4(s),H.c.applyMatrix4(s),H.needsUpdate=!0;for(let ot=tt,pt=tt+at;ot<pt;ot++){On(V,3*ot,g,D),V.needsUpdate=!0;let Et=V.distanceToTriangle(H,z,Q);if(Et<X&&(j.copy(z),Z&&Z.copy(Q),X=Et,$=ot,q=ht),Et<c)return!0}}}}}),Il.releasePrimitive(V),Il.releasePrimitive(H),X===1/0?null:(i.point?i.point.copy(j):i.point=j.clone(),i.distance=X,i.faceIndex=$,n&&(n.point?n.point.copy(Z):n.point=Z.clone(),n.point.applyMatrix4(Vg),j.applyMatrix4(Vg),n.distance=j.sub(n.point).length(),n.faceIndex=q),i)}function R7(e,t=null){t&&Array.isArray(t)&&(t=new Set(t));let s=e.geometry,i=s.index?s.index.array:null,n=s.attributes.position,c,u,I,D,g=0,U=e._roots;for(let V=0,H=U.length;V<H;V++)c=U[V],u=new Uint32Array(c),I=new Uint16Array(c),D=new Float32Array(c),F(0,g),g+=c.byteLength;function F(V,H,z=!1){let j=V*2;if(rr(j,I)){let Q=Vc(V,u),Z=Ra(j,I),X=1/0,$=1/0,q=1/0,tt=-1/0,at=-1/0,nt=-1/0;for(let ht=Q,ut=Q+Z;ht<ut;ht++){let ot=3*e.resolveTriangleIndex(ht);for(let pt=0;pt<3;pt++){let Et=ot+pt;Et=i?i[Et]:Et;let dt=n.getX(Et),Dt=n.getY(Et),Ut=n.getZ(Et);dt<X&&(X=dt),dt>tt&&(tt=dt),Dt<$&&($=Dt),Dt>at&&(at=Dt),Ut<q&&(q=Ut),Ut>nt&&(nt=Ut)}}return D[V+0]!==X||D[V+1]!==$||D[V+2]!==q||D[V+3]!==tt||D[V+4]!==at||D[V+5]!==nt?(D[V+0]=X,D[V+1]=$,D[V+2]=q,D[V+3]=tt,D[V+4]=at,D[V+5]=nt,!0):!1}else{let Q=xr(V),Z=Pr(V,u),X=z,$=!1,q=!1;if(t){if(!X){let ot=Q/nr+H/Fc,pt=Z/nr+H/Fc;$=t.has(ot),q=t.has(pt),X=!$&&!q}}else $=!0,q=!0;let tt=X||$,at=X||q,nt=!1;tt&&(nt=F(Q,H,X));let ht=!1;at&&(ht=F(Z,H,X));let ut=nt||ht;if(ut)for(let ot=0;ot<3;ot++){let pt=Q+ot,Et=Z+ot,dt=D[pt],Dt=D[pt+3],Ut=D[Et],Xt=D[Et+3];D[V+ot]=dt<Ut?dt:Ut,D[V+ot+3]=Dt>Xt?Dt:Xt}return ut}}}function S7(e,t,s,i,n,c,u){Fs.setBuffer(e._roots[t]),I0(0,e,s,i,n,c,u),Fs.clearBuffer()}function I0(e,t,s,i,n,c,u){let{float32Array:I,uint16Array:D,uint32Array:g}=Fs,U=e*2;if(rr(U,D)){let V=Vc(e,g),H=Ra(U,D);o7(t,s,i,V,H,n,c,u)}else{let V=xr(e);Uy(V,I,i,c,u)&&I0(V,t,s,i,n,c,u);let H=Pr(e,g);Uy(H,I,i,c,u)&&I0(H,t,s,i,n,c,u)}}var N7=["x","y","z"];function A7(e,t,s,i,n,c){Fs.setBuffer(e._roots[t]);let u=y0(0,e,s,i,n,c);return Fs.clearBuffer(),u}function y0(e,t,s,i,n,c){let{float32Array:u,uint16Array:I,uint32Array:D}=Fs,g=e*2;if(rr(g,I)){let F=Vc(e,D),V=Ra(g,I);return h7(t,s,i,F,V,n,c)}else{let F=M1(e,D),V=N7[F],z=i.direction[V]>=0,j,Q;z?(j=xr(e),Q=Pr(e,D)):(j=Pr(e,D),Q=xr(e));let X=Uy(j,u,i,n,c)?y0(j,t,s,i,n,c):null;if(X){let tt=X.point[V];if(z?tt<=u[Q+F]:tt>=u[Q+F+3])return X}let q=Uy(Q,u,i,n,c)?y0(Q,t,s,i,n,c):null;return X&&q?X.distance<=q.distance?X:q:X||q||null}}var Hg=new rs,LS=new Th,xS=new Th,Bv=new Ee,CC=new ac,Wg=new ac;function D7(e,t,s,i){Fs.setBuffer(e._roots[t]);let n=T0(0,e,s,i);return Fs.clearBuffer(),n}function T0(e,t,s,i,n=null){let{float32Array:c,uint16Array:u,uint32Array:I}=Fs,D=e*2;if(n===null&&(s.boundingBox||s.computeBoundingBox(),CC.set(s.boundingBox.min,s.boundingBox.max,i),n=CC),rr(D,u)){let U=t.geometry,F=U.index,V=U.attributes.position,H=s.index,z=s.attributes.position,j=Vc(e,I),Q=Ra(D,u);if(Bv.copy(i).invert(),s.boundsTree)return Li(e,c,Wg),Wg.matrix.copy(Bv),Wg.needsUpdate=!0,s.boundsTree.shapecast({intersectsBounds:X=>Wg.intersectsBox(X),intersectsTriangle:X=>{X.a.applyMatrix4(i),X.b.applyMatrix4(i),X.c.applyMatrix4(i),X.needsUpdate=!0;for(let $=j,q=Q+j;$<q;$++)if(On(xS,3*t.resolveTriangleIndex($),F,V),xS.needsUpdate=!0,X.intersectsTriangle(xS))return!0;return!1}});{let Z=HL(s);for(let X=j,$=Q+j;X<$;X++){let q=t.resolveTriangleIndex(X);On(LS,3*q,F,V),LS.a.applyMatrix4(Bv),LS.b.applyMatrix4(Bv),LS.c.applyMatrix4(Bv),LS.needsUpdate=!0;for(let tt=0,at=Z*3;tt<at;tt+=3)if(On(xS,tt,H,z),xS.needsUpdate=!0,LS.intersectsTriangle(xS))return!0}}}else{let U=xr(e),F=Pr(e,I);return Li(U,c,Hg),!!(n.intersectsBox(Hg)&&T0(U,t,s,i,n)||(Li(F,c,Hg),n.intersectsBox(Hg)&&T0(F,t,s,i,n)))}}var zg=new Ee,RM=new ac,Gv=new ac,O7=new it,v7=new it,_7=new it,g7=new it;function L7(e,t,s,i={},n={},c=0,u=1/0){t.boundingBox||t.computeBoundingBox(),RM.set(t.boundingBox.min,t.boundingBox.max,s),RM.needsUpdate=!0;let I=e.geometry,D=I.attributes.position,g=I.index,U=t.attributes.position,F=t.index,V=Il.getPrimitive(),H=Il.getPrimitive(),z=O7,j=v7,Q=null,Z=null;n&&(Q=_7,Z=g7);let X=1/0,$=null,q=null;return zg.copy(s).invert(),Gv.matrix.copy(zg),e.shapecast({boundsTraverseOrder:tt=>RM.distanceToBox(tt),intersectsBounds:(tt,at,nt)=>nt<X&&nt<u?(at&&(Gv.min.copy(tt.min),Gv.max.copy(tt.max),Gv.needsUpdate=!0),!0):!1,intersectsRange:(tt,at)=>{if(t.boundsTree){let nt=t.boundsTree;return nt.shapecast({boundsTraverseOrder:ht=>Gv.distanceToBox(ht),intersectsBounds:(ht,ut,ot)=>ot<X&&ot<u,intersectsRange:(ht,ut)=>{for(let ot=ht,pt=ht+ut;ot<pt;ot++){let Et=nt.resolveTriangleIndex(ot);On(H,3*Et,F,U),H.a.applyMatrix4(s),H.b.applyMatrix4(s),H.c.applyMatrix4(s),H.needsUpdate=!0;for(let dt=tt,Dt=tt+at;dt<Dt;dt++){let Ut=e.resolveTriangleIndex(dt);On(V,3*Ut,g,D),V.needsUpdate=!0;let Xt=V.distanceToTriangle(H,z,Q);if(Xt<X&&(j.copy(z),Z&&Z.copy(Q),X=Xt,$=dt,q=ot),Xt<c)return!0}}}})}else{let nt=HL(t);for(let ht=0,ut=nt;ht<ut;ht++){On(H,3*ht,F,U),H.a.applyMatrix4(s),H.b.applyMatrix4(s),H.c.applyMatrix4(s),H.needsUpdate=!0;for(let ot=tt,pt=tt+at;ot<pt;ot++){let Et=e.resolveTriangleIndex(ot);On(V,3*Et,g,D),V.needsUpdate=!0;let dt=V.distanceToTriangle(H,z,Q);if(dt<X&&(j.copy(z),Z&&Z.copy(Q),X=dt,$=ot,q=ht),dt<c)return!0}}}}}),Il.releasePrimitive(V),Il.releasePrimitive(H),X===1/0?null:(i.point?i.point.copy(j):i.point=j.clone(),i.distance=X,i.faceIndex=$,n&&(n.point?n.point.copy(Z):n.point=Z.clone(),n.point.applyMatrix4(zg),j.applyMatrix4(zg),n.distance=j.sub(n.point).length(),n.faceIndex=q),i)}function bC(e,t,s){return e===null?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(s.ray.origin),e.object=t,e)}var Yg=new ac,kg=new Zp,wC=new it,BC=new Ee,GC=new it,SM=["getX","getY","getZ"],d0=class e extends l0{static serialize(t,s={}){s={cloneBuffers:!0,...s};let i=t.geometry,n=t._roots,c=t._indirectBuffer,u=i.getIndex(),I={version:1,roots:null,index:null,indirectBuffer:null};return s.cloneBuffers?(I.roots=n.map(D=>D.slice()),I.index=u?u.array.slice():null,I.indirectBuffer=c?c.slice():null):(I.roots=n,I.index=u?u.array:null,I.indirectBuffer=c),I}static deserialize(t,s,i={}){i={setIndex:!0,indirect:!!t.indirectBuffer,...i};let{index:n,roots:c,indirectBuffer:u}=t;t.version||(console.warn("MeshBVH.deserialize: Serialization format has been changed and will be fixed up. It is recommended to regenerate any stored serialized data."),D(c));let I=new e(s,{...i,[P1]:!0});if(I._roots=c,I._indirectBuffer=u||null,i.setIndex){let g=s.getIndex();if(g===null){let U=new Sa(t.index,1,!1);s.setIndex(U)}else g.array!==n&&(g.array.set(n),g.needsUpdate=!0)}return I;function D(g){for(let U=0;U<g.length;U++){let F=g[U],V=new Uint32Array(F),H=new Uint16Array(F);for(let z=0,j=F.byteLength/Fc;z<j;z++){let Q=nr*z,Z=2*Q;rr(Z,H)||(V[Q+6]=V[Q+6]/nr-z)}}}}get primitiveStride(){return 3}get resolveTriangleIndex(){return this.resolvePrimitiveIndex}constructor(t,s={}){s.maxLeafTris&&(console.warn('MeshBVH: "maxLeafTris" option has been deprecated. Use maxLeafSize, instead.'),s={...s,maxLeafSize:s.maxLeafTris}),super(t,s)}shiftTriangleOffsets(t){return super.shiftPrimitiveOffsets(t)}writePrimitiveBounds(t,s,i){let n=this.geometry,c=this._indirectBuffer,u=n.attributes.position,I=n.index?n.index.array:null,g=(c?c[t]:t)*3,U=g+0,F=g+1,V=g+2;I&&(U=I[U],F=I[F],V=I[V]);for(let H=0;H<3;H++){let z=u[SM[H]](U),j=u[SM[H]](F),Q=u[SM[H]](V),Z=z;j<Z&&(Z=j),Q<Z&&(Z=Q);let X=z;j>X&&(X=j),Q>X&&(X=Q),s[i+H]=Z,s[i+H+3]=X}return s}computePrimitiveBounds(t,s,i){let n=this.geometry,c=this._indirectBuffer,u=n.attributes.position,I=n.index?n.index.array:null,D=u.normalized;if(t<0||s+t-i.offset>i.length/6)throw new Error("MeshBVH: compute triangle bounds range is invalid.");let g=u.array,U=u.offset||0,F=3;u.isInterleavedBufferAttribute&&(F=u.data.stride);let V=["getX","getY","getZ"],H=i.offset;for(let z=t,j=t+s;z<j;z++){let Z=(c?c[z]:z)*3,X=(z-H)*6,$=Z+0,q=Z+1,tt=Z+2;I&&($=I[$],q=I[q],tt=I[tt]),D||($=$*F+U,q=q*F+U,tt=tt*F+U);for(let at=0;at<3;at++){let nt,ht,ut;D?(nt=u[V[at]]($),ht=u[V[at]](q),ut=u[V[at]](tt)):(nt=g[$+at],ht=g[q+at],ut=g[tt+at]);let ot=nt;ht<ot&&(ot=ht),ut<ot&&(ot=ut);let pt=nt;ht>pt&&(pt=ht),ut>pt&&(pt=ut);let Et=(pt-ot)/2,dt=at*2;i[X+dt+0]=ot+Et,i[X+dt+1]=Et+(Math.abs(ot)+Et)*iL}}return i}raycastObject3D(t,s,i=[]){let{material:n}=t;if(n===void 0)return;BC.copy(t.matrixWorld).invert(),kg.copy(s.ray).applyMatrix4(BC),GC.setFromMatrixScale(t.matrixWorld),wC.copy(kg.direction).multiply(GC);let c=wC.length(),u=s.near/c,I=s.far/c;if(s.firstHitOnly===!0){let D=this.raycastFirst(kg,n,u,I);D=bC(D,t,s),D&&i.push(D)}else{let D=this.raycast(kg,n,u,I);for(let g=0,U=D.length;g<U;g++){let F=bC(D[g],t,s);F&&i.push(F)}}return i}refit(t=null){return(this.indirect?R7:a7)(this,t)}raycast(t,s=c_,i=0,n=1/0){let c=this._roots,u=[],I=this.indirect?S7:u7;for(let D=0,g=c.length;D<g;D++)I(this,D,s,t,u,i,n);return u}raycastFirst(t,s=c_,i=0,n=1/0){let c=this._roots,u=null,I=this.indirect?A7:E7;for(let D=0,g=c.length;D<g;D++){let U=I(this,D,s,t,i,n);U!=null&&(u==null||U.distance<u.distance)&&(u=U)}return u}intersectsGeometry(t,s){let i=!1,n=this._roots,c=this.indirect?D7:f7;for(let u=0,I=n.length;u<I&&(i=c(this,u,t,s),!i);u++);return i}shapecast(t){let s=Il.getPrimitive(),i=super.shapecast({...t,intersectsPrimitive:t.intersectsTriangle,scratchPrimitive:s,iterate:this.indirect?l7:c7});return Il.releasePrimitive(s),i}bvhcast(t,s,i){let{intersectsRanges:n,intersectsTriangles:c}=i,u=Il.getPrimitive(),I=this.geometry.index,D=this.geometry.attributes.position,g=this.indirect?z=>{let j=this.resolveTriangleIndex(z);On(u,j*3,I,D)}:z=>{On(u,z*3,I,D)},U=Il.getPrimitive(),F=t.geometry.index,V=t.geometry.attributes.position,H=t.indirect?z=>{let j=t.resolveTriangleIndex(z);On(U,j*3,F,V)}:z=>{On(U,z*3,F,V)};if(c){if(!(t instanceof e))throw new Error('MeshBVH: "intersectsTriangles" callback can only be used with another MeshBVH.');let z=(j,Q,Z,X,$,q,tt,at)=>{for(let nt=Z,ht=Z+X;nt<ht;nt++){H(nt),U.a.applyMatrix4(s),U.b.applyMatrix4(s),U.c.applyMatrix4(s),U.needsUpdate=!0;for(let ut=j,ot=j+Q;ut<ot;ut++)if(g(ut),u.needsUpdate=!0,c(u,U,ut,nt,$,q,tt,at))return!0}return!1};if(n){let j=n;n=function(Q,Z,X,$,q,tt,at,nt){return j(Q,Z,X,$,q,tt,at,nt)?!0:z(Q,Z,X,$,q,tt,at,nt)}}else n=z}return super.bvhcast(t,s,{intersectsRanges:n})}intersectsBox(t,s){return Yg.set(t.min,t.max,s),Yg.needsUpdate=!0,this.shapecast({intersectsBounds:i=>Yg.intersectsBox(i),intersectsTriangle:i=>Yg.intersectsTriangle(i)})}intersectsSphere(t){return this.shapecast({intersectsBounds:s=>t.intersectsBox(s),intersectsTriangle:s=>s.intersectsSphere(t)})}closestPointToGeometry(t,s,i={},n={},c=0,u=1/0){return(this.indirect?L7:m7)(this,t,s,i,n,c,u)}closestPointToPoint(t,s={},i=0,n=1/0){return e7(this,t,s,i,n)}},CS={Mesh:dl.prototype.raycast,Line:ZS.prototype.raycast,LineSegments:RL.prototype.raycast,LineLoop:SL.prototype.raycast,Points:NL.prototype.raycast,BatchedMesh:HM.prototype.raycast},sc=new dl,Kg=[];function x7(e,t){if(this.isBatchedMesh)P7.call(this,e,t);else{let{geometry:s}=this;if(s.boundsTree)s.boundsTree.raycastObject3D(this,e,t);else{let i;if(this instanceof dl)i=CS.Mesh;else if(this instanceof RL)i=CS.LineSegments;else if(this instanceof SL)i=CS.LineLoop;else if(this instanceof ZS)i=CS.Line;else if(this instanceof NL)i=CS.Points;else throw new Error("BVH: Fallback raycast function not found.");i.call(this,e,t)}}}function P7(e,t){if(this.boundsTrees){let s=this.boundsTrees,i=this._drawInfo||this._instanceInfo,n=this._drawRanges||this._geometryInfo,c=this.matrixWorld;sc.material=this.material,sc.geometry=this.geometry;let u=sc.geometry.boundsTree,I=sc.geometry.drawRange;sc.geometry.boundingSphere===null&&(sc.geometry.boundingSphere=new Ro);for(let D=0,g=i.length;D<g;D++){if(!this.getVisibleAt(D))continue;let U=i[D].geometryIndex;if(sc.geometry.boundsTree=s[U],this.getMatrixAt(D,sc.matrixWorld).premultiply(c),!sc.geometry.boundsTree){this.getBoundingBoxAt(U,sc.geometry.boundingBox),this.getBoundingSphereAt(U,sc.geometry.boundingSphere);let F=n[U];sc.geometry.setDrawRange(F.start,F.count)}sc.raycast(e,Kg);for(let F=0,V=Kg.length;F<V;F++){let H=Kg[F];H.object=this,H.batchId=D,t.push(H)}Kg.length=0}sc.geometry.boundsTree=u,sc.geometry.drawRange=I,sc.material=null,sc.geometry=null}else CS.BatchedMesh.call(this,e,t)}function M7(e={}){let{type:t=d0}=e;return this.boundsTree=new t(this,e),this.boundsTree}function U7(){this.boundsTree=null}var hm=class{static containedInParallelPlanes(t,s){let i=!0;for(let n of t){let u=n.distanceToPoint(s)>=0;i=i&&u}return i}static collides(t,s,i){for(let n of s)if(this.getPointDistance(n,i,t)<0)return!1;return!0}static getPointDistance(t,s,i){let n=t.normal;for(let c of this.dimensions)n[c]>=0!==s?this.tempPoint[c]=i.max[c]:this.tempPoint[c]=i.min[c];return t.distanceToPoint(this.tempPoint)}};k(hm,"tempPoint",new it);k(hm,"dimensions",["x","y","z"]);var nm=class{static transform(t,s,i=new rm){for(let n=0;n<i.planes.length;n++){let c=i.planes[n],u=t.planes[n];c.copy(u),c.applyMatrix4(s)}return i}static isIncluded(t,s){return hm.collides(t,s,!0)}static collides(t,s){return hm.collides(t,s,!1)}};function Bb(e,t,s=2){let i=t&&t.length,n=i?t[0]*s:e.length,c=Gb(e,0,n,s,!0),u=[];if(!c||c.next===c.prev)return u;let I,D,g;if(i&&(c=G7(e,t,c,s)),e.length>80*s){I=1/0,D=1/0;let U=-1/0,F=-1/0;for(let V=s;V<n;V+=s){let H=e[V],z=e[V+1];H<I&&(I=H),z<D&&(D=z),H>U&&(U=H),z>F&&(F=z)}g=Math.max(U-I,F-D),g=g!==0?32767/g:0}return m_(c,u,s,I,D,g,0),u}function Gb(e,t,s,i,n){let c;if(n===j7(e,t,s,i)>0)for(let u=t;u<s;u+=i)c=FC(u/i|0,e[u],e[u+1],c);else for(let u=s-i;u>=t;u-=i)c=FC(u/i|0,e[u],e[u+1],c);return c&&XS(c,c.next)&&(S_(c),c=c.next),c}function lm(e,t){if(!e)return e;t||(t=e);let s=e,i;do if(i=!1,!s.steiner&&(XS(s,s.next)||Ei(s.prev,s,s.next)===0)){if(S_(s),s=t=s.prev,s===s.next)break;i=!0}else s=s.next;while(i||s!==t);return t}function m_(e,t,s,i,n,c,u){if(!e)return;!u&&c&&z7(e,i,n,c);let I=e;for(;e.prev!==e.next;){let D=e.prev,g=e.next;if(c?b7(e,i,n,c):C7(e)){t.push(D.i,e.i,g.i),S_(e),e=g.next,I=g.next;continue}if(e=g,e===I){u?u===1?(e=w7(lm(e),t),m_(e,t,s,i,n,c,2)):u===2&&B7(e,t,s,i,n,c):m_(lm(e),t,s,i,n,c,1);break}}}function C7(e){let t=e.prev,s=e,i=e.next;if(Ei(t,s,i)>=0)return!1;let n=t.x,c=s.x,u=i.x,I=t.y,D=s.y,g=i.y,U=Math.min(n,c,u),F=Math.min(I,D,g),V=Math.max(n,c,u),H=Math.max(I,D,g),z=i.next;for(;z!==t;){if(z.x>=U&&z.x<=V&&z.y>=F&&z.y<=H&&kv(n,I,c,D,u,g,z.x,z.y)&&Ei(z.prev,z,z.next)>=0)return!1;z=z.next}return!0}function b7(e,t,s,i){let n=e.prev,c=e,u=e.next;if(Ei(n,c,u)>=0)return!1;let I=n.x,D=c.x,g=u.x,U=n.y,F=c.y,V=u.y,H=Math.min(I,D,g),z=Math.min(U,F,V),j=Math.max(I,D,g),Q=Math.max(U,F,V),Z=m0(H,z,t,s,i),X=m0(j,Q,t,s,i),$=e.prevZ,q=e.nextZ;for(;$&&$.z>=Z&&q&&q.z<=X;){if($.x>=H&&$.x<=j&&$.y>=z&&$.y<=Q&&$!==n&&$!==u&&kv(I,U,D,F,g,V,$.x,$.y)&&Ei($.prev,$,$.next)>=0||($=$.prevZ,q.x>=H&&q.x<=j&&q.y>=z&&q.y<=Q&&q!==n&&q!==u&&kv(I,U,D,F,g,V,q.x,q.y)&&Ei(q.prev,q,q.next)>=0))return!1;q=q.nextZ}for(;$&&$.z>=Z;){if($.x>=H&&$.x<=j&&$.y>=z&&$.y<=Q&&$!==n&&$!==u&&kv(I,U,D,F,g,V,$.x,$.y)&&Ei($.prev,$,$.next)>=0)return!1;$=$.prevZ}for(;q&&q.z<=X;){if(q.x>=H&&q.x<=j&&q.y>=z&&q.y<=Q&&q!==n&&q!==u&&kv(I,U,D,F,g,V,q.x,q.y)&&Ei(q.prev,q,q.next)>=0)return!1;q=q.nextZ}return!0}function w7(e,t){let s=e;do{let i=s.prev,n=s.next.next;!XS(i,n)&&Vb(i,s,s.next,n)&&R_(i,n)&&R_(n,i)&&(t.push(i.i,s.i,n.i),S_(s),S_(s.next),s=e=n),s=s.next}while(s!==e);return lm(s)}function B7(e,t,s,i,n,c){let u=e;do{let I=u.next.next;for(;I!==u.prev;){if(u.i!==I.i&&K7(u,I)){let D=Hb(u,I);u=lm(u,u.next),D=lm(D,D.next),m_(u,t,s,i,n,c,0),m_(D,t,s,i,n,c,0);return}I=I.next}u=u.next}while(u!==e)}function G7(e,t,s,i){let n=[];for(let c=0,u=t.length;c<u;c++){let I=t[c]*i,D=c<u-1?t[c+1]*i:e.length,g=Gb(e,I,D,i,!1);g===g.next&&(g.steiner=!0),n.push(k7(g))}n.sort(F7);for(let c=0;c<n.length;c++)s=V7(n[c],s);return s}function F7(e,t){let s=e.x-t.x;if(s===0&&(s=e.y-t.y,s===0)){let i=(e.next.y-e.y)/(e.next.x-e.x),n=(t.next.y-t.y)/(t.next.x-t.x);s=i-n}return s}function V7(e,t){let s=H7(e,t);if(!s)return t;let i=Hb(s,e);return lm(i,i.next),lm(s,s.next)}function H7(e,t){let s=t,i=e.x,n=e.y,c=-1/0,u;if(XS(e,s))return s;do{if(XS(e,s.next))return s.next;if(n<=s.y&&n>=s.next.y&&s.next.y!==s.y){let F=s.x+(n-s.y)*(s.next.x-s.x)/(s.next.y-s.y);if(F<=i&&F>c&&(c=F,u=s.x<s.next.x?s:s.next,F===i))return u}s=s.next}while(s!==t);if(!u)return null;let I=u,D=u.x,g=u.y,U=1/0;s=u;do{if(i>=s.x&&s.x>=D&&i!==s.x&&Fb(n<g?i:c,n,D,g,n<g?c:i,n,s.x,s.y)){let F=Math.abs(n-s.y)/(i-s.x);R_(s,e)&&(F<U||F===U&&(s.x>u.x||s.x===u.x&&W7(u,s)))&&(u=s,U=F)}s=s.next}while(s!==I);return u}function W7(e,t){return Ei(e.prev,e,t.prev)<0&&Ei(t.next,e,e.next)<0}function z7(e,t,s,i){let n=e;do n.z===0&&(n.z=m0(n.x,n.y,t,s,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,Y7(n)}function Y7(e){let t,s=1;do{let i=e,n;e=null;let c=null;for(t=0;i;){t++;let u=i,I=0;for(let g=0;g<s&&(I++,u=u.nextZ,!!u);g++);let D=s;for(;I>0||D>0&&u;)I!==0&&(D===0||!u||i.z<=u.z)?(n=i,i=i.nextZ,I--):(n=u,u=u.nextZ,D--),c?c.nextZ=n:e=n,n.prevZ=c,c=n;i=u}c.nextZ=null,s*=2}while(t>1);return e}function m0(e,t,s,i,n){return e=(e-s)*n|0,t=(t-i)*n|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function k7(e){let t=e,s=e;do(t.x<s.x||t.x===s.x&&t.y<s.y)&&(s=t),t=t.next;while(t!==e);return s}function Fb(e,t,s,i,n,c,u,I){return(n-u)*(t-I)>=(e-u)*(c-I)&&(e-u)*(i-I)>=(s-u)*(t-I)&&(s-u)*(c-I)>=(n-u)*(i-I)}function kv(e,t,s,i,n,c,u,I){return!(e===u&&t===I)&&Fb(e,t,s,i,n,c,u,I)}function K7(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Z7(e,t)&&(R_(e,t)&&R_(t,e)&&q7(e,t)&&(Ei(e.prev,e,t.prev)||Ei(e,t.prev,t))||XS(e,t)&&Ei(e.prev,e,e.next)>0&&Ei(t.prev,t,t.next)>0)}function Ei(e,t,s){return(t.y-e.y)*(s.x-t.x)-(t.x-e.x)*(s.y-t.y)}function XS(e,t){return e.x===t.x&&e.y===t.y}function Vb(e,t,s,i){let n=qg(Ei(e,t,s)),c=qg(Ei(e,t,i)),u=qg(Ei(s,i,e)),I=qg(Ei(s,i,t));return!!(n!==c&&u!==I||n===0&&Zg(e,s,t)||c===0&&Zg(e,i,t)||u===0&&Zg(s,e,i)||I===0&&Zg(s,t,i))}function Zg(e,t,s){return t.x<=Math.max(e.x,s.x)&&t.x>=Math.min(e.x,s.x)&&t.y<=Math.max(e.y,s.y)&&t.y>=Math.min(e.y,s.y)}function qg(e){return e>0?1:e<0?-1:0}function Z7(e,t){let s=e;do{if(s.i!==e.i&&s.next.i!==e.i&&s.i!==t.i&&s.next.i!==t.i&&Vb(s,s.next,e,t))return!0;s=s.next}while(s!==e);return!1}function R_(e,t){return Ei(e.prev,e,e.next)<0?Ei(e,t,e.next)>=0&&Ei(e,e.prev,t)>=0:Ei(e,t,e.prev)<0||Ei(e,e.next,t)<0}function q7(e,t){let s=e,i=!1,n=(e.x+t.x)/2,c=(e.y+t.y)/2;do s.y>c!=s.next.y>c&&s.next.y!==s.y&&n<(s.next.x-s.x)*(c-s.y)/(s.next.y-s.y)+s.x&&(i=!i),s=s.next;while(s!==e);return i}function Hb(e,t){let s=R0(e.i,e.x,e.y),i=R0(t.i,t.x,t.y),n=e.next,c=t.prev;return e.next=t,t.prev=e,s.next=n,n.prev=s,i.next=s,s.prev=i,c.next=i,i.prev=c,i}function FC(e,t,s,i){let n=R0(e,t,s);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function S_(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 R0(e,t,s){return{i:e,x:t,y:s,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function j7(e,t,s,i){let n=0;for(let c=t,u=s-i;c<s;c+=i)n+=(e[u]-e[c])*(e[c+1]+e[u+1]),u=c;return n}var S0=class{constructor(){k(this,"_inverseMatrix",new Ee),k(this,"_localPlane",new cc),k(this,"_tempLine",new So),k(this,"_tempVector",new it),k(this,"_plane"),k(this,"_plane2DCoordinateSystem",new Ee),k(this,"_precission",1e4)}get plane(){if(!this._plane)throw new Error("Fragments: Plane not set");return this._plane}set plane(t){this._plane=t}createEdges(t){let{meshes:s,posAttr:i}=t,n=0;i.array.fill(0);let c=[],u=0,I=new dl;for(let D of s)if(D.geometry){if(D.geometry.boundsTree||D.geometry.computeBoundsTree(),!D.geometry.boundsTree)throw new Error("Fragments: Bounds tree not found for edges generation.");if(D instanceof GM){if(D.count===0)continue;let g=D;for(let U=0;U<g.count;U++){I.geometry=D.geometry,I.matrix.copy(D.matrix);let F=new Ee;g.getMatrixAt(U,F),I.applyMatrix4(F),I.applyMatrix4(D.matrixWorld),I.updateMatrix(),I.updateMatrixWorld(),this._inverseMatrix.copy(I.matrixWorld).invert(),this._localPlane.copy(this.plane).applyMatrix4(this._inverseMatrix),n=this.shapecast(I,i,n),n!==u&&(c.push(n),u=n)}}else this._inverseMatrix.copy(D.matrixWorld).invert(),this._localPlane.copy(this.plane).applyMatrix4(this._inverseMatrix),n=this.shapecast(D,i,n),n!==u&&(c.push(n),u=n)}return{indexes:c,index:n}}createFills(t,s){this.updatePlane2DCoordinateSystem();let i=[],n=0;for(let c=0;c<s.length;c++){let u=s[c],I=[];for(let g=n;g<u;g+=2)I.push(g*3);let D=this.computeFill(I,t);for(let g of D)i.push(g);n=u}return i}computeFill(t,s){let i=new Map,n={},c=new Map,u=0,I=new Map,D=new Map,g=new Set,U=this._precission;for(let V=0;V<t.length;V++){let H=t[V],z=0,j=0,Q=0,Z=0,X=s[H],$=s[H+1],q=s[H+2],tt=s[H+3],at=s[H+4],nt=s[H+5];if(this._tempVector.set(X,$,q),this._tempVector.applyMatrix4(this._plane2DCoordinateSystem),z=Math.trunc(this._tempVector.x*U)/U,j=Math.trunc(this._tempVector.y*U)/U,this._tempVector.set(tt,at,nt),this._tempVector.applyMatrix4(this._plane2DCoordinateSystem),Q=Math.trunc(this._tempVector.x*U)/U,Z=Math.trunc(this._tempVector.y*U)/U,z===Q&&j===Z)continue;let ht=`${z}|${j}`,ut=`${Q}|${Z}`;i.has(ht)||i.set(ht,H/3),i.has(ut)||i.set(ut,H/3+1);let ot=i.get(ht),pt=i.get(ut);n[ot]=[z,j],n[pt]=[Q,Z];let Et=D.has(ot),dt=I.has(ot),Dt=D.has(pt),Ut=I.has(pt);if(!Et&&!dt&&!Dt&&!Ut)D.set(ot,u),I.set(pt,u),g.add(u),c.set(u,[ot,pt]),u++;else if(Et&&Ut){let Yt=D.get(ot),Jt=I.get(pt);if(Yt!==Jt){let Tt=c.get(Jt),le=c.get(Yt);if(!Tt||!le)continue;c.delete(Yt),g.delete(Yt),I.set(le[le.length-1],Jt),I.delete(Tt[Tt.length-1]);for(let fs of le)Tt.push(fs)}else g.delete(Jt);D.delete(ot),I.delete(pt)}else if(dt&&Dt){let Yt=D.get(pt),Jt=I.get(ot);if(Yt!==Jt){let Tt=c.get(Jt),le=c.get(Yt);if(!Tt||!le)continue;c.delete(Yt),g.delete(Yt),I.set(le[le.length-1],Jt),I.delete(Tt[Tt.length-1]);for(let fs of le)Tt.push(fs)}else g.delete(Jt);D.delete(pt),I.delete(ot)}else if(Et&&Dt){let Yt=D.get(pt),Jt=D.get(ot),ve=c.get(Jt),Tt=c.get(Yt);if(!ve||!Tt)continue;c.delete(Yt),g.delete(Yt),D.delete(ve[0]),D.delete(Tt[0]),I.delete(Tt[Tt.length-1]),D.set(Tt[Tt.length-1],Jt),Tt.reverse(),ve.splice(0,0,...Tt)}else if(dt&&Ut){let Yt=I.get(pt),Jt=I.get(ot),ve=c.get(Jt),Tt=c.get(Yt);if(!ve||!Tt)continue;c.delete(Yt),g.delete(Yt),I.delete(ve[ve.length-1]),I.delete(Tt[Tt.length-1]),D.delete(Tt[0]),I.set(Tt[0],Jt),Tt.reverse(),ve.push(...Tt)}else if(Et){let Yt=D.get(ot),Jt=c.get(Yt);if(!Jt)continue;Jt.unshift(pt),D.delete(ot),D.set(pt,Yt)}else if(dt){let Yt=I.get(ot),Jt=c.get(Yt);if(!Jt)continue;Jt.push(pt),I.delete(ot),I.set(pt,Yt)}else if(Dt){let Yt=D.get(pt),Jt=c.get(Yt);if(!Jt)continue;Jt.unshift(ot),D.delete(pt),D.set(ot,Yt)}else if(Ut){let Yt=I.get(pt),Jt=c.get(Yt);if(!Jt)continue;Jt.push(ot),I.delete(pt),I.set(ot,Yt)}}let F=[];for(let[V,H]of c){if(g.has(V))continue;let z=[],j=new Map,Q=0;for(let X of H){let $=n[X];z.push($[0],$[1]),j.set(Q++,X)}let Z=Bb(z);for(let X of Z){let $=j.get(X);if($===void 0)throw new Error("Fragments: Map error!");F.push($)}}return F}updatePlane2DCoordinateSystem(){this._plane2DCoordinateSystem=new Ee;let t=this.plane.normal,s=new it;this.plane.coplanarPoint(s);let i,n;if(Math.abs(t.z)>.99)i=new it(1,0,0),n=new it(0,1,0);else if(Math.abs(t.x)>.99)i=new it(0,1,0),n=new it(0,0,1);else if(Math.abs(t.y)>.99)i=new it(1,0,0),n=new it(0,0,1);else{let c=Math.abs(t.x)<.5?new it(1,0,0):new it(0,1,0);i=new it,i.crossVectors(c,t).normalize(),n=new it,n.crossVectors(t,i).normalize()}this._plane2DCoordinateSystem.fromArray([i.x,i.y,i.z,0,n.x,n.y,n.z,0,t.x,t.y,t.z,0,s.x,s.y,s.z,1]),this._plane2DCoordinateSystem.invert()}shapecast(t,s,i){return t.geometry.boundsTree.shapecast({intersectsBounds:n=>this._localPlane.intersectsBox(n),intersectsTriangle:n=>{let c=0;if(this._tempLine.start.copy(n.a),this._tempLine.end.copy(n.b),this._localPlane.intersectLine(this._tempLine,this._tempVector)){let u=this._tempVector.applyMatrix4(t.matrixWorld);s.setXYZ(i,u.x,u.y,u.z),c++,i++}if(this._tempLine.start.copy(n.b),this._tempLine.end.copy(n.c),this._localPlane.intersectLine(this._tempLine,this._tempVector)){let u=this._tempVector.applyMatrix4(t.matrixWorld);s.setXYZ(i,u.x,u.y,u.z),c++,i++}if(this._tempLine.start.copy(n.c),this._tempLine.end.copy(n.a),this._localPlane.intersectLine(this._tempLine,this._tempVector)){let u=this._tempVector.applyMatrix4(t.matrixWorld);s.setXYZ(i,u.x,u.y,u.z),c++,i++}c!==2&&(i-=c)}}),i}},sm=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAttribute(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAttribute(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}data(t,s){let i=this.bb.__offset(this.bb_pos,4);return i?this.bb.__string(this.bb.__vector(this.bb_pos+i)+t*4,s):null}dataLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAttribute(t){t.startObject(1)}static addData(t,s){t.addFieldOffset(0,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static endAttribute(t){let s=t.endObject();return t.requiredField(s,4),s}static createAttribute(t,s){return e.startAttribute(t),e.addData(t,s),e.endAttribute(t)}},_n=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readFloat32(this.bb_pos)}mutate_x(t){return this.bb.writeFloat32(this.bb_pos+0,t),!0}y(){return this.bb.readFloat32(this.bb_pos+4)}mutate_y(t){return this.bb.writeFloat32(this.bb_pos+4,t),!0}z(){return this.bb.readFloat32(this.bb_pos+8)}mutate_z(t){return this.bb.writeFloat32(this.bb_pos+8,t),!0}static sizeOf(){return 12}static createFloatVector(t,s,i,n){return t.prep(4,12),t.writeFloat32(n),t.writeFloat32(i),t.writeFloat32(s),t.offset()}},um=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}aperture(){return this.bb.readFloat32(this.bb_pos)}mutate_aperture(t){return this.bb.writeFloat32(this.bb_pos+0,t),!0}position(t){return(t||new _n).__init(this.bb_pos+4,this.bb)}radius(){return this.bb.readFloat32(this.bb_pos+16)}mutate_radius(t){return this.bb.writeFloat32(this.bb_pos+16,t),!0}xDirection(t){return(t||new _n).__init(this.bb_pos+20,this.bb)}yDirection(t){return(t||new _n).__init(this.bb_pos+32,this.bb)}static sizeOf(){return 44}static createCircleCurve(t,s,i,n,c,u,I,D,g,U,F,V){return t.prep(4,44),t.prep(4,12),t.writeFloat32(V),t.writeFloat32(F),t.writeFloat32(U),t.prep(4,12),t.writeFloat32(g),t.writeFloat32(D),t.writeFloat32(I),t.writeFloat32(u),t.prep(4,12),t.writeFloat32(c),t.writeFloat32(n),t.writeFloat32(i),t.writeFloat32(s),t.offset()}},tN=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}p1(t){return(t||new _n).__init(this.bb_pos,this.bb)}p2(t){return(t||new _n).__init(this.bb_pos+12,this.bb)}static sizeOf(){return 24}static createWire(t,s,i,n,c,u,I){return t.prep(4,24),t.prep(4,12),t.writeFloat32(I),t.writeFloat32(u),t.writeFloat32(c),t.prep(4,12),t.writeFloat32(n),t.writeFloat32(i),t.writeFloat32(s),t.offset()}},Sf=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsWireSet(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsWireSet(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}ps(t,s){let i=this.bb.__offset(this.bb_pos,4);return i?(s||new _n).__init(this.bb.__vector(this.bb_pos+i)+t*12,this.bb):null}psLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startWireSet(t){t.startObject(1)}static addPs(t,s){t.addFieldOffset(0,s,0)}static startPsVector(t,s){t.startVector(12,s,4)}static endWireSet(t){return t.endObject()}static createWireSet(t,s){return e.startWireSet(t),e.addPs(t,s),e.endWireSet(t)}},es=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAxis(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAxis(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}wires(t,s){let i=this.bb.__offset(this.bb_pos,4);return i?(s||new tN).__init(this.bb.__vector(this.bb_pos+i)+t*24,this.bb):null}wiresLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}order(t){let s=this.bb.__offset(this.bb_pos,6);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}orderLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}orderArray(){let t=this.bb.__offset(this.bb_pos,6);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}parts(t){let s=this.bb.__offset(this.bb_pos,8);return s?this.bb.readInt8(this.bb.__vector(this.bb_pos+s)+t):0}partsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}partsArray(){let t=this.bb.__offset(this.bb_pos,8);return t?new Int8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}wireSets(t,s){let i=this.bb.__offset(this.bb_pos,10);return i?(s||new Sf).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}wireSetsLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}circleCurves(t,s){let i=this.bb.__offset(this.bb_pos,12);return i?(s||new um).__init(this.bb.__vector(this.bb_pos+i)+t*44,this.bb):null}circleCurvesLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAxis(t){t.startObject(5)}static addWires(t,s){t.addFieldOffset(0,s,0)}static startWiresVector(t,s){t.startVector(24,s,4)}static addOrder(t,s){t.addFieldOffset(1,s,0)}static createOrderVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startOrderVector(t,s){t.startVector(4,s,4)}static addParts(t,s){t.addFieldOffset(2,s,0)}static createPartsVector(t,s){t.startVector(1,s.length,1);for(let i=s.length-1;i>=0;i--)t.addInt8(s[i]);return t.endVector()}static startPartsVector(t,s){t.startVector(1,s,1)}static addWireSets(t,s){t.addFieldOffset(3,s,0)}static createWireSetsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startWireSetsVector(t,s){t.startVector(4,s,4)}static addCircleCurves(t,s){t.addFieldOffset(4,s,0)}static startCircleCurvesVector(t,s){t.startVector(44,s,4)}static endAxis(t){let s=t.endObject();return t.requiredField(s,4),t.requiredField(s,6),t.requiredField(s,8),t.requiredField(s,10),t.requiredField(s,12),s}static createAxis(t,s,i,n,c,u){return e.startAxis(t),e.addWires(t,s),e.addOrder(t,i),e.addParts(t,n),e.addWireSets(t,c),e.addCircleCurves(t,u),e.endAxis(t)}},Dn=(e=>(e[e.NONE=0]="NONE",e[e.WIRE=1]="WIRE",e[e.WIRE_SET=2]="WIRE_SET",e[e.CIRCLE_CURVE=3]="CIRCLE_CURVE",e))(Dn||{}),jp=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsBigShellHole(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsBigShellHole(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(t){let s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}indicesLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){let t=this.bb.__offset(this.bb_pos,4);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}profileId(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint16(this.bb_pos+t):0}mutate_profile_id(t){let s=this.bb.__offset(this.bb_pos,6);return s===0?!1:(this.bb.writeUint16(this.bb_pos+s,t),!0)}static startBigShellHole(t){t.startObject(2)}static addIndices(t,s){t.addFieldOffset(0,s,0)}static createIndicesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startIndicesVector(t,s){t.startVector(4,s,4)}static addProfileId(t,s){t.addFieldInt16(1,s,0)}static endBigShellHole(t){let s=t.endObject();return t.requiredField(s,4),s}static createBigShellHole(t,s,i){return e.startBigShellHole(t),e.addIndices(t,s),e.addProfileId(t,i),e.endBigShellHole(t)}},Eu=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsBigShellProfile(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsBigShellProfile(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(t){let s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}indicesLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){let t=this.bb.__offset(this.bb_pos,4);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startBigShellProfile(t){t.startObject(1)}static addIndices(t,s){t.addFieldOffset(0,s,0)}static createIndicesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startIndicesVector(t,s){t.startVector(4,s,4)}static endBigShellProfile(t){let s=t.endObject();return t.requiredField(s,4),s}static createBigShellProfile(t,s){return e.startBigShellProfile(t),e.addIndices(t,s),e.endBigShellProfile(t)}},gL=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}min(t){return(t||new _n).__init(this.bb_pos,this.bb)}max(t){return(t||new _n).__init(this.bb_pos+12,this.bb)}static sizeOf(){return 24}static createBoundingBox(t,s,i,n,c,u,I){return t.prep(4,24),t.prep(4,12),t.writeFloat32(I),t.writeFloat32(u),t.writeFloat32(c),t.prep(4,12),t.writeFloat32(n),t.writeFloat32(i),t.writeFloat32(s),t.offset()}},ir=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCircleExtrusion(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCircleExtrusion(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}radius(t){let s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readFloat64(this.bb.__vector(this.bb_pos+s)+t*8):0}radiusLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}radiusArray(){let t=this.bb.__offset(this.bb_pos,4);return t?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}axes(t,s){let i=this.bb.__offset(this.bb_pos,6);return i?(s||new es).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}axesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startCircleExtrusion(t){t.startObject(2)}static addRadius(t,s){t.addFieldOffset(0,s,0)}static createRadiusVector(t,s){t.startVector(8,s.length,8);for(let i=s.length-1;i>=0;i--)t.addFloat64(s[i]);return t.endVector()}static startRadiusVector(t,s){t.startVector(8,s,8)}static addAxes(t,s){t.addFieldOffset(1,s,0)}static createAxesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startAxesVector(t,s){t.startVector(4,s,4)}static endCircleExtrusion(t){let s=t.endObject();return t.requiredField(s,4),t.requiredField(s,6),s}static createCircleExtrusion(t,s,i){return e.startCircleExtrusion(t),e.addRadius(t,s),e.addAxes(t,i),e.endCircleExtrusion(t)}},LL=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readFloat64(this.bb_pos)}mutate_x(t){return this.bb.writeFloat64(this.bb_pos+0,t),!0}y(){return this.bb.readFloat64(this.bb_pos+8)}mutate_y(t){return this.bb.writeFloat64(this.bb_pos+8,t),!0}z(){return this.bb.readFloat64(this.bb_pos+16)}mutate_z(t){return this.bb.writeFloat64(this.bb_pos+16,t),!0}static sizeOf(){return 24}static createDoubleVector(t,s,i,n){return t.prep(8,24),t.writeFloat64(n),t.writeFloat64(i),t.writeFloat64(s),t.offset()}},pm=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}r(){return this.bb.readUint8(this.bb_pos)}mutate_r(t){return this.bb.writeUint8(this.bb_pos+0,t),!0}g(){return this.bb.readUint8(this.bb_pos+1)}mutate_g(t){return this.bb.writeUint8(this.bb_pos+1,t),!0}b(){return this.bb.readUint8(this.bb_pos+2)}mutate_b(t){return this.bb.writeUint8(this.bb_pos+2,t),!0}a(){return this.bb.readUint8(this.bb_pos+3)}mutate_a(t){return this.bb.writeUint8(this.bb_pos+3,t),!0}renderedFaces(){return this.bb.readInt8(this.bb_pos+4)}mutate_rendered_faces(t){return this.bb.writeInt8(this.bb_pos+4,t),!0}stroke(){return this.bb.readInt8(this.bb_pos+5)}mutate_stroke(t){return this.bb.writeInt8(this.bb_pos+5,t),!0}static sizeOf(){return 6}static createMaterial(t,s,i,n,c,u,I){return t.prep(1,6),t.writeInt8(I),t.writeInt8(u),t.writeInt8(c),t.writeInt8(n),t.writeInt8(i),t.writeInt8(s),t.offset()}},yl=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}id(){return this.bb.readUint32(this.bb_pos)}mutate_id(t){return this.bb.writeUint32(this.bb_pos+0,t),!0}bbox(t){return(t||new gL).__init(this.bb_pos+4,this.bb)}representationClass(){return this.bb.readInt8(this.bb_pos+28)}mutate_representation_class(t){return this.bb.writeInt8(this.bb_pos+28,t),!0}static sizeOf(){return 32}static createRepresentation(t,s,i,n,c,u,I,D,g){return t.prep(4,32),t.pad(3),t.writeInt8(g),t.prep(4,24),t.prep(4,12),t.writeFloat32(D),t.writeFloat32(I),t.writeFloat32(u),t.prep(4,12),t.writeFloat32(c),t.writeFloat32(n),t.writeFloat32(i),t.writeInt32(s),t.offset()}},Cy=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}item(){return this.bb.readUint32(this.bb_pos)}mutate_item(t){return this.bb.writeUint32(this.bb_pos+0,t),!0}material(){return this.bb.readUint32(this.bb_pos+4)}mutate_material(t){return this.bb.writeUint32(this.bb_pos+4,t),!0}representation(){return this.bb.readUint32(this.bb_pos+8)}mutate_representation(t){return this.bb.writeUint32(this.bb_pos+8,t),!0}localTransform(){return this.bb.readUint32(this.bb_pos+12)}mutate_local_transform(t){return this.bb.writeUint32(this.bb_pos+12,t),!0}static sizeOf(){return 16}static createSample(t,s,i,n,c){return t.prep(4,16),t.writeInt32(c),t.writeInt32(n),t.writeInt32(i),t.writeInt32(s),t.offset()}},Qp=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsShellHole(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsShellHole(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(t){let s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readUint16(this.bb.__vector(this.bb_pos+s)+t*2):0}indicesLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){let t=this.bb.__offset(this.bb_pos,4);return t?new Uint16Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}profileId(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint16(this.bb_pos+t):0}mutate_profile_id(t){let s=this.bb.__offset(this.bb_pos,6);return s===0?!1:(this.bb.writeUint16(this.bb_pos+s,t),!0)}static startShellHole(t){t.startObject(2)}static addIndices(t,s){t.addFieldOffset(0,s,0)}static createIndicesVector(t,s){t.startVector(2,s.length,2);for(let i=s.length-1;i>=0;i--)t.addInt16(s[i]);return t.endVector()}static startIndicesVector(t,s){t.startVector(2,s,2)}static addProfileId(t,s){t.addFieldInt16(1,s,0)}static endShellHole(t){let s=t.endObject();return t.requiredField(s,4),s}static createShellHole(t,s,i){return e.startShellHole(t),e.addIndices(t,s),e.addProfileId(t,i),e.endShellHole(t)}},fu=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsShellProfile(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsShellProfile(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(t){let s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readUint16(this.bb.__vector(this.bb_pos+s)+t*2):0}indicesLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){let t=this.bb.__offset(this.bb_pos,4);return t?new Uint16Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startShellProfile(t){t.startObject(1)}static addIndices(t,s){t.addFieldOffset(0,s,0)}static createIndicesVector(t,s){t.startVector(2,s.length,2);for(let i=s.length-1;i>=0;i--)t.addInt16(s[i]);return t.endVector()}static startIndicesVector(t,s){t.startVector(2,s,2)}static endShellProfile(t){let s=t.endObject();return t.requiredField(s,4),s}static createShellProfile(t,s){return e.startShellProfile(t),e.addIndices(t,s),e.endShellProfile(t)}},Ia=(e=>(e[e.NONE=0]="NONE",e[e.BIG=1]="BIG",e))(Ia||{}),xi=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsShell(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsShell(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}profiles(t,s){let i=this.bb.__offset(this.bb_pos,4);return i?(s||new fu).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}profilesLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}holes(t,s){let i=this.bb.__offset(this.bb_pos,6);return i?(s||new Qp).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}holesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}points(t,s){let i=this.bb.__offset(this.bb_pos,8);return i?(s||new _n).__init(this.bb.__vector(this.bb_pos+i)+t*12,this.bb):null}pointsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}bigProfiles(t,s){let i=this.bb.__offset(this.bb_pos,10);return i?(s||new Eu).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}bigProfilesLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}bigHoles(t,s){let i=this.bb.__offset(this.bb_pos,12);return i?(s||new jp).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}bigHolesLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}type(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt8(this.bb_pos+t):Ia.NONE}mutate_type(t){let s=this.bb.__offset(this.bb_pos,14);return s===0?!1:(this.bb.writeInt8(this.bb_pos+s,t),!0)}profilesFaceIds(t){let s=this.bb.__offset(this.bb_pos,16);return s?this.bb.readUint16(this.bb.__vector(this.bb_pos+s)+t*2):0}profilesFaceIdsLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}profilesFaceIdsArray(){let t=this.bb.__offset(this.bb_pos,16);return t?new Uint16Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startShell(t){t.startObject(7)}static addProfiles(t,s){t.addFieldOffset(0,s,0)}static createProfilesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startProfilesVector(t,s){t.startVector(4,s,4)}static addHoles(t,s){t.addFieldOffset(1,s,0)}static createHolesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startHolesVector(t,s){t.startVector(4,s,4)}static addPoints(t,s){t.addFieldOffset(2,s,0)}static startPointsVector(t,s){t.startVector(12,s,4)}static addBigProfiles(t,s){t.addFieldOffset(3,s,0)}static createBigProfilesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startBigProfilesVector(t,s){t.startVector(4,s,4)}static addBigHoles(t,s){t.addFieldOffset(4,s,0)}static createBigHolesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startBigHolesVector(t,s){t.startVector(4,s,4)}static addType(t,s){t.addFieldInt8(5,s,Ia.NONE)}static addProfilesFaceIds(t,s){t.addFieldOffset(6,s,0)}static createProfilesFaceIdsVector(t,s){t.startVector(2,s.length,2);for(let i=s.length-1;i>=0;i--)t.addInt16(s[i]);return t.endVector()}static startProfilesFaceIdsVector(t,s){t.startVector(2,s,2)}static endShell(t){let s=t.endObject();return t.requiredField(s,4),t.requiredField(s,6),t.requiredField(s,8),t.requiredField(s,10),t.requiredField(s,12),t.requiredField(s,16),s}static createShell(t,s,i,n,c,u,I,D){return e.startShell(t),e.addProfiles(t,s),e.addHoles(t,i),e.addPoints(t,n),e.addBigProfiles(t,c),e.addBigHoles(t,u),e.addType(t,I),e.addProfilesFaceIds(t,D),e.endShell(t)}},uu=class{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}position(t){return(t||new LL).__init(this.bb_pos,this.bb)}xDirection(t){return(t||new _n).__init(this.bb_pos+24,this.bb)}yDirection(t){return(t||new _n).__init(this.bb_pos+36,this.bb)}static sizeOf(){return 48}static createTransform(t,s,i,n,c,u,I,D,g,U){return t.prep(8,48),t.prep(4,12),t.writeFloat32(U),t.writeFloat32(g),t.writeFloat32(D),t.prep(4,12),t.writeFloat32(I),t.writeFloat32(u),t.writeFloat32(c),t.prep(8,24),t.writeFloat64(n),t.writeFloat64(i),t.writeFloat64(s),t.offset()}},zt=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsMeshes(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMeshes(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}coordinates(t){let s=this.bb.__offset(this.bb_pos,4);return s?(t||new uu).__init(this.bb_pos+s,this.bb):null}meshesItems(t){let s=this.bb.__offset(this.bb_pos,6);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}meshesItemsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}meshesItemsArray(){let t=this.bb.__offset(this.bb_pos,6);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}samples(t,s){let i=this.bb.__offset(this.bb_pos,8);return i?(s||new Cy).__init(this.bb.__vector(this.bb_pos+i)+t*16,this.bb):null}samplesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}representations(t,s){let i=this.bb.__offset(this.bb_pos,10);return i?(s||new yl).__init(this.bb.__vector(this.bb_pos+i)+t*32,this.bb):null}representationsLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}materials(t,s){let i=this.bb.__offset(this.bb_pos,12);return i?(s||new pm).__init(this.bb.__vector(this.bb_pos+i)+t*6,this.bb):null}materialsLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}circleExtrusions(t,s){let i=this.bb.__offset(this.bb_pos,14);return i?(s||new ir).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}circleExtrusionsLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}shells(t,s){let i=this.bb.__offset(this.bb_pos,16);return i?(s||new xi).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}shellsLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}localTransforms(t,s){let i=this.bb.__offset(this.bb_pos,18);return i?(s||new uu).__init(this.bb.__vector(this.bb_pos+i)+t*48,this.bb):null}localTransformsLength(){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}globalTransforms(t,s){let i=this.bb.__offset(this.bb_pos,20);return i?(s||new uu).__init(this.bb.__vector(this.bb_pos+i)+t*48,this.bb):null}globalTransformsLength(){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__vector_len(this.bb_pos+t):0}materialIds(t){let s=this.bb.__offset(this.bb_pos,22);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}materialIdsLength(){let t=this.bb.__offset(this.bb_pos,22);return t?this.bb.__vector_len(this.bb_pos+t):0}materialIdsArray(){let t=this.bb.__offset(this.bb_pos,22);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}representationIds(t){let s=this.bb.__offset(this.bb_pos,24);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}representationIdsLength(){let t=this.bb.__offset(this.bb_pos,24);return t?this.bb.__vector_len(this.bb_pos+t):0}representationIdsArray(){let t=this.bb.__offset(this.bb_pos,24);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}sampleIds(t){let s=this.bb.__offset(this.bb_pos,26);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}sampleIdsLength(){let t=this.bb.__offset(this.bb_pos,26);return t?this.bb.__vector_len(this.bb_pos+t):0}sampleIdsArray(){let t=this.bb.__offset(this.bb_pos,26);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}localTransformIds(t){let s=this.bb.__offset(this.bb_pos,28);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}localTransformIdsLength(){let t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__vector_len(this.bb_pos+t):0}localTransformIdsArray(){let t=this.bb.__offset(this.bb_pos,28);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}globalTransformIds(t){let s=this.bb.__offset(this.bb_pos,30);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}globalTransformIdsLength(){let t=this.bb.__offset(this.bb_pos,30);return t?this.bb.__vector_len(this.bb_pos+t):0}globalTransformIdsArray(){let t=this.bb.__offset(this.bb_pos,30);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startMeshes(t){t.startObject(14)}static addCoordinates(t,s){t.addFieldStruct(0,s,0)}static addMeshesItems(t,s){t.addFieldOffset(1,s,0)}static createMeshesItemsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startMeshesItemsVector(t,s){t.startVector(4,s,4)}static addSamples(t,s){t.addFieldOffset(2,s,0)}static startSamplesVector(t,s){t.startVector(16,s,4)}static addRepresentations(t,s){t.addFieldOffset(3,s,0)}static startRepresentationsVector(t,s){t.startVector(32,s,4)}static addMaterials(t,s){t.addFieldOffset(4,s,0)}static startMaterialsVector(t,s){t.startVector(6,s,1)}static addCircleExtrusions(t,s){t.addFieldOffset(5,s,0)}static createCircleExtrusionsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startCircleExtrusionsVector(t,s){t.startVector(4,s,4)}static addShells(t,s){t.addFieldOffset(6,s,0)}static createShellsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startShellsVector(t,s){t.startVector(4,s,4)}static addLocalTransforms(t,s){t.addFieldOffset(7,s,0)}static startLocalTransformsVector(t,s){t.startVector(48,s,8)}static addGlobalTransforms(t,s){t.addFieldOffset(8,s,0)}static startGlobalTransformsVector(t,s){t.startVector(48,s,8)}static addMaterialIds(t,s){t.addFieldOffset(9,s,0)}static createMaterialIdsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startMaterialIdsVector(t,s){t.startVector(4,s,4)}static addRepresentationIds(t,s){t.addFieldOffset(10,s,0)}static createRepresentationIdsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startRepresentationIdsVector(t,s){t.startVector(4,s,4)}static addSampleIds(t,s){t.addFieldOffset(11,s,0)}static createSampleIdsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startSampleIdsVector(t,s){t.startVector(4,s,4)}static addLocalTransformIds(t,s){t.addFieldOffset(12,s,0)}static createLocalTransformIdsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startLocalTransformIdsVector(t,s){t.startVector(4,s,4)}static addGlobalTransformIds(t,s){t.addFieldOffset(13,s,0)}static createGlobalTransformIdsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startGlobalTransformIdsVector(t,s){t.startVector(4,s,4)}static endMeshes(t){let s=t.endObject();return t.requiredField(s,4),t.requiredField(s,6),t.requiredField(s,8),t.requiredField(s,10),t.requiredField(s,12),t.requiredField(s,14),t.requiredField(s,16),t.requiredField(s,18),t.requiredField(s,20),s}static createMeshes(t,s,i,n,c,u,I,D,g,U,F,V,H,z,j){return e.startMeshes(t),e.addCoordinates(t,s),e.addMeshesItems(t,i),e.addSamples(t,n),e.addRepresentations(t,c),e.addMaterials(t,u),e.addCircleExtrusions(t,I),e.addShells(t,D),e.addLocalTransforms(t,g),e.addGlobalTransforms(t,U),e.addMaterialIds(t,F),e.addRepresentationIds(t,V),e.addSampleIds(t,H),e.addLocalTransformIds(t,z),e.addGlobalTransformIds(t,j),e.endMeshes(t)}},N_=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsRelation(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsRelation(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}data(t,s){let i=this.bb.__offset(this.bb_pos,4);return i?this.bb.__string(this.bb.__vector(this.bb_pos+i)+t*4,s):null}dataLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startRelation(t){t.startObject(1)}static addData(t,s){t.addFieldOffset(0,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static endRelation(t){let s=t.endObject();return t.requiredField(s,4),s}static createRelation(t,s){return e.startRelation(t),e.addData(t,s),e.endRelation(t)}},ji=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsSpatialStructure(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSpatialStructure(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}localId(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):null}mutate_local_id(t){let s=this.bb.__offset(this.bb_pos,4);return s===0?!1:(this.bb.writeUint32(this.bb_pos+s,t),!0)}category(t){let s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__string(this.bb_pos+s,t):null}children(t,s){let i=this.bb.__offset(this.bb_pos,8);return i?(s||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}childrenLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSpatialStructure(t){t.startObject(3)}static addLocalId(t,s){t.addFieldInt32(0,s,null)}static addCategory(t,s){t.addFieldOffset(1,s,0)}static addChildren(t,s){t.addFieldOffset(2,s,0)}static createChildrenVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startChildrenVector(t,s){t.startVector(4,s,4)}static endSpatialStructure(t){return t.endObject()}static createSpatialStructure(t,s,i,n){return e.startSpatialStructure(t),s!==null&&e.addLocalId(t,s),e.addCategory(t,i),e.addChildren(t,n),e.endSpatialStructure(t)}},jt=class e{constructor(){k(this,"bb",null),k(this,"bb_pos",0)}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsModel(t,s){return(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsModel(t,s){return t.setPosition(t.position()+No),(s||new e).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(t){return t.__has_identifier("0001")}metadata(t){let s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}guids(t,s){let i=this.bb.__offset(this.bb_pos,6);return i?this.bb.__string(this.bb.__vector(this.bb_pos+i)+t*4,s):null}guidsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}guidsItems(t){let s=this.bb.__offset(this.bb_pos,8);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}guidsItemsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}guidsItemsArray(){let t=this.bb.__offset(this.bb_pos,8);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}maxLocalId(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readUint32(this.bb_pos+t):0}mutate_max_local_id(t){let s=this.bb.__offset(this.bb_pos,10);return s===0?!1:(this.bb.writeUint32(this.bb_pos+s,t),!0)}localIds(t){let s=this.bb.__offset(this.bb_pos,12);return s?this.bb.readUint32(this.bb.__vector(this.bb_pos+s)+t*4):0}localIdsLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}localIdsArray(){let t=this.bb.__offset(this.bb_pos,12);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}categories(t,s){let i=this.bb.__offset(this.bb_pos,14);return i?this.bb.__string(this.bb.__vector(this.bb_pos+i)+t*4,s):null}categoriesLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}meshes(t){let s=this.bb.__offset(this.bb_pos,16);return s?(t||new zt).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}attributes(t,s){let i=this.bb.__offset(this.bb_pos,18);return i?(s||new sm).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}attributesLength(){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}relations(t,s){let i=this.bb.__offset(this.bb_pos,20);return i?(s||new N_).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}relationsLength(){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__vector_len(this.bb_pos+t):0}relationsItems(t){let s=this.bb.__offset(this.bb_pos,22);return s?this.bb.readInt32(this.bb.__vector(this.bb_pos+s)+t*4):0}relationsItemsLength(){let t=this.bb.__offset(this.bb_pos,22);return t?this.bb.__vector_len(this.bb_pos+t):0}relationsItemsArray(){let t=this.bb.__offset(this.bb_pos,22);return t?new Int32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}guid(t){let s=this.bb.__offset(this.bb_pos,24);return s?this.bb.__string(this.bb_pos+s,t):null}spatialStructure(t){let s=this.bb.__offset(this.bb_pos,26);return s?(t||new ji).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}uniqueAttributes(t,s){let i=this.bb.__offset(this.bb_pos,28);return i?this.bb.__string(this.bb.__vector(this.bb_pos+i)+t*4,s):null}uniqueAttributesLength(){let t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__vector_len(this.bb_pos+t):0}relationNames(t,s){let i=this.bb.__offset(this.bb_pos,30);return i?this.bb.__string(this.bb.__vector(this.bb_pos+i)+t*4,s):null}relationNamesLength(){let t=this.bb.__offset(this.bb_pos,30);return t?this.bb.__vector_len(this.bb_pos+t):0}static startModel(t){t.startObject(14)}static addMetadata(t,s){t.addFieldOffset(0,s,0)}static addGuids(t,s){t.addFieldOffset(1,s,0)}static createGuidsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startGuidsVector(t,s){t.startVector(4,s,4)}static addGuidsItems(t,s){t.addFieldOffset(2,s,0)}static createGuidsItemsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startGuidsItemsVector(t,s){t.startVector(4,s,4)}static addMaxLocalId(t,s){t.addFieldInt32(3,s,0)}static addLocalIds(t,s){t.addFieldOffset(4,s,0)}static createLocalIdsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startLocalIdsVector(t,s){t.startVector(4,s,4)}static addCategories(t,s){t.addFieldOffset(5,s,0)}static createCategoriesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startCategoriesVector(t,s){t.startVector(4,s,4)}static addMeshes(t,s){t.addFieldOffset(6,s,0)}static addAttributes(t,s){t.addFieldOffset(7,s,0)}static createAttributesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startAttributesVector(t,s){t.startVector(4,s,4)}static addRelations(t,s){t.addFieldOffset(8,s,0)}static createRelationsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startRelationsVector(t,s){t.startVector(4,s,4)}static addRelationsItems(t,s){t.addFieldOffset(9,s,0)}static createRelationsItemsVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addInt32(s[i]);return t.endVector()}static startRelationsItemsVector(t,s){t.startVector(4,s,4)}static addGuid(t,s){t.addFieldOffset(10,s,0)}static addSpatialStructure(t,s){t.addFieldOffset(11,s,0)}static addUniqueAttributes(t,s){t.addFieldOffset(12,s,0)}static createUniqueAttributesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startUniqueAttributesVector(t,s){t.startVector(4,s,4)}static addRelationNames(t,s){t.addFieldOffset(13,s,0)}static createRelationNamesVector(t,s){t.startVector(4,s.length,4);for(let i=s.length-1;i>=0;i--)t.addOffset(s[i]);return t.endVector()}static startRelationNamesVector(t,s){t.startVector(4,s,4)}static endModel(t){let s=t.endObject();return t.requiredField(s,6),t.requiredField(s,8),t.requiredField(s,12),t.requiredField(s,14),t.requiredField(s,16),t.requiredField(s,24),s}static finishModelBuffer(t,s){t.finish(s,"0001")}static finishSizePrefixedModelBuffer(t,s){t.finish(s,"0001",!0)}},Wb=(e=>(e[e.ONE=0]="ONE",e[e.TWO=1]="TWO",e))(Wb||{}),ei=(e=>(e[e.NONE=0]="NONE",e[e.SHELL=1]="SHELL",e[e.CIRCLE_EXTRUSION=2]="CIRCLE_EXTRUSION",e))(ei||{}),N0=class{constructor(){k(this,"int"),k(this,"float"),k(this,"buffer"),k(this,"s1",4),k(this,"s2",8);let{intBuffer:t,floatBuffer:s,buffer:i}=this.newBuffers();this.int=t,this.float=s,this.buffer=i}newBuffers(){let t=new Int32Array(1),s=t.buffer,i=new Float32Array(s),n=new Uint8Array(s);return{intBuffer:t,floatBuffer:i,buffer:n}}},A_=class{static check(t){let s=Number.isInteger(t),i=t<this._max,n=t>this._min;return s&&i&&n}};k(A_,"_max",2147483647);k(A_,"_min",-2147483648);var zb=class Yb{constructor(){k(this,"_core",new N0),k(this,"_handlers"),k(this,"_result",-1),k(this,"handleObject",t=>{let s=Object.keys(t);for(let i of s)t.hasOwnProperty(i)&&this.compute(t[i])}),k(this,"handleString",t=>{let s=t.length;for(let i=0;i<s;++i){let n=t.codePointAt(i);this._core.int[0]=n,this.update()}}),k(this,"handleBoolean",t=>{t?this._core.int[0]=1:this._core.int[0]=0,this.update()}),k(this,"handleNumber",t=>{let i=A_.check(t)?this._core.int:this._core.float;i[0]=t,this.update()}),this._handlers=this.newHandlers()}get value(){return~this._result}fromMaterialData(t){let{modelId:s,objectClass:i,currentLod:n,templateId:c,...u}=t;this.reset(),this.compute(s),this.compute(i),this.compute(u),this.compute(n),this.compute(c!==void 0)}generate(t){this.reset();for(let s of t)this.compute(s);return this.value}compute(t){return this.getHandler(t)(t),this}reset(){return this._result=-1,this}getHandler(t){let s=typeof t,i=this._handlers[s];if(!i)throw new Error("Fragments: Unsupported input type");return i}newHandlers(){return{number:this.handleNumber,boolean:this.handleBoolean,string:this.handleString,object:this.handleObject}}update(){for(let t=0;t<this._core.s1;++t){this._result^=this._core.buffer[t];for(let s=0;s<this._core.s2;++s)this._result&1?this._result=this._result>>1^Yb._polynomial:this._result>>=1}}};k(zb,"_polynomial",2197175160);var kb=zb,zL=class rL{constructor(t,s){k(this,"_first"),this._first=this.newData(t,s)}static getComplementary(t,s){let i=0,n=t.position.length;i=this.makeBufferComplementary(n,t,i,s),i!==1/0&&s(i,1/0)}static get(t,s,i,n){let{filtered:c,position:u,size:I}=this.getData(t,i);return this.setAllBufferData(c,s,u,I,n),{position:u,size:I}}fullOf(t){let s=this._first.following,i=this._first.data;return s===null&&i===t}update(t,s){let i=this.getBufferData(t);if(!(i.data===s)){let{a:c,c:u,b:I}=this.newBuffers(t,i,s);this.setupInputData(i,c,u),this.setupUpdateBuffers(c,I,u)}}size(t){let s=0,i=this._first;for(;i!==null;)this.doesFilterPass(t,i)&&s++,i=i.following;return s}static setAllBufferData(t,s,i,n,c){for(let u=0;u<t.length;++u){let I=t[u];this.transform(I,s),this.setBuffers(i,n,u),c&&c(u,I.data)}}static makeBufferComplementary(t,s,i,n){for(let c=0;c<t;++c){let u=this.getBuffers(s,c),{position:I,size:D}=u;I>i&&n(i,I-i),i=I+D}return i}static setBuffers(t,s,i){t[i]=this._tempData.position,this._tempData.size===1/0?s[i]=this._inf:s[i]=this._tempData.size}add(t,s,i){if(!rL._stash.length)return this.newData(s,i,t);let c=rL._stash.pop();if(!c)throw new Error("Fragments: No stash found");return c.position=t,c.size=s,c.data=i,c}remove(t){t&&(t.following=null,t.past=null,rL._stash.push(t))}static getData(t,s){let i=t.filter(s),n=i.length,c=new Uint32Array(n),u=new Uint32Array(n);return{filtered:i,position:c,size:u}}filter(t){let s=[],i=this._first;for(;i!==null;)this.doesFilterPass(t,i)&&s.push(i),i=i.following;return s}static transform(t,s){let i=this.getTempData(),n=t.position+t.size,c=n===s.length;if(i.position=s[t.position],c)i.size=1/0;else{let u=s[n];i.size=u-i.position}return i}static getBuffers(t,s){let i=t.position[s],n=t.size[s]===this._inf,c;return n?c=1/0:c=t.size[s],{position:i,size:c}}static getTempData(){return this._tempData?this._tempData:{position:0,size:0}}doesFilterPass(t,s){return!t||t(s.data)}setupUpdateBuffers(t,s,i){this.chainBuffers(t,s,i),this.setupFirstBuffer(t,s),this.setupLastBuffer(i,s),this.setupMiddleBufferStart(s),this.setupMiddleBufferEnd(s)}setupMiddleBufferEnd(t){var s;if(((s=t.following)==null?void 0:s.data)===t.data){if(!t.following)return;let i=t.following.size+t.size,n=t.following.following;t.size=i,this.remove(t.following),t.following=n,t.following&&(t.following.past=t)}}setupFirstBuffer(t,s){t.size||(t.past?t.past.following=s:this._first=s,s.past=t.past,this.remove(t))}setupMiddleBufferStart(t){var s;if(((s=t.past)==null?void 0:s.data)===t.data){if(!t.past)return;t.size=t.past.size+t.size,t.position=t.past.position;let i=t.past.past;this.remove(t.past),t.past=i,t.past?t.past.following=t:this._first=t}}chainBuffers(t,s,i){t.following=s,s.past=t,s.following=i,i.past=s}setupLastBuffer(t,s){t.size||(t.following&&(t.following.past=s),s.following=t.following,this.remove(t))}newBuffers(t,s,i){let n=t-s.position,c=this.add(s.position,n,s.data),u=this.add(t,1,i),I=s.size-c.size-1,D=this.add(t+1,I,s.data);return{a:c,c:D,b:u}}setupInputData(t,s,i){t.past?(t.past.following=s,s.past=t.past):this._first=s,t.following&&(t.following.past=i,i.following=t.following),this.remove(t)}newData(t,s,i=0){return{position:i,size:t,past:null,following:null,data:s}}getBufferData(t){let s=this._first;for(;;){let i=s===null,n=s.position<=t,c=t<s.position+s.size;if(i||n&&c)return s;s=s.following}}};k(zL,"_stash",[]);k(zL,"_tempData",{position:0,size:0});k(zL,"_inf",4294967295);var jg=zL,Ih=class{static fixNumber(t){return Number.isNaN(t)||!Number.isFinite(t)?0:t}static forEach(t,s){if(Array.isArray(t)){let i=0;for(let n of t)s(n,i++);return}s(t,0)}},n_=class{static check(t,s,i){let n=this.get(i);return!!(t[s]&n)}static apply(t,s,i,n){let c=this.get(i);if(n){t[s]|=c;return}t[s]&=~c}static checkMemory(t){if(t>qS)throw new Error("Fragments: Memory overflow!")}static get(t){return 1<<t}},Kp=class{static parseMaterial(t){let s=t.r()/255,i=t.g()/255,n=t.b()/255,c=t.a()/255,u=t.a()<255,I=new Tl().setRGB(s,i,n,fh),D=t.renderedFaces();return{color:I,renderedFaces:D,opacity:c,transparent:u,localId:void 0}}static parseBox(t,s){this.getBox(t,s,"min"),this.getBox(t,s,"max")}static parseTransform(t,s){return this.getVector(t,"position",this._doubleVector),this.getVector(t,"xDirection",this._floatVector),this.getVector(t,"yDirection",this._floatVector),this.computeZVector(),this.setTransform(s),s}static setTransform(t){let{x:s,y:i,z:n}=this._temp.xDirection,{x:c,y:u,z:I}=this._temp.yDirection,{x:D,y:g,z:U}=this._temp.zDirection,{x:F,y:V,z:H}=this._temp.position;t.set(s,c,D,F,i,u,g,V,n,I,U,H,0,0,0,1)}static getBox(t,s,i){t[i](this._floatVector);let n=this._floatVector.x(),c=this._floatVector.y(),u=this._floatVector.z();s[i].x=Ih.fixNumber(n),s[i].y=Ih.fixNumber(c),s[i].z=Ih.fixNumber(u)}static getVector(t,s,i){t[s](i);let n=this._temp[s],c=i.x(),u=i.y(),I=i.z();n.x=Ih.fixNumber(c),n.y=Ih.fixNumber(u),n.z=Ih.fixNumber(I)}static computeZVector(){this._temp.zDirection.crossVectors(this._temp.xDirection,this._temp.yDirection)}};k(Kp,"_temp",{position:new it,xDirection:new it,yDirection:new it,zDirection:new it});k(Kp,"_doubleVector",new LL);k(Kp,"_floatVector",new _n);var mo=class{static get(t,s,i){this.fetchSampleTransform(t,s),this.fetchItemTransform(t,s),i.multiplyMatrices(this._item,this._sample)}static getBox(t,s){t.bbox(this._box),Kp.parseBox(this._box,s)}static getBoxData(t){this._min.copy(t.min),this._max.copy(t.max),this._center.addVectors(this._min,this._max),this._center.divideScalar(2),t.getSize(this._distance)}static boxSize(t){return this.getBoxData(t),this.applyTransformer(),this._edge.start=this._min.clone(),this._edge.end=this._max.clone(),this._edge}static applyTransformer(){let{x:t,y:s,z:i}=this._distance,n=Math.max(t,s,i);t===n?this._transformers.x():s===n?this._transformers.y():this._transformers.z()}static fetchItemTransform(t,s){let i=t.item();s.globalTransforms(i,this._transform),Kp.parseTransform(this._transform,this._item)}static fetchSampleTransform(t,s){let i=t.localTransform();s.localTransforms(i,this._transform),Kp.parseTransform(this._transform,this._sample)}static setBoxZ(){this._min.set(this._center.x,this._center.y,this._min.z),this._max.set(this._center.x,this._center.y,this._max.z)}static setBoxY(){this._min.set(this._center.x,this._min.y,this._center.z),this._max.set(this._center.x,this._max.y,this._center.z)}static setBoxX(){this._min.set(this._min.x,this._center.y,this._center.z),this._max.set(this._max.x,this._center.y,this._center.z)}};k(mo,"_transform",new uu);k(mo,"_min",new it);k(mo,"_max",new it);k(mo,"_center",new it);k(mo,"_distance",new it);k(mo,"_edge",new So);k(mo,"_item",new Ee);k(mo,"_sample",new Ee);k(mo,"_box",new gL);k(mo,"_transformers",{x:()=>mo.setBoxX(),y:()=>mo.setBoxY(),z:()=>mo.setBoxZ()});var Nf=mo,xL=class{static getWidth(t){return t.getSize(this._temp.vector),this._temp.vector.x>this._temp.vector.y&&this._temp.vector.set(this._temp.vector.y,this._temp.vector.x,this._temp.vector.z),this._temp.vector.y>this._temp.vector.z&&this._temp.vector.set(this._temp.vector.x,this._temp.vector.z,this._temp.vector.y),this._temp.vector.x>this._temp.vector.y&&this._temp.vector.set(this._temp.vector.y,this._temp.vector.x,this._temp.vector.z),this._temp.vector.y}};k(xL,"_temp",{vector:new it});var PL=class{static getEarcutDimensions(t){let s=Math.abs(t.x),i=Math.abs(t.y),n=Math.abs(t.z),c=0,u=1,I=2;return n>s&&n>i?t.z>0?[c,u]:[u,c]:i>s&&i>n?t.y>0?[I,c]:[c,I]:t.x>0?[u,I]:[I,u]}},ML=class{constructor(t,s){k(this,"meshes"),k(this,"_templateController",new K0),k(this,"_meshIds",new Set),k(this,"_idGenerator",new kb),k(this,"_modelCode"),this.meshes=s,this._modelCode=this.getModelCode(t)}dispose(){wS.delete(this._meshIds)}useMesh(t,s,i){let n=this.meshCode(t,i);wS.lockIn(s),this._templateController.add(n,s)}getMesh(t,s){let i=this.meshCode(t,s);return wS.get(i)??this._templateController.get(i)}saveMesh(t,s,i){Ih.forEach(s,wS.updateMeshMemory);let n=this.meshCode(t,i);wS.add(n,s),this._meshIds.add(n)}meshCode(t,s){let i=this._modelCode,n=this.getRepresentation(),c=[i,n,s,t];return this._idGenerator.generate(c)}getModelCode(t){return this._idGenerator.generate([t])}},r_=2**15-1,im=(e=>(e[e.NONE=0]="NONE",e[e.AABB=1]="AABB",e[e.CUSTOM=2]="CUSTOM",e))(im||{}),Ao=class hu{static getProfile(t,s,i){return t.type()===Ia.BIG?t.bigProfiles(s,i):t.profiles(s,i)}static getPoints(t){let s=new Float32Array(t.pointsLength()*3);for(let i=0;i<t.pointsLength();i++)t.points(i,this._tempPoint),s[i*3]=this._tempPoint.x(),s[i*3+1]=this._tempPoint.y(),s[i*3+2]=this._tempPoint.z();return s}static getProfileIndices(t,s){let i=t.type()===Ia.BIG,n={outer:[],inners:[]},c=i?t.bigHolesLength():t.holesLength(),u=i?"bigHoles":"holes",I=hu.getProfile(t,s);n.outer=Array.from(I.indicesArray());for(let D=0;D<c;D++){let g=t[u](D);if(g.profileId()===s){let U=Array.from(g.indicesArray());n.inners.push(U)}}return n}static getHole(t,s,i){return t.type()===Ia.BIG?t.bigHoles(s,i):t.holes(s,i)}static getProfilesLength(t){return t.type()===Ia.BIG?t.bigProfilesLength():t.profilesLength()}static getHolesLength(t){return t.type()===Ia.BIG?t.bigHolesLength():t.holesLength()}static getShell(t,s){return t.shells(s,this._shell)}static point(t,s,i){t instanceof xi&&t.points(s,this._tempPoint);let n=this._tempPoint.x(),c=this._tempPoint.y(),u=this._tempPoint.z();i.set(n,c,u)}static getNormalsOfShellProfile(t,s){let i=hu.getProfilesLength(t);for(let n=0;n<i;n++){let c=hu.getProfile(t,n),u=this.fetchNormalsOfProfile(t,c);s.push(u)}return s}static computeNormalsAvg(t,s,i,n){this.setupNormalBuffer(t);let c=i[s];for(let u=0;u<t.length;u++){let I=t[u],D=n.get(I);this.aggregateNormals(D,i,c),this.computeAvgNormal(u)}return this._normalBuffer}static getBuffer(t){let s=t.bb,n=s.__offset(t.bb_pos,8),c=t.pointsLength()*3,u=s.__vector(t.bb_pos+n),D=s.bytes().buffer;return new Float32Array(D,u,c)}static getPointsShell(t){return this._pointsByProfile.clear(),this.fetchAllPointsByProfile(t),hu.fetchAllPointsByHole(t),this._pointsByProfile}static addNormals(t,s,i){for(let n of t){let c=s[n];i.dot(c)>this._faceThreshold&&this._tempNormal.add(c)}}static setupNormalBuffer(t){let s=t.length*3;this._normalBuffer.length<s&&(this._normalBuffer=new Int16Array(s))}static fetchNormalsOfProfile(t,s){let i=s.indicesLength();return this.isTooSmall(t,i)?new it(1,0,0):this.computeProfileNormal(i,s,t)}static fetchAllPointsByHole(t){let s=hu.getHolesLength(t),i=this.getTempHole(t);for(let n=0;n<s;n++){hu.getHole(t,n,i);let c=i.profileId(),u=i.indicesLength();for(let I=0;I<u;I++){let D=i.indices(I);hu.savePointByProfile(D,c)}}}static computeProfileNormal(t,s,i){this._v3.set(0,0,0);for(let c=0;c<t;c++)this.fetchPointsForNormal(c,t,s,i),this.computeProfilePointNormal();let n=this._v3.clone();return n.normalize(),n}static computeProfilePointNormal(){let t=this._v1.x-this._v2.x,s=this._v1.y-this._v2.y,i=this._v1.z-this._v2.z,n=this._v1.x+this._v2.x,c=this._v1.y+this._v2.y,u=this._v1.z+this._v2.z;this._v3.x+=s*u,this._v3.y+=i*n,this._v3.z+=t*c}static aggregateNormals(t,s,i){if(this._tempNormal.set(0,0,0),!t||!t.length){this._tempNormal.set(1,0,0);return}if(t.length===1){let u=t[0];this._tempNormal=s[u].clone();return}hu.addNormals(t,s,i)}static fetchPointsForNormal(t,s,i,n){let u=(t+1)%s,I=i.indices(t),D=i.indices(u);this.point(n,I,this._v1),this.point(n,D,this._v2)}static savePointByProfile(t,s){this._pointsByProfile.has(t)||this._pointsByProfile.set(t,[]),this._pointsByProfile.get(t).push(s)}static isTooSmall(t,s){let i=t.pointsLength()<=2,n=s<=2;return i||n}static fetchAllPointsByProfile(t){let s=this.getProfilesLength(t),i=this.getTempProfile(t);for(let n=0;n<s;n++){hu.getProfile(t,n,i);let c=i.indicesLength();for(let u=0;u<c;u++){let I=i.indices(u);hu.savePointByProfile(I,n)}}}static computeAvgNormal(t){this._tempNormal.normalize(),this._tempNormal.multiplyScalar(r_),this._tempNormal.toArray(this._normalBuffer,t*3)}static getTempProfile(t){return t.type()===Ia.BIG?this._bigShellProfile:this._shellProfile}static getTempHole(t){return t.type()===Ia.BIG?this._bigShellHole:this._shellHole}};k(Ao,"_faceThreshold",Math.cos(Math.PI/8));k(Ao,"_shell",new xi);k(Ao,"_normalBuffer",new Int16Array);k(Ao,"_tempNormal",new it);k(Ao,"_tempPoint",new _n);k(Ao,"_shellProfile",new fu);k(Ao,"_bigShellProfile",new Eu);k(Ao,"_shellHole",new Qp);k(Ao,"_bigShellHole",new jp);k(Ao,"_pointsByProfile",new Map);k(Ao,"_v1",new it);k(Ao,"_v2",new it);k(Ao,"_v3",new it);var ze=Ao,A0=class{constructor(){k(this,"_shellHole",new Qp),k(this,"_bigShellHole",new jp),k(this,"holePoints",0),k(this,"profilePoints",0),k(this,"triangleAmount",0),k(this,"indexCount",0),k(this,"meshes",[]),k(this,"_shellProfile",new fu),k(this,"_bigShellProfile",new Eu)}newMeshTemplate(t){return this.getIsEmpty(t)?{objectClass:lu.SHELL}:(this.reset(!0),this.processShell(t),this.getResult())}manageDataLeft(){this.getIsDataLeft()&&this.setMesh()}getIsEmpty(t){return ze.getProfilesLength(t)===0}processShellHoles(t,s){let i=!1,n=ze.getHolesLength(t),c=this.getTempHole(t);for(let u=0;u<n;u++)ze.getHole(t,u,c),c.profileId()===s&&(this.updateBuffers(t,i),i=!0);this.manageFoundHoles(t,i)}newMesh(){return{objectClass:lu.SHELL,indexCount:this.triangleAmount*3,positionCount:(this.holePoints+this.profilePoints)*3,normalCount:(this.holePoints+this.profilePoints)*3}}reset(t){this.holePoints=0,this.profilePoints=0,this.triangleAmount=0,t&&(this.meshes=void 0)}getIsDataLeft(){let t=this.triangleAmount>0,s=this.holePoints>0,i=this.profilePoints>0;return t||s||i}processShell(t){let s=ze.getProfilesLength(t),i=this.getTempProfile(t);for(let n=0;n<s;n++)ze.getProfile(t,n,i),this.indexCount=i.indicesLength(),this.profilePoints+=this.indexCount,this.processShellHoles(t,n),this.manageMemory();this.manageDataLeft()}manageFoundHoles(t,s){let n=this.getTempProfile(t).indicesLength();if(s){this.triangleAmount+=n;return}n>2&&(this.triangleAmount+=n-2)}getResult(){let t=this.meshes;return this.meshes=void 0,t}manageMemory(){this.holePoints+this.profilePoints+this.indexCount>qS&&this.setMesh()}updateBuffers(t,s){let i=this.getTempHole(t);this.holePoints+=i.indicesLength(),this.triangleAmount+=i.indicesLength(),s&&(this.triangleAmount+=2)}setMesh(){let t=this.newMesh();this.meshes?Array.isArray(this.meshes)?this.meshes.push(t):this.meshes=[this.meshes,t]:this.meshes=t,this.reset(!1)}getTempProfile(t){return t.type()===Ia.BIG?this._bigShellProfile:this._shellProfile}getTempHole(t){return t.type()===Ia.BIG?this._bigShellHole:this._shellHole}},D0=(e=>(e[e.four=4]="four",e[e.three=3]="three",e))(D0||{});function Q7(e,t,s,i,n,c){let u=t&&t.length,I=u?t[0]*s:e.length,D=Kb(e,0,I,s,!0,i,n);if(!D||D.next===D.prev)return;let g,U,F;if(u&&(D=eV(e,t,D,s,i,n)),e.length>80*s){let V=e[i],H=e[n];g=V,U=H;for(let z=s;z<I;z+=s){let j=e[z+i],Q=e[z+n];j<g&&(g=j),Q<U&&(U=Q),j>V&&(V=j),Q>H&&(H=Q)}F=Math.max(V-g,H-U),F=F!==0?1/F:0}D_(D,c,s,g,U,F)}function Kb(e,t,s,i,n,c,u){let I,D,g;if(n===pV(e,t,s,i,c,u)>0)for(g=t;g<s;g+=i)I=VC(g,e[g+c],e[g+u],I);else for(g=s-i;g>=t;g-=i)I=VC(g,e[g+c],e[g+u],I);return I&&YL(I,I.next)&&(D=I.next,v_(I),I=D),I}function by(e,t){if(!e)return e;t||(t=e);let s=e,i,n;do if(i=!1,!s.steiner&&(YL(s,s.next)||fi(s.prev,s,s.next)===0)){if(n=s.prev,v_(s),s=t=n,s===s.next)break;i=!0}else s=s.next;while(i||s!==t);return t}function D_(e,t,s,i,n,c,u){!u&&c&&cV(e,i,n,c);let I=e;for(;e.prev!==e.next;){let D=e.prev,g=e.next;if(c?J7(e,i,n,c):$7(e)){t(D.i/s,e.i/s,g.i/s),v_(e),e=g.next,I=g.next;continue}if(e=g,e===I){u?u===1?(e=X7(by(e),t,s),D_(e,t,s,i,n,c,2)):u===2&&tV(e,t,s,i,n,c):D_(by(e),t,s,i,n,c,1);break}}}function $7(e){let t=e.prev,s=e,i=e.next;if(fi(t,s,i)>=0)return!1;let n=e.next.next;for(;n!==e.prev;){if(FS(t.x,t.y,s.x,s.y,i.x,i.y,n.x,n.y)&&fi(n.prev,n,n.next)>=0)return!1;n=n.next}return!0}function J7(e,t,s,i){let n=e.prev,c=e,u=e.next;if(fi(n,c,u)>=0)return!1;let I=Math.min(n.x,c.x,u.x),D=Math.min(n.y,c.y,u.y),g=Math.max(n.x,c.x,u.x),U=Math.max(n.y,c.y,u.y),F=O0(I,D,t,s,i),V=O0(g,U,t,s,i),H=e.prevZ,z=e.nextZ;for(;H&&H.z>=F&&z&&z.z<=V;){if(H!==e.prev&&H!==e.next&&FS(n.x,n.y,c.x,c.y,u.x,u.y,H.x,H.y)&&fi(H.prev,H,H.next)>=0||(H=H.prevZ,z!==e.prev&&z!==e.next&&FS(n.x,n.y,c.x,c.y,u.x,u.y,z.x,z.y)&&fi(z.prev,z,z.next)>=0))return!1;z=z.nextZ}for(;H&&H.z>=F;){if(H!==e.prev&&H!==e.next&&FS(n.x,n.y,c.x,c.y,u.x,u.y,H.x,H.y)&&fi(H.prev,H,H.next)>=0)return!1;H=H.prevZ}for(;z&&z.z<=V;){if(z!==e.prev&&z!==e.next&&FS(n.x,n.y,c.x,c.y,u.x,u.y,z.x,z.y)&&fi(z.prev,z,z.next)>=0)return!1;z=z.nextZ}return!0}function X7(e,t,s){let i=e;do{let n=i.prev,c=i.next.next;!YL(n,c)&&Zb(n,i,i.next,c)&&O_(n,c)&&O_(c,n)&&(t(n.i/s,i.i/s,c.i/s),v_(i.next),v_(i),i=e=c),i=i.next}while(i!==e);return by(i)}function tV(e,t,s,i,n,c){let u=e;do{let I=u.next.next;for(;I!==u.prev;){if(u.i!==I.i&&hV(u,I)){let D=qb(u,I);u=by(u,u.next),D=by(D,D.next),D_(u,t,s,i,n,c),D_(D,t,s,i,n,c);return}I=I.next}u=u.next}while(u!==e)}function eV(e,t,s,i,n,c){let u=[];for(let I=0,D=t.length;I<D;I++){let g=t[I]*i,U=I<D-1?t[I+1]*i:e.length,F=Kb(e,g,U,i,!1,n,c);F===F.next&&(F.steiner=!0),u.push(oV(F))}u.sort(sV);for(let I=0;I<u.length;I++)s=iV(u[I],s),s=by(s,s.next);return s}function sV(e,t){return e.x-t.x}function iV(e,t){let s=nV(e,t);if(!s)return t;let i=qb(s,e),n=by(s,s.next);return by(i,i.next),t===t.next||s===t?n:t}function nV(e,t){let s=t,i=e.x,n=e.y,c=-1/0,u;do{if(n<=s.y&&n>=s.next.y&&s.next.y!==s.y){let F=s.x+(n-s.y)*(s.next.x-s.x)/(s.next.y-s.y);if(F<=i&&F>c){if(c=F,F===i){if(n===s.y)return s;if(n===s.next.y)return s.next}u=s.x<s.next.x?s:s.next}}s=s.next}while(s!==t);if(!u)return null;if(i===c)return u;let I=u,D=u.x,g=u.y,U=1/0;s=u;do{if(i>=s.x&&s.x>=D&&i!==s.x&&FS(n<g?i:c,n,D,g,n<g?c:i,n,s.x,s.y)){let F=Math.abs(n-s.y)/(i-s.x);O_(s,e)&&(F<U||F===U&&(s.x>u.x||s.x===u.x&&rV(u,s)))&&(u=s,U=F)}s=s.next}while(s!==I);return u}function rV(e,t){return fi(e.prev,e,t.prev)<0&&fi(t.next,e,e.next)<0}function cV(e,t,s,i){let n=e;do n.z===null&&(n.z=O0(n.x,n.y,t,s,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,aV(n)}function aV(e){let t=1,s;do{let i=e,n;e=null;let c=null;for(s=0;i;){s++;let u=i,I=0;for(let g=0;g<t&&(I++,u=u.nextZ,!!u);g++);let D=t;for(;I>0||D>0&&u;)I!==0&&(D===0||!u||i.z<=u.z)?(n=i,i=i.nextZ,I--):(n=u,u=u.nextZ,D--),c?c.nextZ=n:e=n,n.prevZ=c,c=n;i=u}c.nextZ=null,t*=2}while(s>1);return e}function O0(e,t,s,i,n){return e=32767*(e-s)*n,t=32767*(t-i)*n,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function oV(e){let t=e,s=e;do(t.x<s.x||t.x===s.x&&t.y<s.y)&&(s=t),t=t.next;while(t!==e);return s}function FS(e,t,s,i,n,c,u,I){return(n-u)*(t-I)-(e-u)*(c-I)>=0&&(e-u)*(i-I)-(s-u)*(t-I)>=0&&(s-u)*(c-I)-(n-u)*(i-I)>=0}function hV(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!lV(e,t)&&(O_(e,t)&&O_(t,e)&&uV(e,t)&&(fi(e.prev,e,t.prev)||fi(e,t.prev,t))||YL(e,t)&&fi(e.prev,e,e.next)>0&&fi(t.prev,t,t.next)>0)}function fi(e,t,s){return(t.y-e.y)*(s.x-t.x)-(t.x-e.x)*(s.y-t.y)}function YL(e,t){return e.x===t.x&&e.y===t.y}function Zb(e,t,s,i){let n=$g(fi(e,t,s)),c=$g(fi(e,t,i)),u=$g(fi(s,i,e)),I=$g(fi(s,i,t));return!!(n!==c&&u!==I||n===0&&Qg(e,s,t)||c===0&&Qg(e,i,t)||u===0&&Qg(s,e,i)||I===0&&Qg(s,t,i))}function Qg(e,t,s){return t.x<=Math.max(e.x,s.x)&&t.x>=Math.min(e.x,s.x)&&t.y<=Math.max(e.y,s.y)&&t.y>=Math.min(e.y,s.y)}function $g(e){return e>0?1:e<0?-1:0}function lV(e,t){let s=e;do{if(s.i!==e.i&&s.next.i!==e.i&&s.i!==t.i&&s.next.i!==t.i&&Zb(s,s.next,e,t))return!0;s=s.next}while(s!==e);return!1}function O_(e,t){return fi(e.prev,e,e.next)<0?fi(e,t,e.next)>=0&&fi(e,e.prev,t)>=0:fi(e,t,e.prev)<0||fi(e,e.next,t)<0}function uV(e,t){let s=e,i=!1,n=(e.x+t.x)/2,c=(e.y+t.y)/2;do s.y>c!=s.next.y>c&&s.next.y!==s.y&&n<(s.next.x-s.x)*(c-s.y)/(s.next.y-s.y)+s.x&&(i=!i),s=s.next;while(s!==e);return i}function qb(e,t){let s=v0(e.i,e.x,e.y),i=v0(t.i,t.x,t.y),n=e.next,c=t.prev;return e.next=t,t.prev=e,s.next=n,n.prev=s,i.next=s,s.prev=i,c.next=i,i.prev=c,i}function VC(e,t,s,i){let n=v0(e,t,s);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function v_(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),e.next=e,e.prev=e}function v0(e,t,s){return{i:e,x:t,y:s,prev:null,next:null,z:null,prevZ:null,nextZ:null,steiner:!1}}function pV(e,t,s,i,n,c){let u=0;for(let I=t,D=s-i;I<s;I+=i)u+=(e[D+n]-e[I+n])*(e[I+c]+e[D+c]),D=I;return u}var jb=class _0{static create(t,s,i,n,c,u,I,D){let g=t.length,U=I.verticesAmount;_0.processBuffers(g,t,c,I,s,i);let F=c.positionBuffer,H=(I.verticesAmount-U)/3;this.processNormals(F,this._tempVec,H,U),this.triangulate(u,n,g,c,I,U),this.setFaceId(U,I,c,D)}static setFaceId(t,s,i,n){let c=t/3,u=s.verticesAmount/3;for(let I=c;I<u;I++)i.faceIdBuffer[I]=n}static getVertices(t,s,i){let c=t.positionBuffer.buffer,u=s*4,I=i.verticesAmount-s;return new Float32Array(c,u,I)}static getEvent(t,s,i){return(n,c,u)=>{let I=t.indexBuffer;I[s.indices++]=n+i/3,I[s.indices++]=c+i/3,I[s.indices++]=u+i/3}}static processBuffers(t,s,i,n,c,u){for(let I=0;I<t;I++)this.processPositionBuffer(i,s,I,n,c),this.processNormalbuffer(i,u,I,n),this.updateBufferData(n)}static getHoles(t,s,i,n,c){if(!t)return;if(t.has(s)){let I=t.get(s),D=[];for(let g of I.indices)D.push(g+i);return this.setHolesBuffers(n,I,c),D}}static setHolesBuffers(t,s,i){let n=t.positionBuffer,c=t.normalBuffer;n.set(s.points,i.verticesAmount);let u=s.points.length;i.verticesAmount+=u,i.vertices+=u/3,c.set(s.normals,i.normalsAmount),i.normalsAmount+=u}static updateBufferData(t){t.vertices+=1,t.verticesAmount+=3,t.normalsAmount+=3}static processPositionBuffer(t,s,i,n,c){let u=t.positionBuffer;for(let I=0;I<3;I++){let D=s[i]*3;u[n.verticesAmount+I]=c[D+I]}}static triangulate(t,s,i,n,c,u){let D=this.getHoles(t,s,i,n,c),g=_0.getVertices(n,u,c),U=PL.getEarcutDimensions(this._tempVec),F=this.getEvent(n,c,u),V=U[0],H=U[1];Q7(g,D,3,V,H,F)}static processNormals(t,s,i,n=0){s.set(0,0,0);for(let c=0;c<i;c++){let u=(c+1)%i,I=n+c*3,D=n+u*3,g=t[I+0],U=t[D+0],F=t[I+1],V=t[D+1],H=t[I+2],z=t[D+2];s.x+=(F-V)*(H+z),s.y+=(H-z)*(g+U),s.z+=(g-U)*(F+V)}s.normalize()}static processNormalbuffer(t,s,i,n){let c=t.normalBuffer,u=i*3,I=s[u],D=s[u+1],g=s[u+2];c.set([I,D,g],n.normalsAmount)}};k(jb,"_tempVec",new it);var Qb=jb,cr=class{static create(t,s,i,n,c,u,I){if(this.setAllVectors(t,s),this.getIsConvex()){this.processConvexFace4(c,u,i,I);return}Qb.create(t,s,i,n,c,void 0,u,I)}static setAllVectors(t,s){this.setVector(t,s,this.a,0),this.setVector(t,s,this.b,1),this.setVector(t,s,this.c,2),this.setVector(t,s,this.d,3),this.getCrossVectors()}static processConvexFace4(t,s,i,n){this.processIndices(t,s),this.processPoints(t,s),this.processNormal(t,s,i),this.setFaceId(t,s,n),this.updateData(s)}static setFaceId(t,s,i){let n=t.faceIdBuffer;for(let c=s.vertices;c<s.vertices+4;c++)n[c]=i}static getIsConvex(){return this.h.dot(this.i)>0}static getCrossVectors(){this.e.copy(this.b),this.f.copy(this.c),this.g.copy(this.d),this.e.sub(this.a),this.f.sub(this.a),this.g.sub(this.a),this.h.crossVectors(this.e,this.f),this.i.crossVectors(this.f,this.g)}static updateData(t){t.normalsAmount+=this.totalIncrease,t.vertices+=this.vertexIncrease,t.verticesAmount+=this.totalIncrease}static processPoints(t,s){let i=0,n=t.positionBuffer,c=s.verticesAmount;for(let u=0;u<this.vertexIncrease;u++){let I=this._vecs[u];n[c+i++]=I.x,n[c+i++]=I.y,n[c+i++]=I.z}}static setVector(t,s,i,n){let c=t[n]*3,u=s[c],I=s[c+1],D=s[c+2];i.set(u,I,D)}static processNormal(t,s,i){let n=t.normalBuffer,c=s.normalsAmount;for(let u=0;u<this.totalIncrease;u++)n[c+u]=i[u]}static processIndices(t,s){let i=t.indexBuffer;for(let n=0;n<this.indexIncrease;n++){let c=this._convexIndices[n];i[s.indices+n]=s.vertices+c}s.indices+=this.indexIncrease}};k(cr,"a",new it);k(cr,"b",new it);k(cr,"c",new it);k(cr,"d",new it);k(cr,"e",new it);k(cr,"f",new it);k(cr,"g",new it);k(cr,"h",new it);k(cr,"i",new it);k(cr,"_vecs",[cr.a,cr.b,cr.c,cr.d]);k(cr,"_convexIndices",[0,1,3,3,1,2]);k(cr,"totalIncrease",12);k(cr,"indexIncrease",6);k(cr,"vertexIncrease",4);var EV=cr,b1=class cL{static create(t,s,i,n,c,u){this.setFaceIds(c,n,u),this.setIndices(n,c),this.setPoints(t,n,c,s),this.setNormals(n,c,i),this.updateData(c)}static setFaceIds(t,s,i){let c=t.verticesAmount/3,u=c+3;for(let I=c;I<u;I++)s.faceIdBuffer[I]=i}static setNormals(t,s,i){let n=t.normalBuffer;for(let c=0;c<this.totalIncrease;c++)n[s.normalsAmount+c]=i[c]}static setPoints(t,s,i,n){let c=0,u=s.positionBuffer;for(let I=0;I<this.vertexIncrease;I++){let D=t[I]*this.vertexIncrease;for(let g=0;g<this.vertexIncrease;g++)u[i.verticesAmount+c]=n[D+g],c++}}static setIndices(t,s){let i=t.indexBuffer;for(let n=0;n<this.vertexIncrease;n++)i[s.indices+n]=s.vertices+n;s.indices+=this.vertexIncrease}static updateData(t){t.normalsAmount+=cL.totalIncrease,t.vertices+=cL.vertexIncrease,t.verticesAmount+=cL.totalIncrease}};k(b1,"vertexIncrease",3);k(b1,"totalIncrease",9);var fV=b1,g0=class{constructor(){k(this,"point",new _n),k(this,"_shellHole",new Qp),k(this,"_bigShellHole",new jp),k(this,"interiorProfiles",new Map),k(this,"normalsAvgInterior",new Int16Array),k(this,"_pointsPerProfile",new Map),k(this,"_shellProfile",new fu),k(this,"_bigShellProfile",new Eu),k(this,"_normalsAvg",new Int16Array),k(this,"_normals",[]),k(this,"_indices",0),k(this,"_sizes",{vertices:0,indices:0,verticesAmount:0,normalsAmount:0,normals:0}),k(this,"_tileData"),k(this,"_faceIdPerProfile",new Map),k(this,"nextBuffer",t=>{this.setTileData(t),this.initializeIndices(),this.initializePositions(),this.initializeNormals(),this.initializeFaceIds(),this.initializeSizes(),this._indices++})}construct(t,s){this.resetConstructData(s),this.getPointsPerWire(t);let i=ze.getBuffer(t);this.newShellInteriorProfiles(t),this.constructShell(t,i,s),this._tileData=void 0}getIntProfileNormalsAvg(t,s){let n=this.getTempHole(t).indicesArray();this.normalsAvgInterior=ze.computeNormalsAvg(n,s,this._normals,this._pointsPerProfile)}saveInteriorProfile(t){let i=this.getTempHole(t).profileId();if(this.interiorProfiles.has(i))return this.saveExistingInteriorProfile(i),i;let n=this.getNewIntProfileData();return this.interiorProfiles.set(i,n),i}computeNormalsAvg(t,s,i){if(!this.isShell(t))return;let c=this._normals,u=this._pointsPerProfile;this._normalsAvg=ze.computeNormalsAvg(s,i,c,u)}isShell(t){return t instanceof xi}getPointsPerWire(t){this.isShell(t)&&(ze.getNormalsOfShellProfile(t,this._normals),this._pointsPerProfile=ze.getPointsShell(t))}getIndices(t,s){let i=this.getTempProfile(t);return ze.getProfile(t,s,i),i.indicesArray()}resetConstructData(t){this._indices=0,this._tileData=void 0,this.nextBuffer(t),this._normals.length=0}initializeIndices(){let t=this._tileData.indexCount;this._tileData.indexBuffer=new Uint16Array(t)}constructFace4(t,s,i){let n=this._faceIdPerProfile.get(i);EV.create(t,s,this._normalsAvg,i,this._tileData,this._sizes,n)}initializeSizes(){this._sizes.vertices=0,this._sizes.indices=0,this._sizes.verticesAmount=0,this._sizes.normalsAmount=0,this._sizes.normals=0}getInteriorProfileBuffer(t,s){let n=this.getTempHole(t).indicesLength();if(this.isShell(t))for(let u=0;u<n;u++)this.getIntProfilePoints(u,t,s),this.getIntProfileNormals(s,u)}constructProfile(t,s,i,n){let u=this.getTempProfile(s).indicesLength(),I=!this.interiorProfiles.has(t);if(u===D0.three&&I){this.constructFace3(i,n,t);return}if(u===D0.four&&I){this.constructFace4(i,n,t);return}this.constructFaceX(i,n,t)}getIntProfileNormals(t,s){let i=s*3,n=this.normalsAvgInterior[i],c=this.normalsAvgInterior[i+1],u=this.normalsAvgInterior[i+2];t.normals.push(n,c,u)}saveExistingInteriorProfile(t){let s=this.interiorProfiles.get(t),n=s.points.length/3;s.indices.push(n),this.interiorProfiles.set(t,s)}getNewIntProfileData(){return{indices:[0],points:[],normals:[]}}constructFace3(t,s,i){let n=this._faceIdPerProfile.get(i);fV.create(t,s,this._normalsAvg,this._tileData,this._sizes,n)}getIntProfilePoints(t,s,i){let c=this.getTempHole(s).indices(t);s.points(c,this.point);let u=this.point.x(),I=this.point.y(),D=this.point.z();i.points.push(u,I,D)}manageMemory(t,s){let n=this.getTempProfile(t).indicesLength();this._sizes.verticesAmount/3+n>qS&&this.nextBuffer(s)}initializeFaceIds(){let t=this._tileData.positionCount;this._tileData.faceIdBuffer=new Uint32Array(t/3)}getNextFaceId(){return Math.random()*4294967295}newShellInteriorProfiles(t){this.interiorProfiles.clear();let s=ze.getHolesLength(t),i=this.getTempHole(t);for(let n=0;n<s;n++){ze.getHole(t,n,i);let c=this.saveInteriorProfile(t),u=this.interiorProfiles.get(c);this.getIntProfileNormalsAvg(t,c),this.getInteriorProfileBuffer(t,u)}return this.interiorProfiles}initializePositions(){let t=this._tileData.positionCount;this._tileData.positionBuffer=new Float32Array(t)}initializeNormals(){let t=this._tileData.normalCount;this._tileData.normalBuffer=new Int16Array(t)}setTileData(t){if(Array.isArray(t)){this._tileData=t[this._indices];return}this._tileData=t}constructShell(t,s,i){this.getFaceIds(t);let n=ze.getProfilesLength(t);for(let c=0;c<n;c++){let u=this.getIndices(t,c);this.computeNormalsAvg(t,u,c),this.constructProfile(c,t,u,s),this.manageMemory(t,i)}}constructFaceX(t,s,i){let n=this._faceIdPerProfile.get(i);Qb.create(t,s,this._normalsAvg,i,this._tileData,this.interiorProfiles,this._sizes,n)}getTempProfile(t){return t.type()===Ia.BIG?this._bigShellProfile:this._shellProfile}getTempHole(t){return t.type()===Ia.BIG?this._bigShellHole:this._shellHole}getFaceIds(t){this._faceIdPerProfile.clear();let s=t.profilesFaceIdsArray(),i=new Map;if(s&&s.length>0){for(let n=0;n<s.length;n++){let c=s[n];i.has(c)||i.set(c,this.getNextFaceId());let u=i.get(c);this._faceIdPerProfile.set(n,u)}return}for(let n=0;n<t.profilesLength();n++)this._faceIdPerProfile.set(n,this.getNextFaceId())}},L0=class{constructor(t){k(this,"a",new it),k(this,"b",new it),k(this,"c",new it),k(this,"d",new it),k(this,"e",new it),k(this,"f",new it),k(this,"g",new it),k(this,"h",new it),k(this,"i",new it),k(this,"j",new it),k(this,"k",new it),k(this,"tempTriangle",new ya),k(this,"tempPlane",new cc),k(this,"includedVertices",[]),k(this,"interiorProfiles",new Map),k(this,"_meshes"),this._meshes=t}faceRaycast(t,s){let i=ze.getShell(this._meshes,t);this.resetData(),this.getInteriorProfiles(i);let n=ze.getBuffer(i);return this.processAllCollisions(i,n,s),this.includedVertices}resetVectors(){this.a.set(0,0,0),this.b.set(0,0,0),this.c.set(0,0,0),this.d.set(0,0,0)}resetData(){this.includedVertices.length=0,this.interiorProfiles.clear()}getInteriorProfiles(t){let s=ze.getHolesLength(t);for(let i=0;i<s;i++){let c=ze.getHole(t,i).profileId();this.interiorProfiles.has(c)||this.interiorProfiles.set(c,[]),this.interiorProfiles.get(c).push(i)}}processTriangle(t,s,i){let n=t[0]*3,c=t[1]*3,u=t[2]*3;this.saveTriPoint(this.e,s,n),this.saveTriPoint(this.f,s,c),this.saveTriPoint(this.g,s,u);let I=this.triangleHit(i);if(I){let D=this.getTriangleBuffer(s,t);I.facePoints=D.points,I.faceIndices=D.indices,this.includedVertices.push(I)}}processAllCollisions(t,s,i){let n=ze.getProfilesLength(t);for(let c=0;c<n;c++){this.resetVectors();let u=this.getIndices(t,c);this.getValidCollision(u,s,i,c,t)&&this.processCollision(t,c,s,u)}}saveTriPoint(t,s,i){let n=s[i],c=s[i+1],u=s[i+2];t.set(n,c,u)}getIndices(t,s){return ze.getProfile(t,s).indicesArray()}getIsTriangle(t){return t.length===3}getNormal(){this.tempTriangle.a=this.e,this.tempTriangle.b=this.f,this.tempTriangle.c=this.g;let t=new it;return this.tempTriangle.getNormal(t),t}isHole(t,s,i){if(this.interiorProfiles.has(t)){let n=this.interiorProfiles.get(t);return this.holeContains(n,s,i)}return!1}computeNormal(t,s){this.d.set(0,0,0);let i=s.length;for(let n=0;n<i;n++){let c=(n+1)%i,u=s[n]*3,I=s[c]*3;this.processNormal(t,u,I)}this.d.normalize()}holeContains(t,s,i){let n=t.length;for(let c=0;c<n;c++){let I=ze.getHole(s,t[c]).indicesArray();if(this.polygonContains(i,I))return!0}return!1}triangleHit(t){let s=this.e,i=this.f,n=this.g;if(!t.intersectTriangle(s,i,n,!1,this.h))return;let u=this.getNormal();return{point:this.h.clone(),normal:u}}getValidCollision(t,s,i,n,c){return this.getIsTriangle(t)?(this.processTriangle(t,s,i),!1):!(!this.getCollidesPlane(t,s,i)||this.isHole(n,c,s))}processCollision(t,s,i,n){if(!this.polygonContains(i,n))return;let u=this.b.clone(),I=this.tempPlane.normal.clone(),D=this.getFaceBuffer(t,s,i);this.includedVertices.push({point:u,normal:I,facePoints:D.points,faceIndices:D.indices})}newOrthoNormalBasis(){let t=this.tempPlane.normal,s=this.j,i=this.i,n=Math.abs(t.x),c=Math.abs(t.y);if(n>=c){let u=1/Math.sqrt(t.x*t.x+t.z*t.z),I=-t.z*u,D=0,g=t.x*u;s.set(I,D,g);let U=t.y*s.z,F=t.z*s.x-t.x*s.z,V=-t.y*s.x;i.set(U,F,V)}else{let u=1/Math.sqrt(t.y*t.y+t.z*t.z),I=0,D=t.z*u,g=-t.y*u;s.set(I,D,g);let U=t.y*s.z-t.z*s.y,F=-t.x*s.z,V=t.x*s.y;i.set(U,F,V)}s.normalize(),i.normalize()}polygonContains(t,s){let i=!1;this.newOrthoNormalBasis(),this.setPolyContainVec(s,t);let n=this.k.dot(this.i),c=this.k.dot(this.j);for(let u=0;u<s.length;u++){let I=s[u]*3,D=t[I],g=t[I+1],U=t[I+2];this.k.set(D,g,U),this.k.sub(this.b);let F=this.k.dot(this.i),V=this.k.dot(this.j),H=V>0,z=c>0;H!==z&&(n-F)*-V/(c-V)+F>0&&(i=!i),n=F,c=V}return i}processNormal(t,s,i){let n=t[s+0],c=t[i+0],u=t[s+1],I=t[i+1],D=t[s+2],g=t[i+2];this.d.x+=(u-I)*(D+g),this.d.y+=(D-g)*(n+c),this.d.z+=(n-c)*(u+I)}getCollidesPlane(t,s,i){let n=t[0]*3,c=s[n],u=s[n+1],I=s[n+2];return this.a.set(c,u,I),this.computeNormal(s,t),this.tempPlane.setFromNormalAndCoplanarPoint(this.d,this.a),i.intersectPlane(this.tempPlane,this.b)}setPolyContainVec(t,s){let i=t[t.length-1]*3,n=s[i],c=s[i+1],u=s[i+2];this.k.set(n,c,u),this.k.sub(this.b)}getTriangleBuffer(t,s){let i=[],n=[];for(let c=0;c<s.length;c++){let u=s[c]*3;i.push(t[u],t[u+1],t[u+2]),n.push(c)}return{points:new Float32Array(i),indices:n}}getFaceBuffer(t,s,i){let n=ze.getProfileIndices(t,s),{outer:c,inners:u}=n,I=[];for(let X=0;X<c.length;X++){let $=c[X]*3;I.push(i[$],i[$+1],i[$+2])}let D=[];for(let X=0;X<u.length;X++){let $=u[X];D.push(I.length/3);for(let q=0;q<$.length;q++){let tt=$[q]*3;I.push(i[tt],i[tt+1],i[tt+2])}}let g=new it,U=new it,F=new it;g.set(I[0],I[1],I[2]),U.set(I[3],I[4],I[5]),F.set(I[6],I[7],I[8]);let V=new ya;V.set(g,U,F);let H=new it;V.getNormal(H);let[z,j]=PL.getEarcutDimensions(H),Q=[];for(let X=0;X<I.length;X+=3){let $=I[X],q=I[X+1],tt=I[X+2],at=[$,q,tt];Q.push(at[z],at[j])}let Z=Bb(Q,D);return{points:new Float32Array(I),indices:Z}}},x0=class{constructor(t){k(this,"_meshes"),k(this,"_minAngle",Math.PI/32),k(this,"_shellProfile",new fu),k(this,"_bigShellProfile",new Eu),k(this,"_tempV1",new it),k(this,"_tempV2",new it),k(this,"_tempPoint",new it),k(this,"_normals",[]),k(this,"_pointsByProfile",new Map),k(this,"_shell",new xi),k(this,"_result",[]),this._meshes=t}lineRaycast(t,s,i){return this.resetData(t),this.lineRaycastItems(s,i),this._result}lineRaycastItems(t,s){let i=ze.getProfilesLength(this._shell);for(let n=0;n<i;n++){let c=this.getTempProfile(this._shell);ze.getProfile(this._shell,n,c),this.lineRaycastProfile(t,s,n)}}resetData(t){this._shell=ze.getShell(this._meshes,t),this._normals.length=0,ze.getNormalsOfShellProfile(this._shell,this._normals),this._pointsByProfile=ze.getPointsShell(this._shell),this._result=[]}lineRaycastProfile(t,s,i){let n=this.getTempProfile(this._shell),c=n.indicesLength();for(let u=0;u<c;u++){let I=n.indices(u),D=this.getSecondIndex(u,c);this.cast(I,D,t,s,i)&&this.saveResult(i)}}isInvalidAngle(t,s,i){let n=this.getProfile(t,s,i);if(!n.length)return!0;let c=this._normals[n[0]],u=this._normals[i];return c.dot(u)>Math.cos(this._minAngle)}getProfile(t,s,i){let n=this._pointsByProfile.get(t),c=this._pointsByProfile.get(s),u=[];for(let I of n)c.indexOf(I)!==-1&&I!==i&&u.push(I);return u}cast(t,s,i,n,c){return ze.point(this._shell,t,this._tempV1),ze.point(this._shell,s,this._tempV2),this.raycastSegment(i),!(!n.containsPoint(this._tempPoint)||this.isInvalidAngle(t,s,c))}saveResult(t){let s=this._tempV1.clone(),i=this._tempV2.clone(),n=this._normals[t],c=this._tempPoint.clone();this._result.push({point:c,normal:n,snappedEdgeP1:s,snappedEdgeP2:i})}getSecondIndex(t,s){let i=t===s-1,n=this.getTempProfile(this._shell);return i?n.indices(0):n.indices(t+1)}raycastSegment(t){t.distanceSqToSegment(this._tempV1,this._tempV2,void 0,this._tempPoint)}getTempProfile(t){return t.type()===Ia.BIG?this._bigShellProfile:this._shellProfile}},P0=class{constructor(t){k(this,"_meshes"),k(this,"_tempVec",new it),this._meshes=t}pointRaycast(t,s){let i=ze.getShell(this._meshes,t),n=[];return this.cast(i,s,n),n}cast(t,s,i){let n=t.pointsLength();for(let c=0;c<n;c++){if(ze.point(t,c,this._tempVec),!s.containsPoint(this._tempVec))continue;let I=this._tempVec.clone();i.push({point:I})}}},M0=class extends ML{constructor(){super(...arguments),k(this,"_lodClass",im.AABB),k(this,"_objectClass",lu.SHELL),k(this,"_representationClass",ei.SHELL),k(this,"_templates",new A0),k(this,"_constructor",new g0),k(this,"_faceRaycaster",new L0(this.meshes)),k(this,"_lineRaycaster",new x0(this.meshes)),k(this,"_pointRaycaster",new P0(this.meshes))}fetchMeshes(t,s){let i=this.getMesh(t,de.GEOMETRY);return this.constructMesh(i,s,t),i}newMeshTemplate(t){return this._templates.newMeshTemplate(t)}lineRaycast(t,s,i){return this._lineRaycaster.lineRaycast(t,s,i)}faceRaycast(t,s){return this._faceRaycaster.faceRaycast(t,s)}raycast(t,s){return this._faceRaycaster.faceRaycast(t,s)}pointRaycast(t,s,i){return this._pointRaycaster.pointRaycast(t,i)}setupTemplates(){for(let t=0,s=this.meshes.shellsLength();t<s;t++){let i=ze.getShell(this.meshes,t);this.useMesh(t,this.newMeshTemplate(i),de.GEOMETRY)}}getRepresentation(){return this._representationClass}getObjectClass(){return this._objectClass}getLodClass(){return this._lodClass}isVoidMesh(t){return Array.isArray(t)?t[0].positionBuffer===void 0:t.positionBuffer===void 0}constructMesh(t,s,i){if(!this.isVoidMesh(t)||!s)return;let c=ze.getShell(this.meshes,i);this._constructor.construct(c,t),this.saveMesh(i,t,de.GEOMETRY)}},ne=class{static circleCurve3Divisions(t){let c=t.aperture(),u=t.radius(),I=c*u*4,D=Math.round(I);return Math.min(Math.max(D,4),32)}static traverseCircleCurve(t,s,i){let n=t.circleCurvesLength(),c=2;for(let u=0;u<n;u++){this.getAllCircleCurveData(t,u);let I=i(this._circleCurve);this._circlePoints.length=I-c,this.getCircleCurveMids(I),this.getNewCircleCurveData(),s(this._circleP1,this._circlePoints,this._circleP2)}}static traverseWireSets(t,s){let i=t.wireSetsLength();for(let n=0;n<i;n++)t.wireSets(n,this._wireSet),this.traverseWireSetWires(s)}static raycastCircleExtr(t,s,i,n){let c=s.distanceTo(t);return this.setupCircleExtrusionAxes(s,t),this.setupCircleExtrusionTransform(t,n),this.setupCircleExtrusionRay(i),this.computeCircleExtrusionRaycast(c,n)}static traverseWires(t,s){let i=t.wiresLength();for(let n=0;n<i;n++)t.wires(n,this._wire),this.setWire(),s(this._wireP1,this._wireP2)}static getNewCircleCurveData(){this._circleP2.copy(this._circleP1);let t=this._circleCurve.aperture(),s=this._circleCurve.radius();this._circleP2.applyAxisAngle(this._circleOrientation,t),this._circleP2.multiplyScalar(s),this._circleP2.add(this._circleOrigin),this._circleP1.multiplyScalar(s),this._circleP1.add(this._circleOrigin)}static setWire(){this.setWirePoint("p1",this._wireP1),this.setWirePoint("p2",this._wireP2)}static getCircleCurveMids(t){let s=this._circlePoints.length;for(let i=0;i<s;i++)this._circlePoints[i]=this.newCirclePoint(i,t)}static newCirclePoint(t,s){let i=s-1,n=t+1,c=new it;c.copy(this._circleP1);let u=this._circleCurve.radius(),g=this._circleCurve.aperture()*n/i;return c.applyAxisAngle(this._circleOrientation,g),c.multiplyScalar(u),c.add(this._circleOrigin),c}static getAllCircleCurveData(t,s){t.circleCurves(s,this._circleCurve),this.getCircleCurveData(this._circleOrigin,"position"),this.getCircleCurveData(this._circleOrientation,"xDirection"),this.getCircleCurveData(this._circleP1,"yDirection")}static setWirePoint(t,s){this._wire[t](this._floats);let i=this._floats.x(),n=this._floats.y(),c=this._floats.z();s.set(i,n,c)}static getCircleCurveData(t,s){let i=this._circleCurve[s]();this.getVectorData(i,t)}static getVectorData(t,s){let i=t.x(),n=t.y(),c=t.z();s.set(i,n,c)}static traverseWireSetWires(t){let i=this._wireSet.psLength()-1;for(let n=0;n<i;n++)this.getWiresetPoint(this._currentWireSetPoint,n),this.getWiresetPoint(this._nextWireSetPoint,n+1),t(this._currentWireSetPoint,this._nextWireSetPoint)}static getWiresetPoint(t,s){let i=this._wireSet.ps(s);this.getVectorData(i,t)}static setupCircleExtrusionTransform(t,s){this._ceTransform.identity(),this._ceTransform.makeBasis(this._ceAxisX,this._ceAxisY,this._ceAxisZ),this._ceTransform.setPosition(t),this._ceSize.set(s,s,s),this._ceTransform.scale(this._ceSize)}static computeCircleExtrusionRaycastFactors(){let i=this._ceRay.direction,n=this._ceRay.origin,c=i.x*i.x+i.y*i.y,u=2*n.x*i.x+2*n.y*i.y,I=n.x*n.x+n.y*n.y-1,D=4*c*I,g=u*u;if(D>g)return null;let F=2*c,V=Math.sqrt(g-D),H=(-u+V)/F,z=(-u-V)/F;return{factorA:H,factorB:z}}static computeCircleExtrusionRaycast(t,s){let i=this.computeCircleExtrusionRaycastFactors();if(i===null)return[];let{factorA:n,factorB:c}=i;return this._ceInverseTransform.transpose(),this._ceRaycastPoints=[],this.computeCircleExtrusionRaycastPoints(n,t,s),this.computeCircleExtrusionRaycastPoints(c,t,s),this._ceRaycastPoints}static setupCircleExtrusionRay(t){this._ceInverseTransform.copy(this._ceTransform),this._ceInverseTransform.invert(),this._ceRay.copy(t),this._ceRay.applyMatrix4(this._ceInverseTransform)}static computeCircleExtrusionRaycastPoints(t,s,i){if(!this.checkIfCircleExtrusionClashes(t,s,i))return;this._ceRaycastPoint.applyMatrix4(this._ceTransform);let c=this._ceRaycastPoint.clone();this._ceRaycastPoints.push({point:c})}static setupCircleExtrusionAxes(t,s){this._ceAxisZ.copy(t),this._ceAxisZ.sub(s),this._ceAxisZ.normalize(),this.computeNormal(this._ceAxisZ,this._ceAxisX),this._ceAxisY.crossVectors(this._ceAxisZ,this._ceAxisX)}static computeNormal(t,s){let n=t.dot(this._ceAbsoluteX),I=Math.abs(n)>.9?this._ceAbsoluteZ:this._ceAbsoluteX;s.crossVectors(t,I),s.normalize()}static setupCircleExtrusionRaycastPoint(t){this._ceRaycastPoint.copy(this._ceRay.direction),this._ceRaycastPoint.normalize(),this._ceRaycastPoint.multiplyScalar(t),this._ceRaycastPoint.add(this._ceRay.origin)}static checkIfCircleExtrusionClashes(t,s,i){this.setupCircleExtrusionRaycastPoint(t);let n=s/i,c=this._ceRaycastPoint.z;return c>=0&&c<=n}};k(ne,"_floats",new _n);k(ne,"_wire",new tN);k(ne,"_wireSet",new Sf);k(ne,"_circleCurve",new um);k(ne,"_wireP1",new it);k(ne,"_wireP2",new it);k(ne,"_circleP1",new it);k(ne,"_circleP2",new it);k(ne,"_circleOrigin",new it);k(ne,"_circleOrientation",new it);k(ne,"_currentWireSetPoint",new it);k(ne,"_nextWireSetPoint",new it);k(ne,"_ceAxisZ",new it);k(ne,"_ceAxisY",new it);k(ne,"_ceAxisX",new it);k(ne,"_ceRaycastPoint",new it);k(ne,"_ceSize",new it);k(ne,"_ceAbsoluteX",new it(0,0,1));k(ne,"_ceAbsoluteZ",new it(1,0,0));k(ne,"_circlePoints",[]);k(ne,"_ceTransform",new Ee);k(ne,"_ceInverseTransform",new Ee);k(ne,"_ceRay",new Zp);k(ne,"_ceRaycastPoints",[]);var Pi=class bS{static newPaths(t,s){let i=bS.newPathData();return this.fetchCircleCurveData(t,i),this.fetchCircleCurveMids(s,i,t),this.fetchCircleCurveEnds(i,t),this.fetchCircleCurveCuts(i),i.cuts}static getAxisPartSize(t,s,i){let n=t.parts(s),c=t.order(s),u=bS.getAxisPartData(n,i,t,c);return bS.fetchAxisPartSize(i,u),this._axisPartSize}static vertexLength(t,s=200){let i=Math.round(t*s),n=Math.max(i,bS._minSize);return Math.min(n,bS._maxSize)}static setPathVertices(t){let s=this.circleCurvePoints,i=!s,n=s&&s.length!==t;if(i||n){this.circleCurvePoints=[];for(let c=0;c<t;c++){let D=2*Math.PI*c/t,g=Math.sin(D),U=Math.cos(D),F=new it(g,U,0);this.circleCurvePoints.push(F)}}}static fetchCircleCurveEnds(t,s){t.last.copy(t.first),t.last.applyAxisAngle(t.axis,s.aperture()),t.last.multiplyScalar(s.radius()),t.last.add(t.center),t.first.multiplyScalar(s.radius()),t.first.add(t.center)}static getAxisPartData(t,s,i,n){return{[Dn.WIRE]:this.getAxisPartWireData,[Dn.WIRE_SET]:this.getAxisPartWireSetData,[Dn.CIRCLE_CURVE]:this.getAxisPartCircleCurveData}[t](i,n,s)}static newEmptyAxisPartData(){return{indices:0,points:0,faces:0,links:0}}static fetchCircleCurveMids(t,s,i){let n=t-2;for(let c=0;c<n;c++){let u=new it;u.copy(s.first);let I=i.aperture(),D=t-1,U=I*(c+1)/D;u.applyAxisAngle(s.axis,U),u.multiplyScalar(i.radius()),u.add(s.center),s.mids[c]=u}}static validSize(t,s,i){let n=t+s+i;return qS>=n}static fetchCircleCurveCuts(t){t.cuts.push(t.first),t.cuts.push(...t.mids),t.cuts.push(t.last)}static fetchCircleCurveData(t,s){let i=t.position();s.center.set(i.x(),i.y(),i.z());let n=t.xDirection();s.axis.set(n.x(),n.y(),n.z());let c=t.yDirection();s.first.set(c.x(),c.y(),c.z())}static newPathData(){return{axis:new it,cuts:[],center:new it,last:new it,first:new it,mids:[]}}static fetchAxisPartSize(t,s){let i=t-2,c=s.faces*i*3,u=s.links*t*this._wireSize;this._axisPartSize.verticesLength=s.points,this._axisPartSize.indicesLength=s.indices+c+u}};k(Pi,"up",new it(0,0,1));k(Pi,"circleCurves",[]);k(Pi,"circleCurvePoints");k(Pi,"temp",{circleExtrusion:new ir,circleCurve:new um,wireSet:new Sf,axis:new es,rotation:new My,vector:new it});k(Pi,"_wireSize",6);k(Pi,"_minSize",6);k(Pi,"_maxSize",30);k(Pi,"_axisPartSize",{verticesLength:0,indicesLength:0});k(Pi,"getAxisPartWireSetData",(e,t,s)=>{let n=Pi.newEmptyAxisPartData();e.wireSets(t,Pi.temp.wireSet);let c=Pi.temp.wireSet.psLength()-1;return n.points=c*2*s,n.indices=Pi._wireSize*c*s,n.faces=c*2,n});k(Pi,"getAxisPartWireData",(e,t,s)=>{let i=Pi.newEmptyAxisPartData();return i.points=2*s,i.indices=Pi._wireSize*s,i.faces=2,i});k(Pi,"getAxisPartCircleCurveData",(e,t,s)=>{let i=Pi.newEmptyAxisPartData();e.circleCurves(t,Pi.temp.circleCurve);let n=ne.circleCurve3Divisions(Pi.temp.circleCurve),c=s*n;i.points=c;let u=s*(n-1),I=Pi._wireSize*u;i.indices=I;let D=2;return i.faces=D,i.links=D,i});var Lt=Pi,U0=class{constructor(){k(this,"_minLinkDistance",1/1e8),k(this,"_first",new it),k(this,"_last",new it),k(this,"_currentPoint"),k(this,"_currentIndex"),k(this,"_v1",new it),k(this,"_v2",new it),k(this,"_v3",new it),k(this,"_v4",new it),k(this,"_tempLine",new So),k(this,"_total",0),k(this,"_closest",0),k(this,"_result",0)}newTemplate(t,s,i){let n=t.radius(s),c=t.axes(s,Lt.temp.axis),u=Lt.vertexLength(n),I=i.length-1,D=i[I],g=c.orderLength();for(let U=0;U<g;U++)D=this.generateTemplate(c,U,u,D,i)}construct(t,s){let i={},u=0;for(let I=0,D=t.axesLength();I<D;I++){let g=t.radius(I);t.axes(I,Lt.temp.axis);let U=Lt.vertexLength(g);u=this.constructVce(U,i,void 0,u,0,s,g)}}getTemplateCreationData(t,s,i){let n=!t,c=!1;if(!n){let u=t.positionCount/3,I=s.verticesLength;c=Lt.validSize(u,I,i)}return{isStart:n,fits:c}}generateTemplate(t,s,i,n,c){let u=Lt.getAxisPartSize(t,s,i),{isStart:I,fits:D}=this.getTemplateCreationData(n,u,i);return(I||!D)&&(n=this.newTemplateData(),c.push(n),this.savePrevious(I,s,i,n)),n.positionCount+=u.verticesLength*3,n.normalCount+=u.verticesLength*3,n.indexCount+=u.indicesLength,n}savePrevious(t,s,i,n){if(!t&&s!==0){let D=(i-2)*3;n.positionCount+=i*3,n.normalCount+=i*3,n.indexCount+=D}}constructNewVce(t,s,i,n,c,u,I){let D=!t,g=!1;if(!D){let F=s.verticesLength;g=Lt.validSize(i,F,n)}if(D||!g){t=c[u++],this.setupNewVceBuffers(t);let F=this._currentPoint;if(i=this.clearOffset(i),!D&&I!==0){let H=c[u-2];this.getClone(H,t,F,n),i+=n}}return{data:t,pointAmount:i,position:u}}constructVce(t,s,i,n,c,u,I){let D=Lt.temp.axis.orderLength();for(let g=0;g<D;g++){let U=Lt.temp.axis,F=Lt.getAxisPartSize(U,g,t);this.setupLink(g,s),{data:i,pointAmount:n,position:c}=this.constructNewVce(i,F,n,t,u,c,g),this.newAxisPart(Lt.temp.axis,g,i,I,t,s),n+=F.verticesLength}return n}newTemplateData(){return{objectClass:lu.SHELL,indexCount:0,positionCount:0,normalCount:0}}setupNewVceBuffers(t){t.positionBuffer=new Float32Array(t.positionCount),t.normalBuffer=new Int16Array(t.normalCount),t.indexBuffer=new Uint16Array(t.indexCount)}clearOffset(t){return this._currentPoint=0,this._currentIndex=0,t=0,t}getClone(t,s,i,n){let c=n*-3;for(let u=c;u<0;u++){let I=s.positionBuffer,D=t.positionBuffer,g=s.normalBuffer,U=t.normalBuffer;I[this._currentPoint]=D[i+u],g[this._currentPoint]=U[i+u],this._currentPoint++}}manageAxisPartCreation(t,s,i,n,c,u,I){if(t===Dn.CIRCLE_CURVE){let D=s.circleCurves(i);this.newCircleCurve(D,n,c,u,I);return}if(t===Dn.WIRE_SET){let D=s.wireSets(i);this.newWireSet(D,n,c,u,I);return}if(t===Dn.WIRE){let D=s.wires(i);this.newWire(D,n,c,u,I)}}newWireSetStart(t,s,i,n){t===1?this.linkStart(s,i,n,this._first,Dn.WIRE_SET):this.newPathOrderData(s,i)}newWireSet(t,s,i,n,c){for(let u=1,I=t.psLength();u<I;u++){let D=Lt.temp.rotation;this.getWireSetPoints(t,u),this.setWireSetVector(),this.newPath(this._first,s,D,i,n),this.newWireSetStart(u,i,n,c),this.newPath(this._last,s,D,i,n),this.fillWireSetData(u,I,c,i,n),this.linkPaths(i,n)}}fillWireSetData(t,s,i,n,c){t!==s-1||i.last?this.newPathOrderData(n,c,!0):(i.placement=this._last,i.axisClass=Dn.WIRE_SET)}setWireSetVector(){Lt.temp.vector.copy(this._last),Lt.temp.vector.sub(this._first),Lt.temp.vector.normalize(),Lt.temp.rotation.setFromUnitVectors(Lt.up,Lt.temp.vector)}newCircleCurveBody(t,s,i,n){let c=t-2;for(let u=0;u<c;u++){let I=Lt.circleCurves[u],D=Lt.circleCurves[u+1],g=Lt.circleCurves[u+2],U=Lt.temp.vector;U.copy(g),U.sub(I),U.normalize(),Lt.temp.rotation.setFromUnitVectors(Lt.up,U),this.newPath(D,s,Lt.temp.rotation,i,n),this.linkPaths(i,n,!0)}}newCircleCurveFinish(t,s,i,n,c){let u=t-2,I=t-1,D=Lt.circleCurves[u],g=Lt.circleCurves[I],U=Lt.temp.vector;if(U.copy(g),U.sub(D),U.normalize(),Lt.temp.rotation.setFromUnitVectors(Lt.up,U),this.newPath(g,s,Lt.temp.rotation,i,n),c.last){this.newPathOrderData(i,n,!0);return}c.placement=Lt.circleCurves[I],c.axisClass=Dn.CIRCLE_CURVE}setupLink(t,s){t===0&&(s.first=!0);let i=Lt.temp.axis.orderLength();t===i-1&&(s.last=!0)}newCircleCurveStart(t,s,i,n){let c=Lt.circleCurves[0],u=Lt.circleCurves[1],I=Lt.temp.vector;I.copy(u),I.sub(c),I.normalize(),Lt.temp.rotation.setFromUnitVectors(Lt.up,I),this.newPath(c,t,Lt.temp.rotation,s,i);let D=Dn.CIRCLE_CURVE;this.linkStart(s,i,n,c,D)}getWireSetPoints(t,s){let i=t.ps(s-1);this._first.set(i.x(),i.y(),i.z());let n=t.ps(s);this._last.set(n.x(),n.y(),n.z())}finishWire(t,s,i,n){this.newPath(this._last,t,Lt.temp.rotation,s,i),n.last?this.newPathOrderData(s,i,!0):(n.placement=this._last,n.axisClass=Dn.WIRE),this.linkPaths(s,i)}linkPaths(t,s,i=!1){let n=s,{p1:c,p2:u,p3:I}=this.getPathPositions(n,i,t),D=t.indexBuffer;for(let g=0;g<n;g++){let U=(g+1)%n,{i3:F,i4:V,i1:H,i2:z}=this.getLinkPathIndices(I,g,c,n,U,u);D[this._currentIndex++]=F,D[this._currentIndex++]=V,D[this._currentIndex++]=H,D[this._currentIndex++]=H,D[this._currentIndex++]=V,D[this._currentIndex++]=z}}startWire(t,s,i,n){this.newPath(this._first,t,Lt.temp.rotation,s,i);let c=Dn.WIRE;this.linkStart(s,i,n,this._first,c)}setupWireVectors(){let t=Lt.temp.vector;t.copy(this._last),t.sub(this._first),t.normalize(),Lt.temp.rotation.setFromUnitVectors(Lt.up,t)}getLinkPathIndices(t,s,i,n,c,u){let I=0,D=0,g=0,U=0;return t+s>=i?I=t+s-n:I=t+s,t+c>=i?D=t+c-n:D=t+c,u+s>=i+n?g=u+s-n:g=u+s,u+c>=i+n?U=u+c-n:U=u+c,{i3:g,i4:U,i1:I,i2:D}}fetchWirePoints(t){let s=t.p1(),i=t.p2();this._first.set(s.x(),s.y(),s.z()),this._last.set(i.x(),i.y(),i.z())}findLinkedVertex(t,s,i,n,c){for(let u=t;u<s;u++){this.point(u,i,this._v1);let I=u-n+c,D=I>=t?I-n:I;this.point(D,i,this._v2);let g=I+1>=t?I+1-n:I+1;this.point(g,i,this._v3),this._tempLine.set(this._v2,this._v3),this._tempLine.closestPointToPoint(this._v1,!0,this._v4),this._total+=this._v4.distanceTo(this._v1)}}newPath(t,s,i,n,c){Lt.setPathVertices(c);let u=3;for(let I=0;I<c;I++)this.setPathPosition(I,s,i,t,n),this.setPathNormal(I,i,n),this._currentPoint+=u}linkStart(t,s,i,n,c){if(i.first){this.newPathOrderData(t,s);return}let I=Dn.CIRCLE_CURVE,U=i.axisClass===I||c===I,V=i.placement.distanceToSquared(n)<this._minLinkDistance;if(!U||!V){this.newPathOrderData(t,s,!0,!0),this.newPathOrderData(t,s);return}this.linkPaths(t,s,!0)}setPathPosition(t,s,i,n,c){let u=Lt.temp.vector;u.copy(Lt.circleCurvePoints[t]),u.multiplyScalar(s),u.applyQuaternion(i),u.add(n);let I=c.positionBuffer,D=this._currentPoint,g=this._currentPoint+1,U=this._currentPoint+2;I[D]=u.x,I[g]=u.y,I[U]=u.z}newWire(t,s,i,n,c){this.fetchWirePoints(t),this.setupWireVectors(),this.startWire(s,i,n,c),this.finishWire(s,i,n,c)}newCircleCurve(t,s,i,n,c){let u=ne.circleCurve3Divisions(t);Lt.circleCurves=Lt.newPaths(t,u),this.newCircleCurveStart(s,i,n,c),this.newCircleCurveBody(u,s,i,n),this.newCircleCurveFinish(u,s,i,n,c),this.linkPaths(i,n,!0)}newPathOrderData(t,s,i=!1,n=!1){let I=s-2,D=t.indexBuffer;for(let g=0;g<I;g++){let U=this._currentPoint/3,V=s*(n?2:1),H=U-V;D[this._currentIndex]=H,this._currentIndex++;let z=i?2:1,j=U+g+z-V;D[this._currentIndex]=j,this._currentIndex++;let Q=i?1:2,Z=U+g+Q-V;D[this._currentIndex]=Z,this._currentIndex++}}getPathPositions(t,s,i){let n=this._currentPoint/3-t,c=n,u=n-t;return s&&(u=this.fetchLinkedVertex(n,i,t)),{p3:u,p1:n,p2:c}}newAxisPart(t,s,i,n,c,u){let I=t.parts(s),D=t.order(s);this.manageAxisPartCreation(I,t,D,n,i,c,u),u.first=!1,u.last=!1}fetchLinkedVertex(t,s,i){this._closest=Number.MAX_VALUE;for(let n=0;n<i;n++){this._total=0;let c=t+i;this.findLinkedVertex(t,c,s,i,n),this._total<this._closest&&(this._closest=this._total,this._result=t-i+n+1)}return this._result}setPathNormal(t,s,i){let n=Lt.temp.vector,c=Lt.circleCurvePoints[t];n.copy(c),n.applyQuaternion(s);let u=i.normalBuffer,I=this._currentPoint,D=this._currentPoint+1,g=this._currentPoint+2;u[I]=n.x*r_,u[D]=n.y*r_,u[g]=n.z*r_}point(t,s,i){let n=s.positionBuffer,c=t*3,u=t*3+1,I=t*3+2,D=n[c],g=n[u],U=n[I];return i.set(D,g,U),i}},C0=class{constructor(t){k(this,"_meshes"),k(this,"_results",[]),k(this,"_circleExtrusion",new ir),k(this,"_axis",new es),this._meshes=t}raycast(t,s){this._results.length=0,this._meshes.circleExtrusions(t,this._circleExtrusion);for(let i=0,n=this._circleExtrusion.axesLength();i<n;i++){this._circleExtrusion.axes(i,this._axis);let c=this._circleExtrusion.radius(i);this.traverseAllCurves(s,c)}return this._results}getTraverseWiresEvent(t,s){return(i,n)=>{this.castCurveExtrusion(i,n,t,s)}}castCurveExtrusion(t,s,i,n){let u=ne.raycastCircleExtr(t,s,i,n);for(let I of u)this._results.push(I)}getTraverseCircleCurveEvent(t,s){return(i,n,c)=>{let u=n[0];this.castCurveExtrusion(i,u,t,s);for(let D=0;D<n.length;D++){if(D===0)continue;let g=n[D-1],U=n[D];this.castCurveExtrusion(g,U,t,s)}let I=n[n.length-1];this.castCurveExtrusion(I,c,t,s)}}traverseAllCurves(t,s){let i=this.getTraverseWiresEvent(t,s);ne.traverseWires(this._axis,i);let n=this.getTraverseCircleCurveEvent(t,s),c=ne.circleCurve3Divisions;ne.traverseCircleCurve(this._axis,n,c);let u=this.getTraverseWiresEvent(t,s);ne.traverseWireSets(this._axis,u)}},b0=class{constructor(t){k(this,"_meshes"),k(this,"_found",[]),k(this,"_circleExtrusion",new ir),k(this,"_axis",new es),k(this,"_wirePoint",new it),this._meshes=t}lineRaycast(t,s){this._found.length=0,this._meshes.circleExtrusions(t,this._circleExtrusion);let i=this._circleExtrusion.axesLength();for(let n=0;n<i;n++)this._circleExtrusion.axes(n,this._axis),this.processLineRaycast(n,s);return this._found}wireSetRaycast(t,s){let i=this._axis;ne.traverseWireSets(i,(n,c)=>{this.cylinderRaycast(n,c,t,s)})}exclusiveCylinderRaycast(t,s){let i=this._axis,n=this.getCylinderRaycastEvent(t,s);ne.traverseWires(i,n)}processLineRaycast(t,s){let i=this._circleExtrusion.radius(t);this.exclusiveCylinderRaycast(s,i),this.circleCurveRaycast(s,i),this.wireSetRaycast(s,i)}getCylinderRaycastEvent(t,s){return(i,n)=>{this.cylinderRaycast(i,n,t,s)}}processCircleCurveBody(t,s,i){for(let n=0;n<t.length;n++){if(n===0)continue;let c=t[n],u=t[n-1];this.cylinderRaycast(u,c,s,i)}}getCircleCurveRaycastEvent(t,s){return(i,n,c)=>{this.cylinderRaycast(i,n[0],t,s),this.processCircleCurveBody(n,t,s);let u=n[n.length-1];this.cylinderRaycast(u,c,t,s)}}fetchCylinderRaycastResult(t,s,i){t.distanceSqToSegment(s,i,void 0,this._wirePoint);let n=this.newResult(s,i);this._found.push(n)}circleCurveRaycast(t,s){let i=ne.circleCurve3Divisions,n=this.getCircleCurveRaycastEvent(t,s);ne.traverseCircleCurve(this._axis,n,i)}newResult(t,s){return{point:this._wirePoint.clone(),raySquaredDistance:void 0,snappedEdgeP1:t.clone(),snappedEdgeP2:s.clone()}}cylinderRaycast(t,s,i,n){let u=ne.raycastCircleExtr(t,s,i,n);for(let I of u)I.point&&this.fetchCylinderRaycastResult(i,t,s)}},w0=class{constructor(t){k(this,"_meshes"),k(this,"_results",[]),k(this,"_circleExtrusion",new ir),k(this,"_axis",new es),k(this,"_normal",new it),k(this,"_point",new it),k(this,"_plane",new cc),this._meshes=t}pointRaycast(t,s){return this._results.length=0,this._meshes.circleExtrusions(t,this._circleExtrusion),this.traverseAllCircleExtrusions(s),this.getCleanResults()}fetchOrientation(t,s){Lt.temp.vector.copy(t),Lt.temp.vector.sub(s),Lt.temp.vector.normalize(),Lt.temp.rotation.setFromUnitVectors(Lt.up,Lt.temp.vector)}getTraverseWiresEvent(t,s){return(i,n)=>{this.fetchOrientation(i,n);let c=this.raycastCutCircleExtrusion(i,t,s),u=this.raycastCutCircleExtrusion(n,t,s);this._results.push(c,u)}}traverseAllCircleExtrusions(t){let s=this._circleExtrusion.axesLength();for(let i=0;i<s;i++){this._circleExtrusion.axes(i,this._axis);let n=this._circleExtrusion.radius(i),c=Lt.vertexLength(n);Lt.setPathVertices(c),this.traverseAllCurves(t,n)}}setupCuttedCircleExtrusion(t){this._normal.set(0,0,1),this._normal.applyQuaternion(Lt.temp.rotation),this._plane.setFromNormalAndCoplanarPoint(this._normal,t)}getTraverseCircleCurveEvent(t,s){return(i,n,c)=>{this.fetchOrientation(i,n[0]);let u=this.raycastCutCircleExtrusion(i,t,s),I=n[n.length-1];this.fetchOrientation(I,c);let D=this.raycastCutCircleExtrusion(c,t,s);this._results.push(u,D)}}computeCutCircleExtrCast(t,s,i){if(i.intersectPlane(this._plane,this._point),this._point.distanceTo(t)<=s)return{point:t.clone()}}raycastCutCircleExtrusion(t,s,i){if(this.setupCuttedCircleExtrusion(t),s.intersectsPlane(this._plane))return this.computeCutCircleExtrCast(t,i,s)}getCleanResults(){let t=[];for(let s of this._results)s&&t.push(s);return t}traverseAllCurves(t,s){let i=this.getTraverseWiresEvent(t,s);ne.traverseWires(this._axis,i);let n=this.getTraverseCircleCurveEvent(t,s),c=ne.circleCurve3Divisions;ne.traverseCircleCurve(this._axis,n,c);let u=this.getTraverseWiresEvent(t,s);ne.traverseWireSets(this._axis,u)}},B0=class{constructor(){k(this,"_currentElement",0),k(this,"_wireSize",6),k(this,"newCircleCurveLod",(t,s,i)=>{let n=this.newCircleCurveLodPath(t,s),c=i.positionBuffer;for(let u=1;u<n;u++){let I=Lt.circleCurves[u-1],D=Lt.circleCurves[u];this.newWire(c,I,D)}}),k(this,"newWireSetLod",(t,s,i)=>{let n=t.wireSets(s),c=n.psLength(),u=i.positionBuffer;for(let I=1;I<c;I++){let D=n.ps(I-1),g=n.ps(I);this.newWire(u,D,g)}}),k(this,"newWireTemplate",(t,s)=>{s.positionCount+=this._wireSize}),k(this,"newWireSetTemplate",(t,s)=>{let c=Lt.temp.axis.wireSets(t,Lt.temp.wireSet).psLength()-1;s.positionCount+=this._wireSize*c}),k(this,"newWireLod",(t,s,i)=>{let n=t.wires(s),c=n.p1(),u=n.p2(),I=i.positionBuffer;this.newWire(I,c,u)}),k(this,"newCircleCurveTemplate",(t,s)=>{let n=Lt.temp.axis.circleCurves(t,Lt.temp.circleCurve),c=ne.circleCurve3Divisions(n);s.positionCount+=this._wireSize*(c-1)})}construct(t,s){this._currentElement=0,s.positionBuffer=new Float32Array(s.positionCount);for(let i=0,n=t.axesLength();i<n;i++)t.axes(i,Lt.temp.axis),this.constructLod(s);return s}constructCircleExtrusionLod(t,s){let i=Lt.temp.axis,n=i.parts(t),c=i.order(t);this.getLodConstructor(n)(i,c,s)}newCircleCurveLodPath(t,s){let i=t.circleCurves(s),n=ne.circleCurve3Divisions(i);return Lt.circleCurves=Lt.newPaths(i,n),n}selectNextWire(){this._currentElement+=this._wireSize}getAxisPartVertexSize(t,s){let i=Lt.temp.axis,n=i.parts(t),c=i.order(t);this.getTemplateConstructor(n)(c,s)}getIndices(){let t=this._currentElement,s=this._currentElement+1,i=this._currentElement+2,n=this._currentElement+3,c=this._currentElement+4,u=this._currentElement+5;return{i1:t,i2:s,i3:i,i4:n,i5:c,i6:u}}setAxisTemplate(t,s){Lt.temp.circleExtrusion.axes(t,Lt.temp.axis);let i=Lt.temp.axis.partsLength();for(let n=0;n<i;n++)this.getAxisPartVertexSize(n,s);this.setAxisThickness(s,t)}constructLod(t){let s=Lt.temp.axis.orderLength();for(let i=0;i<s;i++)this.constructCircleExtrusionLod(i,t)}getLodConstructor(t){return{[Dn.WIRE]:this.newWireLod,[Dn.WIRE_SET]:this.newWireSetLod,[Dn.CIRCLE_CURVE]:this.newCircleCurveLod}[t]}newTemplate(){let t=Lt.temp.circleExtrusion,s=this.newTemplateData(),i=t.axesLength();for(let n=0;n<i;n++)this.setAxisTemplate(n,s);return s}setAxisThickness(t,s){let i=t.lodThickness,n=Lt.temp.circleExtrusion.radius(s);t.lodThickness=Math.max(i,n)}newTemplateData(){return{objectClass:lu.LINE,lod:de.WIRES,lodThickness:0,positionCount:0}}getTemplateConstructor(t){return{[Dn.WIRE]:this.newWireTemplate,[Dn.WIRE_SET]:this.newWireSetTemplate,[Dn.CIRCLE_CURVE]:this.newCircleCurveTemplate}[t]}newWire(t,s,i){let n=s instanceof it?s.x:s.x(),c=s instanceof it?s.y:s.y(),u=s instanceof it?s.z:s.z(),I=i instanceof it?i.x:i.x(),D=i instanceof it?i.y:i.y(),g=i instanceof it?i.z:i.z(),{i1:U,i2:F,i3:V,i4:H,i5:z,i6:j}=this.getIndices();t[U]=n,t[F]=c,t[V]=u,t[H]=I,t[z]=D,t[j]=g,this.selectNextWire()}},G0=class extends ML{constructor(){super(...arguments),k(this,"_vceConstructor",new U0),k(this,"_lodConstructor",new B0),k(this,"_vceRaycaster",new C0(this.meshes)),k(this,"_vceLineRaycaster",new b0(this.meshes)),k(this,"_vcePointRaycaster",new w0(this.meshes)),k(this,"_representationClass",ei.CIRCLE_EXTRUSION),k(this,"_objectClass",lu.LINE),k(this,"lodClass",im.CUSTOM)}setupTemplates(){let t=this.meshes.circleExtrusionsLength();for(let s=0;s<t;s++)this.newCircleExtrusionTemplate(s)}fetchLod(t,s){let i=this.getMesh(t,de.WIRES);return this.generateLodIfNeeded(t,s,i),i}fetchMeshes(t,s){let i=this.getMesh(t,de.GEOMETRY);return this.generateMeshesIfNeeded(t,s,i),i}raycast(t,s){return this._vceRaycaster.raycast(t,s)}faceRaycast(){return[]}pointRaycast(t,s){return this._vcePointRaycaster.pointRaycast(t,s)}lineRaycast(t,s){return this._vceLineRaycaster.lineRaycast(t,s)}getObjectClass(){return this._objectClass}getRepresentation(){return this._representationClass}getLodClass(){return this.lodClass}newMeshes(t,s){this.meshes.circleExtrusions(t,Lt.temp.circleExtrusion);let i=Lt.temp.circleExtrusion;this._vceConstructor.construct(i,s),this.saveMesh(t,s,de.GEOMETRY)}generateMeshesIfNeeded(t,s,i){if(i.length===0)return;let n=!!i.length,c=!i[0].positionBuffer;s&&c&&n&&this.newMeshes(t,i)}newCircleExtrusionTemplate(t){let s=[];this.meshes.circleExtrusions(t,Lt.temp.circleExtrusion);let i=Lt.temp.circleExtrusion,n=i.axesLength();for(let u=0;u<n;u++)this._vceConstructor.newTemplate(i,u,s);let c=this._lodConstructor.newTemplate();this.useMesh(t,s,de.GEOMETRY),this.useMesh(t,c,de.WIRES)}generateLodIfNeeded(t,s,i){i.positionBuffer||!s||(this.meshes.circleExtrusions(t,Lt.temp.circleExtrusion),this._lodConstructor.construct(Lt.temp.circleExtrusion,i),this.saveMesh(t,i,de.WIRES))}},UL=class{constructor(t){k(this,"size"),k(this,"_data"),k(this,"_highlightData"),this.size=t,this._data=new Uint8Array(t),this._highlightData=new Uint16Array(t),this._data.fill(1)}getHighlight(t){return this._highlightData[t]}setHighlight(t,s){n_.checkMemory(s),this._highlightData[t]=s}clearHighlight(){this._highlightData.fill(0)}visible(t){return n_.check(this._data,t,KM.VISIBLE)}setVisible(t,s){n_.apply(this._data,t,KM.VISIBLE,s)}clearVisible(){this._data.fill(1)}},F0=class{constructor(t,s){k(this,"_rate",64),k(this,"_updater"),k(this,"_modelId"),k(this,"_threshold",16),k(this,"_connection"),k(this,"_list",[]),k(this,"refresh",()=>{if(this._list.length){let i=this._list;this._connection.fetchMeshCompute(this._modelId,i),this._list=[]}}),this._modelId=t,this._connection=s,this._updater=Ta.newUpdater(this.refresh,this._rate)}get needsRefresh(){return this._list.length>this._threshold}dispose(){Ta.deleteUpdater(this._updater)}clean(){this._list=Ta.cleanRequests(this._list)}process(t){this._list.push(t),this.needsRefresh&&this.refresh()}},CL=class{constructor(t,s,i,n){k(this,"_meshes"),k(this,"_model"),k(this,"_boxes"),k(this,"_tiles"),k(this,"_items"),k(this,"_edgeThreshold",8),k(this,"_raycastMultiplier",32),k(this,"_maxDuration",512),k(this,"_precission",.001),k(this,"_temp",{sample:new Cy,representation:new yl,tempPlane:new cc,ray:new Zp,frustum:new rm,m1:new Ee,m2:new Ee,m3:new Ee,v1:new it,planes:[]}),this._model=t,this._boxes=s,this._tiles=i,this._items=n,this._meshes=t.meshes()}static cast(t,s,i,n,c){let u=s.id();if(c===dy.FACE)return t.faceRaycast(u,i,n);if(c===dy.LINE)return t.lineRaycast(u,i,n);if(c===dy.POINT)return t.pointRaycast(u,i,n);if(c===void 0)return t.raycast(u,i,n)}raycast(t,s,i,n){let c={ray:t,frustum:s,planes:i,returnAll:n},u=this.castBox(s,i);return u.length?this.computeRaycastList(u,c):null}snapRaycast(t,s,i,n){let c=[],u={ray:t,frustum:s,planes:n},I=this.raycast(t,s,n);return I?(this.getSnaps(I,u,i,c),I.normal?this.filterOnFront(c):c):this.snapCastEdges(u,i)}rectangleRaycast(t,s,i){let n=this._boxes.lookup;if(!n)return[];let c=n.collideFrustum(s,t,i),u=this.filterVisible(c);return this.localIdsFromItemIds(u)}snapCastEdges(t,s){let i=[],n=s.includes(dy.POINT),c=s.includes(dy.LINE);return(n||c)&&this.computeEdgesCast(t,s,i),this.addDistanceToEdgeResult(i,t.ray),i}filterVisible(t){let s=[];for(let i of t){this._meshes.samples(i,this._temp.sample);let n=this._temp.sample.item();this._items.visible(n)&&s.push(i)}return s}computeSnaps(t,s,i,n){for(let c of t)if(this.isValidSnap(c)){let I={snap:c,...s},D=this.castSample(i,I);for(let g of D)n.push(g)}}computeEdgesCast(t,s,i){let n=this.getRawEdges(t),c=performance.now();for(let u of n)if(this.fetchSampleData(u),this.computeSnaps(s,t,u,i),this.isTimeExceeded(c))break}addDistanceToEdgeResult(t,s){for(let i of t){let n=i.point;i.raySquaredDistance=s.distanceSqToPoint(n)}}getRawEdges(t){let s=this.castBox(t.frustum,t.planes);return s.length<=this._edgeThreshold?s:this.sortBoxes(t.ray,s,this._edgeThreshold)}sortBoxes(t,s,i){let n=[],c=new it,u=t.origin;for(let g=0;g<s.length;g++){let U=s[g],F=this._boxes.get(U);t.intersectBox(F,c);let V=c.distanceToSquared(u);n.push(V)}let I=this.dataSort(s,n);return i&&I.length>i&&I.splice(i),I}castBox(t,s){let i=this._boxes.lookup;if(!i)return[];if(t instanceof Zp){let c=i.collideRay(s,t);return this.filterVisible(c)}let n=i.collideFrustum(s,t);return this.filterVisible(n)}dataSort(t,s){let n=Array.from(t.keys()).sort((u,I)=>s[u]-s[I]),c=[];for(let u of n){let I=t[u];c.push(I)}return c}localIdsFromItemIds(t){let s=new Set;for(let i of t){this._meshes.samples(i,this._temp.sample);let n=this._temp.sample.item(),c=this._meshes.meshesItems(n);if(c===null)continue;let u=this._model.localIds(c);u!==null&&s.add(u)}return Array.from(s)}getNearest(t){let s=t[0];for(let i=1;i<t.length;i++){let n=t[i];if(s.raySquaredDistance&&n.raySquaredDistance){let c=this.getNearScore(s);this.getNearScore(n)<c&&(s=n)}else n.cameraSquaredDistance<s.cameraSquaredDistance&&(s=n)}return s}getEdges(t,s,i){let n=this.snapCastEdges(t,s);if(n)for(let c of n)i.push(c)}getNearScore(t){let s=this._raycastMultiplier;return t.raySquaredDistance*s+t.cameraSquaredDistance}setupSampleCastData(t){Nf.get(this._temp.sample,this._meshes,this._temp.m1),this._temp.m2.copy(this._temp.m1).invert(),this._temp.ray.copy(t.ray).applyMatrix4(this._temp.m2),nm.transform(t.frustum,this._temp.m2,this._temp.frustum)}addLocalId(t){if(!t)return;let s=this._meshes.meshesItems(t.itemId);s!==null&&(t.localId=this._model.localIds(s))}fetchSampleData(t){this._meshes.samples(t,this._temp.sample);let s=this._temp.sample.representation();this._meshes.representations(s,this._temp.representation)}computeRaycastList(t,s){let i=Array.from(new Set(t)),n=this.sortBoxes(s.ray,i),c=this.castBox(s.ray,s.planes),u=this.findAll(n,c,s);if(u.length){if(s.returnAll){for(let D of u)this.addLocalId(D);return u}let I=this.getNearest(u);return this.addLocalId(I),I}return null}formatRaycastResult(t,s,i){for(let n of t){if(n.point.applyMatrix4(this._temp.m1),n.normal&&n.normal.transformDirection(this._temp.m1),"facePoints"in n){let u=this._meshes.samples(s,this._temp.sample);Nf.get(u,this._meshes,this._temp.m3);for(let I=0;I<n.facePoints.length;I+=3){let D=n.facePoints[I],g=n.facePoints[I+1],U=n.facePoints[I+2];this._temp.v1.set(D,g,U),this._temp.v1.applyMatrix4(this._temp.m3),n.facePoints[I]=this._temp.v1.x,n.facePoints[I+1]=this._temp.v1.y,n.facePoints[I+2]=this._temp.v1.z}}n.sampleId=s,n.itemId=this._temp.sample.item();let c=i.ray.origin.distanceToSquared(n.point);n.cameraSquaredDistance=c,n.snappingClass||(n.snappingClass=i.snap),n.snappedEdgeP1&&n.snappedEdgeP1.applyMatrix4(this._temp.m1),n.snappedEdgeP2&&n.snappedEdgeP2.applyMatrix4(this._temp.m1)}}findAll(t,s,i){let n=[],c=performance.now();for(let u of t){if(this.fetchSampleData(u),!s.includes(u))continue;let I=this.castSample(u,i);for(let g of I)n.push(g);if(this.isTimeExceeded(c))break}return n}isTimeExceeded(t){return performance.now()-t>this._maxDuration}getFilteredSampleCast(t){let s=this._tiles.raycast(this._temp.representation,this._temp.ray,this._temp.frustum,t.snap);if(this._temp.planes.length===0)return s;let i=[];if(s)for(let n of s){let c=this._temp.planes,u=n.point;hm.containedInParallelPlanes(c,u)&&i.push(n)}return i}getSnaps(t,s,i,n){this.fetchSampleData(t.sampleId),t.normal&&(this.setCastSide(t,s.ray),this.setCastPlane(t)),this.getFaces(i,s,t,n),this.getEdges(s,i,n);for(let c of n)this.addLocalId(c)}filterOnFront(t){let s=[];for(let i of t)this._temp.tempPlane.distanceToPoint(i.point)>=0&&s.push(i);return s}setCastSide(t,s){let n=t.point.clone().sub(s.origin);t.normal.dot(n)>0&&t.normal.negate()}getFaces(t,s,i,n){for(let c of t){let u={snap:c,...s},I=this.castSample(i.sampleId,u);for(let D of I)n.push(D)}}setCastPlane(t){let s=this._temp.tempPlane,i=t.point.clone(),n=t.normal.clone();n.multiplyScalar(this._precission),i.sub(n),s.setFromNormalAndCoplanarPoint(t.normal,i)}castSample(t,s){this.setupSampleCastData(s),this.setupPlanesForSampleCast(s);let i=this.getFilteredSampleCast(s);return i&&this.formatRaycastResult(i,t,s),i}isValidSnap(t){let s=t===dy.LINE,i=t===dy.POINT;return s||i}transform(t,s){let i=[];if(t)for(let n of t){let c=new cc().copy(n);c.applyMatrix4(s),i.push(c)}return i}setupPlanesForSampleCast(t){if(this._temp.planes.length=0,t.planes&&t.planes.length>0){let s=this.transform(t.planes,this._temp.m2);for(let i of s)this._temp.planes.push(i)}}},zS=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,$b=new Set,V0=typeof process=="object"&&process?process:{},Jb=(e,t,s,i)=>{typeof V0.emitWarning=="function"?V0.emitWarning(e,t,s,i):console.error(`[${s}] ${t}: ${e}`)},bL=globalThis.AbortController,HC=globalThis.AbortSignal;if(typeof bL>"u"){HC=class{constructor(){k(this,"onabort"),k(this,"_onabort",[]),k(this,"reason"),k(this,"aborted",!1)}addEventListener(i,n){this._onabort.push(n)}},bL=class{constructor(){k(this,"signal",new HC),t()}abort(i){var n,c;if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=!0;for(let u of this.signal._onabort)u(i);(c=(n=this.signal).onabort)==null||c.call(n,i)}}};let e=((W1=V0.env)==null?void 0:W1.LRU_CACHE_IGNORE_AC_WARNING)!=="1",t=()=>{e&&(e=!1,Jb("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var IV=e=>!$b.has(e),Dy=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),Xb=e=>Dy(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?eN:null:null,eN=class extends Array{constructor(t){super(t),this.fill(0)}},tw=class Kv{constructor(t,s){if(k(this,"heap"),k(this,"length"),!ct(Kv,qv))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new s(t),this.length=0}static create(t){let s=Xb(t);if(!s)return[];Qt(Kv,qv,!0);let i=new Kv(t,s);return Qt(Kv,qv,!1),i}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}};qv=new WeakMap;ee(tw,qv,!1);var yV=tw,TV=class ew{constructor(t){ee(this,Xg),ee(this,_M),ee(this,Ef),ee(this,If),ee(this,wL),ee(this,$v),ee(this,Hv),ee(this,vs),ee(this,fL),ee(this,MS),ee(this,mf),ee(this,IL),ee(this,wp,void 0),ee(this,hl,void 0),ee(this,Bp,void 0),ee(this,PS,void 0),ee(this,bp,void 0),ee(this,jv,void 0),ee(this,Fv,void 0),k(this,"ttl"),k(this,"ttlResolution"),k(this,"ttlAutopurge"),k(this,"updateAgeOnGet"),k(this,"updateAgeOnHas"),k(this,"allowStale"),k(this,"noDisposeOnSet"),k(this,"noUpdateTTL"),k(this,"maxEntrySize"),k(this,"sizeCalculation"),k(this,"noDeleteOnFetchRejection"),k(this,"noDeleteOnStaleGet"),k(this,"allowStaleOnFetchAbort"),k(this,"allowStaleOnFetchRejection"),k(this,"ignoreFetchAbort"),ee(this,Lr,void 0),ee(this,ul,void 0),ee(this,sr,void 0),ee(this,ti,void 0),ee(this,re,void 0),ee(this,yo,void 0),ee(this,fl,void 0),ee(this,da,void 0),ee(this,rc,void 0),ee(this,Vp,void 0),ee(this,nc,void 0),ee(this,Gp,void 0),ee(this,Fp,void 0),ee(this,ll,void 0),ee(this,zp,void 0),ee(this,$d,void 0),ee(this,fo,void 0),ee(this,Vv,void 0),ee(this,BS,()=>{}),ee(this,my,()=>{}),ee(this,uL,()=>{}),ee(this,pl,()=>!1),ee(this,YS,ut=>{}),ee(this,Qv,(ut,ot,pt)=>{}),ee(this,pL,(ut,ot,pt,Et)=>{if(pt||Et)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0}),k(this,YC,"LRUCache");let{max:s=0,ttl:i,ttlResolution:n=1,ttlAutopurge:c,updateAgeOnGet:u,updateAgeOnHas:I,allowStale:D,dispose:g,onInsert:U,disposeAfter:F,noDisposeOnSet:V,noUpdateTTL:H,maxSize:z=0,maxEntrySize:j=0,sizeCalculation:Q,fetchMethod:Z,memoMethod:X,noDeleteOnFetchRejection:$,noDeleteOnStaleGet:q,allowStaleOnFetchRejection:tt,allowStaleOnFetchAbort:at,ignoreFetchAbort:nt}=t;if(s!==0&&!Dy(s))throw new TypeError("max option must be a nonnegative integer");let ht=s?Xb(s):Array;if(!ht)throw new Error("invalid max value: "+s);if(Qt(this,wp,s),Qt(this,hl,z),this.maxEntrySize=j||ct(this,hl),this.sizeCalculation=Q,this.sizeCalculation){if(!ct(this,hl)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(X!==void 0&&typeof X!="function")throw new TypeError("memoMethod must be a function if defined");if(Qt(this,Fv,X),Z!==void 0&&typeof Z!="function")throw new TypeError("fetchMethod must be a function if specified");if(Qt(this,jv,Z),Qt(this,$d,!!Z),Qt(this,sr,new Map),Qt(this,ti,new Array(s).fill(void 0)),Qt(this,re,new Array(s).fill(void 0)),Qt(this,yo,new ht(s)),Qt(this,fl,new ht(s)),Qt(this,da,0),Qt(this,rc,0),Qt(this,Vp,yV.create(s)),Qt(this,Lr,0),Qt(this,ul,0),typeof g=="function"&&Qt(this,Bp,g),typeof U=="function"&&Qt(this,PS,U),typeof F=="function"?(Qt(this,bp,F),Qt(this,nc,[])):(Qt(this,bp,void 0),Qt(this,nc,void 0)),Qt(this,zp,!!ct(this,Bp)),Qt(this,Vv,!!ct(this,PS)),Qt(this,fo,!!ct(this,bp)),this.noDisposeOnSet=!!V,this.noUpdateTTL=!!H,this.noDeleteOnFetchRejection=!!$,this.allowStaleOnFetchRejection=!!tt,this.allowStaleOnFetchAbort=!!at,this.ignoreFetchAbort=!!nt,this.maxEntrySize!==0){if(ct(this,hl)!==0&&!Dy(ct(this,hl)))throw new TypeError("maxSize must be a positive integer if specified");if(!Dy(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Vt(this,_M,zC).call(this)}if(this.allowStale=!!D,this.noDeleteOnStaleGet=!!q,this.updateAgeOnGet=!!u,this.updateAgeOnHas=!!I,this.ttlResolution=Dy(n)||n===0?n:1,this.ttlAutopurge=!!c,this.ttl=i||0,this.ttl){if(!Dy(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Vt(this,Xg,vM).call(this)}if(ct(this,wp)===0&&this.ttl===0&&ct(this,hl)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!ct(this,wp)&&!ct(this,hl)){let ut="LRU_CACHE_UNBOUNDED";IV(ut)&&($b.add(ut),Jb("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",ut,ew))}}static unsafeExposeInternals(t){return{starts:ct(t,Fp),ttls:ct(t,ll),sizes:ct(t,Gp),keyMap:ct(t,sr),keyList:ct(t,ti),valList:ct(t,re),next:ct(t,yo),prev:ct(t,fl),get head(){return ct(t,da)},get tail(){return ct(t,rc)},free:ct(t,Vp),isBackgroundFetch:s=>{var i;return Vt(i=t,vs,Gs).call(i,s)},backgroundFetch:(s,i,n,c)=>{var u;return Vt(u=t,Hv,tL).call(u,s,i,n,c)},moveToTail:s=>{var i;return Vt(i=t,MS,Wv).call(i,s)},indexes:s=>{var i;return Vt(i=t,Ef,Ty).call(i,s)},rindexes:s=>{var i;return Vt(i=t,If,Ry).call(i,s)},isStale:s=>{var i;return ct(i=t,pl).call(i,s)}}}get max(){return ct(this,wp)}get maxSize(){return ct(this,hl)}get calculatedSize(){return ct(this,ul)}get size(){return ct(this,Lr)}get fetchMethod(){return ct(this,jv)}get memoMethod(){return ct(this,Fv)}get dispose(){return ct(this,Bp)}get onInsert(){return ct(this,PS)}get disposeAfter(){return ct(this,bp)}getRemainingTTL(t){return ct(this,sr).has(t)?1/0:0}*entries(){for(let t of Vt(this,Ef,Ty).call(this))ct(this,re)[t]!==void 0&&ct(this,ti)[t]!==void 0&&!Vt(this,vs,Gs).call(this,ct(this,re)[t])&&(yield[ct(this,ti)[t],ct(this,re)[t]])}*rentries(){for(let t of Vt(this,If,Ry).call(this))ct(this,re)[t]!==void 0&&ct(this,ti)[t]!==void 0&&!Vt(this,vs,Gs).call(this,ct(this,re)[t])&&(yield[ct(this,ti)[t],ct(this,re)[t]])}*keys(){for(let t of Vt(this,Ef,Ty).call(this)){let s=ct(this,ti)[t];s!==void 0&&!Vt(this,vs,Gs).call(this,ct(this,re)[t])&&(yield s)}}*rkeys(){for(let t of Vt(this,If,Ry).call(this)){let s=ct(this,ti)[t];s!==void 0&&!Vt(this,vs,Gs).call(this,ct(this,re)[t])&&(yield s)}}*values(){for(let t of Vt(this,Ef,Ty).call(this))ct(this,re)[t]!==void 0&&!Vt(this,vs,Gs).call(this,ct(this,re)[t])&&(yield ct(this,re)[t])}*rvalues(){for(let t of Vt(this,If,Ry).call(this))ct(this,re)[t]!==void 0&&!Vt(this,vs,Gs).call(this,ct(this,re)[t])&&(yield ct(this,re)[t])}[Symbol.iterator](){return this.entries()}find(t,s={}){for(let i of Vt(this,Ef,Ty).call(this)){let n=ct(this,re)[i],c=Vt(this,vs,Gs).call(this,n)?n.__staleWhileFetching:n;if(c!==void 0&&t(c,ct(this,ti)[i],this))return this.get(ct(this,ti)[i],s)}}forEach(t,s=this){for(let i of Vt(this,Ef,Ty).call(this)){let n=ct(this,re)[i],c=Vt(this,vs,Gs).call(this,n)?n.__staleWhileFetching:n;c!==void 0&&t.call(s,c,ct(this,ti)[i],this)}}rforEach(t,s=this){for(let i of Vt(this,If,Ry).call(this)){let n=ct(this,re)[i],c=Vt(this,vs,Gs).call(this,n)?n.__staleWhileFetching:n;c!==void 0&&t.call(s,c,ct(this,ti)[i],this)}}purgeStale(){let t=!1;for(let s of Vt(this,If,Ry).call(this,{allowStale:!0}))ct(this,pl).call(this,s)&&(Vt(this,mf,Oy).call(this,ct(this,ti)[s],"expire"),t=!0);return t}info(t){let s=ct(this,sr).get(t);if(s===void 0)return;let i=ct(this,re)[s],n=Vt(this,vs,Gs).call(this,i)?i.__staleWhileFetching:i;if(n===void 0)return;let c={value:n};if(ct(this,ll)&&ct(this,Fp)){let u=ct(this,ll)[s],I=ct(this,Fp)[s];if(u&&I){let D=u-(zS.now()-I);c.ttl=D,c.start=Date.now()}}return ct(this,Gp)&&(c.size=ct(this,Gp)[s]),c}dump(){let t=[];for(let s of Vt(this,Ef,Ty).call(this,{allowStale:!0})){let i=ct(this,ti)[s],n=ct(this,re)[s],c=Vt(this,vs,Gs).call(this,n)?n.__staleWhileFetching:n;if(c===void 0||i===void 0)continue;let u={value:c};if(ct(this,ll)&&ct(this,Fp)){u.ttl=ct(this,ll)[s];let I=zS.now()-ct(this,Fp)[s];u.start=Math.floor(Date.now()-I)}ct(this,Gp)&&(u.size=ct(this,Gp)[s]),t.unshift([i,u])}return t}load(t){this.clear();for(let[s,i]of t){if(i.start){let n=Date.now()-i.start;i.start=zS.now()-n}this.set(s,i.value,i)}}set(t,s,i={}){var n,c,u,I,D,g,U;if(s===void 0)return this.delete(t),this;let{ttl:F=this.ttl,start:V,noDisposeOnSet:H=this.noDisposeOnSet,sizeCalculation:z=this.sizeCalculation,status:j}=i,{noUpdateTTL:Q=this.noUpdateTTL}=i,Z=ct(this,pL).call(this,t,s,i.size||0,z);if(this.maxEntrySize&&Z>this.maxEntrySize)return j&&(j.set="miss",j.maxEntrySizeExceeded=!0),Vt(this,mf,Oy).call(this,t,"set"),this;let X=ct(this,Lr)===0?void 0:ct(this,sr).get(t);if(X===void 0)X=ct(this,Lr)===0?ct(this,rc):ct(this,Vp).length!==0?ct(this,Vp).pop():ct(this,Lr)===ct(this,wp)?Vt(this,$v,EL).call(this,!1):ct(this,Lr),ct(this,ti)[X]=t,ct(this,re)[X]=s,ct(this,sr).set(t,X),ct(this,yo)[ct(this,rc)]=X,ct(this,fl)[X]=ct(this,rc),Qt(this,rc,X),m1(this,Lr)._++,ct(this,Qv).call(this,X,Z,j),j&&(j.set="add"),Q=!1,ct(this,Vv)&&((n=ct(this,PS))==null||n.call(this,s,t,"add"));else{Vt(this,MS,Wv).call(this,X);let $=ct(this,re)[X];if(s!==$){if(ct(this,$d)&&Vt(this,vs,Gs).call(this,$)){$.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:q}=$;q!==void 0&&!H&&(ct(this,zp)&&((c=ct(this,Bp))==null||c.call(this,q,t,"set")),ct(this,fo)&&((u=ct(this,nc))==null||u.push([q,t,"set"])))}else H||(ct(this,zp)&&((I=ct(this,Bp))==null||I.call(this,$,t,"set")),ct(this,fo)&&((D=ct(this,nc))==null||D.push([$,t,"set"])));if(ct(this,YS).call(this,X),ct(this,Qv).call(this,X,Z,j),ct(this,re)[X]=s,j){j.set="replace";let q=$&&Vt(this,vs,Gs).call(this,$)?$.__staleWhileFetching:$;q!==void 0&&(j.oldValue=q)}}else j&&(j.set="update");ct(this,Vv)&&((g=this.onInsert)==null||g.call(this,s,t,s===$?"update":"replace"))}if(F!==0&&!ct(this,ll)&&Vt(this,Xg,vM).call(this),ct(this,ll)&&(Q||ct(this,uL).call(this,X,F,V),j&&ct(this,my).call(this,j,X)),!H&&ct(this,fo)&&ct(this,nc)){let $=ct(this,nc),q;for(;q=$?.shift();)(U=ct(this,bp))==null||U.call(this,...q)}return this}pop(){var t;try{for(;ct(this,Lr);){let s=ct(this,re)[ct(this,da)];if(Vt(this,$v,EL).call(this,!0),Vt(this,vs,Gs).call(this,s)){if(s.__staleWhileFetching)return s.__staleWhileFetching}else if(s!==void 0)return s}}finally{if(ct(this,fo)&&ct(this,nc)){let s=ct(this,nc),i;for(;i=s?.shift();)(t=ct(this,bp))==null||t.call(this,...i)}}}has(t,s={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:n}=s,c=ct(this,sr).get(t);if(c!==void 0){let u=ct(this,re)[c];if(Vt(this,vs,Gs).call(this,u)&&u.__staleWhileFetching===void 0)return!1;if(ct(this,pl).call(this,c))n&&(n.has="stale",ct(this,my).call(this,n,c));else return i&&ct(this,BS).call(this,c),n&&(n.has="hit",ct(this,my).call(this,n,c)),!0}else n&&(n.has="miss");return!1}peek(t,s={}){let{allowStale:i=this.allowStale}=s,n=ct(this,sr).get(t);if(n===void 0||!i&&ct(this,pl).call(this,n))return;let c=ct(this,re)[n];return Vt(this,vs,Gs).call(this,c)?c.__staleWhileFetching:c}async fetch(t,s={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:c=this.noDeleteOnStaleGet,ttl:u=this.ttl,noDisposeOnSet:I=this.noDisposeOnSet,size:D=0,sizeCalculation:g=this.sizeCalculation,noUpdateTTL:U=this.noUpdateTTL,noDeleteOnFetchRejection:F=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:V=this.allowStaleOnFetchRejection,ignoreFetchAbort:H=this.ignoreFetchAbort,allowStaleOnFetchAbort:z=this.allowStaleOnFetchAbort,context:j,forceRefresh:Q=!1,status:Z,signal:X}=s;if(!ct(this,$d))return Z&&(Z.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:c,status:Z});let $={allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:c,ttl:u,noDisposeOnSet:I,size:D,sizeCalculation:g,noUpdateTTL:U,noDeleteOnFetchRejection:F,allowStaleOnFetchRejection:V,allowStaleOnFetchAbort:z,ignoreFetchAbort:H,status:Z,signal:X},q=ct(this,sr).get(t);if(q===void 0){Z&&(Z.fetch="miss");let tt=Vt(this,Hv,tL).call(this,t,q,$,j);return tt.__returned=tt}else{let tt=ct(this,re)[q];if(Vt(this,vs,Gs).call(this,tt)){let ot=i&&tt.__staleWhileFetching!==void 0;return Z&&(Z.fetch="inflight",ot&&(Z.returnedStale=!0)),ot?tt.__staleWhileFetching:tt.__returned=tt}let at=ct(this,pl).call(this,q);if(!Q&&!at)return Z&&(Z.fetch="hit"),Vt(this,MS,Wv).call(this,q),n&&ct(this,BS).call(this,q),Z&&ct(this,my).call(this,Z,q),tt;let nt=Vt(this,Hv,tL).call(this,t,q,$,j),ut=nt.__staleWhileFetching!==void 0&&i;return Z&&(Z.fetch=at?"stale":"refresh",ut&&at&&(Z.returnedStale=!0)),ut?nt.__staleWhileFetching:nt.__returned=nt}}async forceFetch(t,s={}){let i=await this.fetch(t,s);if(i===void 0)throw new Error("fetch() returned undefined");return i}memo(t,s={}){let i=ct(this,Fv);if(!i)throw new Error("no memoMethod provided to constructor");let{context:n,forceRefresh:c,...u}=s,I=this.get(t,u);if(!c&&I!==void 0)return I;let D=i(t,I,{options:u,context:n});return this.set(t,D,u),D}get(t,s={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:c=this.noDeleteOnStaleGet,status:u}=s,I=ct(this,sr).get(t);if(I!==void 0){let D=ct(this,re)[I],g=Vt(this,vs,Gs).call(this,D);return u&&ct(this,my).call(this,u,I),ct(this,pl).call(this,I)?(u&&(u.get="stale"),g?(u&&i&&D.__staleWhileFetching!==void 0&&(u.returnedStale=!0),i?D.__staleWhileFetching:void 0):(c||Vt(this,mf,Oy).call(this,t,"expire"),u&&i&&(u.returnedStale=!0),i?D:void 0)):(u&&(u.get="hit"),g?D.__staleWhileFetching:(Vt(this,MS,Wv).call(this,I),n&&ct(this,BS).call(this,I),D))}else u&&(u.get="miss")}delete(t){return Vt(this,mf,Oy).call(this,t,"delete")}clear(){return Vt(this,IL,S1).call(this,"delete")}};YC=Symbol.toStringTag;wp=new WeakMap;hl=new WeakMap;Bp=new WeakMap;PS=new WeakMap;bp=new WeakMap;jv=new WeakMap;Fv=new WeakMap;Lr=new WeakMap;ul=new WeakMap;sr=new WeakMap;ti=new WeakMap;re=new WeakMap;yo=new WeakMap;fl=new WeakMap;da=new WeakMap;rc=new WeakMap;Vp=new WeakMap;nc=new WeakMap;Gp=new WeakMap;Fp=new WeakMap;ll=new WeakMap;zp=new WeakMap;$d=new WeakMap;fo=new WeakMap;Vv=new WeakMap;Xg=new WeakSet;vM=function(){let e=new eN(ct(this,wp)),t=new eN(ct(this,wp));Qt(this,ll,e),Qt(this,Fp,t),Qt(this,uL,(n,c,u=zS.now())=>{if(t[n]=c!==0?u:0,e[n]=c,c!==0&&this.ttlAutopurge){let I=setTimeout(()=>{ct(this,pl).call(this,n)&&Vt(this,mf,Oy).call(this,ct(this,ti)[n],"expire")},c+1);I.unref&&I.unref()}}),Qt(this,BS,n=>{t[n]=e[n]!==0?zS.now():0}),Qt(this,my,(n,c)=>{if(e[c]){let u=e[c],I=t[c];if(!u||!I)return;n.ttl=u,n.start=I,n.now=s||i();let D=n.now-I;n.remainingTTL=u-D}});let s=0,i=()=>{let n=zS.now();if(this.ttlResolution>0){s=n;let c=setTimeout(()=>s=0,this.ttlResolution);c.unref&&c.unref()}return n};this.getRemainingTTL=n=>{let c=ct(this,sr).get(n);if(c===void 0)return 0;let u=e[c],I=t[c];if(!u||!I)return 1/0;let D=(s||i())-I;return u-D},Qt(this,pl,n=>{let c=t[n],u=e[n];return!!u&&!!c&&(s||i())-c>u})};BS=new WeakMap;my=new WeakMap;uL=new WeakMap;pl=new WeakMap;_M=new WeakSet;zC=function(){let e=new eN(ct(this,wp));Qt(this,ul,0),Qt(this,Gp,e),Qt(this,YS,t=>{Qt(this,ul,ct(this,ul)-e[t]),e[t]=0}),Qt(this,pL,(t,s,i,n)=>{if(Vt(this,vs,Gs).call(this,s))return 0;if(!Dy(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,t),!Dy(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i}),Qt(this,Qv,(t,s,i)=>{if(e[t]=s,ct(this,hl)){let n=ct(this,hl)-e[t];for(;ct(this,ul)>n;)Vt(this,$v,EL).call(this,!0)}Qt(this,ul,ct(this,ul)+e[t]),i&&(i.entrySize=s,i.totalCalculatedSize=ct(this,ul))})};YS=new WeakMap;Qv=new WeakMap;pL=new WeakMap;Ef=new WeakSet;Ty=function*({allowStale:e=this.allowStale}={}){if(ct(this,Lr))for(let t=ct(this,rc);!(!Vt(this,wL,R1).call(this,t)||((e||!ct(this,pl).call(this,t))&&(yield t),t===ct(this,da)));)t=ct(this,fl)[t]};If=new WeakSet;Ry=function*({allowStale:e=this.allowStale}={}){if(ct(this,Lr))for(let t=ct(this,da);!(!Vt(this,wL,R1).call(this,t)||((e||!ct(this,pl).call(this,t))&&(yield t),t===ct(this,rc)));)t=ct(this,yo)[t]};wL=new WeakSet;R1=function(e){return e!==void 0&&ct(this,sr).get(ct(this,ti)[e])===e};$v=new WeakSet;EL=function(e){var t,s;let i=ct(this,da),n=ct(this,ti)[i],c=ct(this,re)[i];return ct(this,$d)&&Vt(this,vs,Gs).call(this,c)?c.__abortController.abort(new Error("evicted")):(ct(this,zp)||ct(this,fo))&&(ct(this,zp)&&((t=ct(this,Bp))==null||t.call(this,c,n,"evict")),ct(this,fo)&&((s=ct(this,nc))==null||s.push([c,n,"evict"]))),ct(this,YS).call(this,i),e&&(ct(this,ti)[i]=void 0,ct(this,re)[i]=void 0,ct(this,Vp).push(i)),ct(this,Lr)===1?(Qt(this,da,Qt(this,rc,0)),ct(this,Vp).length=0):Qt(this,da,ct(this,yo)[i]),ct(this,sr).delete(n),m1(this,Lr)._--,i};Hv=new WeakSet;tL=function(e,t,s,i){let n=t===void 0?void 0:ct(this,re)[t];if(Vt(this,vs,Gs).call(this,n))return n;let c=new bL,{signal:u}=s;u?.addEventListener("abort",()=>c.abort(u.reason),{signal:c.signal});let I={signal:c.signal,options:s,context:i},D=(z,j=!1)=>{let{aborted:Q}=c.signal,Z=s.ignoreFetchAbort&&z!==void 0;if(s.status&&(Q&&!j?(s.status.fetchAborted=!0,s.status.fetchError=c.signal.reason,Z&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),Q&&!Z&&!j)return U(c.signal.reason);let X=V;return ct(this,re)[t]===V&&(z===void 0?X.__staleWhileFetching?ct(this,re)[t]=X.__staleWhileFetching:Vt(this,mf,Oy).call(this,e,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.set(e,z,I.options))),z},g=z=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=z),U(z)),U=z=>{let{aborted:j}=c.signal,Q=j&&s.allowStaleOnFetchAbort,Z=Q||s.allowStaleOnFetchRejection,X=Z||s.noDeleteOnFetchRejection,$=V;if(ct(this,re)[t]===V&&(!X||$.__staleWhileFetching===void 0?Vt(this,mf,Oy).call(this,e,"fetch"):Q||(ct(this,re)[t]=$.__staleWhileFetching)),Z)return s.status&&$.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),$.__staleWhileFetching;if($.__returned===$)throw z},F=(z,j)=>{var Q;let Z=(Q=ct(this,jv))==null?void 0:Q.call(this,e,n,I);Z&&Z instanceof Promise&&Z.then(X=>z(X===void 0?void 0:X),j),c.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(z(void 0),s.allowStaleOnFetchAbort&&(z=X=>D(X,!0)))})};s.status&&(s.status.fetchDispatched=!0);let V=new Promise(F).then(D,g),H=Object.assign(V,{__abortController:c,__staleWhileFetching:n,__returned:void 0});return t===void 0?(this.set(e,H,{...I.options,status:void 0}),t=ct(this,sr).get(e)):ct(this,re)[t]=H,H};vs=new WeakSet;Gs=function(e){if(!ct(this,$d))return!1;let t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof bL};fL=new WeakSet;gM=function(e,t){ct(this,fl)[t]=e,ct(this,yo)[e]=t};MS=new WeakSet;Wv=function(e){e!==ct(this,rc)&&(e===ct(this,da)?Qt(this,da,ct(this,yo)[e]):Vt(this,fL,gM).call(this,ct(this,fl)[e],ct(this,yo)[e]),Vt(this,fL,gM).call(this,ct(this,rc),e),Qt(this,rc,e))};mf=new WeakSet;Oy=function(e,t){var s,i,n,c;let u=!1;if(ct(this,Lr)!==0){let I=ct(this,sr).get(e);if(I!==void 0)if(u=!0,ct(this,Lr)===1)Vt(this,IL,S1).call(this,t);else{ct(this,YS).call(this,I);let D=ct(this,re)[I];if(Vt(this,vs,Gs).call(this,D)?D.__abortController.abort(new Error("deleted")):(ct(this,zp)||ct(this,fo))&&(ct(this,zp)&&((s=ct(this,Bp))==null||s.call(this,D,e,t)),ct(this,fo)&&((i=ct(this,nc))==null||i.push([D,e,t]))),ct(this,sr).delete(e),ct(this,ti)[I]=void 0,ct(this,re)[I]=void 0,I===ct(this,rc))Qt(this,rc,ct(this,fl)[I]);else if(I===ct(this,da))Qt(this,da,ct(this,yo)[I]);else{let g=ct(this,fl)[I];ct(this,yo)[g]=ct(this,yo)[I];let U=ct(this,yo)[I];ct(this,fl)[U]=ct(this,fl)[I]}m1(this,Lr)._--,ct(this,Vp).push(I)}}if(ct(this,fo)&&((n=ct(this,nc))!=null&&n.length)){let I=ct(this,nc),D;for(;D=I?.shift();)(c=ct(this,bp))==null||c.call(this,...D)}return u};IL=new WeakSet;S1=function(e){var t,s,i;for(let n of Vt(this,If,Ry).call(this,{allowStale:!0})){let c=ct(this,re)[n];if(Vt(this,vs,Gs).call(this,c))c.__abortController.abort(new Error("deleted"));else{let u=ct(this,ti)[n];ct(this,zp)&&((t=ct(this,Bp))==null||t.call(this,c,u,e)),ct(this,fo)&&((s=ct(this,nc))==null||s.push([c,u,e]))}}if(ct(this,sr).clear(),ct(this,re).fill(void 0),ct(this,ti).fill(void 0),ct(this,ll)&&ct(this,Fp)&&(ct(this,ll).fill(0),ct(this,Fp).fill(0)),ct(this,Gp)&&ct(this,Gp).fill(0),Qt(this,da,0),Qt(this,rc,0),ct(this,Vp).length=0,Qt(this,ul,0),Qt(this,Lr,0),ct(this,fo)&&ct(this,nc)){let n=ct(this,nc),c;for(;c=n?.shift();)(i=ct(this,bp))==null||i.call(this,...c)}};var dV=TV,Df=class{static get(t){return this._meshes.get(t)}static lockIn(t){Object.seal(t)}static add(t,s){this._meshes.set(t,s)}static delete(t){for(let s of t)this._meshes.delete(s)}static setCapacity(t){t!==this._capacity&&(this._meshes.clear(),this._meshes=this.setupMeshes(t),this._capacity=t)}static setupMeshes(t){let s=Math.max(t??this.computeCapacity(),1),i=this.getSizeCalculationEvent(),n={maxSize:s,sizeCalculation:i};return new dV(n)}static computeCapacity(){let t=globalThis.navigator&&"deviceMemory"in globalThis.navigator?globalThis.navigator.deviceMemory:null,i=t!==null?t:2,n=this.oneHundredMb*i;return Math.trunc(n)}static getDataSetMemory(t){let s=0;for(let i of t)s+=i.usedMemory;return Math.max(s,1)}static getSizeCalculationEvent(){return t=>Array.isArray(t)?this.getDataSetMemory(t):Math.max(t.usedMemory,1)}};k(Df,"oneHundredMb",1e8);k(Df,"_meshes",Df.setupMeshes());k(Df,"_capacity");k(Df,"_memoryAttributes",["positionBuffer","indexBuffer","normalBuffer"]);k(Df,"updateMeshMemory",e=>{e.usedMemory=0;for(let t of Df._memoryAttributes)e.usedMemory!==void 0&&e[t]&&(e.usedMemory+=e[t].byteLength);Df.lockIn(e)});var wS=Df,sw=class aL{constructor(t){k(this,"meshes"),k(this,"tilesUpdated",!1),k(this,"_sampleAmount"),k(this,"_tileDimension"),k(this,"_tileBySample"),k(this,"_lodBySample"),k(this,"_virtualMeshes",new Map),k(this,"_meshConnection"),k(this,"_samples"),k(this,"_tileIdGenerator",new kb),k(this,"_tiles",new Map),k(this,"_tilesChanged",new Set),k(this,"_sizeByTile",new Map),k(this,"_samplesDimensions"),k(this,"_sampleLodClass"),k(this,"_sampleLodState"),k(this,"_sampleLodSize"),k(this,"_boxes"),k(this,"_items"),k(this,"_materials"),k(this,"_modelId"),k(this,"_lastView",{rotation:new it,location:new it}),k(this,"_params",{updateTime:16,updateSamples:64,updateviewOrientation:8*Math.PI/180,updateViewPosition:256,smallTileSize:.32,mediumTileSize:4,smallObjectSize:2,smallScreenSize:2,mediumScreenSize:4,largeScreenSize:16,tempTileDataSize:6,tileIdIncrement:1,tileSizeMultiplier:10,minTileDimension:32,tileDimensionFactor:8}),k(this,"_temp",{sample:new Cy,representation:new yl,vector:new it,matrix:new Ee,transform:new Ee,boundingBox:new rs,sampleGeometry:{},box:new rs,raycastPoints:[],tileData:{positionCount:this._params.tempTileDataSize,objectClass:lu.LINE,positionBuffer:new Float32Array(this._params.tempTileDataSize)},tileCenter:new it,tile:{objectClass:lu.LINE,positionCount:6},viewDimension:0,pastFieldOfview:0}),k(this,"_currentSample",0),k(this,"_virtualPlanes",[]),k(this,"_changedSamples",0),k(this,"_virtualView"),k(this,"_lodMode",eL.DEFAULT),this._modelId=t.modelId,this._boxes=t.boxes,this._items=t.items,this._materials=t.materials,this._meshConnection=new F0(t.modelId,t.connection),this.meshes=t.model.meshes(),this._sampleAmount=this.meshes.samplesLength(),this._samples=new UL(this._sampleAmount),this._samplesDimensions=new Int32Array(this._sampleAmount),this._sampleLodClass=new Uint8Array(this._sampleAmount),this._sampleLodState=new Uint8Array(this._sampleAmount),this._sampleLodSize=new Float32Array(this._sampleAmount),this._tileDimension=this.computeTileSize(),this._tileBySample=new Array(this._sampleAmount),this._lodBySample=new Array(this._sampleAmount),this.init()}restart(){this.resetUpdateProcess(),this._meshConnection.clean()}fetchSample(t,s){this.fetchSampleAndRepresentation(t);let i=this.fetchCurrentMesh(),n=this.sampleTemplate(t);return n.geometries=this.sampleGeoms(n,s,i),n}fetchGeometry(t){return this.meshes.representations(t,this._temp.representation),this.fetchCurrentMesh().fetchMeshes(t,!0)}dispose(){this._meshConnection.dispose();for(let[,t]of this._virtualMeshes)t.dispose()}async generate(t,s){for(let[,n]of this._virtualMeshes)n.setupTemplates();let i=Math.max(1,Math.floor(this._sampleAmount/20));for(let n=0;n<this._sampleAmount;n++)this.generateSampleInTiles(n),n%i===0&&(t?.(n/this._sampleAmount),await new Promise(c=>setTimeout(c,0)),s?.());this.setupTileVisibilityAndHighlight()}setupView(t){this._virtualView=t,wS.setCapacity(t.meshThreshold),this.restart(),this.updateOrientationIfNeeded(),this.updatePositionIfNeeded(),this.setupViewPlanes()}updateVirtualMeshes(t){if(!(!t||!this._virtualView)){for(let s of t)this.updateItem(s);this.restart()}}getSampleTransform(t){return this.fetchSampleAndRepresentation(t),this.sampleTemplate(t).transform}async update(t){this.updateTiles(t),this.notifyUpdateFinished();for(let s of this._tilesChanged){let i=this._tiles.get(s);this._meshConnection.process({tileRequestClass:vy.UPDATE,modelId:this._modelId,tileId:s,objectClass:i.objectClass,material:i.materialId,tileData:this.getTileData(i),currentLod:i.lod})}this._tilesChanged.clear()}raycast(t,s,i,n){this._temp.raycastPoints=[];let c=t.representationClass(),u=this._virtualMeshes.get(c);return this.manageRaycast(u,t,s,i,n),this._temp.raycastPoints}setLodMode(t){this._lodMode=t,this.restart()}init(){let t=new M0(this._modelId,this.meshes),s=t.getRepresentation();this._virtualMeshes.set(s,t);let i=new G0(this._modelId,this.meshes),n=i.getRepresentation();this._virtualMeshes.set(n,i),this.processSamplesDimension(),this.fetchSampleLodSize()}initSampleLod(t){this.fetchSampleAndRepresentation(t);let s=this.fetchCurrentMesh();this._sampleLodClass[t]=s.getLodClass(),this._sampleLodState[t]=de.INVISIBLE}fetchSampleAndRepresentation(t){this.meshes.samples(t,this._temp.sample),this.meshes.representations(this._temp.sample.representation(),this._temp.representation)}fetchCurrentMesh(){let t=this._temp.representation.representationClass();return this._virtualMeshes.get(t)}fetchCurrentMaterial(){let t=this._temp.sample.material();return this._materials[t]}fetchSampleLodSize(){for(let t=0;t<this._sampleAmount;t++)this.initSampleLod(t),Nf.getBox(this._temp.representation,this._temp.box),this._sampleLodSize[t]=xL.getWidth(this._temp.box)}setupTileVisibilityAndHighlight(){for(let[,t]of this._tiles)t.visibilities=new jg(t.size,!1),t.highlights=new jg(t.size,0)}addLodToTile(t,s,i){if(t.getLodClass()===im.AABB){this.addBoxLodToTile(s,i);return}t.getLodClass()===im.CUSTOM&&this.addCustomLodToTile(t,s,i)}addBoxLodToTile(t,s){this._lodBySample[t]=this.lodTileAppendSample(t,s)}notifyUpdateFinished(){let t=!this.tilesUpdated;this._changedSamples>=this._sampleAmount&&t&&(this._meshConnection.process({tileRequestClass:vy.FINISH,modelId:this._modelId}),this.tilesUpdated=!0)}updatePositionIfNeeded(){let t=this._params.updateViewPosition,s=this._virtualView.cameraPosition;s.distanceToSquared(this._lastView.location)>t&&(this._currentSample=0,this._lastView.location.copy(s))}updateCurrentSample(){this._currentSample++,this._currentSample>=this._sampleAmount&&(this._currentSample=0),this._changedSamples++}processSamplesDimension(){for(let t=0;t<this._sampleAmount;t++)this._samplesDimensions[t]=t;this._samplesDimensions.sort((t,s)=>{let i=this._boxes.dimensionOf(s),n=this._boxes.dimensionOf(t);return i-n})}setupViewPlanes(){this._virtualPlanes=[];for(let t of this._virtualView.cameraFrustum.planes)this._virtualPlanes.push(t);if(this._virtualView.clippingPlanes)for(let t of this._virtualView.clippingPlanes)this._virtualPlanes.push(t)}updateOrientationIfNeeded(){let t=this.getCurrentViewOrientation(),s=this._params.updateviewOrientation;t.angleTo(this._lastView.rotation)>s&&(this._currentSample=0,this._lastView.rotation.copy(t))}getCurrentViewOrientation(){return this._virtualView.cameraFrustum.planes[4].normal}resetUpdateProcess(){this._changedSamples=0,this.tilesUpdated=!1}manageRaycast(t,s,i,n,c){let u=CL.cast(t,s,i,n,c);if(u)for(let I of u)I.representationClass=t.getObjectClass(),this._temp.raycastPoints.push(I)}setTileShellBuffer(t){t.usedMemory===void 0||t.objectClass!==lu.SHELL||(t.ids=new Float32Array(t.positionCount/3),t.usedMemory+=t.ids.byteLength)}getTileWhenSamplePut(t,s,i){let n=this._tiles.get(t);if(n===void 0){let c=s.lod||de.GEOMETRY;n=this.newTile(s.objectClass,i,c),this._tiles.set(t,n)}return n}getPerspTrueDim(t,s){let i=Math.PI/180,n=Math.tan(t*.5*i);return s*n}getTileHighlight(t,s){let i,n,c=t.highlights;if(!c)return{highlightData:void 0,highlightIds:void 0};let u=c.size(I=>I!==0);if(u>0){n=new Uint16Array(u);let I=g=>g!==0,D=(g,U)=>n[g]=U;i=jg.get(c,s,I,D)}return{highlightData:i,highlightIds:n}}setupTileSampleAttributes(t,s,i,n){let c=t.vertexLocation[s]*3;for(let u=0;u<i.positionBuffer.length;u+=3)this._temp.vector.fromArray(i.positionBuffer,u),this._temp.vector.applyMatrix4(this._temp.matrix),this._temp.vector.toArray(t.positionBuffer,c+u);if(t.normalBuffer){let u=t.vertexLocation[s]*3;for(let I=0;I<i.normalBuffer.length;I+=3)this._temp.vector.fromArray(i.normalBuffer,I),this._temp.vector.transformDirection(this._temp.matrix),this._temp.vector.multiplyScalar(r_),this._temp.vector.toArray(t.normalBuffer,u+I)}if(t.indexBuffer){let u=t.indexLocation[s],I=t.vertexLocation[s];for(let D=0;D<i.indexCount;D++){let g=i.indexBuffer[D]+I;t.indexBuffer[D+u]=g}}if(t.faceIdBuffer&&i.faceIdBuffer){let u=n.sample*100,I=t.vertexLocation[s],D=I+i.positionCount/3;for(let g=I;g<D;g++)t.faceIdBuffer[g]=i.faceIdBuffer[g-I]+u}if(i.objectClass===lu.SHELL){let u=t.vertexLocation[s],I=u+i.positionCount/3;t.ids.fill(this.itemId(n.sample),u,I)}}getTileVisibility(t,s){if(!t.visibilities)throw new Error("Fragments: Malformed tile!");if(t.visibilities.fullOf(!1))return;let i=n=>n;return jg.get(t.visibilities,s,i)}memoryOverflow(){let t=aL._graphicMemoryConsumed,s=this._virtualView.graphicThreshold;return t>s}updateMesh(t){let s=this.fetchLodLevel(t),i=this._sampleLodState[t];if(s=this.hideHighlightedLods(s,t),s===i){this.updateSampleIfSeen(s,t);return}this.updateVisible(i,s,t)}tileLoadSample(t,s,i){let n=t.sampleLocation.get(s.sample),c=this.getSampleGeometries(s,i);this.setupTileLocation(t,c,s),this.fetchSampleTransform(t,s),this.setupTileSampleAttributes(t,n,c,s)}updateSampleIfSeen(t,s){t!==de.INVISIBLE&&this.updateSample(s,t)}hideHighlightedLods(t,s){return t}updateVisible(t,s,i){t!==de.INVISIBLE&&this.makeSampleInvisible(i,t);let n=s!==de.INVISIBLE;n&&this.updateSample(i,s),this._samples.setVisible(i,n),this._sampleLodState[i]=s}makeInvisibleFromTile(t,s){let i=this._tiles.get(t);this.updateTileData(i,s,!1,0),this.deleteTileIfNeeded(i,t)}updateSample(t,s){let i=this.itemId(t),n=this._items.visible(i),c=this._items.getHighlight(i);this.hasChanged(t,s,n,c)&&this.setSample(t,n,c,s)}hasHighlightChanged(t,s){let i=this._samples.getHighlight(t);return s!==i}hasVisibleChanged(t,s){let i=this._samples.visible(t);return s!==i}newTile(t,s,i){let n={};return n.notVirtual=!1,n.materialId=s,n.indexLocation=[],n.box=new rs,n.objectClass=t,n.lod=i,n.normalCount=0,n.indexCount=0,n.vertexLocation=[],n.size=0,n.geometriesLocation=[],n.positionCount=0,n.sampleLocation=new Map,n.faceIdBuffer=new Uint32Array(0),n}createLod(t){let s=Nf.boxSize(t),i=this._temp.tileData.positionBuffer;if(!i)throw new Error("Fragments: Malformed tiles!");return i[0]=s.start.x,i[1]=s.start.y,i[2]=s.start.z,i[3]=s.end.x,i[4]=s.end.y,i[5]=s.end.z,this._temp.tileData}sampleTemplate(t){let s=this._temp.sample,i=this._temp.representation;Nf.get(s,this.meshes,this._temp.transform),Nf.getBox(i,this._temp.boundingBox),this._temp.sampleGeometry.sample=t;let n=s.material();this._temp.sampleGeometry.material=this._materials[n],this._temp.sampleGeometry.transform=this._temp.transform,this._temp.sampleGeometry.aabb=this._temp.boundingBox,delete this._temp.sampleGeometry.geometries;let c=this._temp.sample.representation(),u=this.meshes.representationIds(c);return this._temp.sampleGeometry.representationId=u,this._temp.sampleGeometry}makeSampleInvisible(t,s){let i=this.getTileIds(t,s);if(!i)return;let n=c=>this.makeInvisibleFromTile(c,t);Ih.forEach(i,n)}setSample(t,s,i,n){this._samples.setVisible(t,s),this._samples.setHighlight(t,i);let c=this.getTileIds(t,n);c!==void 0&&Ih.forEach(c,u=>{this.updateTile(u,t,i,i===0)})}getTileIds(t,s){return s===de.GEOMETRY?this._tileBySample[t]:this._lodBySample[t]}addBasicTileData(t,s,i){t.sampleLocation.set(s,t.size),t.size++,t.geometriesLocation.push(i),t.indexLocation.push(t.indexCount||0),t.vertexLocation.push((t.positionCount||0)/3)}buildNewVirtualTile(t,s){this.constructTile(t),this.loadTile(s,t),t.notVirtual=!0,delete t.indexBuffer,delete t.positionBuffer,delete t.normalBuffer,delete t.faceIdBuffer,delete t.ids}deleteTileIfNeeded(t,s){if(this.getShouldDeleteTile(t)){this.deleteGeometry(s),t.notVirtual=!1,aL._graphicMemoryConsumed-=t.usedMemory;return}this._tilesChanged.add(s)}getShouldDeleteTile(t){if(!t.visibilities||!t.highlights)throw new Error("Fragments: Malformed tile!");let s=t.visibilities.fullOf(!1),i=t.highlights.fullOf(0),n=this.memoryOverflow();return s&&i&&n}checkTileMemoryOverflow(t,s){let i=this._tiles.get(t);return(i?i.positionCount:0)+s.positionCount>qS}updateTileData(t,s,i,n){if(!t.visibilities||!t.highlights)throw new Error("Fragments: Malformed tile!");let c=t.sampleLocation.get(s);t.visibilities.update(c,i),t.highlights.update(c,n)}getKeepUpdating(t,s){let i=this._params.updateTime,n=this._params.updateSamples,c=t<this._sampleAmount,u=performance.now()-s,I=t<n,D=u<i||I;return c&&D}computeTileSize(){let t=this._boxes.fullBox.getSize(this._temp.vector),i=Math.max(t.x,t.y,t.z)/this._params.tileDimensionFactor,n=Math.ceil(i);return Math.max(this._params.minTileDimension,n)}newTileId(t,s,i){this.logBufferOverflowIfNeeded(i);let n=i.lod||de.GEOMETRY,c=this.generateTileCode(t,s,i,n),u=this._sizeByTile.get(c)||1,I=c+u-1;return this.checkTileMemoryOverflow(I,i)&&(I+=this._params.tileIdIncrement,this._sizeByTile.set(c,u+1)),I}logBufferOverflowIfNeeded(t){t.positionCount/3>qS&&console.log("Fragments: Buffer overflow")}fetchLodLevel(t){if(this._lodMode===eL.ALL_VISIBLE){this.meshes.samples(t,this._temp.sample);let ot=this._temp.sample.item();return this._items.visible(ot)?de.GEOMETRY:de.INVISIBLE}let s=this._boxes.get(t);if(!nm.collides(s,this._virtualPlanes))return de.INVISIBLE;this.meshes.samples(t,this._temp.sample);let n=this._temp.sample.item();if(!this._items.visible(n))return de.INVISIBLE;let u=this._virtualView.graphicQuality,I=this._boxes.dimensionOf(t),D=s.distanceToPoint(this._virtualView.cameraPosition),g=this.screenSize(I,D),U=I<this._params.smallObjectSize,F=!U,V=this._params.smallScreenSize*u,H=this._params.mediumScreenSize*u,z=this._params.largeScreenSize*u,j=g<V,Q=g<H,Z=g<z,X=U&&Q,$=F&&j,q=U&&Z,tt=F&&Q;if(X||$)return de.INVISIBLE;if(this._lodMode===eL.ALL_GEOMETRY)return de.GEOMETRY;if(q||tt)return de.WIRES;let at=this._sampleLodSize[t],nt=this.screenSize(at,D),ht=Math.max(H,this._params.mediumScreenSize);return nt<ht?de.WIRES:de.GEOMETRY}generateTileCode(t,s,i,n){this._tileIdGenerator.reset(),this.processTileDataId(i,s,n);let c=this.processTileSpatialId(t,n);return this.processTileDimensionId(c),this._tileIdGenerator.value}processTileDataId(t,s,i){this._tileIdGenerator.compute(t.objectClass!==void 0?t.objectClass:0),this._tileIdGenerator.compute(s),this._tileIdGenerator.compute(i)}deleteGeometry(t){this._meshConnection.process({tileRequestClass:vy.DELETE,modelId:this._modelId,tileId:t})}processTileSpatialId(t,s){let i=this._temp.tileCenter.x,n=this._temp.tileCenter.y,c=this._temp.tileCenter.z,u=this._boxes.get(t);u.getCenter(this._temp.tileCenter);let I=this.getTileDimension(s),D=i-i%I,g=n-n%I,U=c-c%I;return this._tileIdGenerator.compute(D),this._tileIdGenerator.compute(g),this._tileIdGenerator.compute(U),u}addCustomLodToTile(t,s,i){let n=this.meshData(t,!1,de.WIRES);this._sampleLodSize[s]=n.lodThickness||0,this._lodBySample[s]=this.putSampleInTiles(s,i,n)}getTileLocations(t){return t.indexCount?t.indexLocation:t.vertexLocation}getTileDimension(t){let s=this._tileDimension;return t===de.GEOMETRY&&(s*=this._params.tileSizeMultiplier),s}processTileDimensionId(t){let s=this.getTileDimensionClass(t);this._tileIdGenerator.compute(s)}tileAppend(t,s,i,n){this.addBasicTileData(t,i,n),this.tileAppendAttribute(t,s,"indexCount",!1),this.tileAppendAttribute(t,s,"positionCount",!1),this.tileAppendAttribute(t,s,"normalCount",!1),this.tileAppendAttribute(t,s,"materialId",!0)}putSampleInTiles(t,s,i){let n,c=(u,I)=>{let D=this.newTileId(t,s,u);n=this.getTileIdsWhenSamplePut(n,D);let g=this.getTileWhenSamplePut(D,u,s);this.tileAppend(g,u,t,I)};return Ih.forEach(i,c),n}hasLodChanged(t,s){let i=this._sampleLodState[t];return s!==i}getTileIdsWhenSamplePut(t,s){return t===void 0?t=s:typeof t=="number"?t!==s&&(t=[t,s]):t.includes(s)||t.push(s),t}updateTile(t,s,i,n){let c=this._tiles.get(t);if(this.updateTileData(c,s,n,i),c.notVirtual){this._tilesChanged.add(t);return}this.buildNewVirtualTile(c,t)}getLodTileWhenPutSample(t,s){let i=this._tiles.get(t);if(!i){let n=this._temp.tile.objectClass;i=this.newTile(n,s,de.WIRES),this._tiles.set(t,i)}return i}lodTileAppendSample(t,s){let i=de.WIRES,n=this._temp.tile,c=this.generateTileCode(t,s,n,i),u=this.getLodTileWhenPutSample(c,s);return this.tileAppend(u,n,t,0),c}addSampleToTile(t,s,i){let n=this.meshData(t,!1,de.GEOMETRY);this._tileBySample[s]=this.putSampleInTiles(s,i,n)}setTileBuffer(t,s,i){if(t.usedMemory===void 0)return;let n=t[`${s}Count`];if(n>0){let c=i?new Uint16Array(n):new Int16Array(n);t[`${s}Buffer`]=c,t.usedMemory+=c.byteLength}}updateTiles(t){let s=this._changedSamples<this._sampleAmount;if(!(this._virtualView!==void 0)||!s)return;let n=!0,c=0;for(;n;){let u=this._samplesDimensions[this._currentSample];this.updateMesh(u),this.updateCurrentSample(),c++,n=this.getKeepUpdating(c,t)}}sampleGeoms(t,s,i){return i.getLodClass()===im.AABB&&s===de.WIRES?this.createLod(t.aabb):this.meshData(i,!0,s)}generateSampleInTiles(t){this.fetchSampleAndRepresentation(t);let s=this.fetchCurrentMaterial(),i=this.fetchCurrentMesh();this.addSampleToTile(i,t,s),this.addLodToTile(i,t,s)}buildSampleInTile(t,s,i,n,c){let u=t.geometriesLocation[s];if(this.tileLoadSample(t,i,u),n){let I=this._boxes.get(c);this._temp.vector.copy(t.location),this._temp.vector.negate(),I.translate(this._temp.vector),t.box.union(I)}}getSampleGeometries(t,s){return Array.isArray(t.geometries)?t.geometries[s]:t.geometries}constructTile(t){t.positionBuffer===void 0&&(t.positionBuffer=new Float32Array(t.positionCount),t.usedMemory=t.positionBuffer.byteLength,this.setTileBuffer(t,"index",!0),this.setTileBuffer(t,"normal",!1),this.setTileShellBuffer(t),t.faceIdBuffer=new Uint32Array(t.positionCount/3),t.usedMemory+=t.faceIdBuffer.byteLength);let s=!t.location;for(let[i,n]of t.sampleLocation){let c=this.fetchSample(i,t.lod);c&&c.geometries&&this.buildSampleInTile(t,n,c,s,i)}}fetchSampleTransform(t,s){this._temp.vector.copy(t.location),this._temp.vector.negate(),this._temp.matrix.identity(),this._temp.matrix.setPosition(this._temp.vector),this._temp.matrix.multiply(s.transform)}hasChanged(t,s,i,n){let c=this.hasLodChanged(t,s),u=this.hasVisibleChanged(t,i),I=this.hasHighlightChanged(t,n);return c||u||I}setupTileLocation(t,s,i){if(t.location)return;let n=new it;n.fromArray(s.positionBuffer),n.applyMatrix4(i.transform),t.location=n}getTileData(t){let s=this.getTileLocations(t),i=this.getTileVisibility(t,s),n=this.getTileHighlight(t,s),{highlightData:c,highlightIds:u}=n;return{visibilityData:i,highlightData:c,highlightIds:u}}updateMemoryOnTileLoad(t){aL._graphicMemoryConsumed+=t.usedMemory}fetchTileMatrixOnLoad(t){t.location&&(this._temp.matrix.identity(),this._temp.matrix.setPosition(t.location))}updateItem(t){let s=this._boxes.sampleOf(t);if(s)for(let i of s)this.updateMesh(i)}screenSize(t,s){let i=this.getViewDimension(s);return t/i*this._virtualView.viewSize}getTileDimensionClass(t){let s=t.min.distanceToSquared(t.max),i=this._params.smallTileSize,n=this._params.mediumTileSize;return s>n?2:s>i?1:0}getViewDimension(t){if(this._virtualView.orthogonalDimension)return this._virtualView.orthogonalDimension;let s=this._virtualView.fov;return s!==this._temp.pastFieldOfview&&(this._temp.viewDimension=this.getPerspTrueDim(s,1),this._temp.pastFieldOfview=s),t*this._temp.viewDimension}loadTile(t,s){let i=this.getTileData(s);this.fetchTileMatrixOnLoad(s);let n=this.getFaceIds(s);this._meshConnection.process({tileRequestClass:vy.CREATE,modelId:this._modelId,objectClass:s.objectClass,tileId:t,itemId:void 0,tileData:i,indices:s.indexBuffer,positions:s.positionBuffer,normals:s.normalBuffer,faceIds:n,itemIds:s.ids,material:s.materialId,matrix:this._temp.matrix.clone(),aabb:s.box.clone(),currentLod:s.lod}),this.updateMemoryOnTileLoad(s)}getFaceIds(t){let s=new Tl,i=t.faceIdBuffer,n=new Float32Array(i.length*3);for(let c=0;c<i.length;c++){let u=i[c];s.set(0+u),n[c*3]=s.r,n[c*3+1]=s.g,n[c*3+2]=s.b}return n}meshData(t,s,i){let n=this._temp.representation.id(),c=t.getLodClass()===im.CUSTOM,u=i===de.WIRES;return c&&u?t.fetchLod(n,s):t.fetchMeshes(n,s)}tileAppendAttribute(t,s,i,n){if(s[i]!==void 0){if(n){t[i]=s[i];return}t[i]+=s[i]}}itemId(t){return this.meshes.samples(t,this._temp.sample),this._temp.sample.item()}};k(sw,"_graphicMemoryConsumed",0);var mV=sw,H0=class{static isSame(t,s){let i=this.checkSameColor(t.color,s.color),n=this.checkSame(t.opacity,s.opacity,1),c=t.renderedFaces,u=s.renderedFaces,I=this.checkSame(c,u,Wb.ONE);return i&&n&&I}static checkSame(t,s,i){return t===s||t===i&&s===void 0||t===void 0&&s===i}static checkSameColor(t,s){if(t===s)return!0;if(t===void 0||s===void 0)return!1;let{r:i,g:n,b:c}=t,{r:u,g:I,b:D}=s;return i===u&&n===I&&c===D}},W0=class{constructor(t,s){k(this,"_modelId"),k(this,"_list",[]),k(this,"_onTransfer"),this._modelId=t,this._onTransfer=s}update(t){let s=t.meshes(),i=[];return this.getAll(s,i)}fetch(t){return this._list[t]}transfer(t){let s=this.deduplicateMaterials(t),{materialDefinitions:i,ids:n}=s;return this.transferMaterialData(i),n}getItemsMaterialDefinition(t,s,i){let n=[],c=t.meshes();if(!c)return[];let u=new Map;for(let[I,D]of s.entries()){let g=c.samples(D);if(!g)continue;let U=g.material(),F=u.get(U);F||(F=new Set,u.set(U,F)),F.add(i[I])}for(let[I,D]of u.entries()){let g=c.materials(I);if(!g)continue;let U=Kp.parseMaterial(g);n.push({localIds:[...D],definition:U})}return n}checkMaterialExists(t,s){if(t.preserveOriginalMaterial)return!1;let i=this._list.length;for(let n=0;n<i;n++){let c=this._list[n];if(H0.isSame(t,c))return s.push(n),!0}return!1}deduplicateMaterials(t){let s=[],i=[];for(let n of t)if(!this.checkMaterialExists(n,s)){this._list.push(n),i.push(n);let u=this._list.length-1;s.push(u)}return{materialDefinitions:i,ids:s}}getAll(t,s){let i=t.materialsLength();for(let n=0;n<i;n++){let c=t.materials(n),u=Kp.parseMaterial(c);u.localId=t.materialIds(n),s.push(u)}return this.transfer(s)}transferMaterialData(t){this._onTransfer({class:ml.CREATE_MATERIAL,modelId:this._modelId,materialDefinitions:t})}},wt=(e=>(e[e.CREATE_MATERIAL=0]="CREATE_MATERIAL",e[e.CREATE_REPRESENTATION=1]="CREATE_REPRESENTATION",e[e.CREATE_SAMPLE=2]="CREATE_SAMPLE",e[e.CREATE_GLOBAL_TRANSFORM=3]="CREATE_GLOBAL_TRANSFORM",e[e.CREATE_LOCAL_TRANSFORM=4]="CREATE_LOCAL_TRANSFORM",e[e.CREATE_ITEM=5]="CREATE_ITEM",e[e.CREATE_RELATION=6]="CREATE_RELATION",e[e.UPDATE_MATERIAL=7]="UPDATE_MATERIAL",e[e.UPDATE_REPRESENTATION=8]="UPDATE_REPRESENTATION",e[e.UPDATE_SAMPLE=9]="UPDATE_SAMPLE",e[e.UPDATE_GLOBAL_TRANSFORM=10]="UPDATE_GLOBAL_TRANSFORM",e[e.UPDATE_LOCAL_TRANSFORM=11]="UPDATE_LOCAL_TRANSFORM",e[e.UPDATE_ITEM=12]="UPDATE_ITEM",e[e.UPDATE_MAX_LOCAL_ID=13]="UPDATE_MAX_LOCAL_ID",e[e.UPDATE_RELATION=14]="UPDATE_RELATION",e[e.UPDATE_METADATA=15]="UPDATE_METADATA",e[e.UPDATE_SPATIAL_STRUCTURE=16]="UPDATE_SPATIAL_STRUCTURE",e[e.DELETE_MATERIAL=17]="DELETE_MATERIAL",e[e.DELETE_REPRESENTATION=18]="DELETE_REPRESENTATION",e[e.DELETE_SAMPLE=19]="DELETE_SAMPLE",e[e.DELETE_GLOBAL_TRANSFORM=20]="DELETE_GLOBAL_TRANSFORM",e[e.DELETE_LOCAL_TRANSFORM=21]="DELETE_LOCAL_TRANSFORM",e[e.DELETE_ITEM=22]="DELETE_ITEM",e[e.DELETE_RELATION=23]="DELETE_RELATION",e))(wt||{});function Zv(e,t){let s=e.position,i=e.xDirection,n=e.yDirection;return uu.createTransform(t,s[0],s[1],s[2],i[0],i[1],i[2],n[0],n[1],n[2])}function NM(e,t){let s=t.position(),i=t.xDirection(),n=t.yDirection();return uu.createTransform(e,s.x(),s.y(),s.z(),i.x(),i.y(),i.z(),n.x(),n.y(),n.z())}function RV(e,t){return _n.createFloatVector(e,t.x(),t.y(),t.z())}function AM(e,t){let s=t.type,i=[],n=[],c=[],u=[],I=t.points.length;xi.startPointsVector(e,I);for(let j=0;j<I;j++){let Q=I-1-j,Z=t.points[Q];_n.createFloatVector(e,Z[0],Z[1],Z[2])}let D=e.endVector();for(let[,j]of t.profiles){let Q=fu.createIndicesVector(e,j),Z=fu.createShellProfile(e,Q);i.push(Z)}let g=xi.createProfilesVector(e,i);for(let[j,Q]of t.holes)for(let Z of Q){let X=Qp.createIndicesVector(e,Z),$=Qp.createShellHole(e,X,j);n.push($)}let U=xi.createHolesVector(e,n);for(let[,j]of t.bigProfiles){let Q=Eu.createIndicesVector(e,j),Z=Eu.createBigShellProfile(e,Q);c.push(Z)}let F=xi.createBigProfilesVector(e,c);for(let[j,Q]of t.bigHoles)for(let Z of Q){let X=jp.createIndicesVector(e,Z),$=jp.createBigShellHole(e,X,j);u.push($)}let V=xi.createBigHolesVector(e,u),H=xi.createProfilesFaceIdsVector(e,t.profilesFaceIds);return xi.createShell(e,g,U,D,F,V,s,H)}function SV(e,t){let s=t.type(),i=[],n=[],c=[],u=[],I=t.pointsLength();xi.startPointsVector(e,I);for(let $=0;$<I;$++){let q=I-1-$,tt=t.points(q);RV(e,tt)}let D=e.endVector(),g=t.profilesLength();for(let $=0;$<g;$++){let tt=t.profiles($).indicesArray(),at=fu.createIndicesVector(e,tt),nt=fu.createShellProfile(e,at);i.push(nt)}let U=xi.createProfilesVector(e,i),F=t.holesLength();for(let $=0;$<F;$++){let q=t.holes($),tt=q.indicesArray(),at=q.profileId(),nt=Qp.createIndicesVector(e,tt),ht=Qp.createShellHole(e,nt,at);n.push(ht)}let V=xi.createHolesVector(e,n),H=t.bigProfilesLength();for(let $=0;$<H;$++){let tt=t.bigProfiles($).indicesArray(),at=Eu.createIndicesVector(e,tt),nt=Eu.createBigShellProfile(e,at);c.push(nt)}let z=xi.createBigProfilesVector(e,c),j=t.bigHolesLength();for(let $=0;$<j;$++){let q=t.bigHoles($),tt=q.indicesArray(),at=q.profileId(),nt=jp.createIndicesVector(e,tt),ht=jp.createBigShellHole(e,nt,at);u.push(ht)}let Q=xi.createBigHolesVector(e,u),Z=xi.createProfilesFaceIdsVector(e,t.profilesFaceIdsArray()||[]);return xi.createShell(e,U,V,D,z,Q,s,Z)}function NV(e,t){let s=t.radiusArray(),i=ir.createRadiusVector(e,s),n=t.axesLength(),c=[];for(let D=0;D<n;D++){let g=t.axes(D),U=g.circleCurvesLength();es.startCircleCurvesVector(e,U);for(let q=0;q<U;q++){let tt=U-1-q,at=g.circleCurves(tt),nt=at.position(),ht=at.radius(),ut=at.aperture(),ot=at.xDirection(),pt=at.yDirection(),Et=nt.x(),dt=nt.y(),Dt=nt.z(),Ut=ot.x(),Xt=ot.y(),Yt=ot.z(),Jt=pt.x(),ve=pt.y(),Tt=pt.z();um.createCircleCurve(e,ut,Et,dt,Dt,ht,Ut,Xt,Yt,Jt,ve,Tt)}let F=e.endVector(),V=g.wiresLength();es.startWiresVector(e,V);for(let q=0;q<V;q++){let tt=V-1-q,at=g.wires(tt),nt=at.p1(),ht=at.p2();tN.createWire(e,nt.x(),nt.y(),nt.z(),ht.x(),ht.y(),ht.z())}let H=e.endVector();es.startWireSetsVector(e,0);let z=e.endVector(),j=g.orderArray(),Q=es.createOrderVector(e,j),Z=Array.from(g.partsArray()),X=es.createPartsVector(e,Z);es.startAxis(e),es.addCircleCurves(e,F),es.addOrder(e,Q),es.addWires(e,H),es.addWireSets(e,z),es.addParts(e,X);let $=es.endAxis(e);c.push($)}let u=ir.createAxesVector(e,c);return ir.startCircleExtrusion(e),ir.addAxes(e,u),ir.addRadius(e,i),ir.endCircleExtrusion(e)}function DM(e,t){let s=t.radius,i=ir.createRadiusVector(e,s),n=[];for(let I of t.axes){let D=I.circleCurves.length;es.startCircleCurvesVector(e,D);for(let Z of I.circleCurves)um.createCircleCurve(e,Z.aperture,Z.position[0],Z.position[1],Z.position[2],Z.radius,Z.xDirection[0],Z.xDirection[1],Z.xDirection[2],Z.yDirection[0],Z.yDirection[1],Z.yDirection[2]);let g=e.endVector(),U=I.wires.length;es.startWiresVector(e,U);for(let Z of I.wires)tN.createWire(e,Z[0],Z[1],Z[2],Z[3],Z[4],Z[5]);let F=e.endVector(),V=[];for(let Z of I.wireSets){Sf.startPsVector(e,Z.length/3);for(let q=0;q<Z.length-2;q+=3)_n.createFloatVector(e,Z[q],Z[q+1],Z[q+2]);let X=e.endVector();Sf.startWireSet(e),Sf.addPs(e,X);let $=Sf.endWireSet(e);V.push($)}let H=es.createWireSetsVector(e,V),z=es.createOrderVector(e,I.order),j=es.createPartsVector(e,I.parts);es.startAxis(e),es.addCircleCurves(e,g),es.addOrder(e,z),es.addWires(e,F),es.addWireSets(e,H),es.addParts(e,j);let Q=es.endAxis(e);n.push(Q)}let c=ir.createAxesVector(e,n);return ir.startCircleExtrusion(e),ir.addAxes(e,c),ir.addRadius(e,i),ir.endCircleExtrusion(e)}function iw(e,t){if(!t)return null;let s=t.childrenLength(),i=[];for(let I=0;I<s;I++){let D=t.children(I),g=iw(e,D);g!==null&&i.push(g)}let n=ji.createChildrenVector(e,i),c=t.localId(),u=t.category();if(c!==null)return ji.startSpatialStructure(e),ji.addLocalId(e,c),ji.addChildren(e,n),ji.endSpatialStructure(e);if(u!==null){let I=e.createSharedString(u);return ji.startSpatialStructure(e),ji.addCategory(e,I),ji.addChildren(e,n),ji.endSpatialStructure(e)}throw new Error("Spatial structure must have a local id or a category")}function nw(e,t){let s=t.children??[],i=s?s.length:0,n=[];for(let D=0;D<i;D++){let g=s[D],U=nw(e,g);U!==null&&n.push(U)}let c=ji.createChildrenVector(e,n),u=t.localId,I=t.category;if(u!==null)return ji.startSpatialStructure(e),ji.addLocalId(e,u),ji.addChildren(e,c),ji.endSpatialStructure(e);if(I!==null){let D=e.createSharedString(I);return ji.startSpatialStructure(e),ji.addCategory(e,D),ji.addChildren(e,c),ji.endSpatialStructure(e)}throw new Error("Spatial structure must have a local id or a category")}function OM(e,t,s,i,n,c){if(!t.has(s))throw new Error("Invalid sample: item id not found");if(!t.has(i))throw new Error("Invalid sample: mat id not found");if(!t.has(n))throw new Error("Invalid sample: repr id not found");if(!t.has(c))throw new Error("Invalid sample: lt id not found");let u=t.get(s),I=t.get(i),D=t.get(n),g=t.get(c);Cy.createSample(e,u,I,D,g)}function AV(e,t){let s=new Set,i=new Set,n=new Set,c=new Set,u=new Set,I=new Set,D=new Set,g=new Set,U=!1,F=0,V=0,H=0,z=0,j=0,Q=0,Z=0,X=new Set,$=new Set,q=new Set,tt=new Set,at=new Set,nt=new Set,ht=new Set,ut=e.meshes(),ot=new Set(ut.globalTransformIdsArray()),pt=new Set(ut.localTransformIdsArray()),Et=new Set(ut.materialIdsArray()),dt=new Set(ut.representationIdsArray()),Dt=new Set(e.localIdsArray()),Ut=new Set(ut.sampleIdsArray()),Xt=new Set;for(let Tt of t){if(Tt.type===wt.CREATE_SAMPLE&&(U=!0),Tt.type===wt.UPDATE_LOCAL_TRANSFORM){n.add(Tt.localId);continue}if(Tt.type===wt.UPDATE_MATERIAL){u.add(Tt.localId);continue}if(Tt.type===wt.UPDATE_REPRESENTATION){I.add(Tt.localId);continue}if(Tt.type===wt.UPDATE_ITEM){s.add(Tt.localId);continue}if(Tt.type===wt.CREATE_GLOBAL_TRANSFORM){Dt.has(Tt.data.itemId)&&s.add(Tt.data.itemId);continue}if(Tt.type===wt.UPDATE_GLOBAL_TRANSFORM){i.add(Tt.localId),Dt.has(Tt.data.itemId)&&s.add(Tt.data.itemId);continue}if(Tt.type===wt.UPDATE_SAMPLE){Xt.has(Tt.localId)||c.add(Tt.localId),ot.has(Tt.data.item)&&i.add(Tt.data.item),pt.has(Tt.data.localTransform)&&q.add(Tt.data.localTransform),Et.has(Tt.data.material)&&tt.add(Tt.data.material),dt.has(Tt.data.representation)&&at.add(Tt.data.representation);continue}if(Tt.type===wt.CREATE_SAMPLE){Xt.add(Tt.localId),ot.has(Tt.data.item)&&i.add(Tt.data.item),pt.has(Tt.data.localTransform)&&q.add(Tt.data.localTransform),Et.has(Tt.data.material)&&tt.add(Tt.data.material),dt.has(Tt.data.representation)&&at.add(Tt.data.representation);continue}}let Yt=new Set;for(let Tt of t){if(Tt.type===wt.DELETE_GLOBAL_TRANSFORM){i.delete(Tt.localId),ot.has(Tt.localId)||F++;continue}if(Tt.type===wt.DELETE_LOCAL_TRANSFORM){n.delete(Tt.localId),pt.has(Tt.localId)||V++;continue}if(Tt.type===wt.DELETE_SAMPLE){c.delete(Tt.localId),X.add(Tt.localId),Ut.has(Tt.localId)||H++;continue}if(Tt.type===wt.DELETE_MATERIAL){u.delete(Tt.localId),Et.has(Tt.localId)||z++;continue}if(Tt.type===wt.DELETE_REPRESENTATION){I.delete(Tt.localId),Yt.add(Tt.localId),dt.has(Tt.localId)||j++;continue}if(Tt.type===wt.DELETE_ITEM){s.delete(Tt.localId);continue}}let Jt=Ct.getRepresentations(e,Yt);for(let[Tt,le]of Jt)if(!dt.has(Tt))if(le.representationClass===ei.SHELL)Q++;else if(le.representationClass===ei.CIRCLE_EXTRUSION)Z++;else throw new Error("Unsupported representation class");for(let Tt of t)if(Tt.type===wt.CREATE_REPRESENTATION&&Yt.has(Tt.localId))if(Tt.data.representationClass===ei.SHELL)Q++;else if(Tt.data.representationClass===ei.CIRCLE_EXTRUSION)Z++;else throw new Error("Unsupported representation class");for(let Tt=0;Tt<ut.samplesLength();Tt++){let le=ut.samples(Tt),fs=le.item(),Mr=le.localTransform(),Do=le.material(),_s=le.representation(),or=ut.globalTransformIds(fs),si=ut.localTransformIds(Mr),Ur=ut.materialIds(Do),hr=ut.representationIds(_s),Qi=ut.meshesItems(fs),$i=e.localIds(Qi);(i.has(or)||n.has(si)||u.has(Ur)||I.has(hr)||s.has($i))&&Dt.has($i)&&s.add($i)}for(let Tt=0;Tt<ut.samplesLength();Tt++){let le=ut.sampleIds(Tt);if(X.has(le))continue;let fs=ut.samples(Tt),Mr=fs.item(),Do=fs.localTransform(),_s=fs.material(),or=fs.representation(),si=ut.globalTransformIds(Mr),Ur=ut.localTransformIds(Do),hr=ut.materialIds(_s),Qi=ut.representationIds(or),$i=ut.meshesItems(Mr),Ii=e.localIds($i);(i.has(si)||n.has(Ur)||u.has(hr)||I.has(Qi)||s.has(Ii))&&(ot.has(si)&&$.add(si),pt.has(Ur)&&q.add(Ur),Et.has(hr)&&tt.add(hr),dt.has(Qi)&&at.add(Qi),Dt.has(Ii)&&ht.add(Ii),nt.add(le))}ot.clear(),pt.clear(),Et.clear(),dt.clear(),Dt.clear(),Ut.clear();for(let Tt of $)i.add(Tt);for(let Tt of q)n.add(Tt);for(let Tt of tt)u.add(Tt);for(let Tt of at)I.add(Tt);for(let Tt of nt)c.add(Tt);for(let Tt of ht)s.add(Tt);$.clear(),q.clear(),tt.clear(),at.clear(),nt.clear(),ht.clear();let ve=Ct.getGeometryIndicesFromRepresentations(e,I);for(let Tt of ve.shellsIndices)D.add(Tt);for(let Tt of ve.rebarsIndices)g.add(Tt);return{itemIds:s,globalTranforms:i,localTransforms:n,samples:c,materials:u,representations:I,shells:D,circleExtrusions:g,detaDeletedGts:F,detaDeletedLts:V,detaDeletedSamples:H,detaDeletedMaterials:z,detaDeletedRepresentations:j,detaDeletedShells:Q,detaDeletedCircleExtrusions:Z,createNewSample:U}}function rw(e){let t=new vL(1024);zt.startGlobalTransformsVector(t,0);let s=t.endVector(),i=zt.createShellsVector(t,[]);zt.startRepresentationsVector(t,0);let n=t.endVector();zt.startSamplesVector(t,0);let c=t.endVector();zt.startLocalTransformsVector(t,0);let u=t.endVector();zt.startMaterialsVector(t,0);let I=t.endVector(),D=zt.createCircleExtrusionsVector(t,[]),g=zt.createMeshesItemsVector(t,[]),U=zt.createRepresentationIdsVector(t,[]),F=zt.createSampleIdsVector(t,[]),V=zt.createMaterialIdsVector(t,[]),H=zt.createLocalTransformIdsVector(t,[]),z=zt.createGlobalTransformIdsVector(t,[]);zt.startMeshes(t);let j=Zv({position:[0,0,0],xDirection:[1,0,0],yDirection:[0,1,0]},t);zt.addCoordinates(t,j),zt.addGlobalTransforms(t,s),zt.addShells(t,i),zt.addRepresentations(t,n),zt.addSamples(t,c),zt.addLocalTransforms(t,u),zt.addMaterials(t,I),zt.addCircleExtrusions(t,D),zt.addMeshesItems(t,g),zt.addRepresentationIds(t,U),zt.addSampleIds(t,F),zt.addMaterialIds(t,V),zt.addLocalTransformIds(t,H),zt.addGlobalTransformIds(t,z);let Q=zt.endMeshes(t),Z=t.createString("{}"),X=jt.createAttributesVector(t,[]),$=jt.createUniqueAttributesVector(t,[]),q=jt.createRelationNamesVector(t,[]),tt=jt.createLocalIdsVector(t,[]),at=jt.createCategoriesVector(t,[]),nt=jt.createRelationsItemsVector(t,[]),ht=jt.createRelationsVector(t,[]),ut=jt.createGuidsItemsVector(t,[]),ot=jt.createGuidsVector(t,[]),pt=t.createString(p6.generateUUID());jt.startModel(t),jt.addMeshes(t,Q),jt.addMetadata(t,Z),jt.addAttributes(t,X),jt.addUniqueAttributes(t,$),jt.addRelationNames(t,q),jt.addLocalIds(t,tt),jt.addCategories(t,at),jt.addRelationsItems(t,nt),jt.addRelations(t,ht),jt.addGuidsItems(t,ut),jt.addGuids(t,ot),jt.addGuid(t,pt),jt.addMaxLocalId(t,1);let Et=jt.endModel(t);t.finish(Et);let dt=t.asUint8Array();return t.clear(),e.raw?dt:$S.deflate(dt)}function WC(e,t,s,i,n){for(let c of e)(c.type===wt.UPDATE_SAMPLE||c.type===wt.DELETE_SAMPLE)&&t.add(c.localId);for(let c=0;c<s.sampleIdsLength();c++){let u=s.sampleIds(c);if(t.has(u)){let D=s.samples(c).item(),g=s.meshesItems(D),U=i.localIds(g);n.add(U)}}}function DV(e,t,s){let i=e.meshes(),n=s?.raw??!1,c=s?.delta??!1,u=new Set,I=new Set,D=new Set,g=new Set,U=new Set,F=new Set,V=new Set,H=new Set,z=0,j=0,Q=0,Z=0,X=0,$=0,q=0;if(c){let rt=AV(e,t);if(u=rt.itemIds,I=rt.globalTranforms,D=rt.localTransforms,g=rt.samples,U=rt.materials,F=rt.representations,V=rt.shells,H=rt.circleExtrusions,z=rt.detaDeletedGts,j=rt.detaDeletedLts,Q=rt.detaDeletedSamples,Z=rt.detaDeletedMaterials,X=rt.detaDeletedRepresentations,$=rt.detaDeletedShells,q=rt.detaDeletedCircleExtrusions,!rt.createNewSample&&u.size===0&&I.size===0&&D.size===0&&g.size===0&&U.size===0&&F.size===0&&V.size===0&&H.size===0){let vt=new Set;return WC(t,new Set,i,e,vt),{model:rw({raw:n}),items:Array.from(vt)}}}let tt=new Map,at=new Map,nt=new Map,ht=new Map,ut=new Map,ot=new Map,pt=new Map,Et=new Map,dt=new Map,Dt=null,Ut=null,Xt=new Map,Yt=new Map,Jt=new Map,ve=new Map,Tt=new Map,le=new Map,fs=new Map,Mr=new Map,Do=new Map,_s=new Set,or=new Set,si=new Set,Ur=new Set,hr=new Set,Qi=new Set,$i=new Set,Ii=new Set,$p=new Set,gf=new Set(i.materialIdsArray()),Lf=new Set(i.representationIdsArray()),xf=new Set(i.sampleIdsArray()),Pf=new Set(i.globalTransformIdsArray()),Mf=new Set(i.localTransformIdsArray()),Uf=new Set(e.localIdsArray()),Cf=e.maxLocalId();for(let rt of t){if(rt.type===wt.UPDATE_MATERIAL){tt.set(rt.localId,rt.data);continue}if(rt.type===wt.UPDATE_REPRESENTATION){at.set(rt.localId,rt.data);continue}if(rt.type===wt.UPDATE_SAMPLE){nt.set(rt.localId,rt.data);continue}if(rt.type===wt.UPDATE_GLOBAL_TRANSFORM){ht.set(rt.localId,rt.data);continue}if(rt.type===wt.UPDATE_LOCAL_TRANSFORM){ut.set(rt.localId,rt.data);continue}if(rt.type===wt.UPDATE_ITEM){Et.set(rt.localId,rt.data);continue}if(rt.type===wt.UPDATE_RELATION){dt.set(rt.localId,rt.data);continue}if(rt.type===wt.UPDATE_METADATA){Dt=rt.data;continue}if(rt.type===wt.UPDATE_SPATIAL_STRUCTURE){Ut=rt.data;continue}if(rt.type===wt.CREATE_MATERIAL){let yt=rt.localId;if(gf.has(yt))continue;Xt.set(yt,rt.data);continue}if(rt.type===wt.CREATE_REPRESENTATION){let yt=rt.localId;if(Lf.has(yt))continue;Yt.set(yt,rt.data),rt.data.representationClass===ei.SHELL?Jt.set(yt,rt.data.geometry):rt.data.representationClass===ei.CIRCLE_EXTRUSION&&ve.set(yt,rt.data.geometry);continue}if(rt.type===wt.CREATE_SAMPLE){let yt=rt.localId;if(xf.has(yt))continue;Tt.set(yt,rt.data);continue}if(rt.type===wt.CREATE_GLOBAL_TRANSFORM){let yt=rt.localId;if(Pf.has(yt))continue;le.set(yt,rt.data);continue}if(rt.type===wt.CREATE_LOCAL_TRANSFORM){let yt=rt.localId;if(Mf.has(yt))continue;fs.set(yt,rt.data);continue}if(rt.type===wt.CREATE_ITEM){let yt=rt.localId;if(Uf.has(yt))continue;Mr.set(yt,rt.data)}if(rt.type===wt.CREATE_RELATION){let yt=rt.localId;Do.set(yt,rt.data)}if(rt.type===wt.DELETE_MATERIAL){_s.add(rt.localId);continue}if(rt.type===wt.DELETE_REPRESENTATION){si.add(rt.localId);continue}if(rt.type===wt.DELETE_SAMPLE){or.add(rt.localId);continue}if(rt.type===wt.DELETE_GLOBAL_TRANSFORM){Qi.add(rt.localId);continue}if(rt.type===wt.DELETE_LOCAL_TRANSFORM){$i.add(rt.localId);continue}if(rt.type===wt.DELETE_ITEM){Ii.add(rt.localId);continue}if(rt.type===wt.UPDATE_MAX_LOCAL_ID){Cf=rt.localId;continue}if(rt.type===wt.DELETE_RELATION){$p.add(rt.localId);continue}}for(let rt=0;rt<i.representationsLength();rt++){let yt=i.representations(rt),vt=yt.id(),xt=i.representationIds(rt);if(c&&!F.has(xt))continue;if(si.has(xt)){if(yt.representationClass()===ei.SHELL)Ur.add(vt);else if(yt.representationClass()===ei.CIRCLE_EXTRUSION)hr.add(vt);else throw new Error("Representation class is not supported");continue}if(!at.has(xt))continue;let Bt=yt.representationClass();if(Bt===ei.SHELL)ot.set(vt,xt);else if(Bt===ei.CIRCLE_EXTRUSION)pt.set(vt,xt);else throw new Error("Representation class is not supported")}gf.clear(),Lf.clear(),xf.clear(),Pf.clear(),Mf.clear(),Uf.clear();let Jp=i.materialsLength(),wy=c?U.size:Jp,By=c?Z:_s.size,bf=wy+Xt.size-By,Xp=i.representationsLength(),Gy=c?F.size:Xp,Fy=c?X:si.size,wf=0;if(c)for(let[rt]of Yt)F.has(rt)&&wf++;let Bf=Gy+Yt.size-Fy-wf,Gf=i.shellsLength(),Vy=c?V.size:Gf,Hy=c?$:Ur.size,Ff=Vy+Jt.size-Hy,Vf=i.circleExtrusionsLength(),Wy=c?H.size:Vf,zy=c?q:hr.size,Hf=Wy+ve.size-zy,tE=i.samplesLength(),Yy=c?g.size:tE,ky=c?Q:or.size,Wf=Yy+Tt.size-ky,eE=i.globalTransformsLength(),Ky=c?I.size:eE,Zy=c?z:Qi.size,zf=Ky+le.size-Zy,sE=i.localTransformsLength(),qy=c?D.size:sE,jy=c?j:$i.size,Yf=qy+fs.size-jy;if(zf<0||Bf<0||Wf<0||Yf<0||bf<0||Ff<0||Hf<0)throw new Error("Invalid number of elements");let _e=new Map,iE=[],nE=[],Iu=[],rE=[],yu=[],cE=[],Tu=[],kf=0;for(let rt=0;rt<i.globalTransformsLength();rt++){let yt=i.globalTransformIds(rt);if(!Qi.has(yt)&&!(c&&!I.has(yt))){if(_e.has(yt))throw new Error("Local id already exists");_e.set(yt,kf++),rE.push(yt)}}for(let[rt]of le)if(!Qi.has(rt)){if(_e.has(rt))throw new Error("Local id already exists");_e.set(rt,kf++),rE.push(rt)}let Kf=0;for(let rt=0;rt<i.materialIdsLength();rt++){let yt=i.materialIds(rt);if(!_s.has(yt)&&!(c&&!U.has(yt))){if(_e.has(yt))throw new Error("Local id already exists");_e.set(yt,Kf++),iE.push(yt)}}for(let[rt]of Xt)if(!_s.has(rt)){if(_e.has(rt))throw new Error("Local id already exists");_e.set(rt,Kf++),iE.push(rt)}let Zf=0;for(let rt=0;rt<i.localTransformIdsLength();rt++){let yt=i.localTransformIds(rt);if(!$i.has(yt)&&!(c&&!D.has(yt))){if(_e.has(yt))throw new Error("Local id already exists");_e.set(yt,Zf++),cE.push(yt)}}for(let[rt]of fs)if(!$i.has(rt)){if(_e.has(rt))throw new Error("Local id already exists");_e.set(rt,Zf++),cE.push(rt)}let qf=0;for(let rt=0;rt<i.representationIdsLength();rt++){let yt=i.representationIds(rt);if(!si.has(yt)&&!(c&&!F.has(yt))){if(_e.has(yt))throw new Error("Local id already exists");_e.set(yt,qf++),nE.push(yt)}}for(let[rt]of Yt)if(!si.has(rt)){if(_e.has(rt))throw new Error("Local id already exists");_e.set(rt,qf++),nE.push(rt)}for(let rt=0;rt<i.sampleIdsLength();rt++){let yt=i.sampleIds(rt);or.has(yt)||c&&!g.has(yt)||Iu.push(yt)}for(let[rt]of Tt)or.has(rt)||Iu.push(rt);let jf=0;for(let rt=0;rt<e.localIdsLength();rt++){let yt=e.localIds(rt);Ii.has(yt)||c&&!u.has(yt)||(_e.set(yt,jf++),Tu.push(yt))}for(let[rt]of Mr)Ii.has(rt)||(_e.set(rt,jf++),Tu.push(rt));let Nt=new vL(1024);zt.startGlobalTransformsVector(Nt,zf);let du=Array.from(le.keys());for(let rt=0;rt<du.length;rt++){let yt=du.length-1-rt,vt=du[yt],Bt=ht.has(vt)?ht.get(vt):le.get(vt);if(!Bt)throw new Error(`Global transform not found: ${vt}`);if(Qi.has(vt))continue;let bt=Bt.itemId;if(!_e.has(bt))throw new Error("Item id not found for global transform");let $t=_e.get(bt);yu.unshift($t),Zv(Bt,Nt)}du.length=0;for(let rt=0;rt<eE;rt++){let yt=eE-1-rt,vt=i.globalTransforms(yt),xt=i.globalTransformIds(yt);if(Qi.has(xt)||c&&!I.has(xt))continue;if(ht.has(xt)){let bt=ht.get(xt),$t=bt.itemId;if(!_e.has($t))throw new Error(`Item id not found for global transform: ${xt}`);let Kt=_e.get($t);yu.unshift(Kt),Zv(bt,Nt)}else{let bt=i.meshesItems(yt),$t=e.localIds(bt);if(!_e.has($t))throw new Error(`Item id not found for global transform: ${xt}`);let Kt=_e.get($t);yu.unshift(Kt),NM(Nt,vt)}}let Qy=Nt.endVector(),mu=[];for(let rt=0;rt<Gf;rt++){if(Ur.has(rt)||c&&!V.has(rt))continue;if(ot.has(rt)){let xt=ot.get(rt),bt=at.get(xt).geometry,$t=AM(Nt,bt);mu.push($t);continue}let yt=i.shells(rt),vt=SV(Nt,yt);mu.push(vt)}for(let[rt]of Jt){if(si.has(rt))continue;let yt=at.has(rt),vt=0;if(yt){let Bt=at.get(rt).geometry;vt=AM(Nt,Bt)}else{let xt=Jt.get(rt);vt=AM(Nt,xt)}mu.push(vt)}let $y=zt.createShellsVector(Nt,mu),Ru=[];for(let rt=0;rt<Vf;rt++){if(hr.has(rt)||c&&!H.has(rt))continue;if(pt.has(rt)){let xt=pt.get(rt),bt=at.get(xt).geometry,$t=DM(Nt,bt);Ru.push($t);continue}let yt=i.circleExtrusions(rt),vt=NV(Nt,yt);Ru.push(vt)}for(let[rt]of ve){if(hr.has(rt))continue;let yt=at.has(rt),vt=0;if(yt){let Bt=at.get(rt).geometry;vt=DM(Nt,Bt)}else{let xt=ve.get(rt);vt=DM(Nt,xt)}Ru.push(vt)}let Jy=zt.createCircleExtrusionsVector(Nt,Ru);zt.startRepresentationsVector(Nt,Bf);let Su=Array.from(Yt.keys()),aE=Ff-1,oE=Hf-1;for(let rt=0;rt<Su.length;rt++){let yt=Su.length-1-rt,vt=Su[yt];if(si.has(vt))continue;let Bt=at.has(vt)?at.get(vt):Yt.get(vt);if(!Bt)throw new Error(`Representation not found: ${vt}`);let bt=Bt.bbox,$t=Bt.representationClass,Kt=0;if(Bt.representationClass===ei.SHELL)Kt=aE--;else if(Bt.representationClass===ei.CIRCLE_EXTRUSION)Kt=oE--;else throw new Error("Representation class is not supported");yl.createRepresentation(Nt,Kt,bt[0],bt[1],bt[2],bt[3],bt[4],bt[5],$t)}Su.length=0;for(let rt=0;rt<Xp;rt++){let yt=Xp-1-rt,vt=i.representations(yt),xt=i.representationIds(yt);if(si.has(xt)||c&&!F.has(xt))continue;if(at.has(xt)){let bt=at.get(xt),$t=bt.bbox,Kt=0;if(bt.representationClass===ei.SHELL)Kt=aE--;else if(bt.representationClass===ei.CIRCLE_EXTRUSION)Kt=oE--;else throw new Error("Representation class is not supported");let ye=bt.representationClass;yl.createRepresentation(Nt,Kt,$t[0],$t[1],$t[2],$t[3],$t[4],$t[5],ye)}else{let bt=vt.bbox(),$t=0;if(vt.representationClass()===ei.SHELL)$t=aE--;else if(vt.representationClass()===ei.CIRCLE_EXTRUSION)$t=oE--;else throw new Error("Representation class is not supported");let Kt=vt.representationClass(),ye=bt.min(),qe=bt.max();yl.createRepresentation(Nt,$t,ye.x(),ye.y(),ye.z(),qe.x(),qe.y(),qe.z(),Kt)}}let Xy=Nt.endVector();zt.startSamplesVector(Nt,Wf);let Nu=Array.from(Tt.keys());for(let rt=0;rt<Nu.length;rt++){let yt=Nu.length-1-rt,vt=Nu[yt];if(or.has(vt))continue;let Bt=nt.has(vt)?nt.get(vt):Tt.get(vt);if(!Bt)throw new Error(`Sample not found: ${vt}`);if(_s.has(Bt.material))throw new Error(`Material to delete found in sample ${vt}`);if(si.has(Bt.representation))throw new Error(`Representation to delete found in sample ${vt}`);let bt=Bt.item,$t=Bt.material,Kt=Bt.representation,ye=Bt.localTransform;OM(Nt,_e,bt,$t,Kt,ye)}Nu.length=0;for(let rt=0;rt<tE;rt++){let yt=tE-1-rt,vt=i.samples(yt),xt=i.sampleIds(yt);if(or.has(xt)||c&&!g.has(xt))continue;if(nt.has(xt)){let qe=nt.get(xt),Ti=qe.item,Be=qe.material,os=qe.representation,br=qe.localTransform;OM(Nt,_e,Ti,Be,os,br);continue}let bt=i.globalTransformIds(vt.item()),$t=i.materialIds(vt.material()),Kt=i.representationIds(vt.representation()),ye=i.localTransformIds(vt.localTransform());if(_s.has($t))throw new Error(`Material to delete found in sample ${xt}`);OM(Nt,_e,bt,$t,Kt,ye)}let tT=Nt.endVector();zt.startLocalTransformsVector(Nt,Yf);let Au=Array.from(fs.keys());for(let rt=0;rt<Au.length;rt++){let yt=Au.length-1-rt,vt=Au[yt];if($i.has(vt))continue;let Bt=ut.has(vt)?ut.get(vt):fs.get(vt);if(!Bt)throw new Error(`Local transform not found: ${vt}`);Zv(Bt,Nt)}Au.length=0;for(let rt=0;rt<sE;rt++){let yt=sE-1-rt,vt=i.localTransforms(yt),xt=i.localTransformIds(yt),Bt=ut.has(xt);if(!$i.has(xt)&&!(c&&!D.has(xt)))if(Bt){let bt=ut.get(xt);Zv(bt,Nt)}else NM(Nt,vt)}let eT=Nt.endVector();zt.startMaterialsVector(Nt,bf);let Du=Array.from(Xt.keys());for(let rt=0;rt<Du.length;rt++){let yt=Du.length-1-rt,vt=Du[yt];if(_s.has(vt))continue;let Bt=tt.has(vt)?tt.get(vt):Xt.get(vt);if(!Bt)throw new Error(`Material not found: ${vt}`);let bt=Bt.r,$t=Bt.g,Kt=Bt.b,ye=Bt.a,qe=Bt.stroke,Ti=Bt.renderedFaces;pm.createMaterial(Nt,bt,$t,Kt,ye,Ti,qe)}Du.length=0;for(let rt=0;rt<Jp;rt++){let yt=Jp-1-rt,vt=i.materials(yt),xt=i.materialIds(yt);if(_s.has(xt)||c&&!U.has(xt))continue;let Bt=tt.has(xt),bt=tt.get(xt),$t=Bt?bt.r:vt.r(),Kt=Bt?bt.g:vt.g(),ye=Bt?bt.b:vt.b(),qe=Bt?bt.a:vt.a(),Ti=Bt?bt.stroke:vt.stroke(),Be=Bt?bt.renderedFaces:vt.renderedFaces();pm.createMaterial(Nt,$t,Kt,ye,qe,Be,Ti)}let sT=Nt.endVector(),iT=zt.createMeshesItemsVector(Nt,yu),nT=zt.createRepresentationIdsVector(Nt,nE),ge=zt.createSampleIdsVector(Nt,Iu),rT=zt.createMaterialIdsVector(Nt,iE),dh=zt.createLocalTransformIdsVector(Nt,cE),cT=zt.createGlobalTransformIdsVector(Nt,rE);zt.startMeshes(Nt);let Na=i.coordinates(),aT=NM(Nt,Na);zt.addCoordinates(Nt,aT),zt.addGlobalTransforms(Nt,Qy),zt.addShells(Nt,$y),zt.addRepresentations(Nt,Xy),zt.addSamples(Nt,tT),zt.addLocalTransforms(Nt,eT),zt.addMaterials(Nt,sT),zt.addCircleExtrusions(Nt,Jy),zt.addMeshesItems(Nt,iT),zt.addRepresentationIds(Nt,nT),zt.addSampleIds(Nt,ge),zt.addMaterialIds(Nt,rT),zt.addLocalTransformIds(Nt,dh),zt.addGlobalTransformIds(Nt,cT);let mh=zt.endMeshes(Nt),hE;if(Dt){let rt=JSON.stringify(Dt);hE=Nt.createString(rt)}else{let rt=e.metadata();hE=Nt.createString(rt)}let lE=e.attributesLength(),uE=[],Hc=new Set,Ou=[],gn=[],Cr=[],Ln=new Map;for(let rt=0;rt<e.guidsItemsLength();rt++){let yt=e.guidsItems(rt);Ln.set(yt,rt)}for(let rt=0;rt<lE;rt++){let yt=e.localIds(rt);if(Ii.has(yt))continue;let vt=e.attributes(rt),xt=[];if(Et.has(yt)){let Kt=Et.get(yt);Ou.push(Nt.createSharedString(Kt.category)),Kt.guid&&(gn.push(Nt.createSharedString(Kt.guid)),Cr.push(yt));for(let ye in Kt.data){let{value:qe,type:Ti}=Kt.data[ye],Be=JSON.stringify([ye,qe,Ti]);Hc.add(Be);let os=Nt.createSharedString(Be);xt.push(os)}}else{let Kt=e.categories(rt);Ou.push(Nt.createSharedString(Kt));let ye=Ln.get(yt);if(ye!==void 0){let Ti=e.guids(ye);gn.push(Nt.createSharedString(Ti)),Cr.push(yt)}let qe=vt.dataLength();for(let Ti=0;Ti<qe;Ti++){let Be=vt.data(Ti);Hc.add(Be);let os=Nt.createSharedString(Be);xt.push(os)}}let bt=sm.createDataVector(Nt,xt),$t=sm.createAttribute(Nt,bt);uE.push($t)}for(let[rt,yt]of Mr){if(Ii.has(rt))continue;Ou.push(Nt.createSharedString(yt.category)),yt.guid&&(console.log(yt.guid),gn.push(Nt.createSharedString(yt.guid)),Cr.push(rt));let vt=[];for(let bt in yt.data){let{value:$t,type:Kt}=yt.data[bt],ye=JSON.stringify([bt,$t,Kt]);Hc.add(ye);let qe=Nt.createSharedString(ye);vt.push(qe)}let xt=sm.createDataVector(Nt,vt),Bt=sm.createAttribute(Nt,xt);uE.push(Bt)}let ue=jt.createAttributesVector(Nt,uE),oc=[];for(let rt of Hc){let yt=Nt.createSharedString(rt);oc.push(yt)}let Ie=jt.createUniqueAttributesVector(Nt,oc),Rh=e.relationNamesLength(),Ji=[];for(let rt=0;rt<Rh;rt++){let yt=e.relationNames(rt),vt=Nt.createSharedString(yt);Ji.push(vt)}let Oo=jt.createRelationNamesVector(Nt,Ji),xn=jt.createLocalIdsVector(Nt,Tu),Sl=jt.createCategoriesVector(Nt,Ou),lr=[],Sh=[],Xi=new Set,vo=e.relationsItemsLength(),gs=rt=>{let yt=[];for(let Bt in rt.data){let $t=rt.data[Bt].filter(ye=>!Ii.has(ye));if(!$t.length)continue;let Kt=Nt.createSharedString(JSON.stringify([Bt,...$t]));yt.push(Kt)}let vt=N_.createDataVector(Nt,yt),xt=N_.createRelation(Nt,vt);lr.push(xt)};for(let rt=0;rt<vo;rt++){let yt=e.relationsItems(rt);if(Xi.add(yt),Ii.has(yt)||$p.has(yt)||!_e.has(yt))continue;let vt;if(dt.has(yt))vt=dt.get(yt);else{let xt=e.relations(rt);vt=Ct.getRelationData(xt)}gs(vt),Sh.push(yt)}for(let[rt,yt]of Do){if(Ii.has(rt)||$p.has(rt)||Xi.has(rt))continue;let vt;dt.has(rt)?vt=dt.get(rt):vt=yt,gs(vt),Sh.push(rt)}Xi.clear();let _o=jt.createRelationsVector(Nt,lr),ms=jt.createRelationsItemsVector(Nt,Sh),go=jt.createGuidsItemsVector(Nt,Cr),yi=jt.createGuidsVector(Nt,gn),Aa=null;if(Ut)Aa=nw(Nt,Ut);else{let rt=e.spatialStructure();Aa=iw(Nt,rt)}let tn=e.guid(),vu=Nt.createString(tn);jt.startModel(Nt),jt.addMeshes(Nt,mh),jt.addMetadata(Nt,hE),jt.addAttributes(Nt,ue),jt.addUniqueAttributes(Nt,Ie),jt.addRelationNames(Nt,Oo),jt.addLocalIds(Nt,xn),jt.addCategories(Nt,Sl),jt.addRelationsItems(Nt,ms),jt.addRelations(Nt,_o),jt.addGuidsItems(Nt,go),jt.addGuids(Nt,yi),Aa!==null&&jt.addSpatialStructure(Nt,Aa),jt.addGuid(Nt,vu),jt.addMaxLocalId(Nt,Cf);let en=jt.endModel(Nt);Nt.finish(en);let _u=Nt.asUint8Array();Nt.clear();let Nh=n?_u:$S.deflate(_u),Da=new Set(Tu),Vs=new Set(Iu);return WC(t,Vs,i,e,Da),{model:Nh,items:Array.from(Da)}}var z0="-DELTA-MODEL-";function OV(e){return e.includes(z0)?e.substring(0,e.indexOf(z0)):e}function vV(e,t){let s=new JS(t?e:$S.inflate(e));return jt.getRootAsModel(s)}function cw(e){return{item:e.item(),localTransform:e.localTransform(),material:e.material(),representation:e.representation()}}function __(e){let t=e.position(),s=e.xDirection(),i=e.yDirection();return{position:[t.x(),t.y(),t.z()],xDirection:[s.x(),s.y(),s.z()],yDirection:[i.x(),i.y(),i.z()]}}function _V(e){let t={data:{}},s=e.dataLength();for(let i=0;i<s;i++){let n=e.data(i),[c,...u]=JSON.parse(n);t.data[c]=u}return t}function w1(e){return{r:e.r(),g:e.g(),b:e.b(),a:e.a(),renderedFaces:e.renderedFaces(),stroke:e.stroke()}}function kL(e){let t=e.bbox(),s=t.min(),i=t.max();return{id:e.id(),bbox:[s.x(),s.y(),s.z(),i.x(),i.y(),i.z()],representationClass:e.representationClass()}}function B1(e){let t=[];for(let I=0;I<e.pointsLength();I++){let D=e.points(I);t.push([D.x(),D.y(),D.z()])}let s=new Map;for(let I=0;I<e.profilesLength();I++){let D=e.profiles(I),g=Array.from(D.indicesArray()||[]);s.set(I,g)}let i=new Map;for(let I=0;I<e.holesLength();I++){let D=e.holes(I),g=Array.from(D.indicesArray()||[]),U=D.profileId();i.has(U)||i.set(U,[]),i.get(U).push(g)}let n=new Map;for(let I=0;I<e.bigProfilesLength();I++){let D=e.bigProfiles(I),g=Array.from(D.indicesArray()||[]);n.set(I,g)}let c=new Map;for(let I=0;I<e.bigHolesLength();I++){let D=e.bigHoles(I),g=Array.from(D.indicesArray()||[]),U=D.profileId();c.has(U)||c.set(U,[]),c.get(U).push(g)}let u=Array.from(e.profilesFaceIdsArray()||[]);return{points:t,profiles:s,holes:i,bigProfiles:n,bigHoles:c,type:e.type(),profilesFaceIds:u}}function gV(e){let t={radius:[],axes:[]},s=e.radiusArray();t.radius=Array.from(s);let i=e.axesLength();for(let n=0;n<i;n++){let c=e.axes(n),u=c.wiresLength(),I=[];for(let Q=0;Q<u;Q++){let Z=c.wires(Q),X=Z.p1(),$=Z.p2();I.push([X.x(),X.y(),X.z(),$.x(),$.y(),$.z()])}let D=c.orderLength(),g=[];for(let Q=0;Q<D;Q++)g.push(c.order(Q));let U=c.partsLength(),F=[];for(let Q=0;Q<U;Q++)F.push(c.parts(Q));let V=c.wireSetsLength(),H=[];for(let Q=0;Q<V;Q++){let Z=c.wireSets(Q),X=Z.psLength(),$=[];for(let q=0;q<X;q++){let tt=Z.ps(q);$.push(tt.x(),tt.y(),tt.z())}H.push($)}let z=c.circleCurvesLength(),j=[];for(let Q=0;Q<z;Q++){let Z=c.circleCurves(Q),X=Z.aperture(),$=Z.position(),q=$.x(),tt=$.y(),at=$.z(),nt=Z.radius(),ht=Z.xDirection(),ut=ht.x(),ot=ht.y(),pt=ht.z(),Et=Z.yDirection(),dt=Et.x(),Dt=Et.y(),Ut=Et.z();j.push({aperture:X,position:[q,tt,at],radius:nt,xDirection:[ut,ot,pt],yDirection:[dt,Dt,Ut]})}t.axes.push({wires:I,order:g,parts:F,wireSets:H,circleCurves:j})}return t}function LV(e){return e.meshes().materialIdsArray()||[]}function xV(e,t){let s=e.meshes(),i=t||s.materialIdsArray(),n=new Set(i),c=new pm,u=new Map;for(let I=0;I<s.materialsLength();I++){let D=s.materialIds(I);if(!n.has(D))continue;s.materials(I,c);let g=w1(c);u.set(D,g)}return u}function PV(e){return e.meshes().representationIdsArray()||[]}function MV(e,t){let s=e.meshes(),i=t||s.representationIdsArray(),n=new Set(i),c=new Map,u=new yl;for(let I=0;I<s.representationsLength();I++){let D=s.representationIds(I);if(!n.has(D))continue;s.representations(I,u);let g=kL(u);if(g.representationClass===ei.SHELL){let U=s.shells(g.id),F=B1(U);g.geometry=F}else if(g.representationClass===ei.CIRCLE_EXTRUSION){let U=s.circleExtrusions(g.id),F=gV(U);g.geometry=F}c.set(D,g)}return c}function UV(e,t){let s=e.meshes(),i=t||s.representationIdsArray(),n=new Set(i),c=new yl,u=new Set,I=new Set;for(let D=0;D<s.representationsLength();D++){let g=s.representationIds(D);if(!n.has(g))continue;s.representations(D,c);let U=kL(c);if(U.representationClass===ei.SHELL)u.add(U.id);else if(U.representationClass===ei.CIRCLE_EXTRUSION)I.add(U.id);else throw new Error("Rebars not supported yet")}return{shellsIndices:u,rebarsIndices:I}}function CV(e){let t=[];for(let s in e){if(s[0]==="_")continue;let i=e[s];if(Array.isArray(i))continue;let n=i.value,c=i.type,u=JSON.stringify([s,n,c]);t.push(u)}return t}function bV(e){let t=e._category;if(!t)throw new Error("Category is required");let s=t.value,i=e._guid,n={};for(let u in e){if(u[0]==="_")continue;let I=e[u];Array.isArray(I)||(n[u]=I)}let c=i?i.value:void 0;return{data:n,category:s,guid:c}}function wV(e){return e.meshes().localTransformIdsArray()||[]}function BV(e,t){let s=e.meshes(),i=t||s.localTransformIdsArray(),n=new Set(i),c=new Map,u=new uu;for(let I=0;I<s.localTransformsLength();I++){let D=s.localTransformIds(I);if(!n.has(D))continue;s.localTransforms(I,u);let g=__(u);c.set(D,g)}return c}function GV(e){return e.meshes().globalTransformIdsArray()||[]}function FV(e,t){let s=e.meshes(),i=null;t?i=new Set(t):i=new Set(s.globalTransformIdsArray());let n=new Map,c=new uu,u=s.globalTransformsLength();for(let I=0;I<u;I++){s.globalTransforms(I,c);let D=s.globalTransformIds(I),g=s.meshesItems(I),U=e.localIds(g);if(!i.has(D))continue;let F=__(c);n.set(D,{...F,itemId:U})}return n}function VV(e){return e.meshes().sampleIdsArray()||[]}function HV(e,t){let s=e.meshes(),i=t||s.sampleIdsArray(),n=new Set(i),c=new Map,u=new Cy;for(let I=0;I<s.samplesLength();I++){let D=s.sampleIds(I);if(!n.has(D))continue;s.samples(I,u);let g=cw(u);g.item=s.globalTransformIds(g.item),g.material=s.materialIds(g.material),g.representation=s.representationIds(g.representation),g.localTransform=s.localTransformIds(g.localTransform),c.set(D,g)}return c}function WV(e){return e.localIdsArray()}function zV(e,t){let s=new Set;if(t)s=new Set(t);else for(let n=0;n<e.localIdsLength();n++)s.add(n);let i=new Map;for(let n of s){let c=e.localIds(n),u=e.categories(n),I=e.guids(n),D=e.attributes(n),g={};for(let U=0;U<D.dataLength();U++){let F=D.data(U),[V,H,z]=JSON.parse(F);g[V]={value:H,type:z}}i.set(c,{data:g,category:u,guid:I})}return i}function YV(e,t){let s=e.meshes(),i=new Set(t),n=new Set;for(let c=0;c<s.meshesItemsLength();c++){let u=s.meshesItems(c),I=e.localIds(u);i.has(I)&&n.add(s.globalTransformIds(c))}return Array.from(n)}function kV(e,t){let s=e.data,i=s.meshes(),n={},c=new Set(t),u=new uu,I=new pm,D=new yl,g=new xi;for(let V=0;V<i.samplesLength();V++){let H=i.samples(V),z=H.item(),j=i.meshesItems(z),Q=s.localIds(j);if(!c.has(Q))continue;n[Q]||(n[Q]={samples:{},localTransforms:{},globalTransforms:{},representations:{},materials:{}});let Z=n[Q],X=H.localTransform(),$=H.material(),q=H.representation(),tt=i.sampleIds(V),at=i.globalTransformIds(z),nt=i.localTransformIds(X),ht=i.materialIds($),ut=i.representationIds(q);Z.samples[tt]={item:at,localTransform:nt,material:ht,representation:ut},i.localTransforms(X,u),Z.localTransforms[nt]=__(u),i.globalTransforms(z,u);let ot=__(u);Z.globalTransforms[at]={...ot,itemId:Q},i.materials($,I),Z.materials[ht]=w1(I),i.representations(q,D);let pt=kL(D);if(pt.representationClass===ei.SHELL){i.shells(pt.id,g);let Et=B1(g);pt.geometry=Et}Z.representations[ut]=pt}let U=new Map;for(let V=0;V<s.relationsItemsLength();V++){let H=s.relationsItems(V);U.set(H,V)}let F=new Map;for(let V=0;V<s.localIdsLength();V++){let H=s.localIds(V);F.set(H,V)}return n}function KV(e,t,s){let i=e[t];if(typeof i=="string"){let n=s.get(i);if(n===void 0)throw new Error(`Malformed request: temp id ${e[t]} not found`);e[t]=n}}function Jg(e,t,s){let i=e[t];if(typeof i=="string"){let n=s.get(i);if(n===void 0)throw new Error(`Malformed request: temp id ${e[t]} not found`);e[t]=n}}function ZV(e,t,s){let i=e[t];if(typeof i=="string"){let n=s.get(i);if(n===void 0)throw new Error(`Malformed request: temp id ${e[t]} not found`);e[t]=n}}function qV(e,t){let s=new Map,i=[];for(let n of e){if(n.localId!==void 0)continue;let c=t++;n.tempId&&s.set(n.tempId,c),n.localId=c,i.push(c)}for(let n of e){if(n.type===wt.UPDATE_SAMPLE||n.type===wt.CREATE_SAMPLE){let c=n.data;Jg(c,"item",s),Jg(c,"material",s),Jg(c,"representation",s),Jg(c,"localTransform",s);continue}if(n.type===wt.UPDATE_GLOBAL_TRANSFORM||n.type===wt.CREATE_GLOBAL_TRANSFORM){let c=n.data;KV(c,"itemId",s);continue}ZV(n,"localId",s)}return s.clear(),i}function jV(e,t,s,i){let n=wt[`CREATE_${s}`],c=wt[`UPDATE_${s}`],u=wt[`DELETE_${s}`];if(e)for(let I of e){if(I.type===n||I.type===c){if(i&&!i.has(I.localId))continue;t.set(I.localId,I.data);continue}I.type===u&&t.delete(I.localId)}}function QV(e,t){let s=wt[`UPDATE_${t}`];if(e)for(let i=e.length-1;i>=0;i--){let n=e[i];if(n.type===s)return JSON.parse(JSON.stringify(n.data))}return null}function $V(e,t,s,i){let n=new Set(t),c=wt[`DELETE_${s}`],u=wt[`CREATE_${s}`];if(e){for(let I of e){if(I.type===c){n.delete(I.localId);continue}i&&I.type===u&&n.add(I.localId)}return Array.from(n)}return t}var Ct=class{};k(Ct,"edit",DV);k(Ct,"solveIds",qV);k(Ct,"newModel",rw);k(Ct,"applyChangesToRawData",jV);k(Ct,"applyChangesToSpecialData",QV);k(Ct,"applyChangesToIds",$V);k(Ct,"getModelFromBuffer",vV);k(Ct,"getSampleData",cw);k(Ct,"getTransformData",__);k(Ct,"getRelationData",_V);k(Ct,"getMaterialData",w1);k(Ct,"getRepresentationData",kL);k(Ct,"getShellData",B1);k(Ct,"getMaterialsIds",LV);k(Ct,"getMaterials",xV);k(Ct,"getRepresentationsIds",PV);k(Ct,"getRepresentations",MV);k(Ct,"getLocalTransformsIds",wV);k(Ct,"getLocalTransforms",BV);k(Ct,"getGlobalTransformsIds",GV);k(Ct,"getGlobalTransforms",FV);k(Ct,"getSamplesIds",VV);k(Ct,"getSamples",HV);k(Ct,"getItemsIds",WV);k(Ct,"getItems",zV);k(Ct,"getGlobalTranformsIdsOfItems",YV);k(Ct,"getElementsData",kV);k(Ct,"getGeometryIndicesFromRepresentations",UV);k(Ct,"getRootModelId",OV);k(Ct,"getSerializedAttributes",CV);k(Ct,"itemDataToRawItemData",bV);k(Ct,"DELTA_MODEL_ID",z0);var Io=class{constructor(e,t=2,s){if(this.value=e,this.type=5,s&&s?.type===2)return aw(t,s)}},et=class{constructor(e,t){this.type=4,t&&(this.type=t),this.value=e}get internalValue(){return this._internalValue}get value(){return this._representationValue}set value(e){this._representationValue=(this._internalValue=e)===null?e:parseFloat(e)}},lt=class{constructor(e=-1){this.expressID=e,this.type=0}},KL={};function aw(e,t){return Array.isArray(t)&&t.map(s=>aw(e,s)),t.typecode?KL[e][t.typecode](t.value):t.value}KL[1]={3699917729:e=>new St.IfcAbsorbedDoseMeasure(e),4182062534:e=>new St.IfcAccelerationMeasure(e),360377573:e=>new St.IfcAmountOfSubstanceMeasure(e),632304761:e=>new St.IfcAngularVelocityMeasure(e),2650437152:e=>new St.IfcAreaMeasure(e),2735952531:e=>new St.IfcBoolean(e),1867003952:e=>new St.IfcBoxAlignment(e),2991860651:e=>new St.IfcComplexNumber(e.map(t=>t.value)),3812528620:e=>new St.IfcCompoundPlaneAngleMeasure(e.map(t=>t.value)),3238673880:e=>new St.IfcContextDependentMeasure(e),1778710042:e=>new St.IfcCountMeasure(e),94842927:e=>new St.IfcCurvatureMeasure(e),86635668:e=>new St.IfcDayInMonthNumber(e),300323983:e=>new St.IfcDaylightSavingHour(e),1514641115:e=>new St.IfcDescriptiveMeasure(e),4134073009:e=>new St.IfcDimensionCount(e),524656162:e=>new St.IfcDoseEquivalentMeasure(e),69416015:e=>new St.IfcDynamicViscosityMeasure(e),1827137117:e=>new St.IfcElectricCapacitanceMeasure(e),3818826038:e=>new St.IfcElectricChargeMeasure(e),2093906313:e=>new St.IfcElectricConductanceMeasure(e),3790457270:e=>new St.IfcElectricCurrentMeasure(e),2951915441:e=>new St.IfcElectricResistanceMeasure(e),2506197118:e=>new St.IfcElectricVoltageMeasure(e),2078135608:e=>new St.IfcEnergyMeasure(e),1102727119:e=>new St.IfcFontStyle(e),2715512545:e=>new St.IfcFontVariant(e),2590844177:e=>new St.IfcFontWeight(e),1361398929:e=>new St.IfcForceMeasure(e),3044325142:e=>new St.IfcFrequencyMeasure(e),3064340077:e=>new St.IfcGloballyUniqueId(e),3113092358:e=>new St.IfcHeatFluxDensityMeasure(e),1158859006:e=>new St.IfcHeatingValueMeasure(e),2589826445:e=>new St.IfcHourInDay(e),983778844:e=>new St.IfcIdentifier(e),3358199106:e=>new St.IfcIlluminanceMeasure(e),2679005408:e=>new St.IfcInductanceMeasure(e),1939436016:e=>new St.IfcInteger(e),3809634241:e=>new St.IfcIntegerCountRateMeasure(e),3686016028:e=>new St.IfcIonConcentrationMeasure(e),3192672207:e=>new St.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new St.IfcKinematicViscosityMeasure(e),3258342251:e=>new St.IfcLabel(e),1243674935:e=>new St.IfcLengthMeasure(e),191860431:e=>new St.IfcLinearForceMeasure(e),2128979029:e=>new St.IfcLinearMomentMeasure(e),1307019551:e=>new St.IfcLinearStiffnessMeasure(e),3086160713:e=>new St.IfcLinearVelocityMeasure(e),503418787:e=>new St.IfcLogical(e),2095003142:e=>new St.IfcLuminousFluxMeasure(e),2755797622:e=>new St.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new St.IfcLuminousIntensityMeasure(e),286949696:e=>new St.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new St.IfcMagneticFluxMeasure(e),1477762836:e=>new St.IfcMassDensityMeasure(e),4017473158:e=>new St.IfcMassFlowRateMeasure(e),3124614049:e=>new St.IfcMassMeasure(e),3531705166:e=>new St.IfcMassPerLengthMeasure(e),102610177:e=>new St.IfcMinuteInHour(e),3341486342:e=>new St.IfcModulusOfElasticityMeasure(e),2173214787:e=>new St.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new St.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new St.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new St.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new St.IfcMolecularWeightMeasure(e),3114022597:e=>new St.IfcMomentOfInertiaMeasure(e),2615040989:e=>new St.IfcMonetaryMeasure(e),765770214:e=>new St.IfcMonthInYearNumber(e),2095195183:e=>new St.IfcNormalisedRatioMeasure(e),2395907400:e=>new St.IfcNumericMeasure(e),929793134:e=>new St.IfcPHMeasure(e),2260317790:e=>new St.IfcParameterValue(e),2642773653:e=>new St.IfcPlanarForceMeasure(e),4042175685:e=>new St.IfcPlaneAngleMeasure(e),2815919920:e=>new St.IfcPositiveLengthMeasure(e),3054510233:e=>new St.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new St.IfcPositiveRatioMeasure(e),1364037233:e=>new St.IfcPowerMeasure(e),2169031380:e=>new St.IfcPresentableText(e),3665567075:e=>new St.IfcPressureMeasure(e),3972513137:e=>new St.IfcRadioActivityMeasure(e),96294661:e=>new St.IfcRatioMeasure(e),200335297:e=>new St.IfcReal(e),2133746277:e=>new St.IfcRotationalFrequencyMeasure(e),1755127002:e=>new St.IfcRotationalMassMeasure(e),3211557302:e=>new St.IfcRotationalStiffnessMeasure(e),2766185779:e=>new St.IfcSecondInMinute(e),3467162246:e=>new St.IfcSectionModulusMeasure(e),2190458107:e=>new St.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new St.IfcShearModulusMeasure(e),3471399674:e=>new St.IfcSolidAngleMeasure(e),846465480:e=>new St.IfcSoundPowerMeasure(e),993287707:e=>new St.IfcSoundPressureMeasure(e),3477203348:e=>new St.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new St.IfcSpecularExponent(e),361837227:e=>new St.IfcSpecularRoughness(e),58845555:e=>new St.IfcTemperatureGradientMeasure(e),2801250643:e=>new St.IfcText(e),1460886941:e=>new St.IfcTextAlignment(e),3490877962:e=>new St.IfcTextDecoration(e),603696268:e=>new St.IfcTextFontName(e),296282323:e=>new St.IfcTextTransformation(e),232962298:e=>new St.IfcThermalAdmittanceMeasure(e),2645777649:e=>new St.IfcThermalConductivityMeasure(e),2281867870:e=>new St.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new St.IfcThermalResistanceMeasure(e),2016195849:e=>new St.IfcThermalTransmittanceMeasure(e),743184107:e=>new St.IfcThermodynamicTemperatureMeasure(e),2726807636:e=>new St.IfcTimeMeasure(e),2591213694:e=>new St.IfcTimeStamp(e),1278329552:e=>new St.IfcTorqueMeasure(e),3345633955:e=>new St.IfcVaporPermeabilityMeasure(e),3458127941:e=>new St.IfcVolumeMeasure(e),2593997549:e=>new St.IfcVolumetricFlowRateMeasure(e),51269191:e=>new St.IfcWarpingConstantMeasure(e),1718600412:e=>new St.IfcWarpingMomentMeasure(e),4065007721:e=>new St.IfcYearNumber(e)};var St;(e=>{class t extends et{constructor(){super(...arguments),this.type=4,this.name="IFCABSORBEDDOSEMEASURE"}}e.IfcAbsorbedDoseMeasure=t;class s extends et{constructor(){super(...arguments),this.type=4,this.name="IFCACCELERATIONMEASURE"}}e.IfcAccelerationMeasure=s;class i extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAMOUNTOFSUBSTANCEMEASURE"}}e.IfcAmountOfSubstanceMeasure=i;class n extends et{constructor(){super(...arguments),this.type=4,this.name="IFCANGULARVELOCITYMEASURE"}}e.IfcAngularVelocityMeasure=n;class c extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAREAMEASURE"}}e.IfcAreaMeasure=c;class u{constructor(E){this.type=3,this.name="IFCBOOLEAN",this.value=E}}e.IfcBoolean=u;class I{constructor(E){this.value=E,this.type=1,this.name="IFCBOXALIGNMENT"}}e.IfcBoxAlignment=I;class D{constructor(E){this.value=E,this.type=4}}e.IfcComplexNumber=D;class g{constructor(E){this.value=E,this.type=10}}e.IfcCompoundPlaneAngleMeasure=g;class U extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCONTEXTDEPENDENTMEASURE"}}e.IfcContextDependentMeasure=U;class F extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCOUNTMEASURE"}}e.IfcCountMeasure=F;class V extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCURVATUREMEASURE"}}e.IfcCurvatureMeasure=V;class H extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDAYINMONTHNUMBER"}}e.IfcDayInMonthNumber=H;class z extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDAYLIGHTSAVINGHOUR"}}e.IfcDaylightSavingHour=z;class j{constructor(E){this.value=E,this.type=1,this.name="IFCDESCRIPTIVEMEASURE"}}e.IfcDescriptiveMeasure=j;class Q extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDIMENSIONCOUNT"}}e.IfcDimensionCount=Q;class Z extends et{constructor(){super(...arguments),this.type=4,this.name="IFCDOSEEQUIVALENTMEASURE"}}e.IfcDoseEquivalentMeasure=Z;class X extends et{constructor(){super(...arguments),this.type=4,this.name="IFCDYNAMICVISCOSITYMEASURE"}}e.IfcDynamicViscosityMeasure=X;class $ extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCAPACITANCEMEASURE"}}e.IfcElectricCapacitanceMeasure=$;class q extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCHARGEMEASURE"}}e.IfcElectricChargeMeasure=q;class tt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCONDUCTANCEMEASURE"}}e.IfcElectricConductanceMeasure=tt;class at extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCURRENTMEASURE"}}e.IfcElectricCurrentMeasure=at;class nt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICRESISTANCEMEASURE"}}e.IfcElectricResistanceMeasure=nt;class ht extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICVOLTAGEMEASURE"}}e.IfcElectricVoltageMeasure=ht;class ut extends et{constructor(){super(...arguments),this.type=4,this.name="IFCENERGYMEASURE"}}e.IfcEnergyMeasure=ut;class ot{constructor(E){this.value=E,this.type=1,this.name="IFCFONTSTYLE"}}e.IfcFontStyle=ot;class pt{constructor(E){this.value=E,this.type=1,this.name="IFCFONTVARIANT"}}e.IfcFontVariant=pt;class Et{constructor(E){this.value=E,this.type=1,this.name="IFCFONTWEIGHT"}}e.IfcFontWeight=Et;class dt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCFORCEMEASURE"}}e.IfcForceMeasure=dt;class Dt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCFREQUENCYMEASURE"}}e.IfcFrequencyMeasure=Dt;class Ut{constructor(E){this.value=E,this.type=1,this.name="IFCGLOBALLYUNIQUEID"}}e.IfcGloballyUniqueId=Ut;class Xt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCHEATFLUXDENSITYMEASURE"}}e.IfcHeatFluxDensityMeasure=Xt;class Yt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCHEATINGVALUEMEASURE"}}e.IfcHeatingValueMeasure=Yt;class Jt extends et{constructor(){super(...arguments),this.type=10,this.name="IFCHOURINDAY"}}e.IfcHourInDay=Jt;class ve{constructor(E){this.value=E,this.type=1,this.name="IFCIDENTIFIER"}}e.IfcIdentifier=ve;class Tt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCILLUMINANCEMEASURE"}}e.IfcIlluminanceMeasure=Tt;class le extends et{constructor(){super(...arguments),this.type=4,this.name="IFCINDUCTANCEMEASURE"}}e.IfcInductanceMeasure=le;class fs extends et{constructor(){super(...arguments),this.type=10,this.name="IFCINTEGER"}}e.IfcInteger=fs;class Mr extends et{constructor(){super(...arguments),this.type=10,this.name="IFCINTEGERCOUNTRATEMEASURE"}}e.IfcIntegerCountRateMeasure=Mr;class Do extends et{constructor(){super(...arguments),this.type=4,this.name="IFCIONCONCENTRATIONMEASURE"}}e.IfcIonConcentrationMeasure=Do;class _s extends et{constructor(){super(...arguments),this.type=4,this.name="IFCISOTHERMALMOISTURECAPACITYMEASURE"}}e.IfcIsothermalMoistureCapacityMeasure=_s;class or extends et{constructor(){super(...arguments),this.type=4,this.name="IFCKINEMATICVISCOSITYMEASURE"}}e.IfcKinematicViscosityMeasure=or;class si{constructor(E){this.value=E,this.type=1,this.name="IFCLABEL"}}e.IfcLabel=si;class Ur extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLENGTHMEASURE"}}e.IfcLengthMeasure=Ur;class hr extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARFORCEMEASURE"}}e.IfcLinearForceMeasure=hr;class Qi extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARMOMENTMEASURE"}}e.IfcLinearMomentMeasure=Qi;class $i extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARSTIFFNESSMEASURE"}}e.IfcLinearStiffnessMeasure=$i;class Ii extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARVELOCITYMEASURE"}}e.IfcLinearVelocityMeasure=Ii;class $p{constructor(E){this.type=3,this.name="IFCLOGICAL",this.value=E}}e.IfcLogical=$p;class gf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSFLUXMEASURE"}}e.IfcLuminousFluxMeasure=gf;class Lf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE"}}e.IfcLuminousIntensityDistributionMeasure=Lf;class xf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSINTENSITYMEASURE"}}e.IfcLuminousIntensityMeasure=xf;class Pf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMAGNETICFLUXDENSITYMEASURE"}}e.IfcMagneticFluxDensityMeasure=Pf;class Mf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMAGNETICFLUXMEASURE"}}e.IfcMagneticFluxMeasure=Mf;class Uf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSDENSITYMEASURE"}}e.IfcMassDensityMeasure=Uf;class Cf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSFLOWRATEMEASURE"}}e.IfcMassFlowRateMeasure=Cf;class Jp extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSMEASURE"}}e.IfcMassMeasure=Jp;class wy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSPERLENGTHMEASURE"}}e.IfcMassPerLengthMeasure=wy;class By extends et{constructor(){super(...arguments),this.type=10,this.name="IFCMINUTEINHOUR"}}e.IfcMinuteInHour=By;class bf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFELASTICITYMEASURE"}}e.IfcModulusOfElasticityMeasure=bf;class Xp extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfLinearSubgradeReactionMeasure=Xp;class Gy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfRotationalSubgradeReactionMeasure=Gy;class Fy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfSubgradeReactionMeasure=Fy;class wf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOISTUREDIFFUSIVITYMEASURE"}}e.IfcMoistureDiffusivityMeasure=wf;class Bf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOLECULARWEIGHTMEASURE"}}e.IfcMolecularWeightMeasure=Bf;class Gf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOMENTOFINERTIAMEASURE"}}e.IfcMomentOfInertiaMeasure=Gf;class Vy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMONETARYMEASURE"}}e.IfcMonetaryMeasure=Vy;class Hy extends et{constructor(){super(...arguments),this.type=10,this.name="IFCMONTHINYEARNUMBER"}}e.IfcMonthInYearNumber=Hy;class Ff extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNORMALISEDRATIOMEASURE"}}e.IfcNormalisedRatioMeasure=Ff;class Vf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNUMERICMEASURE"}}e.IfcNumericMeasure=Vf;class Wy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPHMEASURE"}}e.IfcPHMeasure=Wy;class zy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPARAMETERVALUE"}}e.IfcParameterValue=zy;class Hf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPLANARFORCEMEASURE"}}e.IfcPlanarForceMeasure=Hf;class tE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPLANEANGLEMEASURE"}}e.IfcPlaneAngleMeasure=tE;class Yy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVELENGTHMEASURE"}}e.IfcPositiveLengthMeasure=Yy;class ky extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVEPLANEANGLEMEASURE"}}e.IfcPositivePlaneAngleMeasure=ky;class Wf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVERATIOMEASURE"}}e.IfcPositiveRatioMeasure=Wf;class eE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOWERMEASURE"}}e.IfcPowerMeasure=eE;class Ky{constructor(E){this.value=E,this.type=1,this.name="IFCPRESENTABLETEXT"}}e.IfcPresentableText=Ky;class Zy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPRESSUREMEASURE"}}e.IfcPressureMeasure=Zy;class zf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCRADIOACTIVITYMEASURE"}}e.IfcRadioActivityMeasure=zf;class sE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCRATIOMEASURE"}}e.IfcRatioMeasure=sE;class qy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCREAL"}}e.IfcReal=qy;class jy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALFREQUENCYMEASURE"}}e.IfcRotationalFrequencyMeasure=jy;class Yf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALMASSMEASURE"}}e.IfcRotationalMassMeasure=Yf;class _e extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALSTIFFNESSMEASURE"}}e.IfcRotationalStiffnessMeasure=_e;class iE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSECONDINMINUTE"}}e.IfcSecondInMinute=iE;class nE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSECTIONMODULUSMEASURE"}}e.IfcSectionModulusMeasure=nE;class Iu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSECTIONALAREAINTEGRALMEASURE"}}e.IfcSectionalAreaIntegralMeasure=Iu;class rE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSHEARMODULUSMEASURE"}}e.IfcShearModulusMeasure=rE;class yu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOLIDANGLEMEASURE"}}e.IfcSolidAngleMeasure=yu;class cE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPOWERMEASURE"}}e.IfcSoundPowerMeasure=cE;class Tu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPRESSUREMEASURE"}}e.IfcSoundPressureMeasure=Tu;class kf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECIFICHEATCAPACITYMEASURE"}}e.IfcSpecificHeatCapacityMeasure=kf;class Kf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECULAREXPONENT"}}e.IfcSpecularExponent=Kf;class Zf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECULARROUGHNESS"}}e.IfcSpecularRoughness=Zf;class qf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTEMPERATUREGRADIENTMEASURE"}}e.IfcTemperatureGradientMeasure=qf;class jf{constructor(E){this.value=E,this.type=1,this.name="IFCTEXT"}}e.IfcText=jf;class Nt{constructor(E){this.value=E,this.type=1,this.name="IFCTEXTALIGNMENT"}}e.IfcTextAlignment=Nt;class du{constructor(E){this.value=E,this.type=1,this.name="IFCTEXTDECORATION"}}e.IfcTextDecoration=du;class Qy{constructor(E){this.value=E,this.type=1,this.name="IFCTEXTFONTNAME"}}e.IfcTextFontName=Qy;class mu{constructor(E){this.value=E,this.type=1,this.name="IFCTEXTTRANSFORMATION"}}e.IfcTextTransformation=mu;class $y extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALADMITTANCEMEASURE"}}e.IfcThermalAdmittanceMeasure=$y;class Ru extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALCONDUCTIVITYMEASURE"}}e.IfcThermalConductivityMeasure=Ru;class Jy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALEXPANSIONCOEFFICIENTMEASURE"}}e.IfcThermalExpansionCoefficientMeasure=Jy;class Su extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALRESISTANCEMEASURE"}}e.IfcThermalResistanceMeasure=Su;class aE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALTRANSMITTANCEMEASURE"}}e.IfcThermalTransmittanceMeasure=aE;class oE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMODYNAMICTEMPERATUREMEASURE"}}e.IfcThermodynamicTemperatureMeasure=oE;class Xy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTIMEMEASURE"}}e.IfcTimeMeasure=Xy;class Nu extends et{constructor(){super(...arguments),this.type=10,this.name="IFCTIMESTAMP"}}e.IfcTimeStamp=Nu;class tT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTORQUEMEASURE"}}e.IfcTorqueMeasure=tT;class Au extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVAPORPERMEABILITYMEASURE"}}e.IfcVaporPermeabilityMeasure=Au;class eT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVOLUMEMEASURE"}}e.IfcVolumeMeasure=eT;class Du extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVOLUMETRICFLOWRATEMEASURE"}}e.IfcVolumetricFlowRateMeasure=Du;class sT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCWARPINGCONSTANTMEASURE"}}e.IfcWarpingConstantMeasure=sT;class iT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCWARPINGMOMENTMEASURE"}}e.IfcWarpingMomentMeasure=iT;class nT extends et{constructor(){super(...arguments),this.type=10,this.name="IFCYEARNUMBER"}}e.IfcYearNumber=nT;let ge=class{};ge.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},ge.COMPLETION_G1={type:3,value:"COMPLETION_G1"},ge.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},ge.SNOW_S={type:3,value:"SNOW_S"},ge.WIND_W={type:3,value:"WIND_W"},ge.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},ge.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},ge.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},ge.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},ge.FIRE={type:3,value:"FIRE"},ge.IMPULSE={type:3,value:"IMPULSE"},ge.IMPACT={type:3,value:"IMPACT"},ge.TRANSPORT={type:3,value:"TRANSPORT"},ge.ERECTION={type:3,value:"ERECTION"},ge.PROPPING={type:3,value:"PROPPING"},ge.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},ge.SHRINKAGE={type:3,value:"SHRINKAGE"},ge.CREEP={type:3,value:"CREEP"},ge.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},ge.BUOYANCY={type:3,value:"BUOYANCY"},ge.ICE={type:3,value:"ICE"},ge.CURRENT={type:3,value:"CURRENT"},ge.WAVE={type:3,value:"WAVE"},ge.RAIN={type:3,value:"RAIN"},ge.BRAKES={type:3,value:"BRAKES"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"};let rT=ge;e.IfcActionSourceTypeEnum=rT;let dh=class{};dh.PERMANENT_G={type:3,value:"PERMANENT_G"},dh.VARIABLE_Q={type:3,value:"VARIABLE_Q"},dh.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},dh.USERDEFINED={type:3,value:"USERDEFINED"},dh.NOTDEFINED={type:3,value:"NOTDEFINED"};let cT=dh;e.IfcActionTypeEnum=cT;let Na=class{};Na.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},Na.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},Na.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},Na.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},Na.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},Na.USERDEFINED={type:3,value:"USERDEFINED"},Na.NOTDEFINED={type:3,value:"NOTDEFINED"};let aT=Na;e.IfcActuatorTypeEnum=aT;let mh=class{};mh.OFFICE={type:3,value:"OFFICE"},mh.SITE={type:3,value:"SITE"},mh.HOME={type:3,value:"HOME"},mh.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},mh.USERDEFINED={type:3,value:"USERDEFINED"};let hE=mh;e.IfcAddressTypeEnum=hE;let lE=class{};lE.AHEAD={type:3,value:"AHEAD"},lE.BEHIND={type:3,value:"BEHIND"};let uE=lE;e.IfcAheadOrBehind=uE;let Hc=class{};Hc.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},Hc.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},Hc.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},Hc.USERDEFINED={type:3,value:"USERDEFINED"},Hc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ou=Hc;e.IfcAirTerminalBoxTypeEnum=Ou;let gn=class{};gn.GRILLE={type:3,value:"GRILLE"},gn.REGISTER={type:3,value:"REGISTER"},gn.DIFFUSER={type:3,value:"DIFFUSER"},gn.EYEBALL={type:3,value:"EYEBALL"},gn.IRIS={type:3,value:"IRIS"},gn.LINEARGRILLE={type:3,value:"LINEARGRILLE"},gn.LINEARDIFFUSER={type:3,value:"LINEARDIFFUSER"},gn.USERDEFINED={type:3,value:"USERDEFINED"},gn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Cr=gn;e.IfcAirTerminalTypeEnum=Cr;let Ln=class{};Ln.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},Ln.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},Ln.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},Ln.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},Ln.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},Ln.HEATPIPE={type:3,value:"HEATPIPE"},Ln.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},Ln.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},Ln.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},Ln.USERDEFINED={type:3,value:"USERDEFINED"},Ln.NOTDEFINED={type:3,value:"NOTDEFINED"};let ue=Ln;e.IfcAirToAirHeatRecoveryTypeEnum=ue;let oc=class{};oc.BELL={type:3,value:"BELL"},oc.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},oc.LIGHT={type:3,value:"LIGHT"},oc.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},oc.SIREN={type:3,value:"SIREN"},oc.WHISTLE={type:3,value:"WHISTLE"},oc.USERDEFINED={type:3,value:"USERDEFINED"},oc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ie=oc;e.IfcAlarmTypeEnum=Ie;let Rh=class{};Rh.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},Rh.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},Rh.LOADING_3D={type:3,value:"LOADING_3D"},Rh.USERDEFINED={type:3,value:"USERDEFINED"},Rh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ji=Rh;e.IfcAnalysisModelTypeEnum=Ji;let Oo=class{};Oo.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},Oo.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},Oo.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},Oo.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},Oo.USERDEFINED={type:3,value:"USERDEFINED"},Oo.NOTDEFINED={type:3,value:"NOTDEFINED"};let xn=Oo;e.IfcAnalysisTheoryTypeEnum=xn;let Sl=class{};Sl.ADD={type:3,value:"ADD"},Sl.DIVIDE={type:3,value:"DIVIDE"},Sl.MULTIPLY={type:3,value:"MULTIPLY"},Sl.SUBTRACT={type:3,value:"SUBTRACT"};let lr=Sl;e.IfcArithmeticOperatorEnum=lr;let Sh=class{};Sh.SITE={type:3,value:"SITE"},Sh.FACTORY={type:3,value:"FACTORY"},Sh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Xi=Sh;e.IfcAssemblyPlaceEnum=Xi;let vo=class{};vo.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},vo.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},vo.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},vo.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},vo.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},vo.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let gs=vo;e.IfcBSplineCurveForm=gs;let _o=class{};_o.BEAM={type:3,value:"BEAM"},_o.JOIST={type:3,value:"JOIST"},_o.LINTEL={type:3,value:"LINTEL"},_o.T_BEAM={type:3,value:"T_BEAM"},_o.USERDEFINED={type:3,value:"USERDEFINED"},_o.NOTDEFINED={type:3,value:"NOTDEFINED"};let ms=_o;e.IfcBeamTypeEnum=ms;let go=class{};go.GREATERTHAN={type:3,value:"GREATERTHAN"},go.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},go.LESSTHAN={type:3,value:"LESSTHAN"},go.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},go.EQUALTO={type:3,value:"EQUALTO"},go.NOTEQUALTO={type:3,value:"NOTEQUALTO"};let yi=go;e.IfcBenchmarkEnum=yi;let Aa=class{};Aa.WATER={type:3,value:"WATER"},Aa.STEAM={type:3,value:"STEAM"},Aa.USERDEFINED={type:3,value:"USERDEFINED"},Aa.NOTDEFINED={type:3,value:"NOTDEFINED"};let tn=Aa;e.IfcBoilerTypeEnum=tn;let vu=class{};vu.UNION={type:3,value:"UNION"},vu.INTERSECTION={type:3,value:"INTERSECTION"},vu.DIFFERENCE={type:3,value:"DIFFERENCE"};let en=vu;e.IfcBooleanOperator=en;let _u=class{};_u.USERDEFINED={type:3,value:"USERDEFINED"},_u.NOTDEFINED={type:3,value:"NOTDEFINED"};let Nh=_u;e.IfcBuildingElementProxyTypeEnum=Nh;let Da=class{};Da.BEND={type:3,value:"BEND"},Da.CROSS={type:3,value:"CROSS"},Da.REDUCER={type:3,value:"REDUCER"},Da.TEE={type:3,value:"TEE"},Da.USERDEFINED={type:3,value:"USERDEFINED"},Da.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vs=Da;e.IfcCableCarrierFittingTypeEnum=Vs;let rt=class{};rt.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},rt.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},rt.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},rt.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"};let yt=rt;e.IfcCableCarrierSegmentTypeEnum=yt;let vt=class{};vt.CABLESEGMENT={type:3,value:"CABLESEGMENT"},vt.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"};let xt=vt;e.IfcCableSegmentTypeEnum=xt;let Bt=class{};Bt.NOCHANGE={type:3,value:"NOCHANGE"},Bt.MODIFIED={type:3,value:"MODIFIED"},Bt.ADDED={type:3,value:"ADDED"},Bt.DELETED={type:3,value:"DELETED"},Bt.MODIFIEDADDED={type:3,value:"MODIFIEDADDED"},Bt.MODIFIEDDELETED={type:3,value:"MODIFIEDDELETED"};let bt=Bt;e.IfcChangeActionEnum=bt;let $t=class{};$t.AIRCOOLED={type:3,value:"AIRCOOLED"},$t.WATERCOOLED={type:3,value:"WATERCOOLED"},$t.HEATRECOVERY={type:3,value:"HEATRECOVERY"},$t.USERDEFINED={type:3,value:"USERDEFINED"},$t.NOTDEFINED={type:3,value:"NOTDEFINED"};let Kt=$t;e.IfcChillerTypeEnum=Kt;let ye=class{};ye.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},ye.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},ye.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},ye.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},ye.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},ye.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},ye.USERDEFINED={type:3,value:"USERDEFINED"},ye.NOTDEFINED={type:3,value:"NOTDEFINED"};let qe=ye;e.IfcCoilTypeEnum=qe;let Ti=class{};Ti.COLUMN={type:3,value:"COLUMN"},Ti.USERDEFINED={type:3,value:"USERDEFINED"},Ti.NOTDEFINED={type:3,value:"NOTDEFINED"};let Be=Ti;e.IfcColumnTypeEnum=Be;let os=class{};os.DYNAMIC={type:3,value:"DYNAMIC"},os.RECIPROCATING={type:3,value:"RECIPROCATING"},os.ROTARY={type:3,value:"ROTARY"},os.SCROLL={type:3,value:"SCROLL"},os.TROCHOIDAL={type:3,value:"TROCHOIDAL"},os.SINGLESTAGE={type:3,value:"SINGLESTAGE"},os.BOOSTER={type:3,value:"BOOSTER"},os.OPENTYPE={type:3,value:"OPENTYPE"},os.HERMETIC={type:3,value:"HERMETIC"},os.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},os.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},os.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},os.ROTARYVANE={type:3,value:"ROTARYVANE"},os.SINGLESCREW={type:3,value:"SINGLESCREW"},os.TWINSCREW={type:3,value:"TWINSCREW"},os.USERDEFINED={type:3,value:"USERDEFINED"},os.NOTDEFINED={type:3,value:"NOTDEFINED"};let br=os;e.IfcCompressorTypeEnum=br;let Lo=class{};Lo.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},Lo.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},Lo.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},Lo.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},Lo.AIRCOOLED={type:3,value:"AIRCOOLED"},Lo.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},Lo.USERDEFINED={type:3,value:"USERDEFINED"},Lo.NOTDEFINED={type:3,value:"NOTDEFINED"};let ii=Lo;e.IfcCondenserTypeEnum=ii;let pE=class{};pE.ATPATH={type:3,value:"ATPATH"},pE.ATSTART={type:3,value:"ATSTART"},pE.ATEND={type:3,value:"ATEND"},pE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Is=pE;e.IfcConnectionTypeEnum=Is;let gu=class{};gu.HARD={type:3,value:"HARD"},gu.SOFT={type:3,value:"SOFT"},gu.ADVISORY={type:3,value:"ADVISORY"},gu.USERDEFINED={type:3,value:"USERDEFINED"},gu.NOTDEFINED={type:3,value:"NOTDEFINED"};let wr=gu;e.IfcConstraintEnum=wr;let xo=class{};xo.FLOATING={type:3,value:"FLOATING"},xo.PROPORTIONAL={type:3,value:"PROPORTIONAL"},xo.PROPORTIONALINTEGRAL={type:3,value:"PROPORTIONALINTEGRAL"},xo.PROPORTIONALINTEGRALDERIVATIVE={type:3,value:"PROPORTIONALINTEGRALDERIVATIVE"},xo.TIMEDTWOPOSITION={type:3,value:"TIMEDTWOPOSITION"},xo.TWOPOSITION={type:3,value:"TWOPOSITION"},xo.USERDEFINED={type:3,value:"USERDEFINED"},xo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Mi=xo;e.IfcControllerTypeEnum=Mi;let EE=class{};EE.ACTIVE={type:3,value:"ACTIVE"},EE.PASSIVE={type:3,value:"PASSIVE"},EE.USERDEFINED={type:3,value:"USERDEFINED"},EE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wc=EE;e.IfcCooledBeamTypeEnum=Wc;let Lu=class{};Lu.NATURALDRAFT={type:3,value:"NATURALDRAFT"},Lu.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},Lu.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},Lu.USERDEFINED={type:3,value:"USERDEFINED"},Lu.NOTDEFINED={type:3,value:"NOTDEFINED"};let zc=Lu;e.IfcCoolingTowerTypeEnum=zc;let Oa=class{};Oa.BUDGET={type:3,value:"BUDGET"},Oa.COSTPLAN={type:3,value:"COSTPLAN"},Oa.ESTIMATE={type:3,value:"ESTIMATE"},Oa.TENDER={type:3,value:"TENDER"},Oa.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},Oa.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},Oa.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},Oa.USERDEFINED={type:3,value:"USERDEFINED"},Oa.NOTDEFINED={type:3,value:"NOTDEFINED"};let ni=Oa;e.IfcCostScheduleTypeEnum=ni;let Yc=class{};Yc.CEILING={type:3,value:"CEILING"},Yc.FLOORING={type:3,value:"FLOORING"},Yc.CLADDING={type:3,value:"CLADDING"},Yc.ROOFING={type:3,value:"ROOFING"},Yc.INSULATION={type:3,value:"INSULATION"},Yc.MEMBRANE={type:3,value:"MEMBRANE"},Yc.SLEEVING={type:3,value:"SLEEVING"},Yc.WRAPPING={type:3,value:"WRAPPING"},Yc.USERDEFINED={type:3,value:"USERDEFINED"},Yc.NOTDEFINED={type:3,value:"NOTDEFINED"};let sn=Yc;e.IfcCoveringTypeEnum=sn;let gt=class{};gt.AED={type:3,value:"AED"},gt.AES={type:3,value:"AES"},gt.ATS={type:3,value:"ATS"},gt.AUD={type:3,value:"AUD"},gt.BBD={type:3,value:"BBD"},gt.BEG={type:3,value:"BEG"},gt.BGL={type:3,value:"BGL"},gt.BHD={type:3,value:"BHD"},gt.BMD={type:3,value:"BMD"},gt.BND={type:3,value:"BND"},gt.BRL={type:3,value:"BRL"},gt.BSD={type:3,value:"BSD"},gt.BWP={type:3,value:"BWP"},gt.BZD={type:3,value:"BZD"},gt.CAD={type:3,value:"CAD"},gt.CBD={type:3,value:"CBD"},gt.CHF={type:3,value:"CHF"},gt.CLP={type:3,value:"CLP"},gt.CNY={type:3,value:"CNY"},gt.CYS={type:3,value:"CYS"},gt.CZK={type:3,value:"CZK"},gt.DDP={type:3,value:"DDP"},gt.DEM={type:3,value:"DEM"},gt.DKK={type:3,value:"DKK"},gt.EGL={type:3,value:"EGL"},gt.EST={type:3,value:"EST"},gt.EUR={type:3,value:"EUR"},gt.FAK={type:3,value:"FAK"},gt.FIM={type:3,value:"FIM"},gt.FJD={type:3,value:"FJD"},gt.FKP={type:3,value:"FKP"},gt.FRF={type:3,value:"FRF"},gt.GBP={type:3,value:"GBP"},gt.GIP={type:3,value:"GIP"},gt.GMD={type:3,value:"GMD"},gt.GRX={type:3,value:"GRX"},gt.HKD={type:3,value:"HKD"},gt.HUF={type:3,value:"HUF"},gt.ICK={type:3,value:"ICK"},gt.IDR={type:3,value:"IDR"},gt.ILS={type:3,value:"ILS"},gt.INR={type:3,value:"INR"},gt.IRP={type:3,value:"IRP"},gt.ITL={type:3,value:"ITL"},gt.JMD={type:3,value:"JMD"},gt.JOD={type:3,value:"JOD"},gt.JPY={type:3,value:"JPY"},gt.KES={type:3,value:"KES"},gt.KRW={type:3,value:"KRW"},gt.KWD={type:3,value:"KWD"},gt.KYD={type:3,value:"KYD"},gt.LKR={type:3,value:"LKR"},gt.LUF={type:3,value:"LUF"},gt.MTL={type:3,value:"MTL"},gt.MUR={type:3,value:"MUR"},gt.MXN={type:3,value:"MXN"},gt.MYR={type:3,value:"MYR"},gt.NLG={type:3,value:"NLG"},gt.NZD={type:3,value:"NZD"},gt.OMR={type:3,value:"OMR"},gt.PGK={type:3,value:"PGK"},gt.PHP={type:3,value:"PHP"},gt.PKR={type:3,value:"PKR"},gt.PLN={type:3,value:"PLN"},gt.PTN={type:3,value:"PTN"},gt.QAR={type:3,value:"QAR"},gt.RUR={type:3,value:"RUR"},gt.SAR={type:3,value:"SAR"},gt.SCR={type:3,value:"SCR"},gt.SEK={type:3,value:"SEK"},gt.SGD={type:3,value:"SGD"},gt.SKP={type:3,value:"SKP"},gt.THB={type:3,value:"THB"},gt.TRL={type:3,value:"TRL"},gt.TTD={type:3,value:"TTD"},gt.TWD={type:3,value:"TWD"},gt.USD={type:3,value:"USD"},gt.VEB={type:3,value:"VEB"},gt.VND={type:3,value:"VND"},gt.XEU={type:3,value:"XEU"},gt.ZAR={type:3,value:"ZAR"},gt.ZWD={type:3,value:"ZWD"},gt.NOK={type:3,value:"NOK"};let Br=gt;e.IfcCurrencyEnum=Br;let oT=class{};oT.USERDEFINED={type:3,value:"USERDEFINED"},oT.NOTDEFINED={type:3,value:"NOTDEFINED"};let va=oT;e.IfcCurtainWallTypeEnum=va;let ur=class{};ur.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},ur.FIREDAMPER={type:3,value:"FIREDAMPER"},ur.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},ur.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},ur.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},ur.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},ur.BLASTDAMPER={type:3,value:"BLASTDAMPER"},ur.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},ur.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},ur.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},ur.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},ur.USERDEFINED={type:3,value:"USERDEFINED"},ur.NOTDEFINED={type:3,value:"NOTDEFINED"};let di=ur;e.IfcDamperTypeEnum=di;let xu=class{};xu.MEASURED={type:3,value:"MEASURED"},xu.PREDICTED={type:3,value:"PREDICTED"},xu.SIMULATED={type:3,value:"SIMULATED"},xu.USERDEFINED={type:3,value:"USERDEFINED"},xu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Hs=xu;e.IfcDataOriginEnum=Hs;let Zt=class{};Zt.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},Zt.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},Zt.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},Zt.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},Zt.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},Zt.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},Zt.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},Zt.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},Zt.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},Zt.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},Zt.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},Zt.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},Zt.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},Zt.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},Zt.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},Zt.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},Zt.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},Zt.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},Zt.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},Zt.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},Zt.TORQUEUNIT={type:3,value:"TORQUEUNIT"},Zt.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},Zt.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},Zt.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},Zt.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},Zt.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},Zt.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},Zt.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},Zt.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},Zt.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},Zt.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},Zt.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},Zt.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},Zt.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},Zt.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},Zt.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},Zt.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},Zt.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},Zt.PHUNIT={type:3,value:"PHUNIT"},Zt.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},Zt.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},Zt.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},Zt.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},Zt.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},Zt.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},Zt.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},Zt.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},Zt.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},Zt.USERDEFINED={type:3,value:"USERDEFINED"};let Ui=Zt;e.IfcDerivedUnitEnum=Ui;let hT=class{};hT.ORIGIN={type:3,value:"ORIGIN"},hT.TARGET={type:3,value:"TARGET"};let hc=hT;e.IfcDimensionExtentUsage=hc;let lT=class{};lT.POSITIVE={type:3,value:"POSITIVE"},lT.NEGATIVE={type:3,value:"NEGATIVE"};let je=lT;e.IfcDirectionSenseEnum=je;let kc=class{};kc.FORMEDDUCT={type:3,value:"FORMEDDUCT"},kc.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},kc.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},kc.MANHOLE={type:3,value:"MANHOLE"},kc.METERCHAMBER={type:3,value:"METERCHAMBER"},kc.SUMP={type:3,value:"SUMP"},kc.TRENCH={type:3,value:"TRENCH"},kc.VALVECHAMBER={type:3,value:"VALVECHAMBER"},kc.USERDEFINED={type:3,value:"USERDEFINED"},kc.NOTDEFINED={type:3,value:"NOTDEFINED"};let mi=kc;e.IfcDistributionChamberElementTypeEnum=mi;let Nl=class{};Nl.PUBLIC={type:3,value:"PUBLIC"},Nl.RESTRICTED={type:3,value:"RESTRICTED"},Nl.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},Nl.PERSONAL={type:3,value:"PERSONAL"},Nl.USERDEFINED={type:3,value:"USERDEFINED"},Nl.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ci=Nl;e.IfcDocumentConfidentialityEnum=Ci;let Pu=class{};Pu.DRAFT={type:3,value:"DRAFT"},Pu.FINALDRAFT={type:3,value:"FINALDRAFT"},Pu.FINAL={type:3,value:"FINAL"},Pu.REVISION={type:3,value:"REVISION"},Pu.NOTDEFINED={type:3,value:"NOTDEFINED"};let _a=Pu;e.IfcDocumentStatusEnum=_a;let Po=class{};Po.SWINGING={type:3,value:"SWINGING"},Po.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},Po.SLIDING={type:3,value:"SLIDING"},Po.FOLDING={type:3,value:"FOLDING"},Po.REVOLVING={type:3,value:"REVOLVING"},Po.ROLLINGUP={type:3,value:"ROLLINGUP"},Po.USERDEFINED={type:3,value:"USERDEFINED"},Po.NOTDEFINED={type:3,value:"NOTDEFINED"};let nn=Po;e.IfcDoorPanelOperationEnum=nn;let fE=class{};fE.LEFT={type:3,value:"LEFT"},fE.MIDDLE={type:3,value:"MIDDLE"},fE.RIGHT={type:3,value:"RIGHT"},fE.NOTDEFINED={type:3,value:"NOTDEFINED"};let bi=fE;e.IfcDoorPanelPositionEnum=bi;let ga=class{};ga.ALUMINIUM={type:3,value:"ALUMINIUM"},ga.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},ga.STEEL={type:3,value:"STEEL"},ga.WOOD={type:3,value:"WOOD"},ga.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},ga.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},ga.PLASTIC={type:3,value:"PLASTIC"},ga.USERDEFINED={type:3,value:"USERDEFINED"},ga.NOTDEFINED={type:3,value:"NOTDEFINED"};let Al=ga;e.IfcDoorStyleConstructionEnum=Al;let ri=class{};ri.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},ri.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},ri.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},ri.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},ri.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},ri.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},ri.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},ri.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},ri.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},ri.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},ri.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},ri.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},ri.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},ri.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},ri.REVOLVING={type:3,value:"REVOLVING"},ri.ROLLINGUP={type:3,value:"ROLLINGUP"},ri.USERDEFINED={type:3,value:"USERDEFINED"},ri.NOTDEFINED={type:3,value:"NOTDEFINED"};let wi=ri;e.IfcDoorStyleOperationEnum=wi;let La=class{};La.BEND={type:3,value:"BEND"},La.CONNECTOR={type:3,value:"CONNECTOR"},La.ENTRY={type:3,value:"ENTRY"},La.EXIT={type:3,value:"EXIT"},La.JUNCTION={type:3,value:"JUNCTION"},La.OBSTRUCTION={type:3,value:"OBSTRUCTION"},La.TRANSITION={type:3,value:"TRANSITION"},La.USERDEFINED={type:3,value:"USERDEFINED"},La.NOTDEFINED={type:3,value:"NOTDEFINED"};let lc=La;e.IfcDuctFittingTypeEnum=lc;let IE=class{};IE.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},IE.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},IE.USERDEFINED={type:3,value:"USERDEFINED"},IE.NOTDEFINED={type:3,value:"NOTDEFINED"};let me=IE;e.IfcDuctSegmentTypeEnum=me;let Mu=class{};Mu.FLATOVAL={type:3,value:"FLATOVAL"},Mu.RECTANGULAR={type:3,value:"RECTANGULAR"},Mu.ROUND={type:3,value:"ROUND"},Mu.USERDEFINED={type:3,value:"USERDEFINED"},Mu.NOTDEFINED={type:3,value:"NOTDEFINED"};let yE=Mu;e.IfcDuctSilencerTypeEnum=yE;let Qe=class{};Qe.COMPUTER={type:3,value:"COMPUTER"},Qe.DIRECTWATERHEATER={type:3,value:"DIRECTWATERHEATER"},Qe.DISHWASHER={type:3,value:"DISHWASHER"},Qe.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},Qe.ELECTRICHEATER={type:3,value:"ELECTRICHEATER"},Qe.FACSIMILE={type:3,value:"FACSIMILE"},Qe.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},Qe.FREEZER={type:3,value:"FREEZER"},Qe.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},Qe.HANDDRYER={type:3,value:"HANDDRYER"},Qe.INDIRECTWATERHEATER={type:3,value:"INDIRECTWATERHEATER"},Qe.MICROWAVE={type:3,value:"MICROWAVE"},Qe.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},Qe.PRINTER={type:3,value:"PRINTER"},Qe.REFRIGERATOR={type:3,value:"REFRIGERATOR"},Qe.RADIANTHEATER={type:3,value:"RADIANTHEATER"},Qe.SCANNER={type:3,value:"SCANNER"},Qe.TELEPHONE={type:3,value:"TELEPHONE"},Qe.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},Qe.TV={type:3,value:"TV"},Qe.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},Qe.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},Qe.WATERHEATER={type:3,value:"WATERHEATER"},Qe.WATERCOOLER={type:3,value:"WATERCOOLER"},Qe.USERDEFINED={type:3,value:"USERDEFINED"},Qe.NOTDEFINED={type:3,value:"NOTDEFINED"};let $e=Qe;e.IfcElectricApplianceTypeEnum=$e;let Qf=class{};Qf.ALTERNATING={type:3,value:"ALTERNATING"},Qf.DIRECT={type:3,value:"DIRECT"},Qf.NOTDEFINED={type:3,value:"NOTDEFINED"};let Rs=Qf;e.IfcElectricCurrentEnum=Rs;let uc=class{};uc.ALARMPANEL={type:3,value:"ALARMPANEL"},uc.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},uc.CONTROLPANEL={type:3,value:"CONTROLPANEL"},uc.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},uc.GASDETECTORPANEL={type:3,value:"GASDETECTORPANEL"},uc.INDICATORPANEL={type:3,value:"INDICATORPANEL"},uc.MIMICPANEL={type:3,value:"MIMICPANEL"},uc.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},uc.SWITCHBOARD={type:3,value:"SWITCHBOARD"},uc.USERDEFINED={type:3,value:"USERDEFINED"},uc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Mo=uc;e.IfcElectricDistributionPointFunctionEnum=Mo;let Ah=class{};Ah.BATTERY={type:3,value:"BATTERY"},Ah.CAPACITORBANK={type:3,value:"CAPACITORBANK"},Ah.HARMONICFILTER={type:3,value:"HARMONICFILTER"},Ah.INDUCTORBANK={type:3,value:"INDUCTORBANK"},Ah.UPS={type:3,value:"UPS"},Ah.USERDEFINED={type:3,value:"USERDEFINED"},Ah.NOTDEFINED={type:3,value:"NOTDEFINED"};let Dh=Ah;e.IfcElectricFlowStorageDeviceTypeEnum=Dh;let uT=class{};uT.USERDEFINED={type:3,value:"USERDEFINED"},uT.NOTDEFINED={type:3,value:"NOTDEFINED"};let Pn=uT;e.IfcElectricGeneratorTypeEnum=Pn;let Uu=class{};Uu.ELECTRICPOINTHEATER={type:3,value:"ELECTRICPOINTHEATER"},Uu.ELECTRICCABLEHEATER={type:3,value:"ELECTRICCABLEHEATER"},Uu.ELECTRICMATHEATER={type:3,value:"ELECTRICMATHEATER"},Uu.USERDEFINED={type:3,value:"USERDEFINED"},Uu.NOTDEFINED={type:3,value:"NOTDEFINED"};let cs=Uu;e.IfcElectricHeaterTypeEnum=cs;let Oh=class{};Oh.DC={type:3,value:"DC"},Oh.INDUCTION={type:3,value:"INDUCTION"},Oh.POLYPHASE={type:3,value:"POLYPHASE"},Oh.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},Oh.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},Oh.USERDEFINED={type:3,value:"USERDEFINED"},Oh.NOTDEFINED={type:3,value:"NOTDEFINED"};let xa=Oh;e.IfcElectricMotorTypeEnum=xa;let Cu=class{};Cu.TIMECLOCK={type:3,value:"TIMECLOCK"},Cu.TIMEDELAY={type:3,value:"TIMEDELAY"},Cu.RELAY={type:3,value:"RELAY"},Cu.USERDEFINED={type:3,value:"USERDEFINED"},Cu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Gt=Cu;e.IfcElectricTimeControlTypeEnum=Gt;let pc=class{};pc.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},pc.ARCH={type:3,value:"ARCH"},pc.BEAM_GRID={type:3,value:"BEAM_GRID"},pc.BRACED_FRAME={type:3,value:"BRACED_FRAME"},pc.GIRDER={type:3,value:"GIRDER"},pc.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},pc.RIGID_FRAME={type:3,value:"RIGID_FRAME"},pc.SLAB_FIELD={type:3,value:"SLAB_FIELD"},pc.TRUSS={type:3,value:"TRUSS"},pc.USERDEFINED={type:3,value:"USERDEFINED"},pc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Uo=pc;e.IfcElementAssemblyTypeEnum=Uo;let $f=class{};$f.COMPLEX={type:3,value:"COMPLEX"},$f.ELEMENT={type:3,value:"ELEMENT"},$f.PARTIAL={type:3,value:"PARTIAL"};let Pa=$f;e.IfcElementCompositionEnum=Pa;let Dl=class{};Dl.PRIMARY={type:3,value:"PRIMARY"},Dl.SECONDARY={type:3,value:"SECONDARY"},Dl.TERTIARY={type:3,value:"TERTIARY"},Dl.AUXILIARY={type:3,value:"AUXILIARY"},Dl.USERDEFINED={type:3,value:"USERDEFINED"},Dl.NOTDEFINED={type:3,value:"NOTDEFINED"};let rn=Dl;e.IfcEnergySequenceEnum=rn;let Co=class{};Co.COMBINEDVALUE={type:3,value:"COMBINEDVALUE"},Co.DISPOSAL={type:3,value:"DISPOSAL"},Co.EXTRACTION={type:3,value:"EXTRACTION"},Co.INSTALLATION={type:3,value:"INSTALLATION"},Co.MANUFACTURE={type:3,value:"MANUFACTURE"},Co.TRANSPORTATION={type:3,value:"TRANSPORTATION"},Co.USERDEFINED={type:3,value:"USERDEFINED"},Co.NOTDEFINED={type:3,value:"NOTDEFINED"};let bo=Co;e.IfcEnvironmentalImpactCategoryEnum=bo;let Ec=class{};Ec.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Ec.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Ec.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Ec.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Ec.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Ec.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Ec.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Ec.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Ec.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Ec.USERDEFINED={type:3,value:"USERDEFINED"},Ec.NOTDEFINED={type:3,value:"NOTDEFINED"};let kt=Ec;e.IfcEvaporativeCoolerTypeEnum=kt;let vh=class{};vh.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},vh.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},vh.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},vh.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},vh.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},vh.USERDEFINED={type:3,value:"USERDEFINED"},vh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Mn=vh;e.IfcEvaporatorTypeEnum=Mn;let Ma=class{};Ma.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},Ma.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},Ma.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},Ma.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},Ma.TUBEAXIAL={type:3,value:"TUBEAXIAL"},Ma.VANEAXIAL={type:3,value:"VANEAXIAL"},Ma.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},Ma.USERDEFINED={type:3,value:"USERDEFINED"},Ma.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ws=Ma;e.IfcFanTypeEnum=Ws;let _h=class{};_h.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},_h.ODORFILTER={type:3,value:"ODORFILTER"},_h.OILFILTER={type:3,value:"OILFILTER"},_h.STRAINER={type:3,value:"STRAINER"},_h.WATERFILTER={type:3,value:"WATERFILTER"},_h.USERDEFINED={type:3,value:"USERDEFINED"},_h.NOTDEFINED={type:3,value:"NOTDEFINED"};let pr=_h;e.IfcFilterTypeEnum=pr;let gh=class{};gh.BREECHINGINLET={type:3,value:"BREECHINGINLET"},gh.FIREHYDRANT={type:3,value:"FIREHYDRANT"},gh.HOSEREEL={type:3,value:"HOSEREEL"},gh.SPRINKLER={type:3,value:"SPRINKLER"},gh.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},gh.USERDEFINED={type:3,value:"USERDEFINED"},gh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ol=gh;e.IfcFireSuppressionTerminalTypeEnum=Ol;let TE=class{};TE.SOURCE={type:3,value:"SOURCE"},TE.SINK={type:3,value:"SINK"},TE.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},TE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Er=TE;e.IfcFlowDirectionEnum=Er;let Kc=class{};Kc.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Kc.THERMOMETER={type:3,value:"THERMOMETER"},Kc.AMMETER={type:3,value:"AMMETER"},Kc.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Kc.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Kc.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Kc.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Kc.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Kc.USERDEFINED={type:3,value:"USERDEFINED"},Kc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Re=Kc;e.IfcFlowInstrumentTypeEnum=Re;let wo=class{};wo.ELECTRICMETER={type:3,value:"ELECTRICMETER"},wo.ENERGYMETER={type:3,value:"ENERGYMETER"},wo.FLOWMETER={type:3,value:"FLOWMETER"},wo.GASMETER={type:3,value:"GASMETER"},wo.OILMETER={type:3,value:"OILMETER"},wo.WATERMETER={type:3,value:"WATERMETER"},wo.USERDEFINED={type:3,value:"USERDEFINED"},wo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Zc=wo;e.IfcFlowMeterTypeEnum=Zc;let vl=class{};vl.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},vl.PAD_FOOTING={type:3,value:"PAD_FOOTING"},vl.PILE_CAP={type:3,value:"PILE_CAP"},vl.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},vl.USERDEFINED={type:3,value:"USERDEFINED"},vl.NOTDEFINED={type:3,value:"NOTDEFINED"};let Pt=vl;e.IfcFootingTypeEnum=Pt;let bu=class{};bu.GASAPPLIANCE={type:3,value:"GASAPPLIANCE"},bu.GASBOOSTER={type:3,value:"GASBOOSTER"},bu.GASBURNER={type:3,value:"GASBURNER"},bu.USERDEFINED={type:3,value:"USERDEFINED"},bu.NOTDEFINED={type:3,value:"NOTDEFINED"};let fc=bu;e.IfcGasTerminalTypeEnum=fc;let Ua=class{};Ua.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},Ua.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},Ua.MODEL_VIEW={type:3,value:"MODEL_VIEW"},Ua.PLAN_VIEW={type:3,value:"PLAN_VIEW"},Ua.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},Ua.SECTION_VIEW={type:3,value:"SECTION_VIEW"},Ua.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},Ua.USERDEFINED={type:3,value:"USERDEFINED"},Ua.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ye=Ua;e.IfcGeometricProjectionEnum=Ye;let pT=class{};pT.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},pT.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"};let fr=pT;e.IfcGlobalOrLocalEnum=fr;let dE=class{};dE.PLATE={type:3,value:"PLATE"},dE.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},dE.USERDEFINED={type:3,value:"USERDEFINED"},dE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ge=dE;e.IfcHeatExchangerTypeEnum=Ge;let cn=class{};cn.STEAMINJECTION={type:3,value:"STEAMINJECTION"},cn.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},cn.ADIABATICPAN={type:3,value:"ADIABATICPAN"},cn.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},cn.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},cn.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},cn.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},cn.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},cn.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},cn.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},cn.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},cn.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},cn.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},cn.USERDEFINED={type:3,value:"USERDEFINED"},cn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ir=cn;e.IfcHumidifierTypeEnum=Ir;let Jf=class{};Jf.INTERNAL={type:3,value:"INTERNAL"},Jf.EXTERNAL={type:3,value:"EXTERNAL"},Jf.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ht=Jf;e.IfcInternalOrExternalEnum=Ht;let wu=class{};wu.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},wu.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},wu.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},wu.USERDEFINED={type:3,value:"USERDEFINED"},wu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ic=wu;e.IfcInventoryTypeEnum=Ic;let ET=class{};ET.USERDEFINED={type:3,value:"USERDEFINED"},ET.NOTDEFINED={type:3,value:"NOTDEFINED"};let Gr=ET;e.IfcJunctionBoxTypeEnum=Gr;let Bo=class{};Bo.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Bo.FLUORESCENT={type:3,value:"FLUORESCENT"},Bo.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Bo.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Bo.METALHALIDE={type:3,value:"METALHALIDE"},Bo.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Bo.USERDEFINED={type:3,value:"USERDEFINED"},Bo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Un=Bo;e.IfcLampTypeEnum=Un;let Xf=class{};Xf.AXIS1={type:3,value:"AXIS1"},Xf.AXIS2={type:3,value:"AXIS2"},Xf.AXIS3={type:3,value:"AXIS3"};let an=Xf;e.IfcLayerSetDirectionEnum=an;let mE=class{};mE.TYPE_A={type:3,value:"TYPE_A"},mE.TYPE_B={type:3,value:"TYPE_B"},mE.TYPE_C={type:3,value:"TYPE_C"},mE.NOTDEFINED={type:3,value:"NOTDEFINED"};let qc=mE;e.IfcLightDistributionCurveEnum=qc;let yc=class{};yc.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},yc.FLUORESCENT={type:3,value:"FLUORESCENT"},yc.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},yc.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},yc.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},yc.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},yc.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},yc.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},yc.METALHALIDE={type:3,value:"METALHALIDE"},yc.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},yc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Le=yc;e.IfcLightEmissionSourceEnum=Le;let RE=class{};RE.POINTSOURCE={type:3,value:"POINTSOURCE"},RE.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},RE.USERDEFINED={type:3,value:"USERDEFINED"},RE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ls=RE;e.IfcLightFixtureTypeEnum=Ls;let _l=class{};_l.LOAD_GROUP={type:3,value:"LOAD_GROUP"},_l.LOAD_CASE={type:3,value:"LOAD_CASE"},_l.LOAD_COMBINATION_GROUP={type:3,value:"LOAD_COMBINATION_GROUP"},_l.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},_l.USERDEFINED={type:3,value:"USERDEFINED"},_l.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fr=_l;e.IfcLoadGroupTypeEnum=Fr;let fT=class{};fT.LOGICALAND={type:3,value:"LOGICALAND"},fT.LOGICALOR={type:3,value:"LOGICALOR"};let Tc=fT;e.IfcLogicalOperatorEnum=Tc;let Cn=class{};Cn.BRACE={type:3,value:"BRACE"},Cn.CHORD={type:3,value:"CHORD"},Cn.COLLAR={type:3,value:"COLLAR"},Cn.MEMBER={type:3,value:"MEMBER"},Cn.MULLION={type:3,value:"MULLION"},Cn.PLATE={type:3,value:"PLATE"},Cn.POST={type:3,value:"POST"},Cn.PURLIN={type:3,value:"PURLIN"},Cn.RAFTER={type:3,value:"RAFTER"},Cn.STRINGER={type:3,value:"STRINGER"},Cn.STRUT={type:3,value:"STRUT"},Cn.STUD={type:3,value:"STUD"},Cn.USERDEFINED={type:3,value:"USERDEFINED"},Cn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bi=Cn;e.IfcMemberTypeEnum=Bi;let Bu=class{};Bu.BELTDRIVE={type:3,value:"BELTDRIVE"},Bu.COUPLING={type:3,value:"COUPLING"},Bu.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Bu.USERDEFINED={type:3,value:"USERDEFINED"},Bu.NOTDEFINED={type:3,value:"NOTDEFINED"};let on=Bu;e.IfcMotorConnectionTypeEnum=on;let fm=class{};fm.NULL={type:3,value:"NULL"};let ke=fm;e.IfcNullStyle=ke;let Go=class{};Go.PRODUCT={type:3,value:"PRODUCT"},Go.PROCESS={type:3,value:"PROCESS"},Go.CONTROL={type:3,value:"CONTROL"},Go.RESOURCE={type:3,value:"RESOURCE"},Go.ACTOR={type:3,value:"ACTOR"},Go.GROUP={type:3,value:"GROUP"},Go.PROJECT={type:3,value:"PROJECT"},Go.NOTDEFINED={type:3,value:"NOTDEFINED"};let dc=Go;e.IfcObjectTypeEnum=dc;let Fo=class{};Fo.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Fo.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Fo.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Fo.REQUIREMENT={type:3,value:"REQUIREMENT"},Fo.SPECIFICATION={type:3,value:"SPECIFICATION"},Fo.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Fo.USERDEFINED={type:3,value:"USERDEFINED"},Fo.NOTDEFINED={type:3,value:"NOTDEFINED"};let zs=Fo;e.IfcObjectiveEnum=zs;let Ca=class{};Ca.ASSIGNEE={type:3,value:"ASSIGNEE"},Ca.ASSIGNOR={type:3,value:"ASSIGNOR"},Ca.LESSEE={type:3,value:"LESSEE"},Ca.LESSOR={type:3,value:"LESSOR"},Ca.LETTINGAGENT={type:3,value:"LETTINGAGENT"},Ca.OWNER={type:3,value:"OWNER"},Ca.TENANT={type:3,value:"TENANT"},Ca.USERDEFINED={type:3,value:"USERDEFINED"},Ca.NOTDEFINED={type:3,value:"NOTDEFINED"};let jc=Ca;e.IfcOccupantTypeEnum=jc;let Gu=class{};Gu.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},Gu.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},Gu.POWEROUTLET={type:3,value:"POWEROUTLET"},Gu.USERDEFINED={type:3,value:"USERDEFINED"},Gu.NOTDEFINED={type:3,value:"NOTDEFINED"};let ba=Gu;e.IfcOutletTypeEnum=ba;let Fu=class{};Fu.GRILL={type:3,value:"GRILL"},Fu.LOUVER={type:3,value:"LOUVER"},Fu.SCREEN={type:3,value:"SCREEN"},Fu.USERDEFINED={type:3,value:"USERDEFINED"},Fu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ri=Fu;e.IfcPermeableCoveringOperationEnum=Ri;let tI=class{};tI.PHYSICAL={type:3,value:"PHYSICAL"},tI.VIRTUAL={type:3,value:"VIRTUAL"},tI.NOTDEFINED={type:3,value:"NOTDEFINED"};let mc=tI;e.IfcPhysicalOrVirtualEnum=mc;let gl=class{};gl.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},gl.COMPOSITE={type:3,value:"COMPOSITE"},gl.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},gl.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},gl.USERDEFINED={type:3,value:"USERDEFINED"},gl.NOTDEFINED={type:3,value:"NOTDEFINED"};let ce=gl;e.IfcPileConstructionEnum=ce;let Vu=class{};Vu.COHESION={type:3,value:"COHESION"},Vu.FRICTION={type:3,value:"FRICTION"},Vu.SUPPORT={type:3,value:"SUPPORT"},Vu.USERDEFINED={type:3,value:"USERDEFINED"},Vu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vr=Vu;e.IfcPileTypeEnum=Vr;let wa=class{};wa.BEND={type:3,value:"BEND"},wa.CONNECTOR={type:3,value:"CONNECTOR"},wa.ENTRY={type:3,value:"ENTRY"},wa.EXIT={type:3,value:"EXIT"},wa.JUNCTION={type:3,value:"JUNCTION"},wa.OBSTRUCTION={type:3,value:"OBSTRUCTION"},wa.TRANSITION={type:3,value:"TRANSITION"},wa.USERDEFINED={type:3,value:"USERDEFINED"},wa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Lh=wa;e.IfcPipeFittingTypeEnum=Lh;let Ll=class{};Ll.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Ll.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Ll.GUTTER={type:3,value:"GUTTER"},Ll.SPOOL={type:3,value:"SPOOL"},Ll.USERDEFINED={type:3,value:"USERDEFINED"},Ll.NOTDEFINED={type:3,value:"NOTDEFINED"};let xs=Ll;e.IfcPipeSegmentTypeEnum=xs;let SE=class{};SE.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},SE.SHEET={type:3,value:"SHEET"},SE.USERDEFINED={type:3,value:"USERDEFINED"},SE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Qc=SE;e.IfcPlateTypeEnum=Qc;let Ba=class{};Ba.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Ba.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Ba.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Ba.CALIBRATION={type:3,value:"CALIBRATION"},Ba.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Ba.SHUTDOWN={type:3,value:"SHUTDOWN"},Ba.STARTUP={type:3,value:"STARTUP"},Ba.USERDEFINED={type:3,value:"USERDEFINED"},Ba.NOTDEFINED={type:3,value:"NOTDEFINED"};let Hr=Ba;e.IfcProcedureTypeEnum=Hr;let IT=class{};IT.CURVE={type:3,value:"CURVE"},IT.AREA={type:3,value:"AREA"};let Ga=IT;e.IfcProfileTypeEnum=Ga;let xh=class{};xh.CHANGE={type:3,value:"CHANGE"},xh.MAINTENANCE={type:3,value:"MAINTENANCE"},xh.MOVE={type:3,value:"MOVE"},xh.PURCHASE={type:3,value:"PURCHASE"},xh.WORK={type:3,value:"WORK"},xh.USERDEFINED={type:3,value:"USERDEFINED"},xh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ss=xh;e.IfcProjectOrderRecordTypeEnum=Ss;let Ph=class{};Ph.CHANGEORDER={type:3,value:"CHANGEORDER"},Ph.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},Ph.MOVEORDER={type:3,value:"MOVEORDER"},Ph.PURCHASEORDER={type:3,value:"PURCHASEORDER"},Ph.WORKORDER={type:3,value:"WORKORDER"},Ph.USERDEFINED={type:3,value:"USERDEFINED"},Ph.NOTDEFINED={type:3,value:"NOTDEFINED"};let Gi=Ph;e.IfcProjectOrderTypeEnum=Gi;let yT=class{};yT.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},yT.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"};let Wr=yT;e.IfcProjectedOrTrueLengthEnum=Wr;let Fa=class{};Fa.DESIGN={type:3,value:"DESIGN"},Fa.DESIGNMAXIMUM={type:3,value:"DESIGNMAXIMUM"},Fa.DESIGNMINIMUM={type:3,value:"DESIGNMINIMUM"},Fa.SIMULATED={type:3,value:"SIMULATED"},Fa.ASBUILT={type:3,value:"ASBUILT"},Fa.COMMISSIONING={type:3,value:"COMMISSIONING"},Fa.MEASURED={type:3,value:"MEASURED"},Fa.USERDEFINED={type:3,value:"USERDEFINED"},Fa.NOTKNOWN={type:3,value:"NOTKNOWN"};let bn=Fa;e.IfcPropertySourceEnum=bn;let Vo=class{};Vo.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},Vo.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},Vo.EARTHFAILUREDEVICE={type:3,value:"EARTHFAILUREDEVICE"},Vo.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},Vo.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},Vo.VARISTOR={type:3,value:"VARISTOR"},Vo.USERDEFINED={type:3,value:"USERDEFINED"},Vo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Va=Vo;e.IfcProtectiveDeviceTypeEnum=Va;let Mh=class{};Mh.CIRCULATOR={type:3,value:"CIRCULATOR"},Mh.ENDSUCTION={type:3,value:"ENDSUCTION"},Mh.SPLITCASE={type:3,value:"SPLITCASE"},Mh.VERTICALINLINE={type:3,value:"VERTICALINLINE"},Mh.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},Mh.USERDEFINED={type:3,value:"USERDEFINED"},Mh.NOTDEFINED={type:3,value:"NOTDEFINED"};let zr=Mh;e.IfcPumpTypeEnum=zr;let Hu=class{};Hu.HANDRAIL={type:3,value:"HANDRAIL"},Hu.GUARDRAIL={type:3,value:"GUARDRAIL"},Hu.BALUSTRADE={type:3,value:"BALUSTRADE"},Hu.USERDEFINED={type:3,value:"USERDEFINED"},Hu.NOTDEFINED={type:3,value:"NOTDEFINED"};let xe=Hu;e.IfcRailingTypeEnum=xe;let NE=class{};NE.STRAIGHT={type:3,value:"STRAIGHT"},NE.SPIRAL={type:3,value:"SPIRAL"},NE.USERDEFINED={type:3,value:"USERDEFINED"},NE.NOTDEFINED={type:3,value:"NOTDEFINED"};let hn=NE;e.IfcRampFlightTypeEnum=hn;let Ho=class{};Ho.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},Ho.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},Ho.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},Ho.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},Ho.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},Ho.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},Ho.USERDEFINED={type:3,value:"USERDEFINED"},Ho.NOTDEFINED={type:3,value:"NOTDEFINED"};let ln=Ho;e.IfcRampTypeEnum=ln;let $c=class{};$c.BLINN={type:3,value:"BLINN"},$c.FLAT={type:3,value:"FLAT"},$c.GLASS={type:3,value:"GLASS"},$c.MATT={type:3,value:"MATT"},$c.METAL={type:3,value:"METAL"},$c.MIRROR={type:3,value:"MIRROR"},$c.PHONG={type:3,value:"PHONG"},$c.PLASTIC={type:3,value:"PLASTIC"},$c.STRAUSS={type:3,value:"STRAUSS"},$c.NOTDEFINED={type:3,value:"NOTDEFINED"};let Jc=$c;e.IfcReflectanceMethodEnum=Jc;let Ha=class{};Ha.MAIN={type:3,value:"MAIN"},Ha.SHEAR={type:3,value:"SHEAR"},Ha.LIGATURE={type:3,value:"LIGATURE"},Ha.STUD={type:3,value:"STUD"},Ha.PUNCHING={type:3,value:"PUNCHING"},Ha.EDGE={type:3,value:"EDGE"},Ha.RING={type:3,value:"RING"},Ha.USERDEFINED={type:3,value:"USERDEFINED"},Ha.NOTDEFINED={type:3,value:"NOTDEFINED"};let ci=Ha;e.IfcReinforcingBarRoleEnum=ci;let TT=class{};TT.PLAIN={type:3,value:"PLAIN"},TT.TEXTURED={type:3,value:"TEXTURED"};let un=TT;e.IfcReinforcingBarSurfaceEnum=un;let Wo=class{};Wo.CONSUMED={type:3,value:"CONSUMED"},Wo.PARTIALLYCONSUMED={type:3,value:"PARTIALLYCONSUMED"},Wo.NOTCONSUMED={type:3,value:"NOTCONSUMED"},Wo.OCCUPIED={type:3,value:"OCCUPIED"},Wo.PARTIALLYOCCUPIED={type:3,value:"PARTIALLYOCCUPIED"},Wo.NOTOCCUPIED={type:3,value:"NOTOCCUPIED"},Wo.USERDEFINED={type:3,value:"USERDEFINED"},Wo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Xc=Wo;e.IfcResourceConsumptionEnum=Xc;let dT=class{};dT.DIRECTION_X={type:3,value:"DIRECTION_X"},dT.DIRECTION_Y={type:3,value:"DIRECTION_Y"};let wn=dT;e.IfcRibPlateDirectionEnum=wn;let hs=class{};hs.SUPPLIER={type:3,value:"SUPPLIER"},hs.MANUFACTURER={type:3,value:"MANUFACTURER"},hs.CONTRACTOR={type:3,value:"CONTRACTOR"},hs.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},hs.ARCHITECT={type:3,value:"ARCHITECT"},hs.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},hs.COSTENGINEER={type:3,value:"COSTENGINEER"},hs.CLIENT={type:3,value:"CLIENT"},hs.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},hs.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},hs.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},hs.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},hs.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},hs.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},hs.CIVILENGINEER={type:3,value:"CIVILENGINEER"},hs.COMISSIONINGENGINEER={type:3,value:"COMISSIONINGENGINEER"},hs.ENGINEER={type:3,value:"ENGINEER"},hs.OWNER={type:3,value:"OWNER"},hs.CONSULTANT={type:3,value:"CONSULTANT"},hs.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},hs.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},hs.RESELLER={type:3,value:"RESELLER"},hs.USERDEFINED={type:3,value:"USERDEFINED"};let Si=hs;e.IfcRoleEnum=Si;let Bn=class{};Bn.FLAT_ROOF={type:3,value:"FLAT_ROOF"},Bn.SHED_ROOF={type:3,value:"SHED_ROOF"},Bn.GABLE_ROOF={type:3,value:"GABLE_ROOF"},Bn.HIP_ROOF={type:3,value:"HIP_ROOF"},Bn.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},Bn.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},Bn.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},Bn.BARREL_ROOF={type:3,value:"BARREL_ROOF"},Bn.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},Bn.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},Bn.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},Bn.DOME_ROOF={type:3,value:"DOME_ROOF"},Bn.FREEFORM={type:3,value:"FREEFORM"},Bn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wa=Bn;e.IfcRoofTypeEnum=Wa;let Fi=class{};Fi.EXA={type:3,value:"EXA"},Fi.PETA={type:3,value:"PETA"},Fi.TERA={type:3,value:"TERA"},Fi.GIGA={type:3,value:"GIGA"},Fi.MEGA={type:3,value:"MEGA"},Fi.KILO={type:3,value:"KILO"},Fi.HECTO={type:3,value:"HECTO"},Fi.DECA={type:3,value:"DECA"},Fi.DECI={type:3,value:"DECI"},Fi.CENTI={type:3,value:"CENTI"},Fi.MILLI={type:3,value:"MILLI"},Fi.MICRO={type:3,value:"MICRO"},Fi.NANO={type:3,value:"NANO"},Fi.PICO={type:3,value:"PICO"},Fi.FEMTO={type:3,value:"FEMTO"},Fi.ATTO={type:3,value:"ATTO"};let Ps=Fi;e.IfcSIPrefix=Ps;let Se=class{};Se.AMPERE={type:3,value:"AMPERE"},Se.BECQUEREL={type:3,value:"BECQUEREL"},Se.CANDELA={type:3,value:"CANDELA"},Se.COULOMB={type:3,value:"COULOMB"},Se.CUBIC_METRE={type:3,value:"CUBIC_METRE"},Se.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},Se.FARAD={type:3,value:"FARAD"},Se.GRAM={type:3,value:"GRAM"},Se.GRAY={type:3,value:"GRAY"},Se.HENRY={type:3,value:"HENRY"},Se.HERTZ={type:3,value:"HERTZ"},Se.JOULE={type:3,value:"JOULE"},Se.KELVIN={type:3,value:"KELVIN"},Se.LUMEN={type:3,value:"LUMEN"},Se.LUX={type:3,value:"LUX"},Se.METRE={type:3,value:"METRE"},Se.MOLE={type:3,value:"MOLE"},Se.NEWTON={type:3,value:"NEWTON"},Se.OHM={type:3,value:"OHM"},Se.PASCAL={type:3,value:"PASCAL"},Se.RADIAN={type:3,value:"RADIAN"},Se.SECOND={type:3,value:"SECOND"},Se.SIEMENS={type:3,value:"SIEMENS"},Se.SIEVERT={type:3,value:"SIEVERT"},Se.SQUARE_METRE={type:3,value:"SQUARE_METRE"},Se.STERADIAN={type:3,value:"STERADIAN"},Se.TESLA={type:3,value:"TESLA"},Se.VOLT={type:3,value:"VOLT"},Se.WATT={type:3,value:"WATT"},Se.WEBER={type:3,value:"WEBER"};let ta=Se;e.IfcSIUnitName=ta;let Yr=class{};Yr.BATH={type:3,value:"BATH"},Yr.BIDET={type:3,value:"BIDET"},Yr.CISTERN={type:3,value:"CISTERN"},Yr.SHOWER={type:3,value:"SHOWER"},Yr.SINK={type:3,value:"SINK"},Yr.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},Yr.TOILETPAN={type:3,value:"TOILETPAN"},Yr.URINAL={type:3,value:"URINAL"},Yr.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},Yr.WCSEAT={type:3,value:"WCSEAT"},Yr.USERDEFINED={type:3,value:"USERDEFINED"},Yr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vi=Yr;e.IfcSanitaryTerminalTypeEnum=Vi;let mT=class{};mT.UNIFORM={type:3,value:"UNIFORM"},mT.TAPERED={type:3,value:"TAPERED"};let Gn=mT;e.IfcSectionTypeEnum=Gn;let pn=class{};pn.CO2SENSOR={type:3,value:"CO2SENSOR"},pn.FIRESENSOR={type:3,value:"FIRESENSOR"},pn.FLOWSENSOR={type:3,value:"FLOWSENSOR"},pn.GASSENSOR={type:3,value:"GASSENSOR"},pn.HEATSENSOR={type:3,value:"HEATSENSOR"},pn.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},pn.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},pn.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},pn.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},pn.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},pn.SMOKESENSOR={type:3,value:"SMOKESENSOR"},pn.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},pn.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},pn.USERDEFINED={type:3,value:"USERDEFINED"},pn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ys=pn;e.IfcSensorTypeEnum=Ys;let Wu=class{};Wu.START_START={type:3,value:"START_START"},Wu.START_FINISH={type:3,value:"START_FINISH"},Wu.FINISH_START={type:3,value:"FINISH_START"},Wu.FINISH_FINISH={type:3,value:"FINISH_FINISH"},Wu.NOTDEFINED={type:3,value:"NOTDEFINED"};let En=Wu;e.IfcSequenceEnum=En;let za=class{};za.A_QUALITYOFCOMPONENTS={type:3,value:"A_QUALITYOFCOMPONENTS"},za.B_DESIGNLEVEL={type:3,value:"B_DESIGNLEVEL"},za.C_WORKEXECUTIONLEVEL={type:3,value:"C_WORKEXECUTIONLEVEL"},za.D_INDOORENVIRONMENT={type:3,value:"D_INDOORENVIRONMENT"},za.E_OUTDOORENVIRONMENT={type:3,value:"E_OUTDOORENVIRONMENT"},za.F_INUSECONDITIONS={type:3,value:"F_INUSECONDITIONS"},za.G_MAINTENANCELEVEL={type:3,value:"G_MAINTENANCELEVEL"},za.USERDEFINED={type:3,value:"USERDEFINED"},za.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ya=za;e.IfcServiceLifeFactorTypeEnum=Ya;let zu=class{};zu.ACTUALSERVICELIFE={type:3,value:"ACTUALSERVICELIFE"},zu.EXPECTEDSERVICELIFE={type:3,value:"EXPECTEDSERVICELIFE"},zu.OPTIMISTICREFERENCESERVICELIFE={type:3,value:"OPTIMISTICREFERENCESERVICELIFE"},zu.PESSIMISTICREFERENCESERVICELIFE={type:3,value:"PESSIMISTICREFERENCESERVICELIFE"},zu.REFERENCESERVICELIFE={type:3,value:"REFERENCESERVICELIFE"};let Rc=zu;e.IfcServiceLifeTypeEnum=Rc;let xl=class{};xl.FLOOR={type:3,value:"FLOOR"},xl.ROOF={type:3,value:"ROOF"},xl.LANDING={type:3,value:"LANDING"},xl.BASESLAB={type:3,value:"BASESLAB"},xl.USERDEFINED={type:3,value:"USERDEFINED"},xl.NOTDEFINED={type:3,value:"NOTDEFINED"};let AE=xl;e.IfcSlabTypeEnum=AE;let Uh=class{};Uh.DBA={type:3,value:"DBA"},Uh.DBB={type:3,value:"DBB"},Uh.DBC={type:3,value:"DBC"},Uh.NC={type:3,value:"NC"},Uh.NR={type:3,value:"NR"},Uh.USERDEFINED={type:3,value:"USERDEFINED"},Uh.NOTDEFINED={type:3,value:"NOTDEFINED"};let ka=Uh;e.IfcSoundScaleEnum=ka;let Ka=class{};Ka.SECTIONALRADIATOR={type:3,value:"SECTIONALRADIATOR"},Ka.PANELRADIATOR={type:3,value:"PANELRADIATOR"},Ka.TUBULARRADIATOR={type:3,value:"TUBULARRADIATOR"},Ka.CONVECTOR={type:3,value:"CONVECTOR"},Ka.BASEBOARDHEATER={type:3,value:"BASEBOARDHEATER"},Ka.FINNEDTUBEUNIT={type:3,value:"FINNEDTUBEUNIT"},Ka.UNITHEATER={type:3,value:"UNITHEATER"},Ka.USERDEFINED={type:3,value:"USERDEFINED"},Ka.NOTDEFINED={type:3,value:"NOTDEFINED"};let Je=Ka;e.IfcSpaceHeaterTypeEnum=Je;let RT=class{};RT.USERDEFINED={type:3,value:"USERDEFINED"},RT.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fn=RT;e.IfcSpaceTypeEnum=Fn;let Yu=class{};Yu.BIRDCAGE={type:3,value:"BIRDCAGE"},Yu.COWL={type:3,value:"COWL"},Yu.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},Yu.USERDEFINED={type:3,value:"USERDEFINED"},Yu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Za=Yu;e.IfcStackTerminalTypeEnum=Za;let Ch=class{};Ch.STRAIGHT={type:3,value:"STRAIGHT"},Ch.WINDER={type:3,value:"WINDER"},Ch.SPIRAL={type:3,value:"SPIRAL"},Ch.CURVED={type:3,value:"CURVED"},Ch.FREEFORM={type:3,value:"FREEFORM"},Ch.USERDEFINED={type:3,value:"USERDEFINED"},Ch.NOTDEFINED={type:3,value:"NOTDEFINED"};let kr=Ch;e.IfcStairFlightTypeEnum=kr;let Hi=class{};Hi.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},Hi.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},Hi.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},Hi.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},Hi.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},Hi.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},Hi.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},Hi.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},Hi.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},Hi.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},Hi.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},Hi.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},Hi.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},Hi.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},Hi.USERDEFINED={type:3,value:"USERDEFINED"},Hi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ms=Hi;e.IfcStairTypeEnum=Ms;let ku=class{};ku.READWRITE={type:3,value:"READWRITE"},ku.READONLY={type:3,value:"READONLY"},ku.LOCKED={type:3,value:"LOCKED"},ku.READWRITELOCKED={type:3,value:"READWRITELOCKED"},ku.READONLYLOCKED={type:3,value:"READONLYLOCKED"};let Kr=ku;e.IfcStateEnum=Kr;let bh=class{};bh.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},bh.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},bh.CABLE={type:3,value:"CABLE"},bh.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},bh.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},bh.USERDEFINED={type:3,value:"USERDEFINED"},bh.NOTDEFINED={type:3,value:"NOTDEFINED"};let zo=bh;e.IfcStructuralCurveTypeEnum=zo;let Ku=class{};Ku.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},Ku.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},Ku.SHELL={type:3,value:"SHELL"},Ku.USERDEFINED={type:3,value:"USERDEFINED"},Ku.NOTDEFINED={type:3,value:"NOTDEFINED"};let Yo=Ku;e.IfcStructuralSurfaceTypeEnum=Yo;let eI=class{};eI.POSITIVE={type:3,value:"POSITIVE"},eI.NEGATIVE={type:3,value:"NEGATIVE"},eI.BOTH={type:3,value:"BOTH"};let Vn=eI;e.IfcSurfaceSide=Vn;let qa=class{};qa.BUMP={type:3,value:"BUMP"},qa.OPACITY={type:3,value:"OPACITY"},qa.REFLECTION={type:3,value:"REFLECTION"},qa.SELFILLUMINATION={type:3,value:"SELFILLUMINATION"},qa.SHININESS={type:3,value:"SHININESS"},qa.SPECULAR={type:3,value:"SPECULAR"},qa.TEXTURE={type:3,value:"TEXTURE"},qa.TRANSPARENCYMAP={type:3,value:"TRANSPARENCYMAP"},qa.NOTDEFINED={type:3,value:"NOTDEFINED"};let ls=qa;e.IfcSurfaceTextureEnum=ls;let wh=class{};wh.CONTACTOR={type:3,value:"CONTACTOR"},wh.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},wh.STARTER={type:3,value:"STARTER"},wh.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},wh.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},wh.USERDEFINED={type:3,value:"USERDEFINED"},wh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Te=wh;e.IfcSwitchingDeviceTypeEnum=Te;let Pl=class{};Pl.PREFORMED={type:3,value:"PREFORMED"},Pl.SECTIONAL={type:3,value:"SECTIONAL"},Pl.EXPANSION={type:3,value:"EXPANSION"},Pl.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Pl.USERDEFINED={type:3,value:"USERDEFINED"},Pl.NOTDEFINED={type:3,value:"NOTDEFINED"};let ks=Pl;e.IfcTankTypeEnum=ks;let Ml=class{};Ml.STRAND={type:3,value:"STRAND"},Ml.WIRE={type:3,value:"WIRE"},Ml.BAR={type:3,value:"BAR"},Ml.COATED={type:3,value:"COATED"},Ml.USERDEFINED={type:3,value:"USERDEFINED"},Ml.NOTDEFINED={type:3,value:"NOTDEFINED"};let ja=Ml;e.IfcTendonTypeEnum=ja;let DE=class{};DE.LEFT={type:3,value:"LEFT"},DE.RIGHT={type:3,value:"RIGHT"},DE.UP={type:3,value:"UP"},DE.DOWN={type:3,value:"DOWN"};let Pe=DE;e.IfcTextPath=Pe;let yr=class{};yr.PEOPLE={type:3,value:"PEOPLE"},yr.LIGHTING={type:3,value:"LIGHTING"},yr.EQUIPMENT={type:3,value:"EQUIPMENT"},yr.VENTILATIONINDOORAIR={type:3,value:"VENTILATIONINDOORAIR"},yr.VENTILATIONOUTSIDEAIR={type:3,value:"VENTILATIONOUTSIDEAIR"},yr.RECIRCULATEDAIR={type:3,value:"RECIRCULATEDAIR"},yr.EXHAUSTAIR={type:3,value:"EXHAUSTAIR"},yr.AIREXCHANGERATE={type:3,value:"AIREXCHANGERATE"},yr.DRYBULBTEMPERATURE={type:3,value:"DRYBULBTEMPERATURE"},yr.RELATIVEHUMIDITY={type:3,value:"RELATIVEHUMIDITY"},yr.INFILTRATION={type:3,value:"INFILTRATION"},yr.USERDEFINED={type:3,value:"USERDEFINED"},yr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ns=yr;e.IfcThermalLoadSourceEnum=Ns;let OE=class{};OE.SENSIBLE={type:3,value:"SENSIBLE"},OE.LATENT={type:3,value:"LATENT"},OE.RADIANT={type:3,value:"RADIANT"},OE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wi=OE;e.IfcThermalLoadTypeEnum=Wi;let Bh=class{};Bh.CONTINUOUS={type:3,value:"CONTINUOUS"},Bh.DISCRETE={type:3,value:"DISCRETE"},Bh.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},Bh.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},Bh.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},Bh.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},Bh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Hn=Bh;e.IfcTimeSeriesDataTypeEnum=Hn;let Ul=class{};Ul.ANNUAL={type:3,value:"ANNUAL"},Ul.MONTHLY={type:3,value:"MONTHLY"},Ul.WEEKLY={type:3,value:"WEEKLY"},Ul.DAILY={type:3,value:"DAILY"},Ul.USERDEFINED={type:3,value:"USERDEFINED"},Ul.NOTDEFINED={type:3,value:"NOTDEFINED"};let Qa=Ul;e.IfcTimeSeriesScheduleTypeEnum=Qa;let Zu=class{};Zu.CURRENT={type:3,value:"CURRENT"},Zu.FREQUENCY={type:3,value:"FREQUENCY"},Zu.VOLTAGE={type:3,value:"VOLTAGE"},Zu.USERDEFINED={type:3,value:"USERDEFINED"},Zu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ni=Zu;e.IfcTransformerTypeEnum=Ni;let vE=class{};vE.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},vE.CONTINUOUS={type:3,value:"CONTINUOUS"},vE.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},vE.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"};let Ai=vE;e.IfcTransitionCode=Ai;let qu=class{};qu.ELEVATOR={type:3,value:"ELEVATOR"},qu.ESCALATOR={type:3,value:"ESCALATOR"},qu.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},qu.USERDEFINED={type:3,value:"USERDEFINED"},qu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Zr=qu;e.IfcTransportElementTypeEnum=Zr;let sI=class{};sI.CARTESIAN={type:3,value:"CARTESIAN"},sI.PARAMETER={type:3,value:"PARAMETER"},sI.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let Di=sI;e.IfcTrimmingPreference=Di;let iI=class{};iI.FINNED={type:3,value:"FINNED"},iI.USERDEFINED={type:3,value:"USERDEFINED"},iI.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wn=iI;e.IfcTubeBundleTypeEnum=Wn;let Ne=class{};Ne.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Ne.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Ne.AREAUNIT={type:3,value:"AREAUNIT"},Ne.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Ne.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Ne.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Ne.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Ne.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Ne.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Ne.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Ne.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Ne.FORCEUNIT={type:3,value:"FORCEUNIT"},Ne.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Ne.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Ne.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Ne.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Ne.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Ne.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Ne.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Ne.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Ne.MASSUNIT={type:3,value:"MASSUNIT"},Ne.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Ne.POWERUNIT={type:3,value:"POWERUNIT"},Ne.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Ne.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Ne.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Ne.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Ne.TIMEUNIT={type:3,value:"TIMEUNIT"},Ne.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Ne.USERDEFINED={type:3,value:"USERDEFINED"};let _E=Ne;e.IfcUnitEnum=_E;let Cl=class{};Cl.AIRHANDLER={type:3,value:"AIRHANDLER"},Cl.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},Cl.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},Cl.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},Cl.USERDEFINED={type:3,value:"USERDEFINED"},Cl.NOTDEFINED={type:3,value:"NOTDEFINED"};let fn=Cl;e.IfcUnitaryEquipmentTypeEnum=fn;let us=class{};us.AIRRELEASE={type:3,value:"AIRRELEASE"},us.ANTIVACUUM={type:3,value:"ANTIVACUUM"},us.CHANGEOVER={type:3,value:"CHANGEOVER"},us.CHECK={type:3,value:"CHECK"},us.COMMISSIONING={type:3,value:"COMMISSIONING"},us.DIVERTING={type:3,value:"DIVERTING"},us.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},us.DOUBLECHECK={type:3,value:"DOUBLECHECK"},us.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},us.FAUCET={type:3,value:"FAUCET"},us.FLUSHING={type:3,value:"FLUSHING"},us.GASCOCK={type:3,value:"GASCOCK"},us.GASTAP={type:3,value:"GASTAP"},us.ISOLATING={type:3,value:"ISOLATING"},us.MIXING={type:3,value:"MIXING"},us.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},us.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},us.REGULATING={type:3,value:"REGULATING"},us.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},us.STEAMTRAP={type:3,value:"STEAMTRAP"},us.STOPCOCK={type:3,value:"STOPCOCK"},us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"};let Gh=us;e.IfcValveTypeEnum=Gh;let gE=class{};gE.COMPRESSION={type:3,value:"COMPRESSION"},gE.SPRING={type:3,value:"SPRING"},gE.USERDEFINED={type:3,value:"USERDEFINED"},gE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Xe=gE;e.IfcVibrationIsolatorTypeEnum=Xe;let Fh=class{};Fh.STANDARD={type:3,value:"STANDARD"},Fh.POLYGONAL={type:3,value:"POLYGONAL"},Fh.SHEAR={type:3,value:"SHEAR"},Fh.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Fh.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Fh.USERDEFINED={type:3,value:"USERDEFINED"},Fh.NOTDEFINED={type:3,value:"NOTDEFINED"};let As=Fh;e.IfcWallTypeEnum=As;let qr=class{};qr.FLOORTRAP={type:3,value:"FLOORTRAP"},qr.FLOORWASTE={type:3,value:"FLOORWASTE"},qr.GULLYSUMP={type:3,value:"GULLYSUMP"},qr.GULLYTRAP={type:3,value:"GULLYTRAP"},qr.GREASEINTERCEPTOR={type:3,value:"GREASEINTERCEPTOR"},qr.OILINTERCEPTOR={type:3,value:"OILINTERCEPTOR"},qr.PETROLINTERCEPTOR={type:3,value:"PETROLINTERCEPTOR"},qr.ROOFDRAIN={type:3,value:"ROOFDRAIN"},qr.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},qr.WASTETRAP={type:3,value:"WASTETRAP"},qr.USERDEFINED={type:3,value:"USERDEFINED"},qr.NOTDEFINED={type:3,value:"NOTDEFINED"};let as=qr;e.IfcWasteTerminalTypeEnum=as;let zn=class{};zn.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},zn.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},zn.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},zn.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},zn.TOPHUNG={type:3,value:"TOPHUNG"},zn.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},zn.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},zn.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},zn.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},zn.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},zn.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},zn.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},zn.OTHEROPERATION={type:3,value:"OTHEROPERATION"},zn.NOTDEFINED={type:3,value:"NOTDEFINED"};let se=zn;e.IfcWindowPanelOperationEnum=se;let bl=class{};bl.LEFT={type:3,value:"LEFT"},bl.MIDDLE={type:3,value:"MIDDLE"},bl.RIGHT={type:3,value:"RIGHT"},bl.BOTTOM={type:3,value:"BOTTOM"},bl.TOP={type:3,value:"TOP"},bl.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ks=bl;e.IfcWindowPanelPositionEnum=Ks;let ko=class{};ko.ALUMINIUM={type:3,value:"ALUMINIUM"},ko.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},ko.STEEL={type:3,value:"STEEL"},ko.WOOD={type:3,value:"WOOD"},ko.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},ko.PLASTIC={type:3,value:"PLASTIC"},ko.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},ko.NOTDEFINED={type:3,value:"NOTDEFINED"};let Tr=ko;e.IfcWindowStyleConstructionEnum=Tr;let Sc=class{};Sc.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},Sc.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},Sc.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},Sc.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},Sc.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},Sc.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},Sc.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},Sc.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},Sc.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},Sc.USERDEFINED={type:3,value:"USERDEFINED"},Sc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Me=Sc;e.IfcWindowStyleOperationEnum=Me;let ju=class{};ju.ACTUAL={type:3,value:"ACTUAL"},ju.BASELINE={type:3,value:"BASELINE"},ju.PLANNED={type:3,value:"PLANNED"},ju.USERDEFINED={type:3,value:"USERDEFINED"},ju.NOTDEFINED={type:3,value:"NOTDEFINED"};let In=ju;e.IfcWorkControlTypeEnum=In;class cN extends lt{constructor(E,d,S){super(),this.Role=E,this.UserDefinedRole=d,this.Description=S,this.type=3630933823}}e.IfcActorRole=cN;class $a extends lt{constructor(E,d,S){super(),this.Purpose=E,this.Description=d,this.UserDefinedPurpose=S,this.type=618182010}}e.IfcAddress=$a;class aN extends lt{constructor(E,d,S,v){super(),this.ApplicationDeveloper=E,this.Version=d,this.ApplicationFullName=S,this.ApplicationIdentifier=v,this.type=639542469}}e.IfcApplication=aN;class Ds extends lt{constructor(E,d,S,v,M,w){super(),this.Name=E,this.Description=d,this.AppliedValue=S,this.UnitBasis=v,this.ApplicableDate=M,this.FixedUntilDate=w,this.type=411424972}}e.IfcAppliedValue=Ds;class oN extends lt{constructor(E,d,S,v,M){super(),this.ComponentOfTotal=E,this.Components=d,this.ArithmeticOperator=S,this.Name=v,this.Description=M,this.type=1110488051}}e.IfcAppliedValueRelationship=oN;class Ko extends lt{constructor(E,d,S,v,M,w,G){super(),this.Description=E,this.ApprovalDateTime=d,this.ApprovalStatus=S,this.ApprovalLevel=v,this.ApprovalQualifier=M,this.Name=w,this.Identifier=G,this.type=130549933}}e.IfcApproval=Ko;class hN extends lt{constructor(E,d,S){super(),this.Actor=E,this.Approval=d,this.Role=S,this.type=2080292479}}e.IfcApprovalActorRelationship=hN;class Zo extends lt{constructor(E,d){super(),this.ApprovedProperties=E,this.Approval=d,this.type=390851274}}e.IfcApprovalPropertyRelationship=Zo;class lN extends lt{constructor(E,d,S,v){super(),this.RelatedApproval=E,this.RelatingApproval=d,this.Description=S,this.Name=v,this.type=3869604511}}e.IfcApprovalRelationship=lN;class Oi extends lt{constructor(E){super(),this.Name=E,this.type=4037036970}}e.IfcBoundaryCondition=Oi;class uN extends Oi{constructor(E,d,S,v,M,w,G){super(E),this.Name=E,this.LinearStiffnessByLengthX=d,this.LinearStiffnessByLengthY=S,this.LinearStiffnessByLengthZ=v,this.RotationalStiffnessByLengthX=M,this.RotationalStiffnessByLengthY=w,this.RotationalStiffnessByLengthZ=G,this.type=1560379544}}e.IfcBoundaryEdgeCondition=uN;class dr extends Oi{constructor(E,d,S,v){super(E),this.Name=E,this.LinearStiffnessByAreaX=d,this.LinearStiffnessByAreaY=S,this.LinearStiffnessByAreaZ=v,this.type=3367102660}}e.IfcBoundaryFaceCondition=dr;class Im extends Oi{constructor(E,d,S,v,M,w,G){super(E),this.Name=E,this.LinearStiffnessX=d,this.LinearStiffnessY=S,this.LinearStiffnessZ=v,this.RotationalStiffnessX=M,this.RotationalStiffnessY=w,this.RotationalStiffnessZ=G,this.type=1387855156}}e.IfcBoundaryNodeCondition=Im;class ys extends Im{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.Name=E,this.LinearStiffnessX=d,this.LinearStiffnessY=S,this.LinearStiffnessZ=v,this.RotationalStiffnessX=M,this.RotationalStiffnessY=w,this.RotationalStiffnessZ=G,this.WarpingStiffness=W,this.type=2069777674}}e.IfcBoundaryNodeConditionWarping=ys;class pN extends lt{constructor(E,d,S){super(),this.DayComponent=E,this.MonthComponent=d,this.YearComponent=S,this.type=622194075}}e.IfcCalendarDate=pN;class Yn extends lt{constructor(E,d,S,v){super(),this.Source=E,this.Edition=d,this.EditionDate=S,this.Name=v,this.type=747523909}}e.IfcClassification=Yn;class EN extends lt{constructor(E,d,S){super(),this.Notation=E,this.ItemOf=d,this.Title=S,this.type=1767535486}}e.IfcClassificationItem=EN;class yn extends lt{constructor(E,d){super(),this.RelatingItem=E,this.RelatedItems=d,this.type=1098599126}}e.IfcClassificationItemRelationship=yn;class fN extends lt{constructor(E){super(),this.NotationFacets=E,this.type=938368621}}e.IfcClassificationNotation=fN;class Ts extends lt{constructor(E){super(),this.NotationValue=E,this.type=3639012971}}e.IfcClassificationNotationFacet=Ts;class ym extends lt{constructor(E){super(),this.Name=E,this.type=3264961684}}e.IfcColourSpecification=ym;class Us extends lt{constructor(){super(),this.type=2859738748}}e.IfcConnectionGeometry=Us;class Tm extends Us{constructor(E,d){super(),this.PointOnRelatingElement=E,this.PointOnRelatedElement=d,this.type=2614616156}}e.IfcConnectionPointGeometry=Tm;class Nc extends Us{constructor(E,d,S){super(),this.LocationAtRelatingElement=E,this.LocationAtRelatedElement=d,this.ProfileOfPort=S,this.type=4257277454}}e.IfcConnectionPortGeometry=Nc;class IN extends Us{constructor(E,d){super(),this.SurfaceOnRelatingElement=E,this.SurfaceOnRelatedElement=d,this.type=2732653382}}e.IfcConnectionSurfaceGeometry=IN;class mr extends lt{constructor(E,d,S,v,M,w,G){super(),this.Name=E,this.Description=d,this.ConstraintGrade=S,this.ConstraintSource=v,this.CreatingActor=M,this.CreationTime=w,this.UserDefinedGrade=G,this.type=1959218052}}e.IfcConstraint=mr;class yN extends lt{constructor(E,d,S,v,M){super(),this.Name=E,this.Description=d,this.RelatingConstraint=S,this.RelatedConstraints=v,this.LogicalAggregator=M,this.type=1658513725}}e.IfcConstraintAggregationRelationship=yN;class kn extends lt{constructor(E,d){super(),this.ClassifiedConstraint=E,this.RelatedClassifications=d,this.type=613356794}}e.IfcConstraintClassificationRelationship=kn;class TN extends lt{constructor(E,d,S,v){super(),this.Name=E,this.Description=d,this.RelatingConstraint=S,this.RelatedConstraints=v,this.type=347226245}}e.IfcConstraintRelationship=TN;class Rr extends lt{constructor(E,d,S){super(),this.HourOffset=E,this.MinuteOffset=d,this.Sense=S,this.type=1065062679}}e.IfcCoordinatedUniversalTimeOffset=Rr;class dN extends Ds{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w),this.Name=E,this.Description=d,this.AppliedValue=S,this.UnitBasis=v,this.ApplicableDate=M,this.FixedUntilDate=w,this.CostType=G,this.Condition=W,this.type=602808272}}e.IfcCostValue=dN;class zi extends lt{constructor(E,d,S,v,M){super(),this.RelatingMonetaryUnit=E,this.RelatedMonetaryUnit=d,this.ExchangeRate=S,this.RateDateTime=v,this.RateSource=M,this.type=539742890}}e.IfcCurrencyRelationship=zi;class mN extends lt{constructor(E,d){super(),this.Name=E,this.PatternList=d,this.type=1105321065}}e.IfcCurveStyleFont=mN;class Yi extends lt{constructor(E,d,S){super(),this.Name=E,this.CurveFont=d,this.CurveFontScaling=S,this.type=2367409068}}e.IfcCurveStyleFontAndScaling=Yi;class RN extends lt{constructor(E,d){super(),this.VisibleSegmentLength=E,this.InvisibleSegmentLength=d,this.type=3510044353}}e.IfcCurveStyleFontPattern=RN;class Ac extends lt{constructor(E,d){super(),this.DateComponent=E,this.TimeComponent=d,this.type=1072939445}}e.IfcDateAndTime=Ac;class SN extends lt{constructor(E,d,S){super(),this.Elements=E,this.UnitType=d,this.UserDefinedType=S,this.type=1765591967}}e.IfcDerivedUnit=SN;class Os extends lt{constructor(E,d){super(),this.Unit=E,this.Exponent=d,this.type=1045800335}}e.IfcDerivedUnitElement=Os;class NN extends lt{constructor(E,d,S,v,M,w,G){super(),this.LengthExponent=E,this.MassExponent=d,this.TimeExponent=S,this.ElectricCurrentExponent=v,this.ThermodynamicTemperatureExponent=M,this.AmountOfSubstanceExponent=w,this.LuminousIntensityExponent=G,this.type=2949456006}}e.IfcDimensionalExponents=NN;class wl extends lt{constructor(E,d,S){super(),this.FileExtension=E,this.MimeContentType=d,this.MimeSubtype=S,this.type=1376555844}}e.IfcDocumentElectronicFormat=wl;class AN extends lt{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or){super(),this.DocumentId=E,this.Name=d,this.Description=S,this.DocumentReferences=v,this.Purpose=M,this.IntendedUse=w,this.Scope=G,this.Revision=W,this.DocumentOwner=Y,this.Editors=st,this.CreationTime=At,this.LastRevisionTime=Mt,this.ElectronicFormat=Ft,this.ValidFrom=ie,this.ValidUntil=ns,this.Confidentiality=Jn,this.Status=Or,this.type=1154170062}}e.IfcDocumentInformation=AN;class Cs extends lt{constructor(E,d,S){super(),this.RelatingDocument=E,this.RelatedDocuments=d,this.RelationshipType=S,this.type=770865208}}e.IfcDocumentInformationRelationship=Cs;class ST extends lt{constructor(E,d,S,v){super(),this.Name=E,this.Description=d,this.RelatingDraughtingCallout=S,this.RelatedDraughtingCallout=v,this.type=3796139169}}e.IfcDraughtingCalloutRelationship=ST;class Qu extends Ds{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w),this.Name=E,this.Description=d,this.AppliedValue=S,this.UnitBasis=v,this.ApplicableDate=M,this.FixedUntilDate=w,this.ImpactType=G,this.Category=W,this.UserDefinedCategory=Y,this.type=1648886627}}e.IfcEnvironmentalImpactValue=Qu;class Vh extends lt{constructor(E,d,S){super(),this.Location=E,this.ItemReference=d,this.Name=S,this.type=3200245327}}e.IfcExternalReference=Vh;class te extends Vh{constructor(E,d,S){super(E,d,S),this.Location=E,this.ItemReference=d,this.Name=S,this.type=2242383968}}e.IfcExternallyDefinedHatchStyle=te;class DN extends Vh{constructor(E,d,S){super(E,d,S),this.Location=E,this.ItemReference=d,this.Name=S,this.type=1040185647}}e.IfcExternallyDefinedSurfaceStyle=DN;class Hh extends Vh{constructor(E,d,S){super(E,d,S),this.Location=E,this.ItemReference=d,this.Name=S,this.type=3207319532}}e.IfcExternallyDefinedSymbol=Hh;class ON extends Vh{constructor(E,d,S){super(E,d,S),this.Location=E,this.ItemReference=d,this.Name=S,this.type=3548104201}}e.IfcExternallyDefinedTextFont=ON;class Ue extends lt{constructor(E,d,S){super(),this.AxisTag=E,this.AxisCurve=d,this.SameSense=S,this.type=852622518}}e.IfcGridAxis=Ue;class vN extends lt{constructor(E,d){super(),this.TimeStamp=E,this.ListValues=d,this.type=3020489413}}e.IfcIrregularTimeSeriesValue=vN;class Zs extends lt{constructor(E,d,S,v,M){super(),this.Name=E,this.Version=d,this.Publisher=S,this.VersionDate=v,this.LibraryReference=M,this.type=2655187982}}e.IfcLibraryInformation=Zs;class _N extends Vh{constructor(E,d,S){super(E,d,S),this.Location=E,this.ItemReference=d,this.Name=S,this.type=3452421091}}e.IfcLibraryReference=_N;class ps extends lt{constructor(E,d,S){super(),this.MainPlaneAngle=E,this.SecondaryPlaneAngle=d,this.LuminousIntensity=S,this.type=4162380809}}e.IfcLightDistributionData=ps;class gN extends lt{constructor(E,d){super(),this.LightDistributionCurve=E,this.DistributionData=d,this.type=1566485204}}e.IfcLightIntensityDistribution=gN;class ae extends lt{constructor(E,d,S,v,M){super(),this.HourComponent=E,this.MinuteComponent=d,this.SecondComponent=S,this.Zone=v,this.DaylightSavingOffset=M,this.type=30780891}}e.IfcLocalTime=ae;class LN extends lt{constructor(E){super(),this.Name=E,this.type=1838606355}}e.IfcMaterial=LN;class ki extends lt{constructor(E,d){super(),this.MaterialClassifications=E,this.ClassifiedMaterial=d,this.type=1847130766}}e.IfcMaterialClassificationRelationship=ki;class xN extends lt{constructor(E,d,S){super(),this.Material=E,this.LayerThickness=d,this.IsVentilated=S,this.type=248100487}}e.IfcMaterialLayer=xN;class Ja extends lt{constructor(E,d){super(),this.MaterialLayers=E,this.LayerSetName=d,this.type=3303938423}}e.IfcMaterialLayerSet=Ja;class PN extends lt{constructor(E,d,S,v){super(),this.ForLayerSet=E,this.LayerSetDirection=d,this.DirectionSense=S,this.OffsetFromReferenceLine=v,this.type=1303795690}}e.IfcMaterialLayerSetUsage=PN;class oe extends lt{constructor(E){super(),this.Materials=E,this.type=2199411900}}e.IfcMaterialList=oe;class Xa extends lt{constructor(E){super(),this.Material=E,this.type=3265635763}}e.IfcMaterialProperties=Xa;class to extends lt{constructor(E,d){super(),this.ValueComponent=E,this.UnitComponent=d,this.type=2597039031}}e.IfcMeasureWithUnit=to;class NT extends Xa{constructor(E,d,S,v,M,w){super(E),this.Material=E,this.DynamicViscosity=d,this.YoungModulus=S,this.ShearModulus=v,this.PoissonRatio=M,this.ThermalExpansionCoefficient=w,this.type=4256014907}}e.IfcMechanicalMaterialProperties=NT;class fe extends NT{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft){super(E,d,S,v,M,w),this.Material=E,this.DynamicViscosity=d,this.YoungModulus=S,this.ShearModulus=v,this.PoissonRatio=M,this.ThermalExpansionCoefficient=w,this.YieldStress=G,this.UltimateStress=W,this.UltimateStrain=Y,this.HardeningModule=st,this.ProportionalStress=At,this.PlasticStrain=Mt,this.Relaxations=Ft,this.type=677618848}}e.IfcMechanicalSteelMaterialProperties=fe;class MN extends mr{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G),this.Name=E,this.Description=d,this.ConstraintGrade=S,this.ConstraintSource=v,this.CreatingActor=M,this.CreationTime=w,this.UserDefinedGrade=G,this.Benchmark=W,this.ValueSource=Y,this.DataValue=st,this.type=3368373690}}e.IfcMetric=MN;class Tn extends lt{constructor(E){super(),this.Currency=E,this.type=2706619895}}e.IfcMonetaryUnit=Tn;class nI extends lt{constructor(E,d){super(),this.Dimensions=E,this.UnitType=d,this.type=1918398963}}e.IfcNamedUnit=nI;class Kn extends lt{constructor(){super(),this.type=3701648758}}e.IfcObjectPlacement=Kn;class UN extends mr{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G),this.Name=E,this.Description=d,this.ConstraintGrade=S,this.ConstraintSource=v,this.CreatingActor=M,this.CreationTime=w,this.UserDefinedGrade=G,this.BenchmarkValues=W,this.ResultValues=Y,this.ObjectiveQualifier=st,this.UserDefinedQualifier=At,this.type=2251480897}}e.IfcObjective=UN;class pe extends Xa{constructor(E,d,S,v,M,w,G,W,Y,st){super(E),this.Material=E,this.VisibleTransmittance=d,this.SolarTransmittance=S,this.ThermalIrTransmittance=v,this.ThermalIrEmissivityBack=M,this.ThermalIrEmissivityFront=w,this.VisibleReflectanceBack=G,this.VisibleReflectanceFront=W,this.SolarReflectanceFront=Y,this.SolarReflectanceBack=st,this.type=1227763645}}e.IfcOpticalMaterialProperties=pe;class CN extends lt{constructor(E,d,S,v,M){super(),this.Id=E,this.Name=d,this.Description=S,this.Roles=v,this.Addresses=M,this.type=4251960020}}e.IfcOrganization=CN;class dn extends lt{constructor(E,d,S,v){super(),this.Name=E,this.Description=d,this.RelatingOrganization=S,this.RelatedOrganizations=v,this.type=1411181986}}e.IfcOrganizationRelationship=dn;class bN extends lt{constructor(E,d,S,v,M,w,G,W){super(),this.OwningUser=E,this.OwningApplication=d,this.State=S,this.ChangeAction=v,this.LastModifiedDate=M,this.LastModifyingUser=w,this.LastModifyingApplication=G,this.CreationDate=W,this.type=1207048766}}e.IfcOwnerHistory=bN;class jr extends lt{constructor(E,d,S,v,M,w,G,W){super(),this.Id=E,this.FamilyName=d,this.GivenName=S,this.MiddleNames=v,this.PrefixTitles=M,this.SuffixTitles=w,this.Roles=G,this.Addresses=W,this.type=2077209135}}e.IfcPerson=jr;class wN extends lt{constructor(E,d,S){super(),this.ThePerson=E,this.TheOrganization=d,this.Roles=S,this.type=101040310}}e.IfcPersonAndOrganization=wN;class vi extends lt{constructor(E,d){super(),this.Name=E,this.Description=d,this.type=2483315170}}e.IfcPhysicalQuantity=vi;class Bl extends vi{constructor(E,d,S){super(E,d),this.Name=E,this.Description=d,this.Unit=S,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=Bl;class _i extends $a{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S),this.Purpose=E,this.Description=d,this.UserDefinedPurpose=S,this.InternalLocation=v,this.AddressLines=M,this.PostalBox=w,this.Town=G,this.Region=W,this.PostalCode=Y,this.Country=st,this.type=3355820592}}e.IfcPostalAddress=_i;class LE extends lt{constructor(E){super(),this.Name=E,this.type=3727388367}}e.IfcPreDefinedItem=LE;class Ce extends LE{constructor(E){super(E),this.Name=E,this.type=990879717}}e.IfcPreDefinedSymbol=Ce;class BN extends Ce{constructor(E){super(E),this.Name=E,this.type=3213052703}}e.IfcPreDefinedTerminatorSymbol=BN;class Sr extends LE{constructor(E){super(E),this.Name=E,this.type=1775413392}}e.IfcPreDefinedTextFont=Sr;class dm extends lt{constructor(E,d,S,v){super(),this.Name=E,this.Description=d,this.AssignedItems=S,this.Identifier=v,this.type=2022622350}}e.IfcPresentationLayerAssignment=dm;class mn extends dm{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v),this.Name=E,this.Description=d,this.AssignedItems=S,this.Identifier=v,this.LayerOn=M,this.LayerFrozen=w,this.LayerBlocked=G,this.LayerStyles=W,this.type=1304840413}}e.IfcPresentationLayerWithStyle=mn;class $u extends lt{constructor(E){super(),this.Name=E,this.type=3119450353}}e.IfcPresentationStyle=$u;class Fe extends lt{constructor(E){super(),this.Styles=E,this.type=2417041796}}e.IfcPresentationStyleAssignment=Fe;class AT extends lt{constructor(E,d,S){super(),this.Name=E,this.Description=d,this.Representations=S,this.type=2095639259}}e.IfcProductRepresentation=AT;class ea extends Xa{constructor(E,d,S,v,M){super(E),this.Material=E,this.SpecificHeatCapacity=d,this.N20Content=S,this.COContent=v,this.CO2Content=M,this.type=2267347899}}e.IfcProductsOfCombustionProperties=ea;class Ju extends lt{constructor(E,d){super(),this.ProfileType=E,this.ProfileName=d,this.type=3958567839}}e.IfcProfileDef=Ju;class ds extends lt{constructor(E,d){super(),this.ProfileName=E,this.ProfileDefinition=d,this.type=2802850158}}e.IfcProfileProperties=ds;class DT extends lt{constructor(E,d){super(),this.Name=E,this.Description=d,this.type=2598011224}}e.IfcProperty=DT;class Qr extends lt{constructor(E,d,S,v){super(),this.RelatingConstraint=E,this.RelatedProperties=d,this.Name=S,this.Description=v,this.type=3896028662}}e.IfcPropertyConstraintRelationship=Qr;class GN extends lt{constructor(E,d,S,v,M){super(),this.DependingProperty=E,this.DependantProperty=d,this.Name=S,this.Description=v,this.Expression=M,this.type=148025276}}e.IfcPropertyDependencyRelationship=GN;class Dc extends lt{constructor(E,d,S){super(),this.Name=E,this.EnumerationValues=d,this.Unit=S,this.type=3710013099}}e.IfcPropertyEnumeration=Dc;class FN extends Bl{constructor(E,d,S,v){super(E,d,S),this.Name=E,this.Description=d,this.Unit=S,this.AreaValue=v,this.type=2044713172}}e.IfcQuantityArea=FN;class sa extends Bl{constructor(E,d,S,v){super(E,d,S),this.Name=E,this.Description=d,this.Unit=S,this.CountValue=v,this.type=2093928680}}e.IfcQuantityCount=sa;class VN extends Bl{constructor(E,d,S,v){super(E,d,S),this.Name=E,this.Description=d,this.Unit=S,this.LengthValue=v,this.type=931644368}}e.IfcQuantityLength=VN;class xE extends Bl{constructor(E,d,S,v){super(E,d,S),this.Name=E,this.Description=d,this.Unit=S,this.TimeValue=v,this.type=3252649465}}e.IfcQuantityTime=xE;class OT extends Bl{constructor(E,d,S,v){super(E,d,S),this.Name=E,this.Description=d,this.Unit=S,this.VolumeValue=v,this.type=2405470396}}e.IfcQuantityVolume=OT;class Nr extends Bl{constructor(E,d,S,v){super(E,d,S),this.Name=E,this.Description=d,this.Unit=S,this.WeightValue=v,this.type=825690147}}e.IfcQuantityWeight=Nr;class mm extends lt{constructor(E,d,S,v){super(),this.ReferencedDocument=E,this.ReferencingValues=d,this.Name=S,this.Description=v,this.type=2692823254}}e.IfcReferencesValueDocument=mm;class rI extends lt{constructor(E,d,S,v,M,w){super(),this.TotalCrossSectionArea=E,this.SteelGrade=d,this.BarSurface=S,this.EffectiveDepth=v,this.NominalBarDiameter=M,this.BarCount=w,this.type=1580146022}}e.IfcReinforcementBarProperties=rI;class cI extends lt{constructor(E,d){super(),this.RelaxationValue=E,this.InitialStress=d,this.type=1222501353}}e.IfcRelaxation=cI;class Rn extends lt{constructor(E,d,S,v){super(),this.ContextOfItems=E,this.RepresentationIdentifier=d,this.RepresentationType=S,this.Items=v,this.type=1076942058}}e.IfcRepresentation=Rn;class Rm extends lt{constructor(E,d){super(),this.ContextIdentifier=E,this.ContextType=d,this.type=3377609919}}e.IfcRepresentationContext=Rm;class ia extends lt{constructor(){super(),this.type=3008791417}}e.IfcRepresentationItem=ia;class HN extends lt{constructor(E,d){super(),this.MappingOrigin=E,this.MappedRepresentation=d,this.type=1660063152}}e.IfcRepresentationMap=HN;class Zn extends ds{constructor(E,d,S,v,M,w,G){super(E,d),this.ProfileName=E,this.ProfileDefinition=d,this.Thickness=S,this.RibHeight=v,this.RibWidth=M,this.RibSpacing=w,this.Direction=G,this.type=3679540991}}e.IfcRibPlateProfileProperties=Zn;class PE extends lt{constructor(E,d,S,v){super(),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.type=2341007311}}e.IfcRoot=PE;class aI extends nI{constructor(E,d,S){super(new Io(0),E),this.UnitType=E,this.Prefix=d,this.Name=S,this.type=448429030}}e.IfcSIUnit=aI;class WN extends lt{constructor(E,d,S){super(),this.SectionType=E,this.StartProfile=d,this.EndProfile=S,this.type=2042790032}}e.IfcSectionProperties=WN;class ss extends lt{constructor(E,d,S,v,M,w){super(),this.LongitudinalStartPosition=E,this.LongitudinalEndPosition=d,this.TransversePosition=S,this.ReinforcementRole=v,this.SectionDefinition=M,this.CrossSectionReinforcementDefinitions=w,this.type=4165799628}}e.IfcSectionReinforcementProperties=ss;class Sm extends lt{constructor(E,d,S,v,M){super(),this.ShapeRepresentations=E,this.Name=d,this.Description=S,this.ProductDefinitional=v,this.PartOfProductDefinitionShape=M,this.type=867548509}}e.IfcShapeAspect=Sm;class qo extends Rn{constructor(E,d,S,v){super(E,d,S,v),this.ContextOfItems=E,this.RepresentationIdentifier=d,this.RepresentationType=S,this.Items=v,this.type=3982875396}}e.IfcShapeModel=qo;class zN extends qo{constructor(E,d,S,v){super(E,d,S,v),this.ContextOfItems=E,this.RepresentationIdentifier=d,this.RepresentationType=S,this.Items=v,this.type=4240577450}}e.IfcShapeRepresentation=zN;class Ar extends DT{constructor(E,d){super(E,d),this.Name=E,this.Description=d,this.type=3692461612}}e.IfcSimpleProperty=Ar;class vT extends lt{constructor(E){super(),this.Name=E,this.type=2273995522}}e.IfcStructuralConnectionCondition=vT;class Wh extends lt{constructor(E){super(),this.Name=E,this.type=2162789131}}e.IfcStructuralLoad=Wh;class jo extends Wh{constructor(E){super(E),this.Name=E,this.type=2525727697}}e.IfcStructuralLoadStatic=jo;class na extends jo{constructor(E,d,S,v){super(E),this.Name=E,this.DeltaT_Constant=d,this.DeltaT_Y=S,this.DeltaT_Z=v,this.type=3408363356}}e.IfcStructuralLoadTemperature=na;class Nm extends Rn{constructor(E,d,S,v){super(E,d,S,v),this.ContextOfItems=E,this.RepresentationIdentifier=d,this.RepresentationType=S,this.Items=v,this.type=2830218821}}e.IfcStyleModel=Nm;class Qo extends ia{constructor(E,d,S){super(),this.Item=E,this.Styles=d,this.Name=S,this.type=3958052878}}e.IfcStyledItem=Qo;class YN extends Nm{constructor(E,d,S,v){super(E,d,S,v),this.ContextOfItems=E,this.RepresentationIdentifier=d,this.RepresentationType=S,this.Items=v,this.type=3049322572}}e.IfcStyledRepresentation=YN;class ra extends $u{constructor(E,d,S){super(E),this.Name=E,this.Side=d,this.Styles=S,this.type=1300840506}}e.IfcSurfaceStyle=ra;class kN extends lt{constructor(E,d,S,v){super(),this.DiffuseTransmissionColour=E,this.DiffuseReflectionColour=d,this.TransmissionColour=S,this.ReflectanceColour=v,this.type=3303107099}}e.IfcSurfaceStyleLighting=kN;class eo extends lt{constructor(E,d){super(),this.RefractionIndex=E,this.DispersionFactor=d,this.type=1607154358}}e.IfcSurfaceStyleRefraction=eo;class Am extends lt{constructor(E){super(),this.SurfaceColour=E,this.type=846575682}}e.IfcSurfaceStyleShading=Am;class ME extends lt{constructor(E){super(),this.Textures=E,this.type=1351298697}}e.IfcSurfaceStyleWithTextures=ME;class oI extends lt{constructor(E,d,S,v){super(),this.RepeatS=E,this.RepeatT=d,this.TextureType=S,this.TextureTransform=v,this.type=626085974}}e.IfcSurfaceTexture=oI;class $o extends $u{constructor(E,d){super(E),this.Name=E,this.StyleOfSymbol=d,this.type=1290481447}}e.IfcSymbolStyle=$o;class KN extends lt{constructor(E,d){super(),this.Name=E,this.Rows=d,this.type=985171141}}e.IfcTable=KN;class ca extends lt{constructor(E,d){super(),this.RowCells=E,this.IsHeading=d,this.type=531007025}}e.IfcTableRow=ca;class Dm extends $a{constructor(E,d,S,v,M,w,G,W){super(E,d,S),this.Purpose=E,this.Description=d,this.UserDefinedPurpose=S,this.TelephoneNumbers=v,this.FacsimileNumbers=M,this.PagerNumber=w,this.ElectronicMailAddresses=G,this.WWWHomePageURL=W,this.type=912023232}}e.IfcTelecomAddress=Dm;class hI extends $u{constructor(E,d,S,v){super(E),this.Name=E,this.TextCharacterAppearance=d,this.TextStyle=S,this.TextFontStyle=v,this.type=1447204868}}e.IfcTextStyle=hI;class ZN extends Sr{constructor(E,d,S,v,M,w){super(E),this.Name=E,this.FontFamily=d,this.FontStyle=S,this.FontVariant=v,this.FontWeight=M,this.FontSize=w,this.type=1983826977}}e.IfcTextStyleFontModel=ZN;class Ae extends lt{constructor(E,d){super(),this.Colour=E,this.BackgroundColour=d,this.type=2636378356}}e.IfcTextStyleForDefinedFont=Ae;class Om extends lt{constructor(E,d,S,v,M,w,G){super(),this.TextIndent=E,this.TextAlign=d,this.TextDecoration=S,this.LetterSpacing=v,this.WordSpacing=M,this.TextTransform=w,this.LineHeight=G,this.type=1640371178}}e.IfcTextStyleTextModel=Om;class $r extends lt{constructor(E,d,S,v,M){super(),this.BoxHeight=E,this.BoxWidth=d,this.BoxSlantAngle=S,this.BoxRotateAngle=v,this.CharacterSpacing=M,this.type=1484833681}}e.IfcTextStyleWithBoxCharacteristics=$r;class _T extends lt{constructor(){super(),this.type=280115917}}e.IfcTextureCoordinate=_T;class so extends _T{constructor(E,d){super(),this.Mode=E,this.Parameter=d,this.type=1742049831}}e.IfcTextureCoordinateGenerator=so;class qN extends _T{constructor(E){super(),this.TextureMaps=E,this.type=2552916305}}e.IfcTextureMap=qN;class Es extends lt{constructor(E){super(),this.Coordinates=E,this.type=1210645708}}e.IfcTextureVertex=Es;class jN extends Xa{constructor(E,d,S,v,M){super(E),this.Material=E,this.SpecificHeatCapacity=d,this.BoilingPoint=S,this.FreezingPoint=v,this.ThermalConductivity=M,this.type=3317419933}}e.IfcThermalMaterialProperties=jN;class qn extends lt{constructor(E,d,S,v,M,w,G,W){super(),this.Name=E,this.Description=d,this.StartTime=S,this.EndTime=v,this.TimeSeriesDataType=M,this.DataOrigin=w,this.UserDefinedDataOrigin=G,this.Unit=W,this.type=3101149627}}e.IfcTimeSeries=qn;class gT extends lt{constructor(E,d){super(),this.ReferencedTimeSeries=E,this.TimeSeriesReferences=d,this.type=1718945513}}e.IfcTimeSeriesReferenceRelationship=gT;class Jo extends lt{constructor(E){super(),this.ListValues=E,this.type=581633288}}e.IfcTimeSeriesValue=Jo;class zh extends ia{constructor(){super(),this.type=1377556343}}e.IfcTopologicalRepresentationItem=zh;class Xu extends qo{constructor(E,d,S,v){super(E,d,S,v),this.ContextOfItems=E,this.RepresentationIdentifier=d,this.RepresentationType=S,this.Items=v,this.type=1735638870}}e.IfcTopologyRepresentation=Xu;class QN extends lt{constructor(E){super(),this.Units=E,this.type=180925521}}e.IfcUnitAssignment=QN;class Gl extends zh{constructor(){super(),this.type=2799835756}}e.IfcVertex=Gl;class LT extends lt{constructor(E,d){super(),this.TextureVertices=E,this.TexturePoints=d,this.type=3304826586}}e.IfcVertexBasedTextureMap=LT;class jn extends Gl{constructor(E){super(),this.VertexGeometry=E,this.type=1907098498}}e.IfcVertexPoint=jn;class $N extends lt{constructor(E,d){super(),this.IntersectingAxes=E,this.OffsetDistances=d,this.type=891718957}}e.IfcVirtualGridIntersection=$N;class De extends Xa{constructor(E,d,S,v,M,w,G,W){super(E),this.Material=E,this.IsPotable=d,this.Hardness=S,this.AlkalinityConcentration=v,this.AcidityConcentration=M,this.ImpuritiesContent=w,this.PHLevel=G,this.DissolvedSolidsContent=W,this.type=1065908215}}e.IfcWaterProperties=De;class Fl extends Qo{constructor(E,d,S){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.type=2442683028}}e.IfcAnnotationOccurrence=Fl;class io extends Fl{constructor(E,d,S){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.type=962685235}}e.IfcAnnotationSurfaceOccurrence=io;class tp extends Fl{constructor(E,d,S){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.type=3612888222}}e.IfcAnnotationSymbolOccurrence=tp;class Qn extends Fl{constructor(E,d,S){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.type=2297822566}}e.IfcAnnotationTextOccurrence=Qn;class lI extends Ju{constructor(E,d,S){super(E,d),this.ProfileType=E,this.ProfileName=d,this.OuterCurve=S,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=lI;class Jr extends Ju{constructor(E,d,S){super(E,d),this.ProfileType=E,this.ProfileName=d,this.Curve=S,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Jr;class JN extends lI{constructor(E,d,S,v){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.OuterCurve=S,this.InnerCurves=v,this.type=2705031697}}e.IfcArbitraryProfileDefWithVoids=JN;class no extends oI{constructor(E,d,S,v,M,w){super(E,d,S,v),this.RepeatS=E,this.RepeatT=d,this.TextureType=S,this.TextureTransform=v,this.RasterFormat=M,this.RasterCode=w,this.type=616511568}}e.IfcBlobTexture=no;class XN extends Jr{constructor(E,d,S,v){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Curve=S,this.Thickness=v,this.type=3150382593}}e.IfcCenterLineProfileDef=XN;class Oc extends Vh{constructor(E,d,S,v){super(E,d,S),this.Location=E,this.ItemReference=d,this.Name=S,this.ReferencedSource=v,this.type=647927063}}e.IfcClassificationReference=Oc;class tA extends ym{constructor(E,d,S,v){super(E),this.Name=E,this.Red=d,this.Green=S,this.Blue=v,this.type=776857604}}e.IfcColourRgb=tA;class ep extends DT{constructor(E,d,S,v){super(E,d),this.Name=E,this.Description=d,this.UsageName=S,this.HasProperties=v,this.type=2542286263}}e.IfcComplexProperty=ep;class eA extends Ju{constructor(E,d,S,v){super(E,d),this.ProfileType=E,this.ProfileName=d,this.Profiles=S,this.Label=v,this.type=1485152156}}e.IfcCompositeProfileDef=eA;class Yh extends zh{constructor(E){super(),this.CfsFaces=E,this.type=370225590}}e.IfcConnectedFaceSet=Yh;class sA extends Us{constructor(E,d){super(),this.CurveOnRelatingElement=E,this.CurveOnRelatedElement=d,this.type=1981873012}}e.IfcConnectionCurveGeometry=sA;class sp extends Tm{constructor(E,d,S,v,M){super(E,d),this.PointOnRelatingElement=E,this.PointOnRelatedElement=d,this.EccentricityInX=S,this.EccentricityInY=v,this.EccentricityInZ=M,this.type=45288368}}e.IfcConnectionPointEccentricity=sp;class iA extends nI{constructor(E,d,S){super(E,d),this.Dimensions=E,this.UnitType=d,this.Name=S,this.type=3050246964}}e.IfcContextDependentUnit=iA;class xT extends nI{constructor(E,d,S,v){super(E,d),this.Dimensions=E,this.UnitType=d,this.Name=S,this.ConversionFactor=v,this.type=2889183280}}e.IfcConversionBasedUnit=xT;class uI extends $u{constructor(E,d,S,v){super(E),this.Name=E,this.CurveFont=d,this.CurveWidth=S,this.CurveColour=v,this.type=3800577675}}e.IfcCurveStyle=uI;class kh extends Ju{constructor(E,d,S,v,M){super(E,d),this.ProfileType=E,this.ProfileName=d,this.ParentProfile=S,this.Operator=v,this.Label=M,this.type=3632507154}}e.IfcDerivedProfileDef=kh;class nA extends ST{constructor(E,d,S,v){super(E,d,S,v),this.Name=E,this.Description=d,this.RelatingDraughtingCallout=S,this.RelatedDraughtingCallout=v,this.type=2273265877}}e.IfcDimensionCalloutRelationship=nA;class ro extends ST{constructor(E,d,S,v){super(E,d,S,v),this.Name=E,this.Description=d,this.RelatingDraughtingCallout=S,this.RelatedDraughtingCallout=v,this.type=1694125774}}e.IfcDimensionPair=ro;class UE extends Vh{constructor(E,d,S){super(E,d,S),this.Location=E,this.ItemReference=d,this.Name=S,this.type=3732053477}}e.IfcDocumentReference=UE;class rA extends Sr{constructor(E){super(E),this.Name=E,this.type=4170525392}}e.IfcDraughtingPreDefinedTextFont=rA;class vc extends zh{constructor(E,d){super(),this.EdgeStart=E,this.EdgeEnd=d,this.type=3900360178}}e.IfcEdge=vc;class cA extends vc{constructor(E,d,S,v){super(E,d),this.EdgeStart=E,this.EdgeEnd=d,this.EdgeGeometry=S,this.SameSense=v,this.type=476780140}}e.IfcEdgeCurve=cA;class PT extends Xa{constructor(E,d,S,v){super(E),this.Material=E,this.ExtendedProperties=d,this.Description=S,this.Name=v,this.type=1860660968}}e.IfcExtendedMaterialProperties=PT;class MT extends zh{constructor(E){super(),this.Bounds=E,this.type=2556980723}}e.IfcFace=MT;class pI extends zh{constructor(E,d){super(),this.Bound=E,this.Orientation=d,this.type=1809719519}}e.IfcFaceBound=pI;class Vl extends pI{constructor(E,d){super(E,d),this.Bound=E,this.Orientation=d,this.type=803316827}}e.IfcFaceOuterBound=Vl;class vm extends MT{constructor(E,d,S){super(E),this.Bounds=E,this.FaceSurface=d,this.SameSense=S,this.type=3008276851}}e.IfcFaceSurface=vm;class UT extends vT{constructor(E,d,S,v,M,w,G){super(E),this.Name=E,this.TensionFailureX=d,this.TensionFailureY=S,this.TensionFailureZ=v,this.CompressionFailureX=M,this.CompressionFailureY=w,this.CompressionFailureZ=G,this.type=4219587988}}e.IfcFailureConnectionCondition=UT;class ip extends $u{constructor(E,d){super(E),this.Name=E,this.FillStyles=d,this.type=738692330}}e.IfcFillAreaStyle=ip;class CT extends Xa{constructor(E,d,S,v,M){super(E),this.Material=E,this.CombustionTemperature=d,this.CarbonContent=S,this.LowerHeatingValue=v,this.HigherHeatingValue=M,this.type=3857492461}}e.IfcFuelProperties=CT;class EI extends Xa{constructor(E,d,S,v){super(E),this.Material=E,this.MolecularWeight=d,this.Porosity=S,this.MassDensity=v,this.type=803998398}}e.IfcGeneralMaterialProperties=EI;class fI extends ds{constructor(E,d,S,v,M,w,G){super(E,d),this.ProfileName=E,this.ProfileDefinition=d,this.PhysicalWeight=S,this.Perimeter=v,this.MinimumPlateThickness=M,this.MaximumPlateThickness=w,this.CrossSectionArea=G,this.type=1446786286}}e.IfcGeneralProfileProperties=fI;class _m extends Rm{constructor(E,d,S,v,M,w){super(E,d),this.ContextIdentifier=E,this.ContextType=d,this.CoordinateSpaceDimension=S,this.Precision=v,this.WorldCoordinateSystem=M,this.TrueNorth=w,this.type=3448662350}}e.IfcGeometricRepresentationContext=_m;class Ve extends ia{constructor(){super(),this.type=2453401579}}e.IfcGeometricRepresentationItem=Ve;class aA extends _m{constructor(E,d,S,v,M,w){super(E,d,new Q(0),null,new Io(0),null),this.ContextIdentifier=E,this.ContextType=d,this.ParentContext=S,this.TargetScale=v,this.TargetView=M,this.UserDefinedTargetView=w,this.type=4142052618}}e.IfcGeometricRepresentationSubContext=aA;class gm extends Ve{constructor(E){super(),this.Elements=E,this.type=3590301190}}e.IfcGeometricSet=gm;class II extends Kn{constructor(E,d){super(),this.PlacementLocation=E,this.PlacementRefDirection=d,this.type=178086475}}e.IfcGridPlacement=II;class co extends Ve{constructor(E,d){super(),this.BaseSurface=E,this.AgreementFlag=d,this.type=812098782}}e.IfcHalfSpaceSolid=co;class oA extends Xa{constructor(E,d,S,v,M,w){super(E),this.Material=E,this.UpperVaporResistanceFactor=d,this.LowerVaporResistanceFactor=S,this.IsothermalMoistureCapacity=v,this.VaporPermeability=M,this.MoistureDiffusivity=w,this.type=2445078500}}e.IfcHygroscopicMaterialProperties=oA;class yI extends oI{constructor(E,d,S,v,M){super(E,d,S,v),this.RepeatS=E,this.RepeatT=d,this.TextureType=S,this.TextureTransform=v,this.UrlReference=M,this.type=3905492369}}e.IfcImageTexture=yI;class hA extends qn{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.Name=E,this.Description=d,this.StartTime=S,this.EndTime=v,this.TimeSeriesDataType=M,this.DataOrigin=w,this.UserDefinedDataOrigin=G,this.Unit=W,this.Values=Y,this.type=3741457305}}e.IfcIrregularTimeSeries=hA;class CE extends Ve{constructor(E,d,S,v){super(),this.Name=E,this.LightColour=d,this.AmbientIntensity=S,this.Intensity=v,this.type=1402838566}}e.IfcLightSource=CE;class lA extends CE{constructor(E,d,S,v){super(E,d,S,v),this.Name=E,this.LightColour=d,this.AmbientIntensity=S,this.Intensity=v,this.type=125510826}}e.IfcLightSourceAmbient=lA;class Lm extends CE{constructor(E,d,S,v,M){super(E,d,S,v),this.Name=E,this.LightColour=d,this.AmbientIntensity=S,this.Intensity=v,this.Orientation=M,this.type=2604431987}}e.IfcLightSourceDirectional=Lm;class uA extends CE{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v),this.Name=E,this.LightColour=d,this.AmbientIntensity=S,this.Intensity=v,this.Position=M,this.ColourAppearance=w,this.ColourTemperature=G,this.LuminousFlux=W,this.LightEmissionSource=Y,this.LightDistributionDataSource=st,this.type=4266656042}}e.IfcLightSourceGoniometric=uA;class xm extends CE{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v),this.Name=E,this.LightColour=d,this.AmbientIntensity=S,this.Intensity=v,this.Position=M,this.Radius=w,this.ConstantAttenuation=G,this.DistanceAttenuation=W,this.QuadricAttenuation=Y,this.type=1520743889}}e.IfcLightSourcePositional=xm;class pA extends xm{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft){super(E,d,S,v,M,w,G,W,Y),this.Name=E,this.LightColour=d,this.AmbientIntensity=S,this.Intensity=v,this.Position=M,this.Radius=w,this.ConstantAttenuation=G,this.DistanceAttenuation=W,this.QuadricAttenuation=Y,this.Orientation=st,this.ConcentrationExponent=At,this.SpreadAngle=Mt,this.BeamWidthAngle=Ft,this.type=3422422726}}e.IfcLightSourceSpot=pA;class EA extends Kn{constructor(E,d){super(),this.PlacementRelTo=E,this.RelativePlacement=d,this.type=2624227202}}e.IfcLocalPlacement=EA;class bE extends zh{constructor(){super(),this.type=1008929658}}e.IfcLoop=bE;class TI extends ia{constructor(E,d){super(),this.MappingSource=E,this.MappingTarget=d,this.type=2347385850}}e.IfcMappedItem=TI;class fA extends AT{constructor(E,d,S,v){super(E,d,S),this.Name=E,this.Description=d,this.Representations=S,this.RepresentedMaterial=v,this.type=2022407955}}e.IfcMaterialDefinitionRepresentation=fA;class Kh extends NT{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w),this.Material=E,this.DynamicViscosity=d,this.YoungModulus=S,this.ShearModulus=v,this.PoissonRatio=M,this.ThermalExpansionCoefficient=w,this.CompressiveStrength=G,this.MaxAggregateSize=W,this.AdmixturesDescription=Y,this.Workability=st,this.ProtectivePoreRatio=At,this.WaterImpermeability=Mt,this.type=1430189142}}e.IfcMechanicalConcreteMaterialProperties=Kh;class dI extends PE{constructor(E,d,S,v){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.type=219451334}}e.IfcObjectDefinition=dI;class Pm extends Ve{constructor(E){super(),this.RepeatFactor=E,this.type=2833995503}}e.IfcOneDirectionRepeatFactor=Pm;class IA extends Yh{constructor(E){super(E),this.CfsFaces=E,this.type=2665983363}}e.IfcOpenShell=IA;class bT extends vc{constructor(E,d){super(new Io(0),new Io(0)),this.EdgeElement=E,this.Orientation=d,this.type=1029017970}}e.IfcOrientedEdge=bT;class Dr extends Ju{constructor(E,d,S){super(E,d),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.type=2529465313}}e.IfcParameterizedProfileDef=Dr;class Zh extends zh{constructor(E){super(),this.EdgeList=E,this.type=2519244187}}e.IfcPath=Zh;class yA extends vi{constructor(E,d,S,v,M,w){super(E,d),this.Name=E,this.Description=d,this.HasQuantities=S,this.Discrimination=v,this.Quality=M,this.Usage=w,this.type=3021840470}}e.IfcPhysicalComplexQuantity=yA;class wT extends oI{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v),this.RepeatS=E,this.RepeatT=d,this.TextureType=S,this.TextureTransform=v,this.Width=M,this.Height=w,this.ColourComponents=G,this.Pixel=W,this.type=597895409}}e.IfcPixelTexture=wT;class wE extends Ve{constructor(E){super(),this.Location=E,this.type=2004835150}}e.IfcPlacement=wE;class Mm extends Ve{constructor(E,d){super(),this.SizeInX=E,this.SizeInY=d,this.type=1663979128}}e.IfcPlanarExtent=Mm;class mI extends Ve{constructor(){super(),this.type=2067069095}}e.IfcPoint=mI;class RI extends mI{constructor(E,d){super(),this.BasisCurve=E,this.PointParameter=d,this.type=4022376103}}e.IfcPointOnCurve=RI;class SI extends mI{constructor(E,d,S){super(),this.BasisSurface=E,this.PointParameterU=d,this.PointParameterV=S,this.type=1423911732}}e.IfcPointOnSurface=SI;class Um extends bE{constructor(E){super(),this.Polygon=E,this.type=2924175390}}e.IfcPolyLoop=Um;class Cm extends co{constructor(E,d,S,v){super(E,d),this.BaseSurface=E,this.AgreementFlag=d,this.Position=S,this.PolygonalBoundary=v,this.type=2775532180}}e.IfcPolygonalBoundedHalfSpace=Cm;class bm extends LE{constructor(E){super(E),this.Name=E,this.type=759155922}}e.IfcPreDefinedColour=bm;class wm extends LE{constructor(E){super(E),this.Name=E,this.type=2559016684}}e.IfcPreDefinedCurveFont=wm;class TA extends Ce{constructor(E){super(E),this.Name=E,this.type=433424934}}e.IfcPreDefinedDimensionSymbol=TA;class BT extends Ce{constructor(E){super(E),this.Name=E,this.type=179317114}}e.IfcPreDefinedPointMarkerSymbol=BT;class qh extends AT{constructor(E,d,S){super(E,d,S),this.Name=E,this.Description=d,this.Representations=S,this.type=673634403}}e.IfcProductDefinitionShape=qh;class dA extends Ar{constructor(E,d,S,v,M){super(E,d),this.Name=E,this.Description=d,this.UpperBoundValue=S,this.LowerBoundValue=v,this.Unit=M,this.type=871118103}}e.IfcPropertyBoundedValue=dA;class qs extends PE{constructor(E,d,S,v){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.type=1680319473}}e.IfcPropertyDefinition=qs;class Bm extends Ar{constructor(E,d,S,v){super(E,d),this.Name=E,this.Description=d,this.EnumerationValues=S,this.EnumerationReference=v,this.type=4166981789}}e.IfcPropertyEnumeratedValue=Bm;class GT extends Ar{constructor(E,d,S,v){super(E,d),this.Name=E,this.Description=d,this.ListValues=S,this.Unit=v,this.type=2752243245}}e.IfcPropertyListValue=GT;class BE extends Ar{constructor(E,d,S,v){super(E,d),this.Name=E,this.Description=d,this.UsageName=S,this.PropertyReference=v,this.type=941946838}}e.IfcPropertyReferenceValue=BE;class Ki extends qs{constructor(E,d,S,v){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.type=3357820518}}e.IfcPropertySetDefinition=Ki;class Hl extends Ar{constructor(E,d,S,v){super(E,d),this.Name=E,this.Description=d,this.NominalValue=S,this.Unit=v,this.type=3650150729}}e.IfcPropertySingleValue=Hl;class Gm extends Ar{constructor(E,d,S,v,M,w,G){super(E,d),this.Name=E,this.Description=d,this.DefiningValues=S,this.DefinedValues=v,this.Expression=M,this.DefiningUnit=w,this.DefinedUnit=G,this.type=110355661}}e.IfcPropertyTableValue=Gm;class Wl extends Dr{constructor(E,d,S,v,M){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.XDim=v,this.YDim=M,this.type=3615266464}}e.IfcRectangleProfileDef=Wl;class mA extends qn{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W),this.Name=E,this.Description=d,this.StartTime=S,this.EndTime=v,this.TimeSeriesDataType=M,this.DataOrigin=w,this.UserDefinedDataOrigin=G,this.Unit=W,this.TimeStep=Y,this.Values=st,this.type=3413951693}}e.IfcRegularTimeSeries=mA;class RA extends Ki{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.DefinitionType=M,this.ReinforcementSectionDefinitions=w,this.type=3765753017}}e.IfcReinforcementDefinitionProperties=RA;class np extends PE{constructor(E,d,S,v){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.type=478536968}}e.IfcRelationship=np;class SA extends Wl{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.XDim=v,this.YDim=M,this.RoundingRadius=w,this.type=2778083089}}e.IfcRoundedRectangleProfileDef=SA;class NA extends Ve{constructor(E,d,S){super(),this.SpineCurve=E,this.CrossSections=d,this.CrossSectionPositions=S,this.type=1509187699}}e.IfcSectionedSpine=NA;class Fm extends Ki{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.PredefinedType=M,this.UpperValue=w,this.MostUsedValue=G,this.LowerValue=W,this.type=2411513650}}e.IfcServiceLifeFactor=Fm;class AA extends Ve{constructor(E){super(),this.SbsmBoundary=E,this.type=4124623270}}e.IfcShellBasedSurfaceModel=AA;class DA extends vT{constructor(E,d,S,v){super(E),this.Name=E,this.SlippageX=d,this.SlippageY=S,this.SlippageZ=v,this.type=2609359061}}e.IfcSlippageConnectionCondition=DA;class GE extends Ve{constructor(){super(),this.type=723233188}}e.IfcSolidModel=GE;class NI extends Ki{constructor(E,d,S,v,M,w,G){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.IsAttenuating=M,this.SoundScale=w,this.SoundValues=G,this.type=2485662743}}e.IfcSoundProperties=NI;class FT extends Ki{constructor(E,d,S,v,M,w,G){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.SoundLevelTimeSeries=M,this.Frequency=w,this.SoundLevelSingleValue=G,this.type=1202362311}}e.IfcSoundValue=FT;class Vm extends Ki{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableValueRatio=M,this.ThermalLoadSource=w,this.PropertySource=G,this.SourceDescription=W,this.MaximumValue=Y,this.MinimumValue=st,this.ThermalLoadTimeSeriesValues=At,this.UserDefinedThermalLoadSource=Mt,this.UserDefinedPropertySource=Ft,this.ThermalLoadType=ie,this.type=390701378}}e.IfcSpaceThermalLoadProperties=Vm;class zl extends jo{constructor(E,d,S,v,M,w,G){super(E),this.Name=E,this.LinearForceX=d,this.LinearForceY=S,this.LinearForceZ=v,this.LinearMomentX=M,this.LinearMomentY=w,this.LinearMomentZ=G,this.type=1595516126}}e.IfcStructuralLoadLinearForce=zl;class OA extends jo{constructor(E,d,S,v){super(E),this.Name=E,this.PlanarForceX=d,this.PlanarForceY=S,this.PlanarForceZ=v,this.type=2668620305}}e.IfcStructuralLoadPlanarForce=OA;class _c extends jo{constructor(E,d,S,v,M,w,G){super(E),this.Name=E,this.DisplacementX=d,this.DisplacementY=S,this.DisplacementZ=v,this.RotationalDisplacementRX=M,this.RotationalDisplacementRY=w,this.RotationalDisplacementRZ=G,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=_c;class Hm extends _c{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.Name=E,this.DisplacementX=d,this.DisplacementY=S,this.DisplacementZ=v,this.RotationalDisplacementRX=M,this.RotationalDisplacementRY=w,this.RotationalDisplacementRZ=G,this.Distortion=W,this.type=1973038258}}e.IfcStructuralLoadSingleDisplacementDistortion=Hm;class FE extends jo{constructor(E,d,S,v,M,w,G){super(E),this.Name=E,this.ForceX=d,this.ForceY=S,this.ForceZ=v,this.MomentX=M,this.MomentY=w,this.MomentZ=G,this.type=1597423693}}e.IfcStructuralLoadSingleForce=FE;class Wm extends FE{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.Name=E,this.ForceX=d,this.ForceY=S,this.ForceZ=v,this.MomentX=M,this.MomentY=w,this.MomentZ=G,this.WarpingMoment=W,this.type=1190533807}}e.IfcStructuralLoadSingleForceWarping=Wm;class Yl extends fI{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or,sl,ui,Ap,po,Xn,tr){super(E,d,S,v,M,w,G),this.ProfileName=E,this.ProfileDefinition=d,this.PhysicalWeight=S,this.Perimeter=v,this.MinimumPlateThickness=M,this.MaximumPlateThickness=w,this.CrossSectionArea=G,this.TorsionalConstantX=W,this.MomentOfInertiaYZ=Y,this.MomentOfInertiaY=st,this.MomentOfInertiaZ=At,this.WarpingConstant=Mt,this.ShearCentreZ=Ft,this.ShearCentreY=ie,this.ShearDeformationAreaZ=ns,this.ShearDeformationAreaY=Jn,this.MaximumSectionModulusY=Or,this.MinimumSectionModulusY=sl,this.MaximumSectionModulusZ=ui,this.MinimumSectionModulusZ=Ap,this.TorsionalSectionModulus=po,this.CentreOfGravityInX=Xn,this.CentreOfGravityInY=tr,this.type=3843319758}}e.IfcStructuralProfileProperties=Yl;class vA extends Yl{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or,sl,ui,Ap,po,Xn,tr,uv,Bs,pv,Ev){super(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or,sl,ui,Ap,po,Xn,tr),this.ProfileName=E,this.ProfileDefinition=d,this.PhysicalWeight=S,this.Perimeter=v,this.MinimumPlateThickness=M,this.MaximumPlateThickness=w,this.CrossSectionArea=G,this.TorsionalConstantX=W,this.MomentOfInertiaYZ=Y,this.MomentOfInertiaY=st,this.MomentOfInertiaZ=At,this.WarpingConstant=Mt,this.ShearCentreZ=Ft,this.ShearCentreY=ie,this.ShearDeformationAreaZ=ns,this.ShearDeformationAreaY=Jn,this.MaximumSectionModulusY=Or,this.MinimumSectionModulusY=sl,this.MaximumSectionModulusZ=ui,this.MinimumSectionModulusZ=Ap,this.TorsionalSectionModulus=po,this.CentreOfGravityInX=Xn,this.CentreOfGravityInY=tr,this.ShearAreaZ=uv,this.ShearAreaY=Bs,this.PlasticShapeFactorY=pv,this.PlasticShapeFactorZ=Ev,this.type=3653947884}}e.IfcStructuralSteelProfileProperties=vA;class AI extends vc{constructor(E,d,S){super(E,d),this.EdgeStart=E,this.EdgeEnd=d,this.ParentEdge=S,this.type=2233826070}}e.IfcSubedge=AI;class He extends Ve{constructor(){super(),this.type=2513912981}}e.IfcSurface=He;class VT extends Am{constructor(E,d,S,v,M,w,G,W,Y){super(E),this.SurfaceColour=E,this.Transparency=d,this.DiffuseColour=S,this.TransmissionColour=v,this.DiffuseTransmissionColour=M,this.ReflectionColour=w,this.SpecularColour=G,this.SpecularHighlight=W,this.ReflectanceMethod=Y,this.type=1878645084}}e.IfcSurfaceStyleRendering=VT;class kl extends GE{constructor(E,d){super(),this.SweptArea=E,this.Position=d,this.type=2247615214}}e.IfcSweptAreaSolid=kl;class _A extends GE{constructor(E,d,S,v,M){super(),this.Directrix=E,this.Radius=d,this.InnerRadius=S,this.StartParam=v,this.EndParam=M,this.type=1260650574}}e.IfcSweptDiskSolid=_A;class Kl extends He{constructor(E,d){super(),this.SweptCurve=E,this.Position=d,this.type=230924584}}e.IfcSweptSurface=Kl;class rp extends Dr{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.Depth=v,this.FlangeWidth=M,this.WebThickness=w,this.FlangeThickness=G,this.FilletRadius=W,this.FlangeEdgeRadius=Y,this.WebEdgeRadius=st,this.WebSlope=At,this.FlangeSlope=Mt,this.CentreOfGravityInY=Ft,this.type=3071757647}}e.IfcTShapeProfileDef=rp;class zm extends tp{constructor(E,d,S,v){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.AnnotatedCurve=v,this.type=3028897424}}e.IfcTerminatorSymbol=zm;class DI extends Ve{constructor(E,d,S){super(),this.Literal=E,this.Placement=d,this.Path=S,this.type=4282788508}}e.IfcTextLiteral=DI;class gA extends DI{constructor(E,d,S,v,M){super(E,d,S),this.Literal=E,this.Placement=d,this.Path=S,this.Extent=v,this.BoxAlignment=M,this.type=3124975700}}e.IfcTextLiteralWithExtent=gA;class LA extends Dr{constructor(E,d,S,v,M,w,G){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.BottomXDim=v,this.TopXDim=M,this.YDim=w,this.TopXOffset=G,this.type=2715220739}}e.IfcTrapeziumProfileDef=LA;class xA extends Pm{constructor(E,d){super(E),this.RepeatFactor=E,this.SecondRepeatFactor=d,this.type=1345879162}}e.IfcTwoDirectionRepeatFactor=xA;class cp extends dI{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.type=1628702193}}e.IfcTypeObject=cp;class OI extends cp{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.type=2347495698}}e.IfcTypeProduct=OI;class PA extends Dr{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.Depth=v,this.FlangeWidth=M,this.WebThickness=w,this.FlangeThickness=G,this.FilletRadius=W,this.EdgeRadius=Y,this.FlangeSlope=st,this.CentreOfGravityInX=At,this.type=427810014}}e.IfcUShapeProfileDef=PA;class Ym extends Ve{constructor(E,d){super(),this.Orientation=E,this.Magnitude=d,this.type=1417489154}}e.IfcVector=Ym;class km extends bE{constructor(E){super(),this.LoopVertex=E,this.type=2759199220}}e.IfcVertexLoop=km;class vI extends Ki{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.LiningDepth=M,this.LiningThickness=w,this.TransomThickness=G,this.MullionThickness=W,this.FirstTransomOffset=Y,this.SecondTransomOffset=st,this.FirstMullionOffset=At,this.SecondMullionOffset=Mt,this.ShapeAspectStyle=Ft,this.type=336235671}}e.IfcWindowLiningProperties=vI;class MA extends Ki{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.OperationType=M,this.PanelPosition=w,this.FrameDepth=G,this.FrameThickness=W,this.ShapeAspectStyle=Y,this.type=512836454}}e.IfcWindowPanelProperties=MA;class _I extends OI{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ConstructionType=Y,this.OperationType=st,this.ParameterTakesPrecedence=At,this.Sizeable=Mt,this.type=1299126871}}e.IfcWindowStyle=_I;class UA extends Dr{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.Depth=v,this.FlangeWidth=M,this.WebThickness=w,this.FlangeThickness=G,this.FilletRadius=W,this.EdgeRadius=Y,this.type=2543172580}}e.IfcZShapeProfileDef=UA;class gI extends Fl{constructor(E,d,S){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.type=3288037868}}e.IfcAnnotationCurveOccurrence=gI;class CA extends Ve{constructor(E,d){super(),this.OuterBoundary=E,this.InnerBoundaries=d,this.type=669184980}}e.IfcAnnotationFillArea=CA;class bA extends Fl{constructor(E,d,S,v,M){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.FillStyleTarget=v,this.GlobalOrLocal=M,this.type=2265737646}}e.IfcAnnotationFillAreaOccurrence=bA;class wA extends Ve{constructor(E,d){super(),this.Item=E,this.TextureCoordinates=d,this.type=1302238472}}e.IfcAnnotationSurface=wA;class BA extends wE{constructor(E,d){super(E),this.Location=E,this.Axis=d,this.type=4261334040}}e.IfcAxis1Placement=BA;class Km extends wE{constructor(E,d){super(E),this.Location=E,this.RefDirection=d,this.type=3125803723}}e.IfcAxis2Placement2D=Km;class LI extends wE{constructor(E,d,S){super(E),this.Location=E,this.Axis=d,this.RefDirection=S,this.type=2740243338}}e.IfcAxis2Placement3D=LI;class Zm extends Ve{constructor(E,d,S){super(),this.Operator=E,this.FirstOperand=d,this.SecondOperand=S,this.type=2736907675}}e.IfcBooleanResult=Zm;class xI extends He{constructor(){super(),this.type=4182860854}}e.IfcBoundedSurface=xI;class GA extends Ve{constructor(E,d,S,v){super(),this.Corner=E,this.XDim=d,this.YDim=S,this.ZDim=v,this.type=2581212453}}e.IfcBoundingBox=GA;class PI extends co{constructor(E,d,S){super(E,d),this.BaseSurface=E,this.AgreementFlag=d,this.Enclosure=S,this.type=2713105998}}e.IfcBoxedHalfSpace=PI;class FA extends Dr{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.Depth=v,this.Width=M,this.WallThickness=w,this.Girth=G,this.InternalFilletRadius=W,this.CentreOfGravityInX=Y,this.type=2898889636}}e.IfcCShapeProfileDef=FA;class VA extends mI{constructor(E){super(),this.Coordinates=E,this.type=1123145078}}e.IfcCartesianPoint=VA;class HT extends Ve{constructor(E,d,S,v){super(),this.Axis1=E,this.Axis2=d,this.LocalOrigin=S,this.Scale=v,this.type=59481748}}e.IfcCartesianTransformationOperator=HT;class $n extends HT{constructor(E,d,S,v){super(E,d,S,v),this.Axis1=E,this.Axis2=d,this.LocalOrigin=S,this.Scale=v,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=$n;class HA extends $n{constructor(E,d,S,v,M){super(E,d,S,v),this.Axis1=E,this.Axis2=d,this.LocalOrigin=S,this.Scale=v,this.Scale2=M,this.type=3486308946}}e.IfcCartesianTransformationOperator2DnonUniform=HA;class Xo extends HT{constructor(E,d,S,v,M){super(E,d,S,v),this.Axis1=E,this.Axis2=d,this.LocalOrigin=S,this.Scale=v,this.Axis3=M,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Xo;class WA extends Xo{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M),this.Axis1=E,this.Axis2=d,this.LocalOrigin=S,this.Scale=v,this.Axis3=M,this.Scale2=w,this.Scale3=G,this.type=1416205885}}e.IfcCartesianTransformationOperator3DnonUniform=WA;class VE extends Dr{constructor(E,d,S,v){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.Radius=v,this.type=1383045692}}e.IfcCircleProfileDef=VE;class WT extends Yh{constructor(E){super(E),this.CfsFaces=E,this.type=2205249479}}e.IfcClosedShell=WT;class MI extends Ve{constructor(E,d,S){super(),this.Transition=E,this.SameSense=d,this.ParentCurve=S,this.type=2485617015}}e.IfcCompositeCurveSegment=MI;class zA extends Dr{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.OverallHeight=v,this.BaseWidth2=M,this.Radius=w,this.HeadWidth=G,this.HeadDepth2=W,this.HeadDepth3=Y,this.WebThickness=st,this.BaseWidth4=At,this.BaseDepth1=Mt,this.BaseDepth2=Ft,this.BaseDepth3=ie,this.CentreOfGravityInY=ns,this.type=4133800736}}e.IfcCraneRailAShapeProfileDef=zA;class YA extends Dr{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.OverallHeight=v,this.HeadWidth=M,this.Radius=w,this.HeadDepth2=G,this.HeadDepth3=W,this.WebThickness=Y,this.BaseDepth1=st,this.BaseDepth2=At,this.CentreOfGravityInY=Mt,this.type=194851669}}e.IfcCraneRailFShapeProfileDef=YA;class ap extends Ve{constructor(E){super(),this.Position=E,this.type=2506170314}}e.IfcCsgPrimitive3D=ap;class kA extends GE{constructor(E){super(),this.TreeRootExpression=E,this.type=2147822146}}e.IfcCsgSolid=kA;class th extends Ve{constructor(){super(),this.type=2601014836}}e.IfcCurve=th;class UI extends xI{constructor(E,d,S){super(),this.BasisSurface=E,this.OuterBoundary=d,this.InnerBoundaries=S,this.type=2827736869}}e.IfcCurveBoundedPlane=UI;class zT extends Ve{constructor(E,d){super(),this.Definition=E,this.Target=d,this.type=693772133}}e.IfcDefinedSymbol=zT;class qm extends gI{constructor(E,d,S){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.type=606661476}}e.IfcDimensionCurve=qm;class KA extends zm{constructor(E,d,S,v,M){super(E,d,S,v),this.Item=E,this.Styles=d,this.Name=S,this.AnnotatedCurve=v,this.Role=M,this.type=4054601972}}e.IfcDimensionCurveTerminator=KA;class YT extends Ve{constructor(E){super(),this.DirectionRatios=E,this.type=32440307}}e.IfcDirection=YT;class kT extends Ki{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.LiningDepth=M,this.LiningThickness=w,this.ThresholdDepth=G,this.ThresholdThickness=W,this.TransomThickness=Y,this.TransomOffset=st,this.LiningOffset=At,this.ThresholdOffset=Mt,this.CasingThickness=Ft,this.CasingDepth=ie,this.ShapeAspectStyle=ns,this.type=2963535650}}e.IfcDoorLiningProperties=kT;class ZA extends Ki{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.PanelDepth=M,this.PanelOperation=w,this.PanelWidth=G,this.PanelPosition=W,this.ShapeAspectStyle=Y,this.type=1714330368}}e.IfcDoorPanelProperties=ZA;class CI extends OI{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.OperationType=Y,this.ConstructionType=st,this.ParameterTakesPrecedence=At,this.Sizeable=Mt,this.type=526551008}}e.IfcDoorStyle=CI;class HE extends Ve{constructor(E){super(),this.Contents=E,this.type=3073041342}}e.IfcDraughtingCallout=HE;class KT extends bm{constructor(E){super(E),this.Name=E,this.type=445594917}}e.IfcDraughtingPreDefinedColour=KT;class ZT extends wm{constructor(E){super(E),this.Name=E,this.type=4006246654}}e.IfcDraughtingPreDefinedCurveFont=ZT;class qT extends bE{constructor(E){super(),this.EdgeList=E,this.type=1472233963}}e.IfcEdgeLoop=qT;class qA extends Ki{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.MethodOfMeasurement=M,this.Quantities=w,this.type=1883228015}}e.IfcElementQuantity=qA;class Xr extends OI{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=339256511}}e.IfcElementType=Xr;class jm extends He{constructor(E){super(),this.Position=E,this.type=2777663545}}e.IfcElementarySurface=jm;class Qm extends Dr{constructor(E,d,S,v,M){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.SemiAxis1=v,this.SemiAxis2=M,this.type=2835456948}}e.IfcEllipseProfileDef=Qm;class $m extends Ki{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.EnergySequence=M,this.UserDefinedEnergySequence=w,this.type=80994333}}e.IfcEnergyProperties=$m;class jA extends kl{constructor(E,d,S,v){super(E,d),this.SweptArea=E,this.Position=d,this.ExtrudedDirection=S,this.Depth=v,this.type=477187591}}e.IfcExtrudedAreaSolid=jA;class QA extends Ve{constructor(E){super(),this.FbsmFaces=E,this.type=2047409740}}e.IfcFaceBasedSurfaceModel=QA;class $A extends Ve{constructor(E,d,S,v,M){super(),this.HatchLineAppearance=E,this.StartOfNextHatchLine=d,this.PointOfReferenceHatchLine=S,this.PatternStart=v,this.HatchLineAngle=M,this.type=374418227}}e.IfcFillAreaStyleHatching=$A;class JA extends Ve{constructor(E){super(),this.Symbol=E,this.type=4203026998}}e.IfcFillAreaStyleTileSymbolWithStyle=JA;class XA extends Ve{constructor(E,d,S){super(),this.TilingPattern=E,this.Tiles=d,this.TilingScale=S,this.type=315944413}}e.IfcFillAreaStyleTiles=XA;class jh extends Ki{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or,sl,ui){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.PropertySource=M,this.FlowConditionTimeSeries=w,this.VelocityTimeSeries=G,this.FlowrateTimeSeries=W,this.Fluid=Y,this.PressureTimeSeries=st,this.UserDefinedPropertySource=At,this.TemperatureSingleValue=Mt,this.WetBulbTemperatureSingleValue=Ft,this.WetBulbTemperatureTimeSeries=ie,this.TemperatureTimeSeries=ns,this.FlowrateSingleValue=Jn,this.FlowConditionSingleValue=Or,this.VelocitySingleValue=sl,this.PressureSingleValue=ui,this.type=3455213021}}e.IfcFluidFlowProperties=jh;class jT extends Xr{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=4238390223}}e.IfcFurnishingElementType=jT;class WE extends jT{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.AssemblyPlace=st,this.type=1268542332}}e.IfcFurnitureType=WE;class tD extends gm{constructor(E){super(E),this.Elements=E,this.type=987898635}}e.IfcGeometricCurveSet=tD;class zE extends Dr{constructor(E,d,S,v,M,w,G,W){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.OverallWidth=v,this.OverallDepth=M,this.WebThickness=w,this.FlangeThickness=G,this.FilletRadius=W,this.type=1484403080}}e.IfcIShapeProfileDef=zE;class Jm extends Dr{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.Depth=v,this.Width=M,this.Thickness=w,this.FilletRadius=G,this.EdgeRadius=W,this.LegSlope=Y,this.CentreOfGravityInX=st,this.CentreOfGravityInY=At,this.type=572779678}}e.IfcLShapeProfileDef=Jm;class eD extends th{constructor(E,d){super(),this.Pnt=E,this.Dir=d,this.type=1281925730}}e.IfcLine=eD;class op extends GE{constructor(E){super(),this.Outer=E,this.type=1425443689}}e.IfcManifoldSolidBrep=op;class Qh extends dI{constructor(E,d,S,v,M){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=3888040117}}e.IfcObject=Qh;class Xm extends th{constructor(E,d,S){super(),this.BasisCurve=E,this.Distance=d,this.SelfIntersect=S,this.type=3388369263}}e.IfcOffsetCurve2D=Xm;class YE extends th{constructor(E,d,S,v){super(),this.BasisCurve=E,this.Distance=d,this.SelfIntersect=S,this.RefDirection=v,this.type=3505215534}}e.IfcOffsetCurve3D=YE;class sD extends Ki{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.OperationType=M,this.PanelPosition=w,this.FrameDepth=G,this.FrameThickness=W,this.ShapeAspectStyle=Y,this.type=3566463478}}e.IfcPermeableCoveringProperties=sD;class hp extends Mm{constructor(E,d,S){super(E,d),this.SizeInX=E,this.SizeInY=d,this.Placement=S,this.type=603570806}}e.IfcPlanarBox=hp;class tR extends jm{constructor(E){super(E),this.Position=E,this.type=220341763}}e.IfcPlane=tR;class QT extends Qh{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=2945172077}}e.IfcProcess=QT;class gc extends Qh{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.type=4208778838}}e.IfcProduct=gc;class is extends Qh{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.LongName=w,this.Phase=G,this.RepresentationContexts=W,this.UnitsInContext=Y,this.type=103090709}}e.IfcProject=is;class $T extends gI{constructor(E,d,S){super(E,d,S),this.Item=E,this.Styles=d,this.Name=S,this.type=4194566429}}e.IfcProjectionCurve=$T;class JT extends Ki{constructor(E,d,S,v,M){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.HasProperties=M,this.type=1451395588}}e.IfcPropertySet=JT;class iD extends gc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.ProxyType=W,this.Tag=Y,this.type=3219374653}}e.IfcProxy=iD;class XT extends Wl{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.XDim=v,this.YDim=M,this.WallThickness=w,this.InnerFilletRadius=G,this.OuterFilletRadius=W,this.type=2770003689}}e.IfcRectangleHollowProfileDef=XT;class nD extends ap{constructor(E,d,S,v){super(E),this.Position=E,this.XLength=d,this.YLength=S,this.Height=v,this.type=2798486643}}e.IfcRectangularPyramid=nD;class bI extends xI{constructor(E,d,S,v,M,w,G){super(),this.BasisSurface=E,this.U1=d,this.V1=S,this.U2=v,this.V2=M,this.Usense=w,this.Vsense=G,this.type=3454111270}}e.IfcRectangularTrimmedSurface=bI;class Lc extends np{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.type=3939117080}}e.IfcRelAssigns=Lc;class lp extends Lc{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingActor=G,this.ActingRole=W,this.type=1683148259}}e.IfcRelAssignsToActor=lp;class kE extends Lc{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingControl=G,this.type=2495723537}}e.IfcRelAssignsToControl=kE;class rD extends Lc{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingGroup=G,this.type=1307041759}}e.IfcRelAssignsToGroup=rD;class KE extends Lc{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingProcess=G,this.QuantityInProcess=W,this.type=4278684876}}e.IfcRelAssignsToProcess=KE;class cD extends Lc{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingProduct=G,this.type=2857406711}}e.IfcRelAssignsToProduct=cD;class aD extends kE{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingControl=G,this.type=3372526763}}e.IfcRelAssignsToProjectOrder=aD;class oD extends Lc{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingResource=G,this.type=205026976}}e.IfcRelAssignsToResource=oD;class ao extends np{constructor(E,d,S,v,M){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.type=1865459582}}e.IfcRelAssociates=ao;class hD extends ao{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingAppliedValue=w,this.type=1327628568}}e.IfcRelAssociatesAppliedValue=hD;class lD extends ao{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingApproval=w,this.type=4095574036}}e.IfcRelAssociatesApproval=lD;class uD extends ao{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingClassification=w,this.type=919958153}}e.IfcRelAssociatesClassification=uD;class wI extends ao{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.Intent=w,this.RelatingConstraint=G,this.type=2728634034}}e.IfcRelAssociatesConstraint=wI;class pD extends ao{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingDocument=w,this.type=982818633}}e.IfcRelAssociatesDocument=pD;class eR extends ao{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingLibrary=w,this.type=3840914261}}e.IfcRelAssociatesLibrary=eR;class ZE extends ao{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingMaterial=w,this.type=2655215786}}e.IfcRelAssociatesMaterial=ZE;class ED extends ao{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingProfileProperties=w,this.ProfileSectionLocation=G,this.ProfileOrientation=W,this.type=2851387026}}e.IfcRelAssociatesProfileProperties=ED;class ai extends np{constructor(E,d,S,v){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.type=826625072}}e.IfcRelConnects=ai;class td extends ai{constructor(E,d,S,v,M,w,G){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ConnectionGeometry=M,this.RelatingElement=w,this.RelatedElement=G,this.type=1204542856}}e.IfcRelConnectsElements=td;class sR extends td{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ConnectionGeometry=M,this.RelatingElement=w,this.RelatedElement=G,this.RelatingPriorities=W,this.RelatedPriorities=Y,this.RelatedConnectionType=st,this.RelatingConnectionType=At,this.type=3945020480}}e.IfcRelConnectsPathElements=sR;class ed extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingPort=M,this.RelatedElement=w,this.type=4201705270}}e.IfcRelConnectsPortToElement=ed;class fD extends ai{constructor(E,d,S,v,M,w,G){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingPort=M,this.RelatedPort=w,this.RealizingElement=G,this.type=3190031847}}e.IfcRelConnectsPorts=fD;class ID extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingElement=M,this.RelatedStructuralActivity=w,this.type=2127690289}}e.IfcRelConnectsStructuralActivity=ID;class sd extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingElement=M,this.RelatedStructuralMember=w,this.type=3912681535}}e.IfcRelConnectsStructuralElement=sd;class up extends ai{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingStructuralMember=M,this.RelatedStructuralConnection=w,this.AppliedCondition=G,this.AdditionalConditions=W,this.SupportedLength=Y,this.ConditionCoordinateSystem=st,this.type=1638771189}}e.IfcRelConnectsStructuralMember=up;class yD extends up{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y,st),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingStructuralMember=M,this.RelatedStructuralConnection=w,this.AppliedCondition=G,this.AdditionalConditions=W,this.SupportedLength=Y,this.ConditionCoordinateSystem=st,this.ConnectionConstraint=At,this.type=504942748}}e.IfcRelConnectsWithEccentricity=yD;class iR extends td{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ConnectionGeometry=M,this.RelatingElement=w,this.RelatedElement=G,this.RealizingElements=W,this.ConnectionType=Y,this.type=3678494232}}e.IfcRelConnectsWithRealizingElements=iR;class TD extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedElements=M,this.RelatingStructure=w,this.type=3242617779}}e.IfcRelContainedInSpatialStructure=TD;class nR extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingBuildingElement=M,this.RelatedCoverings=w,this.type=886880790}}e.IfcRelCoversBldgElements=nR;class xc extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedSpace=M,this.RelatedCoverings=w,this.type=2802773753}}e.IfcRelCoversSpaces=xc;class id extends np{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingObject=M,this.RelatedObjects=w,this.type=2551354335}}e.IfcRelDecomposes=id;class nd extends np{constructor(E,d,S,v,M){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.type=693640335}}e.IfcRelDefines=nd;class rd extends nd{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingPropertyDefinition=w,this.type=4186316022}}e.IfcRelDefinesByProperties=rd;class aa extends nd{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingType=w,this.type=781010003}}e.IfcRelDefinesByType=aa;class BI extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingOpeningElement=M,this.RelatedBuildingElement=w,this.type=3940055652}}e.IfcRelFillsElement=BI;class qE extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedControlElements=M,this.RelatingFlowElement=w,this.type=279856033}}e.IfcRelFlowControlElements=qE;class pp extends ai{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.DailyInteraction=M,this.ImportanceRating=w,this.LocationOfInteraction=G,this.RelatedSpaceProgram=W,this.RelatingSpaceProgram=Y,this.type=4189434867}}e.IfcRelInteractionRequirements=pp;class dD extends id{constructor(E,d,S,v,M,w){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingObject=M,this.RelatedObjects=w,this.type=3268803585}}e.IfcRelNests=dD;class $h extends lp{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingActor=G,this.ActingRole=W,this.type=2051452291}}e.IfcRelOccupiesSpaces=$h;class mD extends rd{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatingPropertyDefinition=w,this.OverridingProperties=G,this.type=202636808}}e.IfcRelOverridesProperties=mD;class RD extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingElement=M,this.RelatedFeatureElement=w,this.type=750771296}}e.IfcRelProjectsElement=RD;class GI extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedElements=M,this.RelatingStructure=w,this.type=1245217292}}e.IfcRelReferencedInSpatialStructure=GI;class FI extends kE{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingControl=G,this.type=1058617721}}e.IfcRelSchedulesCostItems=FI;class rR extends ai{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingProcess=M,this.RelatedProcess=w,this.TimeLag=G,this.SequenceType=W,this.type=4122056220}}e.IfcRelSequence=rR;class SD extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingSystem=M,this.RelatedBuildings=w,this.type=366585022}}e.IfcRelServicesBuildings=SD;class eh extends ai{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingSpace=M,this.RelatedBuildingElement=w,this.ConnectionGeometry=G,this.PhysicalOrVirtualBoundary=W,this.InternalOrExternalBoundary=Y,this.type=3451746338}}e.IfcRelSpaceBoundary=eh;class Zl extends ai{constructor(E,d,S,v,M,w){super(E,d,S,v),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingBuildingElement=M,this.RelatedOpeningElement=w,this.type=1401173127}}e.IfcRelVoidsElement=Zl;class VI extends Qh{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=2914609552}}e.IfcResource=VI;class ND extends kl{constructor(E,d,S,v){super(E,d),this.SweptArea=E,this.Position=d,this.Axis=S,this.Angle=v,this.type=1856042241}}e.IfcRevolvedAreaSolid=ND;class jE extends ap{constructor(E,d,S){super(E),this.Position=E,this.Height=d,this.BottomRadius=S,this.type=4158566097}}e.IfcRightCircularCone=jE;class cd extends ap{constructor(E,d,S){super(E),this.Position=E,this.Height=d,this.Radius=S,this.type=3626867408}}e.IfcRightCircularCylinder=cd;class Ep extends gc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.LongName=W,this.CompositionType=Y,this.type=2706606064}}e.IfcSpatialStructureElement=Ep;class HI extends Xr{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=3893378262}}e.IfcSpatialStructureElementType=HI;class AD extends ap{constructor(E,d){super(E),this.Position=E,this.Radius=d,this.type=451544542}}e.IfcSphere=AD;class ad extends gc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.type=3544373492}}e.IfcStructuralActivity=ad;class oa extends gc{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.type=3136571912}}e.IfcStructuralItem=oa;class od extends oa{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.type=530289379}}e.IfcStructuralMember=od;class cR extends ad{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.type=3689010777}}e.IfcStructuralReaction=cR;class aR extends od{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.PredefinedType=W,this.Thickness=Y,this.type=3979015343}}e.IfcStructuralSurfaceMember=aR;class DD extends aR{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.PredefinedType=W,this.Thickness=Y,this.SubsequentThickness=st,this.VaryingThicknessLocation=At,this.type=2218152070}}e.IfcStructuralSurfaceMemberVarying=DD;class oR extends HE{constructor(E){super(E),this.Contents=E,this.type=4070609034}}e.IfcStructuredDimensionCallout=oR;class OD extends kl{constructor(E,d,S,v,M,w){super(E,d),this.SweptArea=E,this.Position=d,this.Directrix=S,this.StartParam=v,this.EndParam=M,this.ReferenceSurface=w,this.type=2028607225}}e.IfcSurfaceCurveSweptAreaSolid=OD;class vD extends Kl{constructor(E,d,S,v){super(E,d),this.SweptCurve=E,this.Position=d,this.ExtrudedDirection=S,this.Depth=v,this.type=2809605785}}e.IfcSurfaceOfLinearExtrusion=vD;class hd extends Kl{constructor(E,d,S){super(E,d),this.SweptCurve=E,this.Position=d,this.AxisPosition=S,this.type=4124788165}}e.IfcSurfaceOfRevolution=hd;class _D extends jT{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=1580310250}}e.IfcSystemFurnitureElementType=_D;class ha extends QT{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.TaskId=w,this.Status=G,this.WorkMethod=W,this.IsMilestone=Y,this.Priority=st,this.type=3473067441}}e.IfcTask=ha;class ql extends Xr{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2097647324}}e.IfcTransportElementType=ql;class jl extends Qh{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.TheActor=w,this.type=2296667514}}e.IfcActor=jl;class gD extends gc{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.type=1674181508}}e.IfcAnnotation=gD;class LD extends zE{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w,G,W),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.OverallWidth=v,this.OverallDepth=M,this.WebThickness=w,this.FlangeThickness=G,this.FilletRadius=W,this.TopFlangeWidth=Y,this.TopFlangeThickness=st,this.TopFlangeFilletRadius=At,this.CentreOfGravityInY=Mt,this.type=3207858831}}e.IfcAsymmetricIShapeProfileDef=LD;class hR extends ap{constructor(E,d,S,v){super(E),this.Position=E,this.XLength=d,this.YLength=S,this.ZLength=v,this.type=1334484129}}e.IfcBlock=hR;class xD extends Zm{constructor(E,d,S){super(E,d,S),this.Operator=E,this.FirstOperand=d,this.SecondOperand=S,this.type=3649129432}}e.IfcBooleanClippingResult=xD;class Ql extends th{constructor(){super(),this.type=1260505505}}e.IfcBoundedCurve=Ql;class lR extends Ep{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.LongName=W,this.CompositionType=Y,this.ElevationOfRefHeight=st,this.ElevationOfTerrain=At,this.BuildingAddress=Mt,this.type=4031249490}}e.IfcBuilding=lR;class oi extends Xr{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=1950629157}}e.IfcBuildingElementType=oi;class QE extends Ep{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.LongName=W,this.CompositionType=Y,this.Elevation=st,this.type=3124254112}}e.IfcBuildingStorey=QE;class WI extends VE{constructor(E,d,S,v,M){super(E,d,S,v),this.ProfileType=E,this.ProfileName=d,this.Position=S,this.Radius=v,this.WallThickness=M,this.type=2937912522}}e.IfcCircleHollowProfileDef=WI;class Pc extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=300633059}}e.IfcColumnType=Pc;class ld extends Ql{constructor(E,d){super(),this.Segments=E,this.SelfIntersect=d,this.type=3732776249}}e.IfcCompositeCurve=ld;class ud extends th{constructor(E){super(),this.Position=E,this.type=2510884976}}e.IfcConic=ud;class sh extends VI{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ResourceIdentifier=w,this.ResourceGroup=G,this.ResourceConsumption=W,this.BaseQuantity=Y,this.type=2559216714}}e.IfcConstructionResource=sh;class Sn extends Qh{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=3293443760}}e.IfcControl=Sn;class pd extends Sn{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=3895139033}}e.IfcCostItem=pd;class uR extends Sn{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.SubmittedBy=w,this.PreparedBy=G,this.SubmittedOn=W,this.Status=Y,this.TargetUsers=st,this.UpdateDate=At,this.ID=Mt,this.PredefinedType=Ft,this.type=1419761937}}e.IfcCostSchedule=uR;class PD extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1916426348}}e.IfcCoveringType=PD;class MD extends sh{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ResourceIdentifier=w,this.ResourceGroup=G,this.ResourceConsumption=W,this.BaseQuantity=Y,this.type=3295246426}}e.IfcCrewResource=MD;class UD extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1457835157}}e.IfcCurtainWallType=UD;class Jh extends HE{constructor(E){super(E),this.Contents=E,this.type=681481545}}e.IfcDimensionCurveDirectedCallout=Jh;class Xh extends Xr{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=3256556792}}e.IfcDistributionElementType=Xh;class Mc extends Xh{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=3849074793}}e.IfcDistributionFlowElementType=Mc;class pR extends $m{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.EnergySequence=M,this.UserDefinedEnergySequence=w,this.ElectricCurrentType=G,this.InputVoltage=W,this.InputFrequency=Y,this.FullLoadCurrent=st,this.MinimumCircuitCurrent=At,this.MaximumPowerInput=Mt,this.RatedPowerInput=Ft,this.InputPhase=ie,this.type=360485395}}e.IfcElectricalBaseProperties=pR;class la extends gc{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1758889154}}e.IfcElement=la;class CD extends la{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.AssemblyPlace=Y,this.PredefinedType=st,this.type=4123344466}}e.IfcElementAssembly=CD;class Ed extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1623761950}}e.IfcElementComponent=Ed;class ih extends Xr{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=2590856083}}e.IfcElementComponentType=ih;class bD extends ud{constructor(E,d,S){super(E),this.Position=E,this.SemiAxis1=d,this.SemiAxis2=S,this.type=1704287377}}e.IfcEllipse=bD;class hi extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=2107101300}}e.IfcEnergyConversionDeviceType=hi;class ER extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1962604670}}e.IfcEquipmentElement=ER;class wD extends Sn{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=3272907226}}e.IfcEquipmentStandard=wD;class BD extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3174744832}}e.IfcEvaporativeCoolerType=BD;class GD extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3390157468}}e.IfcEvaporatorType=GD;class FD extends op{constructor(E){super(E),this.Outer=E,this.type=807026263}}e.IfcFacetedBrep=FD;class tl extends op{constructor(E,d){super(E),this.Outer=E,this.Voids=d,this.type=3737207727}}e.IfcFacetedBrepWithVoids=tl;class fp extends Ed{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=647756555}}e.IfcFastener=fp;class fR extends ih{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=2489546625}}e.IfcFastenerType=fR;class fd extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=2827207264}}e.IfcFeatureElement=fd;class IR extends fd{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=2143335405}}e.IfcFeatureElementAddition=IR;class Id extends fd{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1287392070}}e.IfcFeatureElementSubtraction=Id;class oo extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=3907093117}}e.IfcFlowControllerType=oo;class js extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=3198132628}}e.IfcFlowFittingType=js;class yd extends oo{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3815607619}}e.IfcFlowMeterType=yd;class Ip extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=1482959167}}e.IfcFlowMovingDeviceType=Ip;class yp extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=1834744321}}e.IfcFlowSegmentType=yp;class Td extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=1339347760}}e.IfcFlowStorageDeviceType=Td;class tc extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=2297155007}}e.IfcFlowTerminalType=tc;class zI extends Mc{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=zI;class yR extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=263784265}}e.IfcFurnishingElement=yR;class VD extends Sn{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=814719939}}e.IfcFurnitureStandard=VD;class HD extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=200128114}}e.IfcGasTerminalType=HD;class WD extends gc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.UAxes=W,this.VAxes=Y,this.WAxes=st,this.type=3009204131}}e.IfcGrid=WD;class nh extends Qh{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=2706460486}}e.IfcGroup=nh;class $l extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1251058090}}e.IfcHeatExchangerType=$l;class Jl extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1806887404}}e.IfcHumidifierType=Jl;class $E extends nh{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.InventoryType=w,this.Jurisdiction=G,this.ResponsiblePersons=W,this.LastUpdateDate=Y,this.CurrentValue=st,this.OriginalValue=At,this.type=2391368822}}e.IfcInventory=$E;class Tp extends js{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=4288270099}}e.IfcJunctionBoxType=Tp;class zD extends sh{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ResourceIdentifier=w,this.ResourceGroup=G,this.ResourceConsumption=W,this.BaseQuantity=Y,this.SkillSet=st,this.type=3827777499}}e.IfcLaborResource=zD;class rh extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1051575348}}e.IfcLampType=rh;class YD extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1161773419}}e.IfcLightFixtureType=YD;class kD extends Jh{constructor(E){super(E),this.Contents=E,this.type=2506943328}}e.IfcLinearDimension=kD;class KD extends fp{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.NominalDiameter=Y,this.NominalLength=st,this.type=377706215}}e.IfcMechanicalFastener=KD;class ZD extends fR{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=2108223431}}e.IfcMechanicalFastenerType=ZD;class dd extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3181161470}}e.IfcMemberType=dd;class qD extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=977012517}}e.IfcMotorConnectionType=qD;class jD extends ha{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft){super(E,d,S,v,M,w,G,W,Y,st),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.TaskId=w,this.Status=G,this.WorkMethod=W,this.IsMilestone=Y,this.Priority=st,this.MoveFrom=At,this.MoveTo=Mt,this.PunchList=Ft,this.type=1916936684}}e.IfcMove=jD;class ch extends jl{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.TheActor=w,this.PredefinedType=G,this.type=4143007308}}e.IfcOccupant=ch;class JE extends Id{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3588315303}}e.IfcOpeningElement=JE;class TR extends ha{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y,st),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.TaskId=w,this.Status=G,this.WorkMethod=W,this.IsMilestone=Y,this.Priority=st,this.ActionID=At,this.type=3425660407}}e.IfcOrderAction=TR;class dR extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2837617999}}e.IfcOutletType=dR;class mR extends Sn{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.LifeCyclePhase=w,this.type=2382730787}}e.IfcPerformanceHistory=mR;class QD extends Sn{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.PermitID=w,this.type=3327091369}}e.IfcPermit=QD;class $D extends js{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=804291784}}e.IfcPipeFittingType=$D;class RR extends yp{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=4231323485}}e.IfcPipeSegmentType=RR;class SR extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=4017108033}}e.IfcPlateType=SR;class NR extends Ql{constructor(E){super(),this.Points=E,this.type=3724593414}}e.IfcPolyline=NR;class YI extends gc{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.type=3740093272}}e.IfcPort=YI;class JD extends QT{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ProcedureID=w,this.ProcedureType=G,this.UserDefinedProcedureType=W,this.type=2744685151}}e.IfcProcedure=JD;class XD extends Sn{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ID=w,this.PredefinedType=G,this.Status=W,this.type=2904328755}}e.IfcProjectOrder=XD;class kI extends Sn{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.Records=w,this.PredefinedType=G,this.type=3642467123}}e.IfcProjectOrderRecord=kI;class md extends IR{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3651124850}}e.IfcProjectionElement=md;class dp extends oo{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1842657554}}e.IfcProtectiveDeviceType=dp;class AR extends Ip{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2250791053}}e.IfcPumpType=AR;class tO extends Jh{constructor(E){super(E),this.Contents=E,this.type=3248260540}}e.IfcRadiusDimension=tO;class eO extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2893384427}}e.IfcRailingType=eO;class sO extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2324767716}}e.IfcRampFlightType=sO;class iO extends id{constructor(E,d,S,v,M,w){super(E,d,S,v,M,w),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatingObject=M,this.RelatedObjects=w,this.type=160246688}}e.IfcRelAggregates=iO;class XE extends kE{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.RelatedObjects=M,this.RelatedObjectsType=w,this.RelatingControl=G,this.TimeForTask=W,this.type=2863920197}}e.IfcRelAssignsTasks=XE;class ah extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1768891740}}e.IfcSanitaryTerminalType=ah;class mp extends Sn{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or,sl,ui,Ap,po,Xn,tr){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ActualStart=w,this.EarlyStart=G,this.LateStart=W,this.ScheduleStart=Y,this.ActualFinish=st,this.EarlyFinish=At,this.LateFinish=Mt,this.ScheduleFinish=Ft,this.ScheduleDuration=ie,this.ActualDuration=ns,this.RemainingTime=Jn,this.FreeFloat=Or,this.TotalFloat=sl,this.IsCritical=ui,this.StatusTime=Ap,this.StartFloat=po,this.FinishFloat=Xn,this.Completion=tr,this.type=3517283431}}e.IfcScheduleTimeControl=mp;class KI extends Sn{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ServiceLifeType=w,this.ServiceLifeDuration=G,this.type=4105383287}}e.IfcServiceLife=KI;class DR extends Ep{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.LongName=W,this.CompositionType=Y,this.RefLatitude=st,this.RefLongitude=At,this.RefElevation=Mt,this.LandTitleNumber=Ft,this.SiteAddress=ie,this.type=4097777520}}e.IfcSite=DR;class nO extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2533589738}}e.IfcSlabType=nO;class rO extends Ep{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.LongName=W,this.CompositionType=Y,this.InteriorOrExteriorSpace=st,this.ElevationWithFlooring=At,this.type=3856911033}}e.IfcSpace=rO;class cO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1305183839}}e.IfcSpaceHeaterType=cO;class Rd extends Sn{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.SpaceProgramIdentifier=w,this.MaxRequiredArea=G,this.MinRequiredArea=W,this.RequestedLocation=Y,this.StandardRequiredArea=st,this.type=652456506}}e.IfcSpaceProgram=Rd;class aO extends HI{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3812236995}}e.IfcSpaceType=aO;class OR extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3112655638}}e.IfcStackTerminalType=OR;class vR extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1039846685}}e.IfcStairFlightType=vR;class ho extends ad{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.DestabilizingLoad=st,this.CausedBy=At,this.type=682877961}}e.IfcStructuralAction=ho;class ZI extends oa{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedCondition=W,this.type=1179482911}}e.IfcStructuralConnection=ZI;class qI extends ZI{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedCondition=W,this.type=4243806635}}e.IfcStructuralCurveConnection=qI;class Uc extends od{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.PredefinedType=W,this.type=214636428}}e.IfcStructuralCurveMember=Uc;class oO extends Uc{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.PredefinedType=W,this.type=2445595289}}e.IfcStructuralCurveMemberVarying=oO;class _R extends ho{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w,G,W,Y,st,At),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.DestabilizingLoad=st,this.CausedBy=At,this.ProjectedOrTrue=Mt,this.type=1807405624}}e.IfcStructuralLinearAction=_R;class hO extends _R{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie){super(E,d,S,v,M,w,G,W,Y,st,At,Mt),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.DestabilizingLoad=st,this.CausedBy=At,this.ProjectedOrTrue=Mt,this.VaryingAppliedLoadLocation=Ft,this.SubsequentAppliedLoads=ie,this.type=1721250024}}e.IfcStructuralLinearActionVarying=hO;class lO extends nh{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.PredefinedType=w,this.ActionType=G,this.ActionSource=W,this.Coefficient=Y,this.Purpose=st,this.type=1252848954}}e.IfcStructuralLoadGroup=lO;class gR extends ho{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w,G,W,Y,st,At),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.DestabilizingLoad=st,this.CausedBy=At,this.ProjectedOrTrue=Mt,this.type=1621171031}}e.IfcStructuralPlanarAction=gR;class LR extends gR{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie){super(E,d,S,v,M,w,G,W,Y,st,At,Mt),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.DestabilizingLoad=st,this.CausedBy=At,this.ProjectedOrTrue=Mt,this.VaryingAppliedLoadLocation=Ft,this.SubsequentAppliedLoads=ie,this.type=3987759626}}e.IfcStructuralPlanarActionVarying=LR;class xR extends ho{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y,st,At),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.DestabilizingLoad=st,this.CausedBy=At,this.type=2082059205}}e.IfcStructuralPointAction=xR;class uO extends ZI{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedCondition=W,this.type=734778138}}e.IfcStructuralPointConnection=uO;class pO extends cR{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedLoad=W,this.GlobalOrLocal=Y,this.type=1235345126}}e.IfcStructuralPointReaction=pO;class PR extends nh{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.TheoryType=w,this.ResultForLoadGroup=G,this.IsLinear=W,this.type=2986769608}}e.IfcStructuralResultGroup=PR;class jI extends ZI{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.AppliedCondition=W,this.type=1975003073}}e.IfcStructuralSurfaceConnection=jI;class EO extends sh{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ResourceIdentifier=w,this.ResourceGroup=G,this.ResourceConsumption=W,this.BaseQuantity=Y,this.SubContractor=st,this.JobDescription=At,this.type=148013059}}e.IfcSubContractResource=EO;class fO extends oo{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2315554128}}e.IfcSwitchingDeviceType=fO;class el extends nh{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=2254336722}}e.IfcSystem=el;class IO extends Td{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=5716631}}e.IfcTankType=IO;class Ke extends Sn{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ApplicableDates=w,this.TimeSeriesScheduleType=G,this.TimeSeries=W,this.type=1637806684}}e.IfcTimeSeriesSchedule=Ke;class yO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1692211062}}e.IfcTransformerType=yO;class TO extends la{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.OperationType=Y,this.CapacityByWeight=st,this.CapacityByNumber=At,this.type=1620046519}}e.IfcTransportElement=TO;class MR extends Ql{constructor(E,d,S,v,M){super(),this.BasisCurve=E,this.Trim1=d,this.Trim2=S,this.SenseAgreement=v,this.MasterRepresentation=M,this.type=3593883385}}e.IfcTrimmedCurve=MR;class dO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1600972822}}e.IfcTubeBundleType=dO;class mO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1911125066}}e.IfcUnitaryEquipmentType=mO;class RO extends oo{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=728799441}}e.IfcValveType=RO;class UR extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=2769231204}}e.IfcVirtualElement=UR;class oh extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1898987631}}e.IfcWallType=oh;class Sd extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1133259667}}e.IfcWasteTerminalType=Sd;class Nd extends Sn{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.Identifier=w,this.CreationDate=G,this.Creators=W,this.Purpose=Y,this.Duration=st,this.TotalFloat=At,this.StartTime=Mt,this.FinishTime=Ft,this.WorkControlType=ie,this.UserDefinedControlType=ns,this.type=1028945134}}e.IfcWorkControl=Nd;class SO extends Nd{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns){super(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.Identifier=w,this.CreationDate=G,this.Creators=W,this.Purpose=Y,this.Duration=st,this.TotalFloat=At,this.StartTime=Mt,this.FinishTime=Ft,this.WorkControlType=ie,this.UserDefinedControlType=ns,this.type=4218914973}}e.IfcWorkPlan=SO;class NO extends Nd{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns){super(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.Identifier=w,this.CreationDate=G,this.Creators=W,this.Purpose=Y,this.Duration=st,this.TotalFloat=At,this.StartTime=Mt,this.FinishTime=Ft,this.WorkControlType=ie,this.UserDefinedControlType=ns,this.type=3342526732}}e.IfcWorkSchedule=NO;class Xl extends nh{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=1033361043}}e.IfcZone=Xl;class hh extends ld{constructor(E,d){super(E,d),this.Segments=E,this.SelfIntersect=d,this.type=1213861670}}e.Ifc2DCompositeCurve=hh;class AO extends Sn{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.RequestID=w,this.type=3821786052}}e.IfcActionRequest=AO;class Zi extends oo{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1411407467}}e.IfcAirTerminalBoxType=Zi;class Ad extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3352864051}}e.IfcAirTerminalType=Ad;class DO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1871374353}}e.IfcAirToAirHeatRecoveryType=DO;class OO extends Jh{constructor(E){super(E),this.Contents=E,this.type=2470393545}}e.IfcAngularDimension=OO;class vO extends nh{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.AssetID=w,this.OriginalValue=G,this.CurrentValue=W,this.TotalReplacementCost=Y,this.Owner=st,this.User=At,this.ResponsiblePerson=Mt,this.IncorporationDate=Ft,this.DepreciatedValue=ie,this.type=3460190687}}e.IfcAsset=vO;class QI extends Ql{constructor(E,d,S,v,M){super(),this.Degree=E,this.ControlPointsList=d,this.CurveForm=S,this.ClosedCurve=v,this.SelfIntersect=M,this.type=1967976161}}e.IfcBSplineCurve=QI;class ua extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=819618141}}e.IfcBeamType=ua;class CR extends QI{constructor(E,d,S,v,M){super(E,d,S,v,M),this.Degree=E,this.ControlPointsList=d,this.CurveForm=S,this.ClosedCurve=v,this.SelfIntersect=M,this.type=1916977116}}e.IfcBezierCurve=CR;class _O extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=231477066}}e.IfcBoilerType=_O;class bs extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3299480353}}e.IfcBuildingElement=bs;class Dd extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=52481810}}e.IfcBuildingElementComponent=Dd;class gO extends Dd{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=2979338954}}e.IfcBuildingElementPart=gO;class pa extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.CompositionType=Y,this.type=1095909175}}e.IfcBuildingElementProxy=pa;class Rp extends oi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1909888760}}e.IfcBuildingElementProxyType=Rp;class tf extends js{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=395041908}}e.IfcCableCarrierFittingType=tf;class tu extends yp{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3293546465}}e.IfcCableCarrierSegmentType=tu;class eu extends yp{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1285652485}}e.IfcCableSegmentType=eu;class LO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2951183804}}e.IfcChillerType=LO;class ws extends ud{constructor(E,d){super(E),this.Position=E,this.Radius=d,this.type=2611217952}}e.IfcCircle=ws;class xO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2301859152}}e.IfcCoilType=xO;class PO extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=843113511}}e.IfcColumn=PO;class MO extends Ip{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3850581409}}e.IfcCompressorType=MO;class UO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2816379211}}e.IfcCondenserType=UO;class bR extends nh{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=2188551683}}e.IfcCondition=bR;class wR extends Sn{constructor(E,d,S,v,M,w,G){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.Criterion=w,this.CriterionDateTime=G,this.type=1163958913}}e.IfcConditionCriterion=wR;class CO extends sh{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ResourceIdentifier=w,this.ResourceGroup=G,this.ResourceConsumption=W,this.BaseQuantity=Y,this.type=3898045240}}e.IfcConstructionEquipmentResource=CO;class bO extends sh{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ResourceIdentifier=w,this.ResourceGroup=G,this.ResourceConsumption=W,this.BaseQuantity=Y,this.Suppliers=st,this.UsageRatio=At,this.type=1060000209}}e.IfcConstructionMaterialResource=bO;class wO extends sh{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ResourceIdentifier=w,this.ResourceGroup=G,this.ResourceConsumption=W,this.BaseQuantity=Y,this.type=488727124}}e.IfcConstructionProductResource=wO;class ef extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=335055490}}e.IfcCooledBeamType=ef;class Od extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2954562838}}e.IfcCoolingTowerType=Od;class vd extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.PredefinedType=Y,this.type=1973544240}}e.IfcCovering=vd;class lh extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3495092785}}e.IfcCurtainWall=lh;class Sp extends oo{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3961806047}}e.IfcDamperType=Sp;class BR extends Jh{constructor(E){super(E),this.Contents=E,this.type=4147604152}}e.IfcDiameterDimension=BR;class sf extends Ed{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1335981549}}e.IfcDiscreteAccessory=sf;class Np extends ih{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=2635815018}}e.IfcDiscreteAccessoryType=Np;class _d extends Mc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1599208980}}e.IfcDistributionChamberElementType=_d;class li extends Xh{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.type=2063403501}}e.IfcDistributionControlElementType=li;class su extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1945004755}}e.IfcDistributionElement=su;class lo extends su{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3040386961}}e.IfcDistributionFlowElement=lo;class gd extends YI{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.FlowDirection=W,this.type=3041715199}}e.IfcDistributionPort=gd;class BO extends bs{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.OverallHeight=Y,this.OverallWidth=st,this.type=395920057}}e.IfcDoor=BO;class $I extends js{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=869906466}}e.IfcDuctFittingType=$I;class Ld extends yp{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3760055223}}e.IfcDuctSegmentType=Ld;class Ea extends zI{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2030761528}}e.IfcDuctSilencerType=Ea;class JI extends Id{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.FeatureLength=Y,this.type=855621170}}e.IfcEdgeFeature=JI;class GO extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=663422040}}e.IfcElectricApplianceType=GO;class FO extends Td{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3277789161}}e.IfcElectricFlowStorageDeviceType=FO;class VO extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1534661035}}e.IfcElectricGeneratorType=VO;class HO extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1365060375}}e.IfcElectricHeaterType=HO;class iu extends hi{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1217240411}}e.IfcElectricMotorType=iu;class xd extends oo{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=712377611}}e.IfcElectricTimeControlType=xd;class Pd extends el{constructor(E,d,S,v,M){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.type=1634875225}}e.IfcElectricalCircuit=Pd;class Md extends la{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=857184966}}e.IfcElectricalElement=Md;class XI extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1658829314}}e.IfcEnergyConversionDevice=XI;class GR extends Ip{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=346874300}}e.IfcFanType=GR;class WO extends zI{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1810631287}}e.IfcFilterType=WO;class zO extends tc{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=4222183408}}e.IfcFireSuppressionTerminalType=zO;class FR extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=2058353004}}e.IfcFlowController=FR;class Ud extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=4278956645}}e.IfcFlowFitting=Ud;class YO extends li{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=4037862832}}e.IfcFlowInstrumentType=YO;class VR extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3132237377}}e.IfcFlowMovingDevice=VR;class kO extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=987401354}}e.IfcFlowSegment=kO;class KO extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=707683696}}e.IfcFlowStorageDevice=KO;class ZO extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=2223149337}}e.IfcFlowTerminal=ZO;class qO extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3508470533}}e.IfcFlowTreatmentDevice=qO;class Cd extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.PredefinedType=Y,this.type=900683007}}e.IfcFooting=Cd;class jO extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1073191201}}e.IfcMember=jO;class QO extends bs{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.PredefinedType=Y,this.ConstructionType=st,this.type=1687234759}}e.IfcPile=QO;class bd extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3171933400}}e.IfcPlate=bd;class HR extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.PredefinedType=Y,this.type=2262370178}}e.IfcRailing=HR;class $O extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.ShapeType=Y,this.type=3024970846}}e.IfcRamp=$O;class JO extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3283111854}}e.IfcRampFlight=JO;class WR extends CR{constructor(E,d,S,v,M,w){super(E,d,S,v,M),this.Degree=E,this.ControlPointsList=d,this.CurveForm=S,this.ClosedCurve=v,this.SelfIntersect=M,this.WeightsData=w,this.type=3055160366}}e.IfcRationalBezierCurve=WR;class nf extends Dd{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.SteelGrade=Y,this.type=3027567501}}e.IfcReinforcingElement=nf;class zR extends nf{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.SteelGrade=Y,this.MeshLength=st,this.MeshWidth=At,this.LongitudinalBarNominalDiameter=Mt,this.TransverseBarNominalDiameter=Ft,this.LongitudinalBarCrossSectionArea=ie,this.TransverseBarCrossSectionArea=ns,this.LongitudinalBarSpacing=Jn,this.TransverseBarSpacing=Or,this.type=2320036040}}e.IfcReinforcingMesh=zR;class YR extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.ShapeType=Y,this.type=2016517767}}e.IfcRoof=YR;class XO extends JI{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.FeatureLength=Y,this.Radius=st,this.type=1376911519}}e.IfcRoundedEdgeFeature=XO;class tv extends li{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=1783015770}}e.IfcSensorType=tv;class kR extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.PredefinedType=Y,this.type=1529196076}}e.IfcSlab=kR;class KR extends bs{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.ShapeType=Y,this.type=331165859}}e.IfcStair=KR;class ev extends bs{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.NumberOfRiser=Y,this.NumberOfTreads=st,this.RiserHeight=At,this.TreadLength=Mt,this.type=4252922144}}e.IfcStairFlight=ev;class sv extends el{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.PredefinedType=w,this.OrientationOf2DPlane=G,this.LoadedBy=W,this.HasResults=Y,this.type=2515109513}}e.IfcStructuralAnalysisModel=sv;class uo extends nf{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie,ns,Jn,Or){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.SteelGrade=Y,this.PredefinedType=st,this.NominalDiameter=At,this.CrossSectionArea=Mt,this.TensionForce=Ft,this.PreStress=ie,this.FrictionCoefficient=ns,this.AnchorageSlip=Jn,this.MinCurvatureRadius=Or,this.type=3824725483}}e.IfcTendon=uo;class rf extends nf{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.SteelGrade=Y,this.type=2347447852}}e.IfcTendonAnchor=rf;class be extends Np{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3313531582}}e.IfcVibrationIsolatorType=be;class ZR extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=2391406946}}e.IfcWall=ZR;class iv extends ZR{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=3512223829}}e.IfcWallStandardCase=iv;class nv extends bs{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.OverallHeight=Y,this.OverallWidth=st,this.type=3304561284}}e.IfcWindow=nv;class rv extends li{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=2874132201}}e.IfcActuatorType=rv;class cv extends li{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=3001207471}}e.IfcAlarmType=cv;class av extends bs{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=753842376}}e.IfcBeam=av;class ty extends JI{constructor(E,d,S,v,M,w,G,W,Y,st,At){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.FeatureLength=Y,this.Width=st,this.Height=At,this.type=2454782716}}e.IfcChamferEdgeFeature=ty;class qR extends li{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ApplicableOccurrence=M,this.HasPropertySets=w,this.RepresentationMaps=G,this.Tag=W,this.ElementType=Y,this.PredefinedType=st,this.type=578613899}}e.IfcControllerType=qR;class wd extends lo{constructor(E,d,S,v,M,w,G,W){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.type=1052013943}}e.IfcDistributionChamberElement=wd;class ov extends su{constructor(E,d,S,v,M,w,G,W,Y){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.ControlElementId=Y,this.type=1062813311}}e.IfcDistributionControlElement=ov;class hv extends FR{constructor(E,d,S,v,M,w,G,W,Y,st){super(E,d,S,v,M,w,G,W),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.DistributionPointFunction=Y,this.UserDefinedFunction=st,this.type=3700593921}}e.IfcElectricDistributionPoint=hv;class lv extends nf{constructor(E,d,S,v,M,w,G,W,Y,st,At,Mt,Ft,ie){super(E,d,S,v,M,w,G,W,Y),this.GlobalId=E,this.OwnerHistory=d,this.Name=S,this.Description=v,this.ObjectType=M,this.ObjectPlacement=w,this.Representation=G,this.Tag=W,this.SteelGrade=Y,this.NominalDiameter=st,this.CrossSectionArea=At,this.BarLength=Mt,this.BarRole=Ft,this.BarSurface=ie,this.type=979691226}}e.IfcReinforcingBar=lv})(St||(St={}));KL[2]={3699917729:e=>new Rt.IfcAbsorbedDoseMeasure(e),4182062534:e=>new Rt.IfcAccelerationMeasure(e),360377573:e=>new Rt.IfcAmountOfSubstanceMeasure(e),632304761:e=>new Rt.IfcAngularVelocityMeasure(e),3683503648:e=>new Rt.IfcArcIndex(e.map(t=>t.value)),1500781891:e=>new Rt.IfcAreaDensityMeasure(e),2650437152:e=>new Rt.IfcAreaMeasure(e),2314439260:e=>new Rt.IfcBinary(e),2735952531:e=>new Rt.IfcBoolean(e),1867003952:e=>new Rt.IfcBoxAlignment(e),1683019596:e=>new Rt.IfcCardinalPointReference(e),2991860651:e=>new Rt.IfcComplexNumber(e.map(t=>t.value)),3812528620:e=>new Rt.IfcCompoundPlaneAngleMeasure(e.map(t=>t.value)),3238673880:e=>new Rt.IfcContextDependentMeasure(e),1778710042:e=>new Rt.IfcCountMeasure(e),94842927:e=>new Rt.IfcCurvatureMeasure(e),937566702:e=>new Rt.IfcDate(e),2195413836:e=>new Rt.IfcDateTime(e),86635668:e=>new Rt.IfcDayInMonthNumber(e),3701338814:e=>new Rt.IfcDayInWeekNumber(e),1514641115:e=>new Rt.IfcDescriptiveMeasure(e),4134073009:e=>new Rt.IfcDimensionCount(e),524656162:e=>new Rt.IfcDoseEquivalentMeasure(e),2541165894:e=>new Rt.IfcDuration(e),69416015:e=>new Rt.IfcDynamicViscosityMeasure(e),1827137117:e=>new Rt.IfcElectricCapacitanceMeasure(e),3818826038:e=>new Rt.IfcElectricChargeMeasure(e),2093906313:e=>new Rt.IfcElectricConductanceMeasure(e),3790457270:e=>new Rt.IfcElectricCurrentMeasure(e),2951915441:e=>new Rt.IfcElectricResistanceMeasure(e),2506197118:e=>new Rt.IfcElectricVoltageMeasure(e),2078135608:e=>new Rt.IfcEnergyMeasure(e),1102727119:e=>new Rt.IfcFontStyle(e),2715512545:e=>new Rt.IfcFontVariant(e),2590844177:e=>new Rt.IfcFontWeight(e),1361398929:e=>new Rt.IfcForceMeasure(e),3044325142:e=>new Rt.IfcFrequencyMeasure(e),3064340077:e=>new Rt.IfcGloballyUniqueId(e),3113092358:e=>new Rt.IfcHeatFluxDensityMeasure(e),1158859006:e=>new Rt.IfcHeatingValueMeasure(e),983778844:e=>new Rt.IfcIdentifier(e),3358199106:e=>new Rt.IfcIlluminanceMeasure(e),2679005408:e=>new Rt.IfcInductanceMeasure(e),1939436016:e=>new Rt.IfcInteger(e),3809634241:e=>new Rt.IfcIntegerCountRateMeasure(e),3686016028:e=>new Rt.IfcIonConcentrationMeasure(e),3192672207:e=>new Rt.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new Rt.IfcKinematicViscosityMeasure(e),3258342251:e=>new Rt.IfcLabel(e),1275358634:e=>new Rt.IfcLanguageId(e),1243674935:e=>new Rt.IfcLengthMeasure(e),1774176899:e=>new Rt.IfcLineIndex(e.map(t=>t.value)),191860431:e=>new Rt.IfcLinearForceMeasure(e),2128979029:e=>new Rt.IfcLinearMomentMeasure(e),1307019551:e=>new Rt.IfcLinearStiffnessMeasure(e),3086160713:e=>new Rt.IfcLinearVelocityMeasure(e),503418787:e=>new Rt.IfcLogical(e),2095003142:e=>new Rt.IfcLuminousFluxMeasure(e),2755797622:e=>new Rt.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new Rt.IfcLuminousIntensityMeasure(e),286949696:e=>new Rt.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new Rt.IfcMagneticFluxMeasure(e),1477762836:e=>new Rt.IfcMassDensityMeasure(e),4017473158:e=>new Rt.IfcMassFlowRateMeasure(e),3124614049:e=>new Rt.IfcMassMeasure(e),3531705166:e=>new Rt.IfcMassPerLengthMeasure(e),3341486342:e=>new Rt.IfcModulusOfElasticityMeasure(e),2173214787:e=>new Rt.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new Rt.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new Rt.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new Rt.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new Rt.IfcMolecularWeightMeasure(e),3114022597:e=>new Rt.IfcMomentOfInertiaMeasure(e),2615040989:e=>new Rt.IfcMonetaryMeasure(e),765770214:e=>new Rt.IfcMonthInYearNumber(e),525895558:e=>new Rt.IfcNonNegativeLengthMeasure(e),2095195183:e=>new Rt.IfcNormalisedRatioMeasure(e),2395907400:e=>new Rt.IfcNumericMeasure(e),929793134:e=>new Rt.IfcPHMeasure(e),2260317790:e=>new Rt.IfcParameterValue(e),2642773653:e=>new Rt.IfcPlanarForceMeasure(e),4042175685:e=>new Rt.IfcPlaneAngleMeasure(e),1790229001:e=>new Rt.IfcPositiveInteger(e),2815919920:e=>new Rt.IfcPositiveLengthMeasure(e),3054510233:e=>new Rt.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new Rt.IfcPositiveRatioMeasure(e),1364037233:e=>new Rt.IfcPowerMeasure(e),2169031380:e=>new Rt.IfcPresentableText(e),3665567075:e=>new Rt.IfcPressureMeasure(e),2798247006:e=>new Rt.IfcPropertySetDefinitionSet(e.map(t=>t.value)),3972513137:e=>new Rt.IfcRadioActivityMeasure(e),96294661:e=>new Rt.IfcRatioMeasure(e),200335297:e=>new Rt.IfcReal(e),2133746277:e=>new Rt.IfcRotationalFrequencyMeasure(e),1755127002:e=>new Rt.IfcRotationalMassMeasure(e),3211557302:e=>new Rt.IfcRotationalStiffnessMeasure(e),3467162246:e=>new Rt.IfcSectionModulusMeasure(e),2190458107:e=>new Rt.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new Rt.IfcShearModulusMeasure(e),3471399674:e=>new Rt.IfcSolidAngleMeasure(e),4157543285:e=>new Rt.IfcSoundPowerLevelMeasure(e),846465480:e=>new Rt.IfcSoundPowerMeasure(e),3457685358:e=>new Rt.IfcSoundPressureLevelMeasure(e),993287707:e=>new Rt.IfcSoundPressureMeasure(e),3477203348:e=>new Rt.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new Rt.IfcSpecularExponent(e),361837227:e=>new Rt.IfcSpecularRoughness(e),58845555:e=>new Rt.IfcTemperatureGradientMeasure(e),1209108979:e=>new Rt.IfcTemperatureRateOfChangeMeasure(e),2801250643:e=>new Rt.IfcText(e),1460886941:e=>new Rt.IfcTextAlignment(e),3490877962:e=>new Rt.IfcTextDecoration(e),603696268:e=>new Rt.IfcTextFontName(e),296282323:e=>new Rt.IfcTextTransformation(e),232962298:e=>new Rt.IfcThermalAdmittanceMeasure(e),2645777649:e=>new Rt.IfcThermalConductivityMeasure(e),2281867870:e=>new Rt.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new Rt.IfcThermalResistanceMeasure(e),2016195849:e=>new Rt.IfcThermalTransmittanceMeasure(e),743184107:e=>new Rt.IfcThermodynamicTemperatureMeasure(e),4075327185:e=>new Rt.IfcTime(e),2726807636:e=>new Rt.IfcTimeMeasure(e),2591213694:e=>new Rt.IfcTimeStamp(e),1278329552:e=>new Rt.IfcTorqueMeasure(e),950732822:e=>new Rt.IfcURIReference(e),3345633955:e=>new Rt.IfcVaporPermeabilityMeasure(e),3458127941:e=>new Rt.IfcVolumeMeasure(e),2593997549:e=>new Rt.IfcVolumetricFlowRateMeasure(e),51269191:e=>new Rt.IfcWarpingConstantMeasure(e),1718600412:e=>new Rt.IfcWarpingMomentMeasure(e)};var Rt;(e=>{class t extends et{constructor(){super(...arguments),this.type=4,this.name="IFCABSORBEDDOSEMEASURE"}}e.IfcAbsorbedDoseMeasure=t;class s extends et{constructor(){super(...arguments),this.type=4,this.name="IFCACCELERATIONMEASURE"}}e.IfcAccelerationMeasure=s;class i extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAMOUNTOFSUBSTANCEMEASURE"}}e.IfcAmountOfSubstanceMeasure=i;class n extends et{constructor(){super(...arguments),this.type=4,this.name="IFCANGULARVELOCITYMEASURE"}}e.IfcAngularVelocityMeasure=n;class c{constructor(o){this.value=o,this.type=5}}e.IfcArcIndex=c;class u extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAREADENSITYMEASURE"}}e.IfcAreaDensityMeasure=u;class I extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAREAMEASURE"}}e.IfcAreaMeasure=I;class D extends et{constructor(){super(...arguments),this.type=4,this.name="IFCBINARY"}}e.IfcBinary=D;class g{constructor(o){this.type=3,this.name="IFCBOOLEAN",this.value=o}}e.IfcBoolean=g;class U{constructor(o){this.value=o,this.type=1,this.name="IFCBOXALIGNMENT"}}e.IfcBoxAlignment=U;class F extends et{constructor(){super(...arguments),this.type=10,this.name="IFCCARDINALPOINTREFERENCE"}}e.IfcCardinalPointReference=F;class V{constructor(o){this.value=o,this.type=4}}e.IfcComplexNumber=V;class H{constructor(o){this.value=o,this.type=10}}e.IfcCompoundPlaneAngleMeasure=H;class z extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCONTEXTDEPENDENTMEASURE"}}e.IfcContextDependentMeasure=z;class j extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCOUNTMEASURE"}}e.IfcCountMeasure=j;class Q extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCURVATUREMEASURE"}}e.IfcCurvatureMeasure=Q;class Z{constructor(o){this.value=o,this.type=1,this.name="IFCDATE"}}e.IfcDate=Z;class X{constructor(o){this.value=o,this.type=1,this.name="IFCDATETIME"}}e.IfcDateTime=X;class $ extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDAYINMONTHNUMBER"}}e.IfcDayInMonthNumber=$;class q extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDAYINWEEKNUMBER"}}e.IfcDayInWeekNumber=q;class tt{constructor(o){this.value=o,this.type=1,this.name="IFCDESCRIPTIVEMEASURE"}}e.IfcDescriptiveMeasure=tt;class at extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDIMENSIONCOUNT"}}e.IfcDimensionCount=at;class nt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCDOSEEQUIVALENTMEASURE"}}e.IfcDoseEquivalentMeasure=nt;class ht{constructor(o){this.value=o,this.type=1,this.name="IFCDURATION"}}e.IfcDuration=ht;class ut extends et{constructor(){super(...arguments),this.type=4,this.name="IFCDYNAMICVISCOSITYMEASURE"}}e.IfcDynamicViscosityMeasure=ut;class ot extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCAPACITANCEMEASURE"}}e.IfcElectricCapacitanceMeasure=ot;class pt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCHARGEMEASURE"}}e.IfcElectricChargeMeasure=pt;class Et extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCONDUCTANCEMEASURE"}}e.IfcElectricConductanceMeasure=Et;class dt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCURRENTMEASURE"}}e.IfcElectricCurrentMeasure=dt;class Dt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICRESISTANCEMEASURE"}}e.IfcElectricResistanceMeasure=Dt;class Ut extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICVOLTAGEMEASURE"}}e.IfcElectricVoltageMeasure=Ut;class Xt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCENERGYMEASURE"}}e.IfcEnergyMeasure=Xt;class Yt{constructor(o){this.value=o,this.type=1,this.name="IFCFONTSTYLE"}}e.IfcFontStyle=Yt;class Jt{constructor(o){this.value=o,this.type=1,this.name="IFCFONTVARIANT"}}e.IfcFontVariant=Jt;class ve{constructor(o){this.value=o,this.type=1,this.name="IFCFONTWEIGHT"}}e.IfcFontWeight=ve;class Tt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCFORCEMEASURE"}}e.IfcForceMeasure=Tt;class le extends et{constructor(){super(...arguments),this.type=4,this.name="IFCFREQUENCYMEASURE"}}e.IfcFrequencyMeasure=le;class fs{constructor(o){this.value=o,this.type=1,this.name="IFCGLOBALLYUNIQUEID"}}e.IfcGloballyUniqueId=fs;class Mr extends et{constructor(){super(...arguments),this.type=4,this.name="IFCHEATFLUXDENSITYMEASURE"}}e.IfcHeatFluxDensityMeasure=Mr;class Do extends et{constructor(){super(...arguments),this.type=4,this.name="IFCHEATINGVALUEMEASURE"}}e.IfcHeatingValueMeasure=Do;class _s{constructor(o){this.value=o,this.type=1,this.name="IFCIDENTIFIER"}}e.IfcIdentifier=_s;class or extends et{constructor(){super(...arguments),this.type=4,this.name="IFCILLUMINANCEMEASURE"}}e.IfcIlluminanceMeasure=or;class si extends et{constructor(){super(...arguments),this.type=4,this.name="IFCINDUCTANCEMEASURE"}}e.IfcInductanceMeasure=si;class Ur extends et{constructor(){super(...arguments),this.type=10,this.name="IFCINTEGER"}}e.IfcInteger=Ur;class hr extends et{constructor(){super(...arguments),this.type=10,this.name="IFCINTEGERCOUNTRATEMEASURE"}}e.IfcIntegerCountRateMeasure=hr;class Qi extends et{constructor(){super(...arguments),this.type=4,this.name="IFCIONCONCENTRATIONMEASURE"}}e.IfcIonConcentrationMeasure=Qi;class $i extends et{constructor(){super(...arguments),this.type=4,this.name="IFCISOTHERMALMOISTURECAPACITYMEASURE"}}e.IfcIsothermalMoistureCapacityMeasure=$i;class Ii extends et{constructor(){super(...arguments),this.type=4,this.name="IFCKINEMATICVISCOSITYMEASURE"}}e.IfcKinematicViscosityMeasure=Ii;class $p{constructor(o){this.value=o,this.type=1,this.name="IFCLABEL"}}e.IfcLabel=$p;class gf{constructor(o){this.value=o,this.type=1,this.name="IFCLANGUAGEID"}}e.IfcLanguageId=gf;class Lf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLENGTHMEASURE"}}e.IfcLengthMeasure=Lf;class xf{constructor(o){this.value=o,this.type=5}}e.IfcLineIndex=xf;class Pf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARFORCEMEASURE"}}e.IfcLinearForceMeasure=Pf;class Mf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARMOMENTMEASURE"}}e.IfcLinearMomentMeasure=Mf;class Uf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARSTIFFNESSMEASURE"}}e.IfcLinearStiffnessMeasure=Uf;class Cf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARVELOCITYMEASURE"}}e.IfcLinearVelocityMeasure=Cf;class Jp{constructor(o){this.type=3,this.name="IFCLOGICAL",this.value=o}}e.IfcLogical=Jp;class wy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSFLUXMEASURE"}}e.IfcLuminousFluxMeasure=wy;class By extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE"}}e.IfcLuminousIntensityDistributionMeasure=By;class bf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSINTENSITYMEASURE"}}e.IfcLuminousIntensityMeasure=bf;class Xp extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMAGNETICFLUXDENSITYMEASURE"}}e.IfcMagneticFluxDensityMeasure=Xp;class Gy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMAGNETICFLUXMEASURE"}}e.IfcMagneticFluxMeasure=Gy;class Fy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSDENSITYMEASURE"}}e.IfcMassDensityMeasure=Fy;class wf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSFLOWRATEMEASURE"}}e.IfcMassFlowRateMeasure=wf;class Bf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSMEASURE"}}e.IfcMassMeasure=Bf;class Gf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSPERLENGTHMEASURE"}}e.IfcMassPerLengthMeasure=Gf;class Vy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFELASTICITYMEASURE"}}e.IfcModulusOfElasticityMeasure=Vy;class Hy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfLinearSubgradeReactionMeasure=Hy;class Ff extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfRotationalSubgradeReactionMeasure=Ff;class Vf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfSubgradeReactionMeasure=Vf;class Wy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOISTUREDIFFUSIVITYMEASURE"}}e.IfcMoistureDiffusivityMeasure=Wy;class zy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOLECULARWEIGHTMEASURE"}}e.IfcMolecularWeightMeasure=zy;class Hf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOMENTOFINERTIAMEASURE"}}e.IfcMomentOfInertiaMeasure=Hf;class tE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMONETARYMEASURE"}}e.IfcMonetaryMeasure=tE;class Yy extends et{constructor(){super(...arguments),this.type=10,this.name="IFCMONTHINYEARNUMBER"}}e.IfcMonthInYearNumber=Yy;class ky extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNONNEGATIVELENGTHMEASURE"}}e.IfcNonNegativeLengthMeasure=ky;class Wf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNORMALISEDRATIOMEASURE"}}e.IfcNormalisedRatioMeasure=Wf;class eE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNUMERICMEASURE"}}e.IfcNumericMeasure=eE;class Ky extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPHMEASURE"}}e.IfcPHMeasure=Ky;class Zy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPARAMETERVALUE"}}e.IfcParameterValue=Zy;class zf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPLANARFORCEMEASURE"}}e.IfcPlanarForceMeasure=zf;class sE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPLANEANGLEMEASURE"}}e.IfcPlaneAngleMeasure=sE;class qy extends et{constructor(){super(...arguments),this.type=10,this.name="IFCPOSITIVEINTEGER"}}e.IfcPositiveInteger=qy;class jy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVELENGTHMEASURE"}}e.IfcPositiveLengthMeasure=jy;class Yf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVEPLANEANGLEMEASURE"}}e.IfcPositivePlaneAngleMeasure=Yf;class _e extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVERATIOMEASURE"}}e.IfcPositiveRatioMeasure=_e;class iE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOWERMEASURE"}}e.IfcPowerMeasure=iE;class nE{constructor(o){this.value=o,this.type=1,this.name="IFCPRESENTABLETEXT"}}e.IfcPresentableText=nE;class Iu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPRESSUREMEASURE"}}e.IfcPressureMeasure=Iu;class rE{constructor(o){this.value=o,this.type=5}}e.IfcPropertySetDefinitionSet=rE;class yu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCRADIOACTIVITYMEASURE"}}e.IfcRadioActivityMeasure=yu;class cE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCRATIOMEASURE"}}e.IfcRatioMeasure=cE;class Tu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCREAL"}}e.IfcReal=Tu;class kf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALFREQUENCYMEASURE"}}e.IfcRotationalFrequencyMeasure=kf;class Kf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALMASSMEASURE"}}e.IfcRotationalMassMeasure=Kf;class Zf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALSTIFFNESSMEASURE"}}e.IfcRotationalStiffnessMeasure=Zf;class qf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSECTIONMODULUSMEASURE"}}e.IfcSectionModulusMeasure=qf;class jf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSECTIONALAREAINTEGRALMEASURE"}}e.IfcSectionalAreaIntegralMeasure=jf;class Nt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSHEARMODULUSMEASURE"}}e.IfcShearModulusMeasure=Nt;class du extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOLIDANGLEMEASURE"}}e.IfcSolidAngleMeasure=du;class Qy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPOWERLEVELMEASURE"}}e.IfcSoundPowerLevelMeasure=Qy;class mu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPOWERMEASURE"}}e.IfcSoundPowerMeasure=mu;class $y extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPRESSURELEVELMEASURE"}}e.IfcSoundPressureLevelMeasure=$y;class Ru extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPRESSUREMEASURE"}}e.IfcSoundPressureMeasure=Ru;class Jy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECIFICHEATCAPACITYMEASURE"}}e.IfcSpecificHeatCapacityMeasure=Jy;class Su extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECULAREXPONENT"}}e.IfcSpecularExponent=Su;class aE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECULARROUGHNESS"}}e.IfcSpecularRoughness=aE;class oE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTEMPERATUREGRADIENTMEASURE"}}e.IfcTemperatureGradientMeasure=oE;class Xy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTEMPERATURERATEOFCHANGEMEASURE"}}e.IfcTemperatureRateOfChangeMeasure=Xy;class Nu{constructor(o){this.value=o,this.type=1,this.name="IFCTEXT"}}e.IfcText=Nu;class tT{constructor(o){this.value=o,this.type=1,this.name="IFCTEXTALIGNMENT"}}e.IfcTextAlignment=tT;class Au{constructor(o){this.value=o,this.type=1,this.name="IFCTEXTDECORATION"}}e.IfcTextDecoration=Au;class eT{constructor(o){this.value=o,this.type=1,this.name="IFCTEXTFONTNAME"}}e.IfcTextFontName=eT;class Du{constructor(o){this.value=o,this.type=1,this.name="IFCTEXTTRANSFORMATION"}}e.IfcTextTransformation=Du;class sT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALADMITTANCEMEASURE"}}e.IfcThermalAdmittanceMeasure=sT;class iT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALCONDUCTIVITYMEASURE"}}e.IfcThermalConductivityMeasure=iT;class nT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALEXPANSIONCOEFFICIENTMEASURE"}}e.IfcThermalExpansionCoefficientMeasure=nT;class ge extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALRESISTANCEMEASURE"}}e.IfcThermalResistanceMeasure=ge;class rT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALTRANSMITTANCEMEASURE"}}e.IfcThermalTransmittanceMeasure=rT;class dh extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMODYNAMICTEMPERATUREMEASURE"}}e.IfcThermodynamicTemperatureMeasure=dh;class cT{constructor(o){this.value=o,this.type=1,this.name="IFCTIME"}}e.IfcTime=cT;class Na extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTIMEMEASURE"}}e.IfcTimeMeasure=Na;class aT extends et{constructor(){super(...arguments),this.type=10,this.name="IFCTIMESTAMP"}}e.IfcTimeStamp=aT;class mh extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTORQUEMEASURE"}}e.IfcTorqueMeasure=mh;class hE{constructor(o){this.value=o,this.type=1,this.name="IFCURIREFERENCE"}}e.IfcURIReference=hE;class lE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVAPORPERMEABILITYMEASURE"}}e.IfcVaporPermeabilityMeasure=lE;class uE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVOLUMEMEASURE"}}e.IfcVolumeMeasure=uE;class Hc extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVOLUMETRICFLOWRATEMEASURE"}}e.IfcVolumetricFlowRateMeasure=Hc;class Ou extends et{constructor(){super(...arguments),this.type=4,this.name="IFCWARPINGCONSTANTMEASURE"}}e.IfcWarpingConstantMeasure=Ou;class gn extends et{constructor(){super(...arguments),this.type=4,this.name="IFCWARPINGMOMENTMEASURE"}}e.IfcWarpingMomentMeasure=gn;let Cr=class{};Cr.EMAIL={type:3,value:"EMAIL"},Cr.FAX={type:3,value:"FAX"},Cr.PHONE={type:3,value:"PHONE"},Cr.POST={type:3,value:"POST"},Cr.VERBAL={type:3,value:"VERBAL"},Cr.USERDEFINED={type:3,value:"USERDEFINED"},Cr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ln=Cr;e.IfcActionRequestTypeEnum=Ln;let ue=class{};ue.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},ue.COMPLETION_G1={type:3,value:"COMPLETION_G1"},ue.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},ue.SNOW_S={type:3,value:"SNOW_S"},ue.WIND_W={type:3,value:"WIND_W"},ue.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},ue.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},ue.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},ue.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},ue.FIRE={type:3,value:"FIRE"},ue.IMPULSE={type:3,value:"IMPULSE"},ue.IMPACT={type:3,value:"IMPACT"},ue.TRANSPORT={type:3,value:"TRANSPORT"},ue.ERECTION={type:3,value:"ERECTION"},ue.PROPPING={type:3,value:"PROPPING"},ue.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},ue.SHRINKAGE={type:3,value:"SHRINKAGE"},ue.CREEP={type:3,value:"CREEP"},ue.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},ue.BUOYANCY={type:3,value:"BUOYANCY"},ue.ICE={type:3,value:"ICE"},ue.CURRENT={type:3,value:"CURRENT"},ue.WAVE={type:3,value:"WAVE"},ue.RAIN={type:3,value:"RAIN"},ue.BRAKES={type:3,value:"BRAKES"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"};let oc=ue;e.IfcActionSourceTypeEnum=oc;let Ie=class{};Ie.PERMANENT_G={type:3,value:"PERMANENT_G"},Ie.VARIABLE_Q={type:3,value:"VARIABLE_Q"},Ie.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"};let Rh=Ie;e.IfcActionTypeEnum=Rh;let Ji=class{};Ji.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},Ji.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},Ji.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},Ji.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},Ji.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},Ji.USERDEFINED={type:3,value:"USERDEFINED"},Ji.NOTDEFINED={type:3,value:"NOTDEFINED"};let Oo=Ji;e.IfcActuatorTypeEnum=Oo;let xn=class{};xn.OFFICE={type:3,value:"OFFICE"},xn.SITE={type:3,value:"SITE"},xn.HOME={type:3,value:"HOME"},xn.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},xn.USERDEFINED={type:3,value:"USERDEFINED"};let Sl=xn;e.IfcAddressTypeEnum=Sl;let lr=class{};lr.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},lr.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},lr.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},lr.USERDEFINED={type:3,value:"USERDEFINED"},lr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Sh=lr;e.IfcAirTerminalBoxTypeEnum=Sh;let Xi=class{};Xi.DIFFUSER={type:3,value:"DIFFUSER"},Xi.GRILLE={type:3,value:"GRILLE"},Xi.LOUVRE={type:3,value:"LOUVRE"},Xi.REGISTER={type:3,value:"REGISTER"},Xi.USERDEFINED={type:3,value:"USERDEFINED"},Xi.NOTDEFINED={type:3,value:"NOTDEFINED"};let vo=Xi;e.IfcAirTerminalTypeEnum=vo;let gs=class{};gs.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},gs.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},gs.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},gs.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},gs.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},gs.HEATPIPE={type:3,value:"HEATPIPE"},gs.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},gs.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},gs.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},gs.USERDEFINED={type:3,value:"USERDEFINED"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"};let _o=gs;e.IfcAirToAirHeatRecoveryTypeEnum=_o;let ms=class{};ms.BELL={type:3,value:"BELL"},ms.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},ms.LIGHT={type:3,value:"LIGHT"},ms.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},ms.SIREN={type:3,value:"SIREN"},ms.WHISTLE={type:3,value:"WHISTLE"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"};let go=ms;e.IfcAlarmTypeEnum=go;let yi=class{};yi.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},yi.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},yi.LOADING_3D={type:3,value:"LOADING_3D"},yi.USERDEFINED={type:3,value:"USERDEFINED"},yi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Aa=yi;e.IfcAnalysisModelTypeEnum=Aa;let tn=class{};tn.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},tn.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},tn.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},tn.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},tn.USERDEFINED={type:3,value:"USERDEFINED"},tn.NOTDEFINED={type:3,value:"NOTDEFINED"};let vu=tn;e.IfcAnalysisTheoryTypeEnum=vu;let en=class{};en.ADD={type:3,value:"ADD"},en.DIVIDE={type:3,value:"DIVIDE"},en.MULTIPLY={type:3,value:"MULTIPLY"},en.SUBTRACT={type:3,value:"SUBTRACT"};let _u=en;e.IfcArithmeticOperatorEnum=_u;let Nh=class{};Nh.SITE={type:3,value:"SITE"},Nh.FACTORY={type:3,value:"FACTORY"},Nh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Da=Nh;e.IfcAssemblyPlaceEnum=Da;let Vs=class{};Vs.AMPLIFIER={type:3,value:"AMPLIFIER"},Vs.CAMERA={type:3,value:"CAMERA"},Vs.DISPLAY={type:3,value:"DISPLAY"},Vs.MICROPHONE={type:3,value:"MICROPHONE"},Vs.PLAYER={type:3,value:"PLAYER"},Vs.PROJECTOR={type:3,value:"PROJECTOR"},Vs.RECEIVER={type:3,value:"RECEIVER"},Vs.SPEAKER={type:3,value:"SPEAKER"},Vs.SWITCHER={type:3,value:"SWITCHER"},Vs.TELEPHONE={type:3,value:"TELEPHONE"},Vs.TUNER={type:3,value:"TUNER"},Vs.USERDEFINED={type:3,value:"USERDEFINED"},Vs.NOTDEFINED={type:3,value:"NOTDEFINED"};let rt=Vs;e.IfcAudioVisualApplianceTypeEnum=rt;let yt=class{};yt.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},yt.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},yt.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},yt.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},yt.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},yt.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let vt=yt;e.IfcBSplineCurveForm=vt;let xt=class{};xt.PLANE_SURF={type:3,value:"PLANE_SURF"},xt.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},xt.CONICAL_SURF={type:3,value:"CONICAL_SURF"},xt.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},xt.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},xt.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},xt.RULED_SURF={type:3,value:"RULED_SURF"},xt.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},xt.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},xt.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},xt.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let Bt=xt;e.IfcBSplineSurfaceForm=Bt;let bt=class{};bt.BEAM={type:3,value:"BEAM"},bt.JOIST={type:3,value:"JOIST"},bt.HOLLOWCORE={type:3,value:"HOLLOWCORE"},bt.LINTEL={type:3,value:"LINTEL"},bt.SPANDREL={type:3,value:"SPANDREL"},bt.T_BEAM={type:3,value:"T_BEAM"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"};let $t=bt;e.IfcBeamTypeEnum=$t;let Kt=class{};Kt.GREATERTHAN={type:3,value:"GREATERTHAN"},Kt.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},Kt.LESSTHAN={type:3,value:"LESSTHAN"},Kt.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},Kt.EQUALTO={type:3,value:"EQUALTO"},Kt.NOTEQUALTO={type:3,value:"NOTEQUALTO"},Kt.INCLUDES={type:3,value:"INCLUDES"},Kt.NOTINCLUDES={type:3,value:"NOTINCLUDES"},Kt.INCLUDEDIN={type:3,value:"INCLUDEDIN"},Kt.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"};let ye=Kt;e.IfcBenchmarkEnum=ye;let qe=class{};qe.WATER={type:3,value:"WATER"},qe.STEAM={type:3,value:"STEAM"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ti=qe;e.IfcBoilerTypeEnum=Ti;let Be=class{};Be.UNION={type:3,value:"UNION"},Be.INTERSECTION={type:3,value:"INTERSECTION"},Be.DIFFERENCE={type:3,value:"DIFFERENCE"};let os=Be;e.IfcBooleanOperator=os;let br=class{};br.INSULATION={type:3,value:"INSULATION"},br.PRECASTPANEL={type:3,value:"PRECASTPANEL"},br.USERDEFINED={type:3,value:"USERDEFINED"},br.NOTDEFINED={type:3,value:"NOTDEFINED"};let Lo=br;e.IfcBuildingElementPartTypeEnum=Lo;let ii=class{};ii.COMPLEX={type:3,value:"COMPLEX"},ii.ELEMENT={type:3,value:"ELEMENT"},ii.PARTIAL={type:3,value:"PARTIAL"},ii.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},ii.PROVISIONFORSPACE={type:3,value:"PROVISIONFORSPACE"},ii.USERDEFINED={type:3,value:"USERDEFINED"},ii.NOTDEFINED={type:3,value:"NOTDEFINED"};let pE=ii;e.IfcBuildingElementProxyTypeEnum=pE;let Is=class{};Is.FENESTRATION={type:3,value:"FENESTRATION"},Is.FOUNDATION={type:3,value:"FOUNDATION"},Is.LOADBEARING={type:3,value:"LOADBEARING"},Is.OUTERSHELL={type:3,value:"OUTERSHELL"},Is.SHADING={type:3,value:"SHADING"},Is.TRANSPORT={type:3,value:"TRANSPORT"},Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"};let gu=Is;e.IfcBuildingSystemTypeEnum=gu;let wr=class{};wr.USERDEFINED={type:3,value:"USERDEFINED"},wr.NOTDEFINED={type:3,value:"NOTDEFINED"};let xo=wr;e.IfcBurnerTypeEnum=xo;let Mi=class{};Mi.BEND={type:3,value:"BEND"},Mi.CROSS={type:3,value:"CROSS"},Mi.REDUCER={type:3,value:"REDUCER"},Mi.TEE={type:3,value:"TEE"},Mi.USERDEFINED={type:3,value:"USERDEFINED"},Mi.NOTDEFINED={type:3,value:"NOTDEFINED"};let EE=Mi;e.IfcCableCarrierFittingTypeEnum=EE;let Wc=class{};Wc.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},Wc.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},Wc.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},Wc.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},Wc.USERDEFINED={type:3,value:"USERDEFINED"},Wc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Lu=Wc;e.IfcCableCarrierSegmentTypeEnum=Lu;let zc=class{};zc.CONNECTOR={type:3,value:"CONNECTOR"},zc.ENTRY={type:3,value:"ENTRY"},zc.EXIT={type:3,value:"EXIT"},zc.JUNCTION={type:3,value:"JUNCTION"},zc.TRANSITION={type:3,value:"TRANSITION"},zc.USERDEFINED={type:3,value:"USERDEFINED"},zc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Oa=zc;e.IfcCableFittingTypeEnum=Oa;let ni=class{};ni.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},ni.CABLESEGMENT={type:3,value:"CABLESEGMENT"},ni.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},ni.CORESEGMENT={type:3,value:"CORESEGMENT"},ni.USERDEFINED={type:3,value:"USERDEFINED"},ni.NOTDEFINED={type:3,value:"NOTDEFINED"};let Yc=ni;e.IfcCableSegmentTypeEnum=Yc;let sn=class{};sn.NOCHANGE={type:3,value:"NOCHANGE"},sn.MODIFIED={type:3,value:"MODIFIED"},sn.ADDED={type:3,value:"ADDED"},sn.DELETED={type:3,value:"DELETED"},sn.NOTDEFINED={type:3,value:"NOTDEFINED"};let gt=sn;e.IfcChangeActionEnum=gt;let Br=class{};Br.AIRCOOLED={type:3,value:"AIRCOOLED"},Br.WATERCOOLED={type:3,value:"WATERCOOLED"},Br.HEATRECOVERY={type:3,value:"HEATRECOVERY"},Br.USERDEFINED={type:3,value:"USERDEFINED"},Br.NOTDEFINED={type:3,value:"NOTDEFINED"};let oT=Br;e.IfcChillerTypeEnum=oT;let va=class{};va.USERDEFINED={type:3,value:"USERDEFINED"},va.NOTDEFINED={type:3,value:"NOTDEFINED"};let ur=va;e.IfcChimneyTypeEnum=ur;let di=class{};di.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},di.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},di.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},di.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},di.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},di.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},di.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},di.USERDEFINED={type:3,value:"USERDEFINED"},di.NOTDEFINED={type:3,value:"NOTDEFINED"};let xu=di;e.IfcCoilTypeEnum=xu;let Hs=class{};Hs.COLUMN={type:3,value:"COLUMN"},Hs.PILASTER={type:3,value:"PILASTER"},Hs.USERDEFINED={type:3,value:"USERDEFINED"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"};let Zt=Hs;e.IfcColumnTypeEnum=Zt;let Ui=class{};Ui.ANTENNA={type:3,value:"ANTENNA"},Ui.COMPUTER={type:3,value:"COMPUTER"},Ui.FAX={type:3,value:"FAX"},Ui.GATEWAY={type:3,value:"GATEWAY"},Ui.MODEM={type:3,value:"MODEM"},Ui.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},Ui.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},Ui.NETWORKHUB={type:3,value:"NETWORKHUB"},Ui.PRINTER={type:3,value:"PRINTER"},Ui.REPEATER={type:3,value:"REPEATER"},Ui.ROUTER={type:3,value:"ROUTER"},Ui.SCANNER={type:3,value:"SCANNER"},Ui.USERDEFINED={type:3,value:"USERDEFINED"},Ui.NOTDEFINED={type:3,value:"NOTDEFINED"};let hT=Ui;e.IfcCommunicationsApplianceTypeEnum=hT;let hc=class{};hc.P_COMPLEX={type:3,value:"P_COMPLEX"},hc.Q_COMPLEX={type:3,value:"Q_COMPLEX"};let lT=hc;e.IfcComplexPropertyTemplateTypeEnum=lT;let je=class{};je.DYNAMIC={type:3,value:"DYNAMIC"},je.RECIPROCATING={type:3,value:"RECIPROCATING"},je.ROTARY={type:3,value:"ROTARY"},je.SCROLL={type:3,value:"SCROLL"},je.TROCHOIDAL={type:3,value:"TROCHOIDAL"},je.SINGLESTAGE={type:3,value:"SINGLESTAGE"},je.BOOSTER={type:3,value:"BOOSTER"},je.OPENTYPE={type:3,value:"OPENTYPE"},je.HERMETIC={type:3,value:"HERMETIC"},je.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},je.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},je.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},je.ROTARYVANE={type:3,value:"ROTARYVANE"},je.SINGLESCREW={type:3,value:"SINGLESCREW"},je.TWINSCREW={type:3,value:"TWINSCREW"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"};let kc=je;e.IfcCompressorTypeEnum=kc;let mi=class{};mi.AIRCOOLED={type:3,value:"AIRCOOLED"},mi.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},mi.WATERCOOLED={type:3,value:"WATERCOOLED"},mi.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},mi.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},mi.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},mi.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},mi.USERDEFINED={type:3,value:"USERDEFINED"},mi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Nl=mi;e.IfcCondenserTypeEnum=Nl;let Ci=class{};Ci.ATPATH={type:3,value:"ATPATH"},Ci.ATSTART={type:3,value:"ATSTART"},Ci.ATEND={type:3,value:"ATEND"},Ci.NOTDEFINED={type:3,value:"NOTDEFINED"};let Pu=Ci;e.IfcConnectionTypeEnum=Pu;let _a=class{};_a.HARD={type:3,value:"HARD"},_a.SOFT={type:3,value:"SOFT"},_a.ADVISORY={type:3,value:"ADVISORY"},_a.USERDEFINED={type:3,value:"USERDEFINED"},_a.NOTDEFINED={type:3,value:"NOTDEFINED"};let Po=_a;e.IfcConstraintEnum=Po;let nn=class{};nn.DEMOLISHING={type:3,value:"DEMOLISHING"},nn.EARTHMOVING={type:3,value:"EARTHMOVING"},nn.ERECTING={type:3,value:"ERECTING"},nn.HEATING={type:3,value:"HEATING"},nn.LIGHTING={type:3,value:"LIGHTING"},nn.PAVING={type:3,value:"PAVING"},nn.PUMPING={type:3,value:"PUMPING"},nn.TRANSPORTING={type:3,value:"TRANSPORTING"},nn.USERDEFINED={type:3,value:"USERDEFINED"},nn.NOTDEFINED={type:3,value:"NOTDEFINED"};let fE=nn;e.IfcConstructionEquipmentResourceTypeEnum=fE;let bi=class{};bi.AGGREGATES={type:3,value:"AGGREGATES"},bi.CONCRETE={type:3,value:"CONCRETE"},bi.DRYWALL={type:3,value:"DRYWALL"},bi.FUEL={type:3,value:"FUEL"},bi.GYPSUM={type:3,value:"GYPSUM"},bi.MASONRY={type:3,value:"MASONRY"},bi.METAL={type:3,value:"METAL"},bi.PLASTIC={type:3,value:"PLASTIC"},bi.WOOD={type:3,value:"WOOD"},bi.NOTDEFINED={type:3,value:"NOTDEFINED"},bi.USERDEFINED={type:3,value:"USERDEFINED"};let ga=bi;e.IfcConstructionMaterialResourceTypeEnum=ga;let Al=class{};Al.ASSEMBLY={type:3,value:"ASSEMBLY"},Al.FORMWORK={type:3,value:"FORMWORK"},Al.USERDEFINED={type:3,value:"USERDEFINED"},Al.NOTDEFINED={type:3,value:"NOTDEFINED"};let ri=Al;e.IfcConstructionProductResourceTypeEnum=ri;let wi=class{};wi.FLOATING={type:3,value:"FLOATING"},wi.PROGRAMMABLE={type:3,value:"PROGRAMMABLE"},wi.PROPORTIONAL={type:3,value:"PROPORTIONAL"},wi.MULTIPOSITION={type:3,value:"MULTIPOSITION"},wi.TWOPOSITION={type:3,value:"TWOPOSITION"},wi.USERDEFINED={type:3,value:"USERDEFINED"},wi.NOTDEFINED={type:3,value:"NOTDEFINED"};let La=wi;e.IfcControllerTypeEnum=La;let lc=class{};lc.ACTIVE={type:3,value:"ACTIVE"},lc.PASSIVE={type:3,value:"PASSIVE"},lc.USERDEFINED={type:3,value:"USERDEFINED"},lc.NOTDEFINED={type:3,value:"NOTDEFINED"};let IE=lc;e.IfcCooledBeamTypeEnum=IE;let me=class{};me.NATURALDRAFT={type:3,value:"NATURALDRAFT"},me.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},me.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"};let Mu=me;e.IfcCoolingTowerTypeEnum=Mu;let yE=class{};yE.USERDEFINED={type:3,value:"USERDEFINED"},yE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Qe=yE;e.IfcCostItemTypeEnum=Qe;let $e=class{};$e.BUDGET={type:3,value:"BUDGET"},$e.COSTPLAN={type:3,value:"COSTPLAN"},$e.ESTIMATE={type:3,value:"ESTIMATE"},$e.TENDER={type:3,value:"TENDER"},$e.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},$e.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},$e.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"};let Qf=$e;e.IfcCostScheduleTypeEnum=Qf;let Rs=class{};Rs.CEILING={type:3,value:"CEILING"},Rs.FLOORING={type:3,value:"FLOORING"},Rs.CLADDING={type:3,value:"CLADDING"},Rs.ROOFING={type:3,value:"ROOFING"},Rs.MOLDING={type:3,value:"MOLDING"},Rs.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},Rs.INSULATION={type:3,value:"INSULATION"},Rs.MEMBRANE={type:3,value:"MEMBRANE"},Rs.SLEEVING={type:3,value:"SLEEVING"},Rs.WRAPPING={type:3,value:"WRAPPING"},Rs.USERDEFINED={type:3,value:"USERDEFINED"},Rs.NOTDEFINED={type:3,value:"NOTDEFINED"};let uc=Rs;e.IfcCoveringTypeEnum=uc;let Mo=class{};Mo.OFFICE={type:3,value:"OFFICE"},Mo.SITE={type:3,value:"SITE"},Mo.USERDEFINED={type:3,value:"USERDEFINED"},Mo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ah=Mo;e.IfcCrewResourceTypeEnum=Ah;let Dh=class{};Dh.USERDEFINED={type:3,value:"USERDEFINED"},Dh.NOTDEFINED={type:3,value:"NOTDEFINED"};let uT=Dh;e.IfcCurtainWallTypeEnum=uT;let Pn=class{};Pn.LINEAR={type:3,value:"LINEAR"},Pn.LOG_LINEAR={type:3,value:"LOG_LINEAR"},Pn.LOG_LOG={type:3,value:"LOG_LOG"},Pn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Uu=Pn;e.IfcCurveInterpolationEnum=Uu;let cs=class{};cs.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},cs.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},cs.BLASTDAMPER={type:3,value:"BLASTDAMPER"},cs.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},cs.FIREDAMPER={type:3,value:"FIREDAMPER"},cs.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},cs.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},cs.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},cs.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},cs.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},cs.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"};let Oh=cs;e.IfcDamperTypeEnum=Oh;let xa=class{};xa.MEASURED={type:3,value:"MEASURED"},xa.PREDICTED={type:3,value:"PREDICTED"},xa.SIMULATED={type:3,value:"SIMULATED"},xa.USERDEFINED={type:3,value:"USERDEFINED"},xa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Cu=xa;e.IfcDataOriginEnum=Cu;let Gt=class{};Gt.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},Gt.AREADENSITYUNIT={type:3,value:"AREADENSITYUNIT"},Gt.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},Gt.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},Gt.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},Gt.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},Gt.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},Gt.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},Gt.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},Gt.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},Gt.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},Gt.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},Gt.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},Gt.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},Gt.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},Gt.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},Gt.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},Gt.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},Gt.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},Gt.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},Gt.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},Gt.TORQUEUNIT={type:3,value:"TORQUEUNIT"},Gt.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},Gt.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},Gt.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},Gt.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},Gt.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},Gt.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},Gt.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},Gt.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},Gt.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},Gt.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},Gt.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},Gt.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},Gt.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},Gt.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},Gt.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},Gt.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},Gt.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},Gt.PHUNIT={type:3,value:"PHUNIT"},Gt.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},Gt.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},Gt.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},Gt.SOUNDPOWERLEVELUNIT={type:3,value:"SOUNDPOWERLEVELUNIT"},Gt.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},Gt.SOUNDPRESSURELEVELUNIT={type:3,value:"SOUNDPRESSURELEVELUNIT"},Gt.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},Gt.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},Gt.TEMPERATURERATEOFCHANGEUNIT={type:3,value:"TEMPERATURERATEOFCHANGEUNIT"},Gt.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},Gt.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},Gt.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},Gt.USERDEFINED={type:3,value:"USERDEFINED"};let pc=Gt;e.IfcDerivedUnitEnum=pc;let Uo=class{};Uo.POSITIVE={type:3,value:"POSITIVE"},Uo.NEGATIVE={type:3,value:"NEGATIVE"};let $f=Uo;e.IfcDirectionSenseEnum=$f;let Pa=class{};Pa.ANCHORPLATE={type:3,value:"ANCHORPLATE"},Pa.BRACKET={type:3,value:"BRACKET"},Pa.SHOE={type:3,value:"SHOE"},Pa.USERDEFINED={type:3,value:"USERDEFINED"},Pa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Dl=Pa;e.IfcDiscreteAccessoryTypeEnum=Dl;let rn=class{};rn.FORMEDDUCT={type:3,value:"FORMEDDUCT"},rn.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},rn.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},rn.MANHOLE={type:3,value:"MANHOLE"},rn.METERCHAMBER={type:3,value:"METERCHAMBER"},rn.SUMP={type:3,value:"SUMP"},rn.TRENCH={type:3,value:"TRENCH"},rn.VALVECHAMBER={type:3,value:"VALVECHAMBER"},rn.USERDEFINED={type:3,value:"USERDEFINED"},rn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Co=rn;e.IfcDistributionChamberElementTypeEnum=Co;let bo=class{};bo.CABLE={type:3,value:"CABLE"},bo.CABLECARRIER={type:3,value:"CABLECARRIER"},bo.DUCT={type:3,value:"DUCT"},bo.PIPE={type:3,value:"PIPE"},bo.USERDEFINED={type:3,value:"USERDEFINED"},bo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ec=bo;e.IfcDistributionPortTypeEnum=Ec;let kt=class{};kt.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},kt.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},kt.CHEMICAL={type:3,value:"CHEMICAL"},kt.CHILLEDWATER={type:3,value:"CHILLEDWATER"},kt.COMMUNICATION={type:3,value:"COMMUNICATION"},kt.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},kt.CONDENSERWATER={type:3,value:"CONDENSERWATER"},kt.CONTROL={type:3,value:"CONTROL"},kt.CONVEYING={type:3,value:"CONVEYING"},kt.DATA={type:3,value:"DATA"},kt.DISPOSAL={type:3,value:"DISPOSAL"},kt.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},kt.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},kt.DRAINAGE={type:3,value:"DRAINAGE"},kt.EARTHING={type:3,value:"EARTHING"},kt.ELECTRICAL={type:3,value:"ELECTRICAL"},kt.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},kt.EXHAUST={type:3,value:"EXHAUST"},kt.FIREPROTECTION={type:3,value:"FIREPROTECTION"},kt.FUEL={type:3,value:"FUEL"},kt.GAS={type:3,value:"GAS"},kt.HAZARDOUS={type:3,value:"HAZARDOUS"},kt.HEATING={type:3,value:"HEATING"},kt.LIGHTING={type:3,value:"LIGHTING"},kt.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},kt.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},kt.OIL={type:3,value:"OIL"},kt.OPERATIONAL={type:3,value:"OPERATIONAL"},kt.POWERGENERATION={type:3,value:"POWERGENERATION"},kt.RAINWATER={type:3,value:"RAINWATER"},kt.REFRIGERATION={type:3,value:"REFRIGERATION"},kt.SECURITY={type:3,value:"SECURITY"},kt.SEWAGE={type:3,value:"SEWAGE"},kt.SIGNAL={type:3,value:"SIGNAL"},kt.STORMWATER={type:3,value:"STORMWATER"},kt.TELEPHONE={type:3,value:"TELEPHONE"},kt.TV={type:3,value:"TV"},kt.VACUUM={type:3,value:"VACUUM"},kt.VENT={type:3,value:"VENT"},kt.VENTILATION={type:3,value:"VENTILATION"},kt.WASTEWATER={type:3,value:"WASTEWATER"},kt.WATERSUPPLY={type:3,value:"WATERSUPPLY"},kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"};let vh=kt;e.IfcDistributionSystemEnum=vh;let Mn=class{};Mn.PUBLIC={type:3,value:"PUBLIC"},Mn.RESTRICTED={type:3,value:"RESTRICTED"},Mn.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},Mn.PERSONAL={type:3,value:"PERSONAL"},Mn.USERDEFINED={type:3,value:"USERDEFINED"},Mn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ma=Mn;e.IfcDocumentConfidentialityEnum=Ma;let Ws=class{};Ws.DRAFT={type:3,value:"DRAFT"},Ws.FINALDRAFT={type:3,value:"FINALDRAFT"},Ws.FINAL={type:3,value:"FINAL"},Ws.REVISION={type:3,value:"REVISION"},Ws.NOTDEFINED={type:3,value:"NOTDEFINED"};let _h=Ws;e.IfcDocumentStatusEnum=_h;let pr=class{};pr.SWINGING={type:3,value:"SWINGING"},pr.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},pr.SLIDING={type:3,value:"SLIDING"},pr.FOLDING={type:3,value:"FOLDING"},pr.REVOLVING={type:3,value:"REVOLVING"},pr.ROLLINGUP={type:3,value:"ROLLINGUP"},pr.FIXEDPANEL={type:3,value:"FIXEDPANEL"},pr.USERDEFINED={type:3,value:"USERDEFINED"},pr.NOTDEFINED={type:3,value:"NOTDEFINED"};let gh=pr;e.IfcDoorPanelOperationEnum=gh;let Ol=class{};Ol.LEFT={type:3,value:"LEFT"},Ol.MIDDLE={type:3,value:"MIDDLE"},Ol.RIGHT={type:3,value:"RIGHT"},Ol.NOTDEFINED={type:3,value:"NOTDEFINED"};let TE=Ol;e.IfcDoorPanelPositionEnum=TE;let Er=class{};Er.ALUMINIUM={type:3,value:"ALUMINIUM"},Er.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},Er.STEEL={type:3,value:"STEEL"},Er.WOOD={type:3,value:"WOOD"},Er.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},Er.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},Er.PLASTIC={type:3,value:"PLASTIC"},Er.USERDEFINED={type:3,value:"USERDEFINED"},Er.NOTDEFINED={type:3,value:"NOTDEFINED"};let Kc=Er;e.IfcDoorStyleConstructionEnum=Kc;let Re=class{};Re.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Re.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Re.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Re.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Re.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Re.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Re.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Re.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Re.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Re.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Re.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Re.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Re.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Re.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Re.REVOLVING={type:3,value:"REVOLVING"},Re.ROLLINGUP={type:3,value:"ROLLINGUP"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"};let wo=Re;e.IfcDoorStyleOperationEnum=wo;let Zc=class{};Zc.DOOR={type:3,value:"DOOR"},Zc.GATE={type:3,value:"GATE"},Zc.TRAPDOOR={type:3,value:"TRAPDOOR"},Zc.USERDEFINED={type:3,value:"USERDEFINED"},Zc.NOTDEFINED={type:3,value:"NOTDEFINED"};let vl=Zc;e.IfcDoorTypeEnum=vl;let Pt=class{};Pt.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Pt.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Pt.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Pt.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Pt.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Pt.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Pt.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Pt.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Pt.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Pt.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Pt.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Pt.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Pt.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Pt.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Pt.REVOLVING={type:3,value:"REVOLVING"},Pt.ROLLINGUP={type:3,value:"ROLLINGUP"},Pt.SWING_FIXED_LEFT={type:3,value:"SWING_FIXED_LEFT"},Pt.SWING_FIXED_RIGHT={type:3,value:"SWING_FIXED_RIGHT"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"};let bu=Pt;e.IfcDoorTypeOperationEnum=bu;let fc=class{};fc.BEND={type:3,value:"BEND"},fc.CONNECTOR={type:3,value:"CONNECTOR"},fc.ENTRY={type:3,value:"ENTRY"},fc.EXIT={type:3,value:"EXIT"},fc.JUNCTION={type:3,value:"JUNCTION"},fc.OBSTRUCTION={type:3,value:"OBSTRUCTION"},fc.TRANSITION={type:3,value:"TRANSITION"},fc.USERDEFINED={type:3,value:"USERDEFINED"},fc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ua=fc;e.IfcDuctFittingTypeEnum=Ua;let Ye=class{};Ye.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Ye.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Ye.USERDEFINED={type:3,value:"USERDEFINED"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"};let pT=Ye;e.IfcDuctSegmentTypeEnum=pT;let fr=class{};fr.FLATOVAL={type:3,value:"FLATOVAL"},fr.RECTANGULAR={type:3,value:"RECTANGULAR"},fr.ROUND={type:3,value:"ROUND"},fr.USERDEFINED={type:3,value:"USERDEFINED"},fr.NOTDEFINED={type:3,value:"NOTDEFINED"};let dE=fr;e.IfcDuctSilencerTypeEnum=dE;let Ge=class{};Ge.DISHWASHER={type:3,value:"DISHWASHER"},Ge.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},Ge.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},Ge.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},Ge.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},Ge.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},Ge.FREEZER={type:3,value:"FREEZER"},Ge.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},Ge.HANDDRYER={type:3,value:"HANDDRYER"},Ge.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},Ge.MICROWAVE={type:3,value:"MICROWAVE"},Ge.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},Ge.REFRIGERATOR={type:3,value:"REFRIGERATOR"},Ge.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},Ge.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},Ge.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"};let cn=Ge;e.IfcElectricApplianceTypeEnum=cn;let Ir=class{};Ir.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},Ir.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},Ir.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},Ir.SWITCHBOARD={type:3,value:"SWITCHBOARD"},Ir.USERDEFINED={type:3,value:"USERDEFINED"},Ir.NOTDEFINED={type:3,value:"NOTDEFINED"};let Jf=Ir;e.IfcElectricDistributionBoardTypeEnum=Jf;let Ht=class{};Ht.BATTERY={type:3,value:"BATTERY"},Ht.CAPACITORBANK={type:3,value:"CAPACITORBANK"},Ht.HARMONICFILTER={type:3,value:"HARMONICFILTER"},Ht.INDUCTORBANK={type:3,value:"INDUCTORBANK"},Ht.UPS={type:3,value:"UPS"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"};let wu=Ht;e.IfcElectricFlowStorageDeviceTypeEnum=wu;let Ic=class{};Ic.CHP={type:3,value:"CHP"},Ic.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},Ic.STANDALONE={type:3,value:"STANDALONE"},Ic.USERDEFINED={type:3,value:"USERDEFINED"},Ic.NOTDEFINED={type:3,value:"NOTDEFINED"};let ET=Ic;e.IfcElectricGeneratorTypeEnum=ET;let Gr=class{};Gr.DC={type:3,value:"DC"},Gr.INDUCTION={type:3,value:"INDUCTION"},Gr.POLYPHASE={type:3,value:"POLYPHASE"},Gr.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},Gr.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},Gr.USERDEFINED={type:3,value:"USERDEFINED"},Gr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bo=Gr;e.IfcElectricMotorTypeEnum=Bo;let Un=class{};Un.TIMECLOCK={type:3,value:"TIMECLOCK"},Un.TIMEDELAY={type:3,value:"TIMEDELAY"},Un.RELAY={type:3,value:"RELAY"},Un.USERDEFINED={type:3,value:"USERDEFINED"},Un.NOTDEFINED={type:3,value:"NOTDEFINED"};let Xf=Un;e.IfcElectricTimeControlTypeEnum=Xf;let an=class{};an.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},an.ARCH={type:3,value:"ARCH"},an.BEAM_GRID={type:3,value:"BEAM_GRID"},an.BRACED_FRAME={type:3,value:"BRACED_FRAME"},an.GIRDER={type:3,value:"GIRDER"},an.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},an.RIGID_FRAME={type:3,value:"RIGID_FRAME"},an.SLAB_FIELD={type:3,value:"SLAB_FIELD"},an.TRUSS={type:3,value:"TRUSS"},an.USERDEFINED={type:3,value:"USERDEFINED"},an.NOTDEFINED={type:3,value:"NOTDEFINED"};let mE=an;e.IfcElementAssemblyTypeEnum=mE;let qc=class{};qc.COMPLEX={type:3,value:"COMPLEX"},qc.ELEMENT={type:3,value:"ELEMENT"},qc.PARTIAL={type:3,value:"PARTIAL"};let yc=qc;e.IfcElementCompositionEnum=yc;let Le=class{};Le.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},Le.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"};let RE=Le;e.IfcEngineTypeEnum=RE;let Ls=class{};Ls.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Ls.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Ls.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Ls.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Ls.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Ls.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Ls.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Ls.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Ls.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"};let _l=Ls;e.IfcEvaporativeCoolerTypeEnum=_l;let Fr=class{};Fr.DIRECTEXPANSION={type:3,value:"DIRECTEXPANSION"},Fr.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},Fr.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},Fr.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},Fr.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},Fr.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},Fr.USERDEFINED={type:3,value:"USERDEFINED"},Fr.NOTDEFINED={type:3,value:"NOTDEFINED"};let fT=Fr;e.IfcEvaporatorTypeEnum=fT;let Tc=class{};Tc.EVENTRULE={type:3,value:"EVENTRULE"},Tc.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},Tc.EVENTTIME={type:3,value:"EVENTTIME"},Tc.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},Tc.USERDEFINED={type:3,value:"USERDEFINED"},Tc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Cn=Tc;e.IfcEventTriggerTypeEnum=Cn;let Bi=class{};Bi.STARTEVENT={type:3,value:"STARTEVENT"},Bi.ENDEVENT={type:3,value:"ENDEVENT"},Bi.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Bi.USERDEFINED={type:3,value:"USERDEFINED"},Bi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bu=Bi;e.IfcEventTypeEnum=Bu;let on=class{};on.EXTERNAL={type:3,value:"EXTERNAL"},on.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},on.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},on.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},on.USERDEFINED={type:3,value:"USERDEFINED"},on.NOTDEFINED={type:3,value:"NOTDEFINED"};let fm=on;e.IfcExternalSpatialElementTypeEnum=fm;let ke=class{};ke.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},ke.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},ke.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},ke.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},ke.TUBEAXIAL={type:3,value:"TUBEAXIAL"},ke.VANEAXIAL={type:3,value:"VANEAXIAL"},ke.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"};let Go=ke;e.IfcFanTypeEnum=Go;let dc=class{};dc.GLUE={type:3,value:"GLUE"},dc.MORTAR={type:3,value:"MORTAR"},dc.WELD={type:3,value:"WELD"},dc.USERDEFINED={type:3,value:"USERDEFINED"},dc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fo=dc;e.IfcFastenerTypeEnum=Fo;let zs=class{};zs.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},zs.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},zs.ODORFILTER={type:3,value:"ODORFILTER"},zs.OILFILTER={type:3,value:"OILFILTER"},zs.STRAINER={type:3,value:"STRAINER"},zs.WATERFILTER={type:3,value:"WATERFILTER"},zs.USERDEFINED={type:3,value:"USERDEFINED"},zs.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ca=zs;e.IfcFilterTypeEnum=Ca;let jc=class{};jc.BREECHINGINLET={type:3,value:"BREECHINGINLET"},jc.FIREHYDRANT={type:3,value:"FIREHYDRANT"},jc.HOSEREEL={type:3,value:"HOSEREEL"},jc.SPRINKLER={type:3,value:"SPRINKLER"},jc.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},jc.USERDEFINED={type:3,value:"USERDEFINED"},jc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Gu=jc;e.IfcFireSuppressionTerminalTypeEnum=Gu;let ba=class{};ba.SOURCE={type:3,value:"SOURCE"},ba.SINK={type:3,value:"SINK"},ba.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},ba.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fu=ba;e.IfcFlowDirectionEnum=Fu;let Ri=class{};Ri.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Ri.THERMOMETER={type:3,value:"THERMOMETER"},Ri.AMMETER={type:3,value:"AMMETER"},Ri.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Ri.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Ri.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Ri.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Ri.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Ri.USERDEFINED={type:3,value:"USERDEFINED"},Ri.NOTDEFINED={type:3,value:"NOTDEFINED"};let tI=Ri;e.IfcFlowInstrumentTypeEnum=tI;let mc=class{};mc.ENERGYMETER={type:3,value:"ENERGYMETER"},mc.GASMETER={type:3,value:"GASMETER"},mc.OILMETER={type:3,value:"OILMETER"},mc.WATERMETER={type:3,value:"WATERMETER"},mc.USERDEFINED={type:3,value:"USERDEFINED"},mc.NOTDEFINED={type:3,value:"NOTDEFINED"};let gl=mc;e.IfcFlowMeterTypeEnum=gl;let ce=class{};ce.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},ce.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},ce.PAD_FOOTING={type:3,value:"PAD_FOOTING"},ce.PILE_CAP={type:3,value:"PILE_CAP"},ce.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vu=ce;e.IfcFootingTypeEnum=Vu;let Vr=class{};Vr.CHAIR={type:3,value:"CHAIR"},Vr.TABLE={type:3,value:"TABLE"},Vr.DESK={type:3,value:"DESK"},Vr.BED={type:3,value:"BED"},Vr.FILECABINET={type:3,value:"FILECABINET"},Vr.SHELF={type:3,value:"SHELF"},Vr.SOFA={type:3,value:"SOFA"},Vr.USERDEFINED={type:3,value:"USERDEFINED"},Vr.NOTDEFINED={type:3,value:"NOTDEFINED"};let wa=Vr;e.IfcFurnitureTypeEnum=wa;let Lh=class{};Lh.TERRAIN={type:3,value:"TERRAIN"},Lh.USERDEFINED={type:3,value:"USERDEFINED"},Lh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ll=Lh;e.IfcGeographicElementTypeEnum=Ll;let xs=class{};xs.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},xs.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},xs.MODEL_VIEW={type:3,value:"MODEL_VIEW"},xs.PLAN_VIEW={type:3,value:"PLAN_VIEW"},xs.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},xs.SECTION_VIEW={type:3,value:"SECTION_VIEW"},xs.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"};let SE=xs;e.IfcGeometricProjectionEnum=SE;let Qc=class{};Qc.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},Qc.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"};let Ba=Qc;e.IfcGlobalOrLocalEnum=Ba;let Hr=class{};Hr.RECTANGULAR={type:3,value:"RECTANGULAR"},Hr.RADIAL={type:3,value:"RADIAL"},Hr.TRIANGULAR={type:3,value:"TRIANGULAR"},Hr.IRREGULAR={type:3,value:"IRREGULAR"},Hr.USERDEFINED={type:3,value:"USERDEFINED"},Hr.NOTDEFINED={type:3,value:"NOTDEFINED"};let IT=Hr;e.IfcGridTypeEnum=IT;let Ga=class{};Ga.PLATE={type:3,value:"PLATE"},Ga.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},Ga.USERDEFINED={type:3,value:"USERDEFINED"},Ga.NOTDEFINED={type:3,value:"NOTDEFINED"};let xh=Ga;e.IfcHeatExchangerTypeEnum=xh;let Ss=class{};Ss.STEAMINJECTION={type:3,value:"STEAMINJECTION"},Ss.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},Ss.ADIABATICPAN={type:3,value:"ADIABATICPAN"},Ss.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},Ss.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},Ss.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},Ss.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},Ss.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},Ss.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},Ss.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},Ss.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},Ss.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},Ss.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},Ss.USERDEFINED={type:3,value:"USERDEFINED"},Ss.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ph=Ss;e.IfcHumidifierTypeEnum=Ph;let Gi=class{};Gi.CYCLONIC={type:3,value:"CYCLONIC"},Gi.GREASE={type:3,value:"GREASE"},Gi.OIL={type:3,value:"OIL"},Gi.PETROL={type:3,value:"PETROL"},Gi.USERDEFINED={type:3,value:"USERDEFINED"},Gi.NOTDEFINED={type:3,value:"NOTDEFINED"};let yT=Gi;e.IfcInterceptorTypeEnum=yT;let Wr=class{};Wr.INTERNAL={type:3,value:"INTERNAL"},Wr.EXTERNAL={type:3,value:"EXTERNAL"},Wr.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Wr.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Wr.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Wr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fa=Wr;e.IfcInternalOrExternalEnum=Fa;let bn=class{};bn.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},bn.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},bn.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},bn.USERDEFINED={type:3,value:"USERDEFINED"},bn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vo=bn;e.IfcInventoryTypeEnum=Vo;let Va=class{};Va.DATA={type:3,value:"DATA"},Va.POWER={type:3,value:"POWER"},Va.USERDEFINED={type:3,value:"USERDEFINED"},Va.NOTDEFINED={type:3,value:"NOTDEFINED"};let Mh=Va;e.IfcJunctionBoxTypeEnum=Mh;let zr=class{};zr.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},zr.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},zr.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},zr.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let Hu=zr;e.IfcKnotType=Hu;let xe=class{};xe.ADMINISTRATION={type:3,value:"ADMINISTRATION"},xe.CARPENTRY={type:3,value:"CARPENTRY"},xe.CLEANING={type:3,value:"CLEANING"},xe.CONCRETE={type:3,value:"CONCRETE"},xe.DRYWALL={type:3,value:"DRYWALL"},xe.ELECTRIC={type:3,value:"ELECTRIC"},xe.FINISHING={type:3,value:"FINISHING"},xe.FLOORING={type:3,value:"FLOORING"},xe.GENERAL={type:3,value:"GENERAL"},xe.HVAC={type:3,value:"HVAC"},xe.LANDSCAPING={type:3,value:"LANDSCAPING"},xe.MASONRY={type:3,value:"MASONRY"},xe.PAINTING={type:3,value:"PAINTING"},xe.PAVING={type:3,value:"PAVING"},xe.PLUMBING={type:3,value:"PLUMBING"},xe.ROOFING={type:3,value:"ROOFING"},xe.SITEGRADING={type:3,value:"SITEGRADING"},xe.STEELWORK={type:3,value:"STEELWORK"},xe.SURVEYING={type:3,value:"SURVEYING"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"};let NE=xe;e.IfcLaborResourceTypeEnum=NE;let hn=class{};hn.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},hn.FLUORESCENT={type:3,value:"FLUORESCENT"},hn.HALOGEN={type:3,value:"HALOGEN"},hn.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},hn.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},hn.LED={type:3,value:"LED"},hn.METALHALIDE={type:3,value:"METALHALIDE"},hn.OLED={type:3,value:"OLED"},hn.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},hn.USERDEFINED={type:3,value:"USERDEFINED"},hn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ho=hn;e.IfcLampTypeEnum=Ho;let ln=class{};ln.AXIS1={type:3,value:"AXIS1"},ln.AXIS2={type:3,value:"AXIS2"},ln.AXIS3={type:3,value:"AXIS3"};let $c=ln;e.IfcLayerSetDirectionEnum=$c;let Jc=class{};Jc.TYPE_A={type:3,value:"TYPE_A"},Jc.TYPE_B={type:3,value:"TYPE_B"},Jc.TYPE_C={type:3,value:"TYPE_C"},Jc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ha=Jc;e.IfcLightDistributionCurveEnum=Ha;let ci=class{};ci.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},ci.FLUORESCENT={type:3,value:"FLUORESCENT"},ci.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},ci.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},ci.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},ci.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},ci.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},ci.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},ci.METALHALIDE={type:3,value:"METALHALIDE"},ci.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},ci.NOTDEFINED={type:3,value:"NOTDEFINED"};let TT=ci;e.IfcLightEmissionSourceEnum=TT;let un=class{};un.POINTSOURCE={type:3,value:"POINTSOURCE"},un.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},un.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},un.USERDEFINED={type:3,value:"USERDEFINED"},un.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wo=un;e.IfcLightFixtureTypeEnum=Wo;let Xc=class{};Xc.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Xc.LOAD_CASE={type:3,value:"LOAD_CASE"},Xc.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Xc.USERDEFINED={type:3,value:"USERDEFINED"},Xc.NOTDEFINED={type:3,value:"NOTDEFINED"};let dT=Xc;e.IfcLoadGroupTypeEnum=dT;let wn=class{};wn.LOGICALAND={type:3,value:"LOGICALAND"},wn.LOGICALOR={type:3,value:"LOGICALOR"},wn.LOGICALXOR={type:3,value:"LOGICALXOR"},wn.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},wn.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"};let hs=wn;e.IfcLogicalOperatorEnum=hs;let Si=class{};Si.ANCHORBOLT={type:3,value:"ANCHORBOLT"},Si.BOLT={type:3,value:"BOLT"},Si.DOWEL={type:3,value:"DOWEL"},Si.NAIL={type:3,value:"NAIL"},Si.NAILPLATE={type:3,value:"NAILPLATE"},Si.RIVET={type:3,value:"RIVET"},Si.SCREW={type:3,value:"SCREW"},Si.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},Si.STAPLE={type:3,value:"STAPLE"},Si.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},Si.USERDEFINED={type:3,value:"USERDEFINED"},Si.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bn=Si;e.IfcMechanicalFastenerTypeEnum=Bn;let Wa=class{};Wa.AIRSTATION={type:3,value:"AIRSTATION"},Wa.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},Wa.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},Wa.OXYGENPLANT={type:3,value:"OXYGENPLANT"},Wa.VACUUMSTATION={type:3,value:"VACUUMSTATION"},Wa.USERDEFINED={type:3,value:"USERDEFINED"},Wa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fi=Wa;e.IfcMedicalDeviceTypeEnum=Fi;let Ps=class{};Ps.BRACE={type:3,value:"BRACE"},Ps.CHORD={type:3,value:"CHORD"},Ps.COLLAR={type:3,value:"COLLAR"},Ps.MEMBER={type:3,value:"MEMBER"},Ps.MULLION={type:3,value:"MULLION"},Ps.PLATE={type:3,value:"PLATE"},Ps.POST={type:3,value:"POST"},Ps.PURLIN={type:3,value:"PURLIN"},Ps.RAFTER={type:3,value:"RAFTER"},Ps.STRINGER={type:3,value:"STRINGER"},Ps.STRUT={type:3,value:"STRUT"},Ps.STUD={type:3,value:"STUD"},Ps.USERDEFINED={type:3,value:"USERDEFINED"},Ps.NOTDEFINED={type:3,value:"NOTDEFINED"};let Se=Ps;e.IfcMemberTypeEnum=Se;let ta=class{};ta.BELTDRIVE={type:3,value:"BELTDRIVE"},ta.COUPLING={type:3,value:"COUPLING"},ta.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},ta.USERDEFINED={type:3,value:"USERDEFINED"},ta.NOTDEFINED={type:3,value:"NOTDEFINED"};let Yr=ta;e.IfcMotorConnectionTypeEnum=Yr;let Vi=class{};Vi.NULL={type:3,value:"NULL"};let mT=Vi;e.IfcNullStyle=mT;let Gn=class{};Gn.PRODUCT={type:3,value:"PRODUCT"},Gn.PROCESS={type:3,value:"PROCESS"},Gn.CONTROL={type:3,value:"CONTROL"},Gn.RESOURCE={type:3,value:"RESOURCE"},Gn.ACTOR={type:3,value:"ACTOR"},Gn.GROUP={type:3,value:"GROUP"},Gn.PROJECT={type:3,value:"PROJECT"},Gn.NOTDEFINED={type:3,value:"NOTDEFINED"};let pn=Gn;e.IfcObjectTypeEnum=pn;let Ys=class{};Ys.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ys.CODEWAIVER={type:3,value:"CODEWAIVER"},Ys.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ys.EXTERNAL={type:3,value:"EXTERNAL"},Ys.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ys.MERGECONFLICT={type:3,value:"MERGECONFLICT"},Ys.MODELVIEW={type:3,value:"MODELVIEW"},Ys.PARAMETER={type:3,value:"PARAMETER"},Ys.REQUIREMENT={type:3,value:"REQUIREMENT"},Ys.SPECIFICATION={type:3,value:"SPECIFICATION"},Ys.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ys.USERDEFINED={type:3,value:"USERDEFINED"},Ys.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wu=Ys;e.IfcObjectiveEnum=Wu;let En=class{};En.ASSIGNEE={type:3,value:"ASSIGNEE"},En.ASSIGNOR={type:3,value:"ASSIGNOR"},En.LESSEE={type:3,value:"LESSEE"},En.LESSOR={type:3,value:"LESSOR"},En.LETTINGAGENT={type:3,value:"LETTINGAGENT"},En.OWNER={type:3,value:"OWNER"},En.TENANT={type:3,value:"TENANT"},En.USERDEFINED={type:3,value:"USERDEFINED"},En.NOTDEFINED={type:3,value:"NOTDEFINED"};let za=En;e.IfcOccupantTypeEnum=za;let Ya=class{};Ya.OPENING={type:3,value:"OPENING"},Ya.RECESS={type:3,value:"RECESS"},Ya.USERDEFINED={type:3,value:"USERDEFINED"},Ya.NOTDEFINED={type:3,value:"NOTDEFINED"};let zu=Ya;e.IfcOpeningElementTypeEnum=zu;let Rc=class{};Rc.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},Rc.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},Rc.POWEROUTLET={type:3,value:"POWEROUTLET"},Rc.DATAOUTLET={type:3,value:"DATAOUTLET"},Rc.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},Rc.USERDEFINED={type:3,value:"USERDEFINED"},Rc.NOTDEFINED={type:3,value:"NOTDEFINED"};let xl=Rc;e.IfcOutletTypeEnum=xl;let AE=class{};AE.USERDEFINED={type:3,value:"USERDEFINED"},AE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Uh=AE;e.IfcPerformanceHistoryTypeEnum=Uh;let ka=class{};ka.GRILL={type:3,value:"GRILL"},ka.LOUVER={type:3,value:"LOUVER"},ka.SCREEN={type:3,value:"SCREEN"},ka.USERDEFINED={type:3,value:"USERDEFINED"},ka.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ka=ka;e.IfcPermeableCoveringOperationEnum=Ka;let Je=class{};Je.ACCESS={type:3,value:"ACCESS"},Je.BUILDING={type:3,value:"BUILDING"},Je.WORK={type:3,value:"WORK"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"};let RT=Je;e.IfcPermitTypeEnum=RT;let Fn=class{};Fn.PHYSICAL={type:3,value:"PHYSICAL"},Fn.VIRTUAL={type:3,value:"VIRTUAL"},Fn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Yu=Fn;e.IfcPhysicalOrVirtualEnum=Yu;let Za=class{};Za.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},Za.COMPOSITE={type:3,value:"COMPOSITE"},Za.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},Za.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},Za.USERDEFINED={type:3,value:"USERDEFINED"},Za.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ch=Za;e.IfcPileConstructionEnum=Ch;let kr=class{};kr.BORED={type:3,value:"BORED"},kr.DRIVEN={type:3,value:"DRIVEN"},kr.JETGROUTING={type:3,value:"JETGROUTING"},kr.COHESION={type:3,value:"COHESION"},kr.FRICTION={type:3,value:"FRICTION"},kr.SUPPORT={type:3,value:"SUPPORT"},kr.USERDEFINED={type:3,value:"USERDEFINED"},kr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Hi=kr;e.IfcPileTypeEnum=Hi;let Ms=class{};Ms.BEND={type:3,value:"BEND"},Ms.CONNECTOR={type:3,value:"CONNECTOR"},Ms.ENTRY={type:3,value:"ENTRY"},Ms.EXIT={type:3,value:"EXIT"},Ms.JUNCTION={type:3,value:"JUNCTION"},Ms.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Ms.TRANSITION={type:3,value:"TRANSITION"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"};let ku=Ms;e.IfcPipeFittingTypeEnum=ku;let Kr=class{};Kr.CULVERT={type:3,value:"CULVERT"},Kr.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Kr.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Kr.GUTTER={type:3,value:"GUTTER"},Kr.SPOOL={type:3,value:"SPOOL"},Kr.USERDEFINED={type:3,value:"USERDEFINED"},Kr.NOTDEFINED={type:3,value:"NOTDEFINED"};let bh=Kr;e.IfcPipeSegmentTypeEnum=bh;let zo=class{};zo.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},zo.SHEET={type:3,value:"SHEET"},zo.USERDEFINED={type:3,value:"USERDEFINED"},zo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ku=zo;e.IfcPlateTypeEnum=Ku;let Yo=class{};Yo.CURVE3D={type:3,value:"CURVE3D"},Yo.PCURVE_S1={type:3,value:"PCURVE_S1"},Yo.PCURVE_S2={type:3,value:"PCURVE_S2"};let eI=Yo;e.IfcPreferredSurfaceCurveRepresentation=eI;let Vn=class{};Vn.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Vn.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Vn.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Vn.CALIBRATION={type:3,value:"CALIBRATION"},Vn.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Vn.SHUTDOWN={type:3,value:"SHUTDOWN"},Vn.STARTUP={type:3,value:"STARTUP"},Vn.USERDEFINED={type:3,value:"USERDEFINED"},Vn.NOTDEFINED={type:3,value:"NOTDEFINED"};let qa=Vn;e.IfcProcedureTypeEnum=qa;let ls=class{};ls.CURVE={type:3,value:"CURVE"},ls.AREA={type:3,value:"AREA"};let wh=ls;e.IfcProfileTypeEnum=wh;let Te=class{};Te.CHANGEORDER={type:3,value:"CHANGEORDER"},Te.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},Te.MOVEORDER={type:3,value:"MOVEORDER"},Te.PURCHASEORDER={type:3,value:"PURCHASEORDER"},Te.WORKORDER={type:3,value:"WORKORDER"},Te.USERDEFINED={type:3,value:"USERDEFINED"},Te.NOTDEFINED={type:3,value:"NOTDEFINED"};let Pl=Te;e.IfcProjectOrderTypeEnum=Pl;let ks=class{};ks.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},ks.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"};let Ml=ks;e.IfcProjectedOrTrueLengthEnum=Ml;let ja=class{};ja.USERDEFINED={type:3,value:"USERDEFINED"},ja.NOTDEFINED={type:3,value:"NOTDEFINED"};let DE=ja;e.IfcProjectionElementTypeEnum=DE;let Pe=class{};Pe.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},Pe.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},Pe.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},Pe.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},Pe.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},Pe.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},Pe.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"};let yr=Pe;e.IfcPropertySetTemplateTypeEnum=yr;let Ns=class{};Ns.ELECTRONIC={type:3,value:"ELECTRONIC"},Ns.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},Ns.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},Ns.THERMAL={type:3,value:"THERMAL"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"};let OE=Ns;e.IfcProtectiveDeviceTrippingUnitTypeEnum=OE;let Wi=class{};Wi.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},Wi.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},Wi.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},Wi.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},Wi.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},Wi.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},Wi.VARISTOR={type:3,value:"VARISTOR"},Wi.USERDEFINED={type:3,value:"USERDEFINED"},Wi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bh=Wi;e.IfcProtectiveDeviceTypeEnum=Bh;let Hn=class{};Hn.CIRCULATOR={type:3,value:"CIRCULATOR"},Hn.ENDSUCTION={type:3,value:"ENDSUCTION"},Hn.SPLITCASE={type:3,value:"SPLITCASE"},Hn.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},Hn.SUMPPUMP={type:3,value:"SUMPPUMP"},Hn.VERTICALINLINE={type:3,value:"VERTICALINLINE"},Hn.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},Hn.USERDEFINED={type:3,value:"USERDEFINED"},Hn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ul=Hn;e.IfcPumpTypeEnum=Ul;let Qa=class{};Qa.HANDRAIL={type:3,value:"HANDRAIL"},Qa.GUARDRAIL={type:3,value:"GUARDRAIL"},Qa.BALUSTRADE={type:3,value:"BALUSTRADE"},Qa.USERDEFINED={type:3,value:"USERDEFINED"},Qa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Zu=Qa;e.IfcRailingTypeEnum=Zu;let Ni=class{};Ni.STRAIGHT={type:3,value:"STRAIGHT"},Ni.SPIRAL={type:3,value:"SPIRAL"},Ni.USERDEFINED={type:3,value:"USERDEFINED"},Ni.NOTDEFINED={type:3,value:"NOTDEFINED"};let vE=Ni;e.IfcRampFlightTypeEnum=vE;let Ai=class{};Ai.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},Ai.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},Ai.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},Ai.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},Ai.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},Ai.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},Ai.USERDEFINED={type:3,value:"USERDEFINED"},Ai.NOTDEFINED={type:3,value:"NOTDEFINED"};let qu=Ai;e.IfcRampTypeEnum=qu;let Zr=class{};Zr.DAILY={type:3,value:"DAILY"},Zr.WEEKLY={type:3,value:"WEEKLY"},Zr.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},Zr.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},Zr.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},Zr.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},Zr.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},Zr.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"};let sI=Zr;e.IfcRecurrenceTypeEnum=sI;let Di=class{};Di.BLINN={type:3,value:"BLINN"},Di.FLAT={type:3,value:"FLAT"},Di.GLASS={type:3,value:"GLASS"},Di.MATT={type:3,value:"MATT"},Di.METAL={type:3,value:"METAL"},Di.MIRROR={type:3,value:"MIRROR"},Di.PHONG={type:3,value:"PHONG"},Di.PLASTIC={type:3,value:"PLASTIC"},Di.STRAUSS={type:3,value:"STRAUSS"},Di.NOTDEFINED={type:3,value:"NOTDEFINED"};let iI=Di;e.IfcReflectanceMethodEnum=iI;let Wn=class{};Wn.MAIN={type:3,value:"MAIN"},Wn.SHEAR={type:3,value:"SHEAR"},Wn.LIGATURE={type:3,value:"LIGATURE"},Wn.STUD={type:3,value:"STUD"},Wn.PUNCHING={type:3,value:"PUNCHING"},Wn.EDGE={type:3,value:"EDGE"},Wn.RING={type:3,value:"RING"},Wn.ANCHORING={type:3,value:"ANCHORING"},Wn.USERDEFINED={type:3,value:"USERDEFINED"},Wn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ne=Wn;e.IfcReinforcingBarRoleEnum=Ne;let _E=class{};_E.PLAIN={type:3,value:"PLAIN"},_E.TEXTURED={type:3,value:"TEXTURED"};let Cl=_E;e.IfcReinforcingBarSurfaceEnum=Cl;let fn=class{};fn.ANCHORING={type:3,value:"ANCHORING"},fn.EDGE={type:3,value:"EDGE"},fn.LIGATURE={type:3,value:"LIGATURE"},fn.MAIN={type:3,value:"MAIN"},fn.PUNCHING={type:3,value:"PUNCHING"},fn.RING={type:3,value:"RING"},fn.SHEAR={type:3,value:"SHEAR"},fn.STUD={type:3,value:"STUD"},fn.USERDEFINED={type:3,value:"USERDEFINED"},fn.NOTDEFINED={type:3,value:"NOTDEFINED"};let us=fn;e.IfcReinforcingBarTypeEnum=us;let Gh=class{};Gh.USERDEFINED={type:3,value:"USERDEFINED"},Gh.NOTDEFINED={type:3,value:"NOTDEFINED"};let gE=Gh;e.IfcReinforcingMeshTypeEnum=gE;let Xe=class{};Xe.SUPPLIER={type:3,value:"SUPPLIER"},Xe.MANUFACTURER={type:3,value:"MANUFACTURER"},Xe.CONTRACTOR={type:3,value:"CONTRACTOR"},Xe.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},Xe.ARCHITECT={type:3,value:"ARCHITECT"},Xe.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},Xe.COSTENGINEER={type:3,value:"COSTENGINEER"},Xe.CLIENT={type:3,value:"CLIENT"},Xe.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},Xe.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},Xe.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},Xe.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},Xe.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},Xe.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},Xe.CIVILENGINEER={type:3,value:"CIVILENGINEER"},Xe.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},Xe.ENGINEER={type:3,value:"ENGINEER"},Xe.OWNER={type:3,value:"OWNER"},Xe.CONSULTANT={type:3,value:"CONSULTANT"},Xe.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},Xe.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},Xe.RESELLER={type:3,value:"RESELLER"},Xe.USERDEFINED={type:3,value:"USERDEFINED"};let Fh=Xe;e.IfcRoleEnum=Fh;let As=class{};As.FLAT_ROOF={type:3,value:"FLAT_ROOF"},As.SHED_ROOF={type:3,value:"SHED_ROOF"},As.GABLE_ROOF={type:3,value:"GABLE_ROOF"},As.HIP_ROOF={type:3,value:"HIP_ROOF"},As.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},As.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},As.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},As.BARREL_ROOF={type:3,value:"BARREL_ROOF"},As.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},As.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},As.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},As.DOME_ROOF={type:3,value:"DOME_ROOF"},As.FREEFORM={type:3,value:"FREEFORM"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"};let qr=As;e.IfcRoofTypeEnum=qr;let as=class{};as.EXA={type:3,value:"EXA"},as.PETA={type:3,value:"PETA"},as.TERA={type:3,value:"TERA"},as.GIGA={type:3,value:"GIGA"},as.MEGA={type:3,value:"MEGA"},as.KILO={type:3,value:"KILO"},as.HECTO={type:3,value:"HECTO"},as.DECA={type:3,value:"DECA"},as.DECI={type:3,value:"DECI"},as.CENTI={type:3,value:"CENTI"},as.MILLI={type:3,value:"MILLI"},as.MICRO={type:3,value:"MICRO"},as.NANO={type:3,value:"NANO"},as.PICO={type:3,value:"PICO"},as.FEMTO={type:3,value:"FEMTO"},as.ATTO={type:3,value:"ATTO"};let zn=as;e.IfcSIPrefix=zn;let se=class{};se.AMPERE={type:3,value:"AMPERE"},se.BECQUEREL={type:3,value:"BECQUEREL"},se.CANDELA={type:3,value:"CANDELA"},se.COULOMB={type:3,value:"COULOMB"},se.CUBIC_METRE={type:3,value:"CUBIC_METRE"},se.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},se.FARAD={type:3,value:"FARAD"},se.GRAM={type:3,value:"GRAM"},se.GRAY={type:3,value:"GRAY"},se.HENRY={type:3,value:"HENRY"},se.HERTZ={type:3,value:"HERTZ"},se.JOULE={type:3,value:"JOULE"},se.KELVIN={type:3,value:"KELVIN"},se.LUMEN={type:3,value:"LUMEN"},se.LUX={type:3,value:"LUX"},se.METRE={type:3,value:"METRE"},se.MOLE={type:3,value:"MOLE"},se.NEWTON={type:3,value:"NEWTON"},se.OHM={type:3,value:"OHM"},se.PASCAL={type:3,value:"PASCAL"},se.RADIAN={type:3,value:"RADIAN"},se.SECOND={type:3,value:"SECOND"},se.SIEMENS={type:3,value:"SIEMENS"},se.SIEVERT={type:3,value:"SIEVERT"},se.SQUARE_METRE={type:3,value:"SQUARE_METRE"},se.STERADIAN={type:3,value:"STERADIAN"},se.TESLA={type:3,value:"TESLA"},se.VOLT={type:3,value:"VOLT"},se.WATT={type:3,value:"WATT"},se.WEBER={type:3,value:"WEBER"};let bl=se;e.IfcSIUnitName=bl;let Ks=class{};Ks.BATH={type:3,value:"BATH"},Ks.BIDET={type:3,value:"BIDET"},Ks.CISTERN={type:3,value:"CISTERN"},Ks.SHOWER={type:3,value:"SHOWER"},Ks.SINK={type:3,value:"SINK"},Ks.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},Ks.TOILETPAN={type:3,value:"TOILETPAN"},Ks.URINAL={type:3,value:"URINAL"},Ks.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},Ks.WCSEAT={type:3,value:"WCSEAT"},Ks.USERDEFINED={type:3,value:"USERDEFINED"},Ks.NOTDEFINED={type:3,value:"NOTDEFINED"};let ko=Ks;e.IfcSanitaryTerminalTypeEnum=ko;let Tr=class{};Tr.UNIFORM={type:3,value:"UNIFORM"},Tr.TAPERED={type:3,value:"TAPERED"};let Sc=Tr;e.IfcSectionTypeEnum=Sc;let Me=class{};Me.COSENSOR={type:3,value:"COSENSOR"},Me.CO2SENSOR={type:3,value:"CO2SENSOR"},Me.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},Me.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},Me.FIRESENSOR={type:3,value:"FIRESENSOR"},Me.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Me.FROSTSENSOR={type:3,value:"FROSTSENSOR"},Me.GASSENSOR={type:3,value:"GASSENSOR"},Me.HEATSENSOR={type:3,value:"HEATSENSOR"},Me.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Me.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},Me.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},Me.LEVELSENSOR={type:3,value:"LEVELSENSOR"},Me.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Me.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Me.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Me.PHSENSOR={type:3,value:"PHSENSOR"},Me.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Me.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},Me.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},Me.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Me.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Me.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Me.WINDSENSOR={type:3,value:"WINDSENSOR"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"};let ju=Me;e.IfcSensorTypeEnum=ju;let In=class{};In.START_START={type:3,value:"START_START"},In.START_FINISH={type:3,value:"START_FINISH"},In.FINISH_START={type:3,value:"FINISH_START"},In.FINISH_FINISH={type:3,value:"FINISH_FINISH"},In.USERDEFINED={type:3,value:"USERDEFINED"},In.NOTDEFINED={type:3,value:"NOTDEFINED"};let cN=In;e.IfcSequenceEnum=cN;let $a=class{};$a.JALOUSIE={type:3,value:"JALOUSIE"},$a.SHUTTER={type:3,value:"SHUTTER"},$a.AWNING={type:3,value:"AWNING"},$a.USERDEFINED={type:3,value:"USERDEFINED"},$a.NOTDEFINED={type:3,value:"NOTDEFINED"};let aN=$a;e.IfcShadingDeviceTypeEnum=aN;let Ds=class{};Ds.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},Ds.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},Ds.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},Ds.P_LISTVALUE={type:3,value:"P_LISTVALUE"},Ds.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},Ds.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},Ds.Q_LENGTH={type:3,value:"Q_LENGTH"},Ds.Q_AREA={type:3,value:"Q_AREA"},Ds.Q_VOLUME={type:3,value:"Q_VOLUME"},Ds.Q_COUNT={type:3,value:"Q_COUNT"},Ds.Q_WEIGHT={type:3,value:"Q_WEIGHT"},Ds.Q_TIME={type:3,value:"Q_TIME"};let oN=Ds;e.IfcSimplePropertyTemplateTypeEnum=oN;let Ko=class{};Ko.FLOOR={type:3,value:"FLOOR"},Ko.ROOF={type:3,value:"ROOF"},Ko.LANDING={type:3,value:"LANDING"},Ko.BASESLAB={type:3,value:"BASESLAB"},Ko.USERDEFINED={type:3,value:"USERDEFINED"},Ko.NOTDEFINED={type:3,value:"NOTDEFINED"};let hN=Ko;e.IfcSlabTypeEnum=hN;let Zo=class{};Zo.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},Zo.SOLARPANEL={type:3,value:"SOLARPANEL"},Zo.USERDEFINED={type:3,value:"USERDEFINED"},Zo.NOTDEFINED={type:3,value:"NOTDEFINED"};let lN=Zo;e.IfcSolarDeviceTypeEnum=lN;let Oi=class{};Oi.CONVECTOR={type:3,value:"CONVECTOR"},Oi.RADIATOR={type:3,value:"RADIATOR"},Oi.USERDEFINED={type:3,value:"USERDEFINED"},Oi.NOTDEFINED={type:3,value:"NOTDEFINED"};let uN=Oi;e.IfcSpaceHeaterTypeEnum=uN;let dr=class{};dr.SPACE={type:3,value:"SPACE"},dr.PARKING={type:3,value:"PARKING"},dr.GFA={type:3,value:"GFA"},dr.INTERNAL={type:3,value:"INTERNAL"},dr.EXTERNAL={type:3,value:"EXTERNAL"},dr.USERDEFINED={type:3,value:"USERDEFINED"},dr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Im=dr;e.IfcSpaceTypeEnum=Im;let ys=class{};ys.CONSTRUCTION={type:3,value:"CONSTRUCTION"},ys.FIRESAFETY={type:3,value:"FIRESAFETY"},ys.LIGHTING={type:3,value:"LIGHTING"},ys.OCCUPANCY={type:3,value:"OCCUPANCY"},ys.SECURITY={type:3,value:"SECURITY"},ys.THERMAL={type:3,value:"THERMAL"},ys.TRANSPORT={type:3,value:"TRANSPORT"},ys.VENTILATION={type:3,value:"VENTILATION"},ys.USERDEFINED={type:3,value:"USERDEFINED"},ys.NOTDEFINED={type:3,value:"NOTDEFINED"};let pN=ys;e.IfcSpatialZoneTypeEnum=pN;let Yn=class{};Yn.BIRDCAGE={type:3,value:"BIRDCAGE"},Yn.COWL={type:3,value:"COWL"},Yn.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},Yn.USERDEFINED={type:3,value:"USERDEFINED"},Yn.NOTDEFINED={type:3,value:"NOTDEFINED"};let EN=Yn;e.IfcStackTerminalTypeEnum=EN;let yn=class{};yn.STRAIGHT={type:3,value:"STRAIGHT"},yn.WINDER={type:3,value:"WINDER"},yn.SPIRAL={type:3,value:"SPIRAL"},yn.CURVED={type:3,value:"CURVED"},yn.FREEFORM={type:3,value:"FREEFORM"},yn.USERDEFINED={type:3,value:"USERDEFINED"},yn.NOTDEFINED={type:3,value:"NOTDEFINED"};let fN=yn;e.IfcStairFlightTypeEnum=fN;let Ts=class{};Ts.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},Ts.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},Ts.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},Ts.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},Ts.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},Ts.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},Ts.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},Ts.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},Ts.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},Ts.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},Ts.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},Ts.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},Ts.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},Ts.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},Ts.USERDEFINED={type:3,value:"USERDEFINED"},Ts.NOTDEFINED={type:3,value:"NOTDEFINED"};let ym=Ts;e.IfcStairTypeEnum=ym;let Us=class{};Us.READWRITE={type:3,value:"READWRITE"},Us.READONLY={type:3,value:"READONLY"},Us.LOCKED={type:3,value:"LOCKED"},Us.READWRITELOCKED={type:3,value:"READWRITELOCKED"},Us.READONLYLOCKED={type:3,value:"READONLYLOCKED"};let Tm=Us;e.IfcStateEnum=Tm;let Nc=class{};Nc.CONST={type:3,value:"CONST"},Nc.LINEAR={type:3,value:"LINEAR"},Nc.POLYGONAL={type:3,value:"POLYGONAL"},Nc.EQUIDISTANT={type:3,value:"EQUIDISTANT"},Nc.SINUS={type:3,value:"SINUS"},Nc.PARABOLA={type:3,value:"PARABOLA"},Nc.DISCRETE={type:3,value:"DISCRETE"},Nc.USERDEFINED={type:3,value:"USERDEFINED"},Nc.NOTDEFINED={type:3,value:"NOTDEFINED"};let IN=Nc;e.IfcStructuralCurveActivityTypeEnum=IN;let mr=class{};mr.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},mr.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},mr.CABLE={type:3,value:"CABLE"},mr.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},mr.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},mr.USERDEFINED={type:3,value:"USERDEFINED"},mr.NOTDEFINED={type:3,value:"NOTDEFINED"};let yN=mr;e.IfcStructuralCurveMemberTypeEnum=yN;let kn=class{};kn.CONST={type:3,value:"CONST"},kn.BILINEAR={type:3,value:"BILINEAR"},kn.DISCRETE={type:3,value:"DISCRETE"},kn.ISOCONTOUR={type:3,value:"ISOCONTOUR"},kn.USERDEFINED={type:3,value:"USERDEFINED"},kn.NOTDEFINED={type:3,value:"NOTDEFINED"};let TN=kn;e.IfcStructuralSurfaceActivityTypeEnum=TN;let Rr=class{};Rr.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},Rr.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},Rr.SHELL={type:3,value:"SHELL"},Rr.USERDEFINED={type:3,value:"USERDEFINED"},Rr.NOTDEFINED={type:3,value:"NOTDEFINED"};let dN=Rr;e.IfcStructuralSurfaceMemberTypeEnum=dN;let zi=class{};zi.PURCHASE={type:3,value:"PURCHASE"},zi.WORK={type:3,value:"WORK"},zi.USERDEFINED={type:3,value:"USERDEFINED"},zi.NOTDEFINED={type:3,value:"NOTDEFINED"};let mN=zi;e.IfcSubContractResourceTypeEnum=mN;let Yi=class{};Yi.MARK={type:3,value:"MARK"},Yi.TAG={type:3,value:"TAG"},Yi.TREATMENT={type:3,value:"TREATMENT"},Yi.USERDEFINED={type:3,value:"USERDEFINED"},Yi.NOTDEFINED={type:3,value:"NOTDEFINED"};let RN=Yi;e.IfcSurfaceFeatureTypeEnum=RN;let Ac=class{};Ac.POSITIVE={type:3,value:"POSITIVE"},Ac.NEGATIVE={type:3,value:"NEGATIVE"},Ac.BOTH={type:3,value:"BOTH"};let SN=Ac;e.IfcSurfaceSide=SN;let Os=class{};Os.CONTACTOR={type:3,value:"CONTACTOR"},Os.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Os.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Os.KEYPAD={type:3,value:"KEYPAD"},Os.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Os.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Os.STARTER={type:3,value:"STARTER"},Os.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Os.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"};let NN=Os;e.IfcSwitchingDeviceTypeEnum=NN;let wl=class{};wl.PANEL={type:3,value:"PANEL"},wl.WORKSURFACE={type:3,value:"WORKSURFACE"},wl.USERDEFINED={type:3,value:"USERDEFINED"},wl.NOTDEFINED={type:3,value:"NOTDEFINED"};let AN=wl;e.IfcSystemFurnitureElementTypeEnum=AN;let Cs=class{};Cs.BASIN={type:3,value:"BASIN"},Cs.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},Cs.EXPANSION={type:3,value:"EXPANSION"},Cs.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},Cs.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Cs.STORAGE={type:3,value:"STORAGE"},Cs.VESSEL={type:3,value:"VESSEL"},Cs.USERDEFINED={type:3,value:"USERDEFINED"},Cs.NOTDEFINED={type:3,value:"NOTDEFINED"};let ST=Cs;e.IfcTankTypeEnum=ST;let Qu=class{};Qu.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},Qu.WORKTIME={type:3,value:"WORKTIME"},Qu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vh=Qu;e.IfcTaskDurationEnum=Vh;let te=class{};te.ATTENDANCE={type:3,value:"ATTENDANCE"},te.CONSTRUCTION={type:3,value:"CONSTRUCTION"},te.DEMOLITION={type:3,value:"DEMOLITION"},te.DISMANTLE={type:3,value:"DISMANTLE"},te.DISPOSAL={type:3,value:"DISPOSAL"},te.INSTALLATION={type:3,value:"INSTALLATION"},te.LOGISTIC={type:3,value:"LOGISTIC"},te.MAINTENANCE={type:3,value:"MAINTENANCE"},te.MOVE={type:3,value:"MOVE"},te.OPERATION={type:3,value:"OPERATION"},te.REMOVAL={type:3,value:"REMOVAL"},te.RENOVATION={type:3,value:"RENOVATION"},te.USERDEFINED={type:3,value:"USERDEFINED"},te.NOTDEFINED={type:3,value:"NOTDEFINED"};let DN=te;e.IfcTaskTypeEnum=DN;let Hh=class{};Hh.COUPLER={type:3,value:"COUPLER"},Hh.FIXED_END={type:3,value:"FIXED_END"},Hh.TENSIONING_END={type:3,value:"TENSIONING_END"},Hh.USERDEFINED={type:3,value:"USERDEFINED"},Hh.NOTDEFINED={type:3,value:"NOTDEFINED"};let ON=Hh;e.IfcTendonAnchorTypeEnum=ON;let Ue=class{};Ue.BAR={type:3,value:"BAR"},Ue.COATED={type:3,value:"COATED"},Ue.STRAND={type:3,value:"STRAND"},Ue.WIRE={type:3,value:"WIRE"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"};let vN=Ue;e.IfcTendonTypeEnum=vN;let Zs=class{};Zs.LEFT={type:3,value:"LEFT"},Zs.RIGHT={type:3,value:"RIGHT"},Zs.UP={type:3,value:"UP"},Zs.DOWN={type:3,value:"DOWN"};let _N=Zs;e.IfcTextPath=_N;let ps=class{};ps.CONTINUOUS={type:3,value:"CONTINUOUS"},ps.DISCRETE={type:3,value:"DISCRETE"},ps.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},ps.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},ps.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},ps.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"};let gN=ps;e.IfcTimeSeriesDataTypeEnum=gN;let ae=class{};ae.CURRENT={type:3,value:"CURRENT"},ae.FREQUENCY={type:3,value:"FREQUENCY"},ae.INVERTER={type:3,value:"INVERTER"},ae.RECTIFIER={type:3,value:"RECTIFIER"},ae.VOLTAGE={type:3,value:"VOLTAGE"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"};let LN=ae;e.IfcTransformerTypeEnum=LN;let ki=class{};ki.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},ki.CONTINUOUS={type:3,value:"CONTINUOUS"},ki.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},ki.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"};let xN=ki;e.IfcTransitionCode=xN;let Ja=class{};Ja.ELEVATOR={type:3,value:"ELEVATOR"},Ja.ESCALATOR={type:3,value:"ESCALATOR"},Ja.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},Ja.CRANEWAY={type:3,value:"CRANEWAY"},Ja.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},Ja.USERDEFINED={type:3,value:"USERDEFINED"},Ja.NOTDEFINED={type:3,value:"NOTDEFINED"};let PN=Ja;e.IfcTransportElementTypeEnum=PN;let oe=class{};oe.CARTESIAN={type:3,value:"CARTESIAN"},oe.PARAMETER={type:3,value:"PARAMETER"},oe.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let Xa=oe;e.IfcTrimmingPreference=Xa;let to=class{};to.FINNED={type:3,value:"FINNED"},to.USERDEFINED={type:3,value:"USERDEFINED"},to.NOTDEFINED={type:3,value:"NOTDEFINED"};let NT=to;e.IfcTubeBundleTypeEnum=NT;let fe=class{};fe.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},fe.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},fe.AREAUNIT={type:3,value:"AREAUNIT"},fe.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},fe.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},fe.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},fe.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},fe.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},fe.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},fe.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},fe.ENERGYUNIT={type:3,value:"ENERGYUNIT"},fe.FORCEUNIT={type:3,value:"FORCEUNIT"},fe.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},fe.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},fe.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},fe.LENGTHUNIT={type:3,value:"LENGTHUNIT"},fe.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},fe.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},fe.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},fe.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},fe.MASSUNIT={type:3,value:"MASSUNIT"},fe.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},fe.POWERUNIT={type:3,value:"POWERUNIT"},fe.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},fe.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},fe.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},fe.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},fe.TIMEUNIT={type:3,value:"TIMEUNIT"},fe.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},fe.USERDEFINED={type:3,value:"USERDEFINED"};let MN=fe;e.IfcUnitEnum=MN;let Tn=class{};Tn.ALARMPANEL={type:3,value:"ALARMPANEL"},Tn.CONTROLPANEL={type:3,value:"CONTROLPANEL"},Tn.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},Tn.INDICATORPANEL={type:3,value:"INDICATORPANEL"},Tn.MIMICPANEL={type:3,value:"MIMICPANEL"},Tn.HUMIDISTAT={type:3,value:"HUMIDISTAT"},Tn.THERMOSTAT={type:3,value:"THERMOSTAT"},Tn.WEATHERSTATION={type:3,value:"WEATHERSTATION"},Tn.USERDEFINED={type:3,value:"USERDEFINED"},Tn.NOTDEFINED={type:3,value:"NOTDEFINED"};let nI=Tn;e.IfcUnitaryControlElementTypeEnum=nI;let Kn=class{};Kn.AIRHANDLER={type:3,value:"AIRHANDLER"},Kn.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},Kn.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},Kn.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},Kn.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},Kn.USERDEFINED={type:3,value:"USERDEFINED"},Kn.NOTDEFINED={type:3,value:"NOTDEFINED"};let UN=Kn;e.IfcUnitaryEquipmentTypeEnum=UN;let pe=class{};pe.AIRRELEASE={type:3,value:"AIRRELEASE"},pe.ANTIVACUUM={type:3,value:"ANTIVACUUM"},pe.CHANGEOVER={type:3,value:"CHANGEOVER"},pe.CHECK={type:3,value:"CHECK"},pe.COMMISSIONING={type:3,value:"COMMISSIONING"},pe.DIVERTING={type:3,value:"DIVERTING"},pe.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},pe.DOUBLECHECK={type:3,value:"DOUBLECHECK"},pe.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},pe.FAUCET={type:3,value:"FAUCET"},pe.FLUSHING={type:3,value:"FLUSHING"},pe.GASCOCK={type:3,value:"GASCOCK"},pe.GASTAP={type:3,value:"GASTAP"},pe.ISOLATING={type:3,value:"ISOLATING"},pe.MIXING={type:3,value:"MIXING"},pe.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},pe.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},pe.REGULATING={type:3,value:"REGULATING"},pe.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},pe.STEAMTRAP={type:3,value:"STEAMTRAP"},pe.STOPCOCK={type:3,value:"STOPCOCK"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"};let CN=pe;e.IfcValveTypeEnum=CN;let dn=class{};dn.COMPRESSION={type:3,value:"COMPRESSION"},dn.SPRING={type:3,value:"SPRING"},dn.USERDEFINED={type:3,value:"USERDEFINED"},dn.NOTDEFINED={type:3,value:"NOTDEFINED"};let bN=dn;e.IfcVibrationIsolatorTypeEnum=bN;let jr=class{};jr.CUTOUT={type:3,value:"CUTOUT"},jr.NOTCH={type:3,value:"NOTCH"},jr.HOLE={type:3,value:"HOLE"},jr.MITER={type:3,value:"MITER"},jr.CHAMFER={type:3,value:"CHAMFER"},jr.EDGE={type:3,value:"EDGE"},jr.USERDEFINED={type:3,value:"USERDEFINED"},jr.NOTDEFINED={type:3,value:"NOTDEFINED"};let wN=jr;e.IfcVoidingFeatureTypeEnum=wN;let vi=class{};vi.MOVABLE={type:3,value:"MOVABLE"},vi.PARAPET={type:3,value:"PARAPET"},vi.PARTITIONING={type:3,value:"PARTITIONING"},vi.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},vi.SHEAR={type:3,value:"SHEAR"},vi.SOLIDWALL={type:3,value:"SOLIDWALL"},vi.STANDARD={type:3,value:"STANDARD"},vi.POLYGONAL={type:3,value:"POLYGONAL"},vi.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},vi.USERDEFINED={type:3,value:"USERDEFINED"},vi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bl=vi;e.IfcWallTypeEnum=Bl;let _i=class{};_i.FLOORTRAP={type:3,value:"FLOORTRAP"},_i.FLOORWASTE={type:3,value:"FLOORWASTE"},_i.GULLYSUMP={type:3,value:"GULLYSUMP"},_i.GULLYTRAP={type:3,value:"GULLYTRAP"},_i.ROOFDRAIN={type:3,value:"ROOFDRAIN"},_i.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},_i.WASTETRAP={type:3,value:"WASTETRAP"},_i.USERDEFINED={type:3,value:"USERDEFINED"},_i.NOTDEFINED={type:3,value:"NOTDEFINED"};let LE=_i;e.IfcWasteTerminalTypeEnum=LE;let Ce=class{};Ce.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Ce.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Ce.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Ce.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Ce.TOPHUNG={type:3,value:"TOPHUNG"},Ce.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Ce.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Ce.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Ce.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Ce.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Ce.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Ce.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Ce.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"};let BN=Ce;e.IfcWindowPanelOperationEnum=BN;let Sr=class{};Sr.LEFT={type:3,value:"LEFT"},Sr.MIDDLE={type:3,value:"MIDDLE"},Sr.RIGHT={type:3,value:"RIGHT"},Sr.BOTTOM={type:3,value:"BOTTOM"},Sr.TOP={type:3,value:"TOP"},Sr.NOTDEFINED={type:3,value:"NOTDEFINED"};let dm=Sr;e.IfcWindowPanelPositionEnum=dm;let mn=class{};mn.ALUMINIUM={type:3,value:"ALUMINIUM"},mn.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},mn.STEEL={type:3,value:"STEEL"},mn.WOOD={type:3,value:"WOOD"},mn.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},mn.PLASTIC={type:3,value:"PLASTIC"},mn.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},mn.NOTDEFINED={type:3,value:"NOTDEFINED"};let $u=mn;e.IfcWindowStyleConstructionEnum=$u;let Fe=class{};Fe.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},Fe.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},Fe.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},Fe.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},Fe.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},Fe.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},Fe.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},Fe.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},Fe.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"};let AT=Fe;e.IfcWindowStyleOperationEnum=AT;let ea=class{};ea.WINDOW={type:3,value:"WINDOW"},ea.SKYLIGHT={type:3,value:"SKYLIGHT"},ea.LIGHTDOME={type:3,value:"LIGHTDOME"},ea.USERDEFINED={type:3,value:"USERDEFINED"},ea.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ju=ea;e.IfcWindowTypeEnum=Ju;let ds=class{};ds.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},ds.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},ds.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},ds.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},ds.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},ds.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},ds.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},ds.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},ds.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},ds.USERDEFINED={type:3,value:"USERDEFINED"},ds.NOTDEFINED={type:3,value:"NOTDEFINED"};let DT=ds;e.IfcWindowTypePartitioningEnum=DT;let Qr=class{};Qr.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},Qr.SECONDSHIFT={type:3,value:"SECONDSHIFT"},Qr.THIRDSHIFT={type:3,value:"THIRDSHIFT"},Qr.USERDEFINED={type:3,value:"USERDEFINED"},Qr.NOTDEFINED={type:3,value:"NOTDEFINED"};let GN=Qr;e.IfcWorkCalendarTypeEnum=GN;let Dc=class{};Dc.ACTUAL={type:3,value:"ACTUAL"},Dc.BASELINE={type:3,value:"BASELINE"},Dc.PLANNED={type:3,value:"PLANNED"},Dc.USERDEFINED={type:3,value:"USERDEFINED"},Dc.NOTDEFINED={type:3,value:"NOTDEFINED"};let FN=Dc;e.IfcWorkPlanTypeEnum=FN;let sa=class{};sa.ACTUAL={type:3,value:"ACTUAL"},sa.BASELINE={type:3,value:"BASELINE"},sa.PLANNED={type:3,value:"PLANNED"},sa.USERDEFINED={type:3,value:"USERDEFINED"},sa.NOTDEFINED={type:3,value:"NOTDEFINED"};let VN=sa;e.IfcWorkScheduleTypeEnum=VN;class xE extends lt{constructor(o,l,f){super(),this.Role=o,this.UserDefinedRole=l,this.Description=f,this.type=3630933823}}e.IfcActorRole=xE;class OT extends lt{constructor(o,l,f){super(),this.Purpose=o,this.Description=l,this.UserDefinedPurpose=f,this.type=618182010}}e.IfcAddress=OT;class Nr extends lt{constructor(o,l,f,T){super(),this.ApplicationDeveloper=o,this.Version=l,this.ApplicationFullName=f,this.ApplicationIdentifier=T,this.type=639542469}}e.IfcApplication=Nr;class mm extends lt{constructor(o,l,f,T,R,A,L,P,B,J){super(),this.Name=o,this.Description=l,this.AppliedValue=f,this.UnitBasis=T,this.ApplicableDate=R,this.FixedUntilDate=A,this.Category=L,this.Condition=P,this.ArithmeticOperator=B,this.Components=J,this.type=411424972}}e.IfcAppliedValue=mm;class rI extends lt{constructor(o,l,f,T,R,A,L,P,B){super(),this.Identifier=o,this.Name=l,this.Description=f,this.TimeOfApproval=T,this.Status=R,this.Level=A,this.Qualifier=L,this.RequestingApproval=P,this.GivingApproval=B,this.type=130549933}}e.IfcApproval=rI;class cI extends lt{constructor(o){super(),this.Name=o,this.type=4037036970}}e.IfcBoundaryCondition=cI;class Rn extends cI{constructor(o,l,f,T,R,A,L){super(o),this.Name=o,this.TranslationalStiffnessByLengthX=l,this.TranslationalStiffnessByLengthY=f,this.TranslationalStiffnessByLengthZ=T,this.RotationalStiffnessByLengthX=R,this.RotationalStiffnessByLengthY=A,this.RotationalStiffnessByLengthZ=L,this.type=1560379544}}e.IfcBoundaryEdgeCondition=Rn;class Rm extends cI{constructor(o,l,f,T){super(o),this.Name=o,this.TranslationalStiffnessByAreaX=l,this.TranslationalStiffnessByAreaY=f,this.TranslationalStiffnessByAreaZ=T,this.type=3367102660}}e.IfcBoundaryFaceCondition=Rm;class ia extends cI{constructor(o,l,f,T,R,A,L){super(o),this.Name=o,this.TranslationalStiffnessX=l,this.TranslationalStiffnessY=f,this.TranslationalStiffnessZ=T,this.RotationalStiffnessX=R,this.RotationalStiffnessY=A,this.RotationalStiffnessZ=L,this.type=1387855156}}e.IfcBoundaryNodeCondition=ia;class HN extends ia{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.Name=o,this.TranslationalStiffnessX=l,this.TranslationalStiffnessY=f,this.TranslationalStiffnessZ=T,this.RotationalStiffnessX=R,this.RotationalStiffnessY=A,this.RotationalStiffnessZ=L,this.WarpingStiffness=P,this.type=2069777674}}e.IfcBoundaryNodeConditionWarping=HN;class Zn extends lt{constructor(){super(),this.type=2859738748}}e.IfcConnectionGeometry=Zn;class PE extends Zn{constructor(o,l){super(),this.PointOnRelatingElement=o,this.PointOnRelatedElement=l,this.type=2614616156}}e.IfcConnectionPointGeometry=PE;class aI extends Zn{constructor(o,l){super(),this.SurfaceOnRelatingElement=o,this.SurfaceOnRelatedElement=l,this.type=2732653382}}e.IfcConnectionSurfaceGeometry=aI;class WN extends Zn{constructor(o,l){super(),this.VolumeOnRelatingElement=o,this.VolumeOnRelatedElement=l,this.type=775493141}}e.IfcConnectionVolumeGeometry=WN;class ss extends lt{constructor(o,l,f,T,R,A,L){super(),this.Name=o,this.Description=l,this.ConstraintGrade=f,this.ConstraintSource=T,this.CreatingActor=R,this.CreationTime=A,this.UserDefinedGrade=L,this.type=1959218052}}e.IfcConstraint=ss;class Sm extends lt{constructor(o,l){super(),this.SourceCRS=o,this.TargetCRS=l,this.type=1785450214}}e.IfcCoordinateOperation=Sm;class qo extends lt{constructor(o,l,f,T){super(),this.Name=o,this.Description=l,this.GeodeticDatum=f,this.VerticalDatum=T,this.type=1466758467}}e.IfcCoordinateReferenceSystem=qo;class zN extends mm{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B,J),this.Name=o,this.Description=l,this.AppliedValue=f,this.UnitBasis=T,this.ApplicableDate=R,this.FixedUntilDate=A,this.Category=L,this.Condition=P,this.ArithmeticOperator=B,this.Components=J,this.type=602808272}}e.IfcCostValue=zN;class Ar extends lt{constructor(o,l,f){super(),this.Elements=o,this.UnitType=l,this.UserDefinedType=f,this.type=1765591967}}e.IfcDerivedUnit=Ar;class vT extends lt{constructor(o,l){super(),this.Unit=o,this.Exponent=l,this.type=1045800335}}e.IfcDerivedUnitElement=vT;class Wh extends lt{constructor(o,l,f,T,R,A,L){super(),this.LengthExponent=o,this.MassExponent=l,this.TimeExponent=f,this.ElectricCurrentExponent=T,this.ThermodynamicTemperatureExponent=R,this.AmountOfSubstanceExponent=A,this.LuminousIntensityExponent=L,this.type=2949456006}}e.IfcDimensionalExponents=Wh;class jo extends lt{constructor(){super(),this.type=4294318154}}e.IfcExternalInformation=jo;class na extends lt{constructor(o,l,f){super(),this.Location=o,this.Identification=l,this.Name=f,this.type=3200245327}}e.IfcExternalReference=na;class Nm extends na{constructor(o,l,f){super(o,l,f),this.Location=o,this.Identification=l,this.Name=f,this.type=2242383968}}e.IfcExternallyDefinedHatchStyle=Nm;class Qo extends na{constructor(o,l,f){super(o,l,f),this.Location=o,this.Identification=l,this.Name=f,this.type=1040185647}}e.IfcExternallyDefinedSurfaceStyle=Qo;class YN extends na{constructor(o,l,f){super(o,l,f),this.Location=o,this.Identification=l,this.Name=f,this.type=3548104201}}e.IfcExternallyDefinedTextFont=YN;class ra extends lt{constructor(o,l,f){super(),this.AxisTag=o,this.AxisCurve=l,this.SameSense=f,this.type=852622518}}e.IfcGridAxis=ra;class kN extends lt{constructor(o,l){super(),this.TimeStamp=o,this.ListValues=l,this.type=3020489413}}e.IfcIrregularTimeSeriesValue=kN;class eo extends jo{constructor(o,l,f,T,R,A){super(),this.Name=o,this.Version=l,this.Publisher=f,this.VersionDate=T,this.Location=R,this.Description=A,this.type=2655187982}}e.IfcLibraryInformation=eo;class Am extends na{constructor(o,l,f,T,R,A){super(o,l,f),this.Location=o,this.Identification=l,this.Name=f,this.Description=T,this.Language=R,this.ReferencedLibrary=A,this.type=3452421091}}e.IfcLibraryReference=Am;class ME extends lt{constructor(o,l,f){super(),this.MainPlaneAngle=o,this.SecondaryPlaneAngle=l,this.LuminousIntensity=f,this.type=4162380809}}e.IfcLightDistributionData=ME;class oI extends lt{constructor(o,l){super(),this.LightDistributionCurve=o,this.DistributionData=l,this.type=1566485204}}e.IfcLightIntensityDistribution=oI;class $o extends Sm{constructor(o,l,f,T,R,A,L,P){super(o,l),this.SourceCRS=o,this.TargetCRS=l,this.Eastings=f,this.Northings=T,this.OrthogonalHeight=R,this.XAxisAbscissa=A,this.XAxisOrdinate=L,this.Scale=P,this.type=3057273783}}e.IfcMapConversion=$o;class KN extends lt{constructor(o,l){super(),this.MaterialClassifications=o,this.ClassifiedMaterial=l,this.type=1847130766}}e.IfcMaterialClassificationRelationship=KN;class ca extends lt{constructor(){super(),this.type=760658860}}e.IfcMaterialDefinition=ca;class Dm extends ca{constructor(o,l,f,T,R,A,L){super(),this.Material=o,this.LayerThickness=l,this.IsVentilated=f,this.Name=T,this.Description=R,this.Category=A,this.Priority=L,this.type=248100487}}e.IfcMaterialLayer=Dm;class hI extends ca{constructor(o,l,f){super(),this.MaterialLayers=o,this.LayerSetName=l,this.Description=f,this.type=3303938423}}e.IfcMaterialLayerSet=hI;class ZN extends Dm{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L),this.Material=o,this.LayerThickness=l,this.IsVentilated=f,this.Name=T,this.Description=R,this.Category=A,this.Priority=L,this.OffsetDirection=P,this.OffsetValues=B,this.type=1847252529}}e.IfcMaterialLayerWithOffsets=ZN;class Ae extends lt{constructor(o){super(),this.Materials=o,this.type=2199411900}}e.IfcMaterialList=Ae;class Om extends ca{constructor(o,l,f,T,R,A){super(),this.Name=o,this.Description=l,this.Material=f,this.Profile=T,this.Priority=R,this.Category=A,this.type=2235152071}}e.IfcMaterialProfile=Om;class $r extends ca{constructor(o,l,f,T){super(),this.Name=o,this.Description=l,this.MaterialProfiles=f,this.CompositeProfile=T,this.type=164193824}}e.IfcMaterialProfileSet=$r;class _T extends Om{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A),this.Name=o,this.Description=l,this.Material=f,this.Profile=T,this.Priority=R,this.Category=A,this.OffsetValues=L,this.type=552965576}}e.IfcMaterialProfileWithOffsets=_T;class so extends lt{constructor(){super(),this.type=1507914824}}e.IfcMaterialUsageDefinition=so;class qN extends lt{constructor(o,l){super(),this.ValueComponent=o,this.UnitComponent=l,this.type=2597039031}}e.IfcMeasureWithUnit=qN;class Es extends ss{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L),this.Name=o,this.Description=l,this.ConstraintGrade=f,this.ConstraintSource=T,this.CreatingActor=R,this.CreationTime=A,this.UserDefinedGrade=L,this.Benchmark=P,this.ValueSource=B,this.DataValue=J,this.ReferencePath=ft,this.type=3368373690}}e.IfcMetric=Es;class jN extends lt{constructor(o){super(),this.Currency=o,this.type=2706619895}}e.IfcMonetaryUnit=jN;class qn extends lt{constructor(o,l){super(),this.Dimensions=o,this.UnitType=l,this.type=1918398963}}e.IfcNamedUnit=qn;class gT extends lt{constructor(){super(),this.type=3701648758}}e.IfcObjectPlacement=gT;class Jo extends ss{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L),this.Name=o,this.Description=l,this.ConstraintGrade=f,this.ConstraintSource=T,this.CreatingActor=R,this.CreationTime=A,this.UserDefinedGrade=L,this.BenchmarkValues=P,this.LogicalAggregator=B,this.ObjectiveQualifier=J,this.UserDefinedQualifier=ft,this.type=2251480897}}e.IfcObjective=Jo;class zh extends lt{constructor(o,l,f,T,R){super(),this.Identification=o,this.Name=l,this.Description=f,this.Roles=T,this.Addresses=R,this.type=4251960020}}e.IfcOrganization=zh;class Xu extends lt{constructor(o,l,f,T,R,A,L,P){super(),this.OwningUser=o,this.OwningApplication=l,this.State=f,this.ChangeAction=T,this.LastModifiedDate=R,this.LastModifyingUser=A,this.LastModifyingApplication=L,this.CreationDate=P,this.type=1207048766}}e.IfcOwnerHistory=Xu;class QN extends lt{constructor(o,l,f,T,R,A,L,P){super(),this.Identification=o,this.FamilyName=l,this.GivenName=f,this.MiddleNames=T,this.PrefixTitles=R,this.SuffixTitles=A,this.Roles=L,this.Addresses=P,this.type=2077209135}}e.IfcPerson=QN;class Gl extends lt{constructor(o,l,f){super(),this.ThePerson=o,this.TheOrganization=l,this.Roles=f,this.type=101040310}}e.IfcPersonAndOrganization=Gl;class LT extends lt{constructor(o,l){super(),this.Name=o,this.Description=l,this.type=2483315170}}e.IfcPhysicalQuantity=LT;class jn extends LT{constructor(o,l,f){super(o,l),this.Name=o,this.Description=l,this.Unit=f,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=jn;class $N extends OT{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f),this.Purpose=o,this.Description=l,this.UserDefinedPurpose=f,this.InternalLocation=T,this.AddressLines=R,this.PostalBox=A,this.Town=L,this.Region=P,this.PostalCode=B,this.Country=J,this.type=3355820592}}e.IfcPostalAddress=$N;class De extends lt{constructor(){super(),this.type=677532197}}e.IfcPresentationItem=De;class Fl extends lt{constructor(o,l,f,T){super(),this.Name=o,this.Description=l,this.AssignedItems=f,this.Identifier=T,this.type=2022622350}}e.IfcPresentationLayerAssignment=Fl;class io extends Fl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T),this.Name=o,this.Description=l,this.AssignedItems=f,this.Identifier=T,this.LayerOn=R,this.LayerFrozen=A,this.LayerBlocked=L,this.LayerStyles=P,this.type=1304840413}}e.IfcPresentationLayerWithStyle=io;class tp extends lt{constructor(o){super(),this.Name=o,this.type=3119450353}}e.IfcPresentationStyle=tp;class Qn extends lt{constructor(o){super(),this.Styles=o,this.type=2417041796}}e.IfcPresentationStyleAssignment=Qn;class lI extends lt{constructor(o,l,f){super(),this.Name=o,this.Description=l,this.Representations=f,this.type=2095639259}}e.IfcProductRepresentation=lI;class Jr extends lt{constructor(o,l){super(),this.ProfileType=o,this.ProfileName=l,this.type=3958567839}}e.IfcProfileDef=Jr;class JN extends qo{constructor(o,l,f,T,R,A,L){super(o,l,f,T),this.Name=o,this.Description=l,this.GeodeticDatum=f,this.VerticalDatum=T,this.MapProjection=R,this.MapZone=A,this.MapUnit=L,this.type=3843373140}}e.IfcProjectedCRS=JN;class no extends lt{constructor(){super(),this.type=986844984}}e.IfcPropertyAbstraction=no;class XN extends no{constructor(o,l,f){super(),this.Name=o,this.EnumerationValues=l,this.Unit=f,this.type=3710013099}}e.IfcPropertyEnumeration=XN;class Oc extends jn{constructor(o,l,f,T,R){super(o,l,f),this.Name=o,this.Description=l,this.Unit=f,this.AreaValue=T,this.Formula=R,this.type=2044713172}}e.IfcQuantityArea=Oc;class tA extends jn{constructor(o,l,f,T,R){super(o,l,f),this.Name=o,this.Description=l,this.Unit=f,this.CountValue=T,this.Formula=R,this.type=2093928680}}e.IfcQuantityCount=tA;class ep extends jn{constructor(o,l,f,T,R){super(o,l,f),this.Name=o,this.Description=l,this.Unit=f,this.LengthValue=T,this.Formula=R,this.type=931644368}}e.IfcQuantityLength=ep;class eA extends jn{constructor(o,l,f,T,R){super(o,l,f),this.Name=o,this.Description=l,this.Unit=f,this.TimeValue=T,this.Formula=R,this.type=3252649465}}e.IfcQuantityTime=eA;class Yh extends jn{constructor(o,l,f,T,R){super(o,l,f),this.Name=o,this.Description=l,this.Unit=f,this.VolumeValue=T,this.Formula=R,this.type=2405470396}}e.IfcQuantityVolume=Yh;class sA extends jn{constructor(o,l,f,T,R){super(o,l,f),this.Name=o,this.Description=l,this.Unit=f,this.WeightValue=T,this.Formula=R,this.type=825690147}}e.IfcQuantityWeight=sA;class sp extends lt{constructor(o,l,f,T,R,A,L,P){super(),this.RecurrenceType=o,this.DayComponent=l,this.WeekdayComponent=f,this.MonthComponent=T,this.Position=R,this.Interval=A,this.Occurrences=L,this.TimePeriods=P,this.type=3915482550}}e.IfcRecurrencePattern=sp;class iA extends lt{constructor(o,l,f,T,R){super(),this.TypeIdentifier=o,this.AttributeIdentifier=l,this.InstanceName=f,this.ListPositions=T,this.InnerReference=R,this.type=2433181523}}e.IfcReference=iA;class xT extends lt{constructor(o,l,f,T){super(),this.ContextOfItems=o,this.RepresentationIdentifier=l,this.RepresentationType=f,this.Items=T,this.type=1076942058}}e.IfcRepresentation=xT;class uI extends lt{constructor(o,l){super(),this.ContextIdentifier=o,this.ContextType=l,this.type=3377609919}}e.IfcRepresentationContext=uI;class kh extends lt{constructor(){super(),this.type=3008791417}}e.IfcRepresentationItem=kh;class nA extends lt{constructor(o,l){super(),this.MappingOrigin=o,this.MappedRepresentation=l,this.type=1660063152}}e.IfcRepresentationMap=nA;class ro extends lt{constructor(o,l){super(),this.Name=o,this.Description=l,this.type=2439245199}}e.IfcResourceLevelRelationship=ro;class UE extends lt{constructor(o,l,f,T){super(),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=2341007311}}e.IfcRoot=UE;class rA extends qn{constructor(o,l,f){super(new Io(0),o),this.UnitType=o,this.Prefix=l,this.Name=f,this.type=448429030}}e.IfcSIUnit=rA;class vc extends lt{constructor(o,l,f){super(),this.Name=o,this.DataOrigin=l,this.UserDefinedDataOrigin=f,this.type=1054537805}}e.IfcSchedulingTime=vc;class cA extends lt{constructor(o,l,f,T,R){super(),this.ShapeRepresentations=o,this.Name=l,this.Description=f,this.ProductDefinitional=T,this.PartOfProductDefinitionShape=R,this.type=867548509}}e.IfcShapeAspect=cA;class PT extends xT{constructor(o,l,f,T){super(o,l,f,T),this.ContextOfItems=o,this.RepresentationIdentifier=l,this.RepresentationType=f,this.Items=T,this.type=3982875396}}e.IfcShapeModel=PT;class MT extends PT{constructor(o,l,f,T){super(o,l,f,T),this.ContextOfItems=o,this.RepresentationIdentifier=l,this.RepresentationType=f,this.Items=T,this.type=4240577450}}e.IfcShapeRepresentation=MT;class pI extends lt{constructor(o){super(),this.Name=o,this.type=2273995522}}e.IfcStructuralConnectionCondition=pI;class Vl extends lt{constructor(o){super(),this.Name=o,this.type=2162789131}}e.IfcStructuralLoad=Vl;class vm extends Vl{constructor(o,l,f){super(o),this.Name=o,this.Values=l,this.Locations=f,this.type=3478079324}}e.IfcStructuralLoadConfiguration=vm;class UT extends Vl{constructor(o){super(o),this.Name=o,this.type=609421318}}e.IfcStructuralLoadOrResult=UT;class ip extends UT{constructor(o){super(o),this.Name=o,this.type=2525727697}}e.IfcStructuralLoadStatic=ip;class CT extends ip{constructor(o,l,f,T){super(o),this.Name=o,this.DeltaTConstant=l,this.DeltaTY=f,this.DeltaTZ=T,this.type=3408363356}}e.IfcStructuralLoadTemperature=CT;class EI extends xT{constructor(o,l,f,T){super(o,l,f,T),this.ContextOfItems=o,this.RepresentationIdentifier=l,this.RepresentationType=f,this.Items=T,this.type=2830218821}}e.IfcStyleModel=EI;class fI extends kh{constructor(o,l,f){super(),this.Item=o,this.Styles=l,this.Name=f,this.type=3958052878}}e.IfcStyledItem=fI;class _m extends EI{constructor(o,l,f,T){super(o,l,f,T),this.ContextOfItems=o,this.RepresentationIdentifier=l,this.RepresentationType=f,this.Items=T,this.type=3049322572}}e.IfcStyledRepresentation=_m;class Ve extends UT{constructor(o,l,f,T){super(o),this.Name=o,this.SurfaceReinforcement1=l,this.SurfaceReinforcement2=f,this.ShearReinforcement=T,this.type=2934153892}}e.IfcSurfaceReinforcementArea=Ve;class aA extends tp{constructor(o,l,f){super(o),this.Name=o,this.Side=l,this.Styles=f,this.type=1300840506}}e.IfcSurfaceStyle=aA;class gm extends De{constructor(o,l,f,T){super(),this.DiffuseTransmissionColour=o,this.DiffuseReflectionColour=l,this.TransmissionColour=f,this.ReflectanceColour=T,this.type=3303107099}}e.IfcSurfaceStyleLighting=gm;class II extends De{constructor(o,l){super(),this.RefractionIndex=o,this.DispersionFactor=l,this.type=1607154358}}e.IfcSurfaceStyleRefraction=II;class co extends De{constructor(o,l){super(),this.SurfaceColour=o,this.Transparency=l,this.type=846575682}}e.IfcSurfaceStyleShading=co;class oA extends De{constructor(o){super(),this.Textures=o,this.type=1351298697}}e.IfcSurfaceStyleWithTextures=oA;class yI extends De{constructor(o,l,f,T,R){super(),this.RepeatS=o,this.RepeatT=l,this.Mode=f,this.TextureTransform=T,this.Parameter=R,this.type=626085974}}e.IfcSurfaceTexture=yI;class hA extends lt{constructor(o,l,f){super(),this.Name=o,this.Rows=l,this.Columns=f,this.type=985171141}}e.IfcTable=hA;class CE extends lt{constructor(o,l,f,T,R){super(),this.Identifier=o,this.Name=l,this.Description=f,this.Unit=T,this.ReferencePath=R,this.type=2043862942}}e.IfcTableColumn=CE;class lA extends lt{constructor(o,l){super(),this.RowCells=o,this.IsHeading=l,this.type=531007025}}e.IfcTableRow=lA;class Lm extends vc{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr,rl,oy,hy){super(o,l,f),this.Name=o,this.DataOrigin=l,this.UserDefinedDataOrigin=f,this.DurationType=T,this.ScheduleDuration=R,this.ScheduleStart=A,this.ScheduleFinish=L,this.EarlyStart=P,this.EarlyFinish=B,this.LateStart=J,this.LateFinish=ft,this.FreeFloat=Ot,this.TotalFloat=Wt,this.IsCritical=we,this.StatusTime=$s,this.ActualDuration=Js,this.ActualStart=vr,this.ActualFinish=rl,this.RemainingTime=oy,this.Completion=hy,this.type=1549132990}}e.IfcTaskTime=Lm;class uA extends Lm{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr,rl,oy,hy,_p){super(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr,rl,oy,hy),this.Name=o,this.DataOrigin=l,this.UserDefinedDataOrigin=f,this.DurationType=T,this.ScheduleDuration=R,this.ScheduleStart=A,this.ScheduleFinish=L,this.EarlyStart=P,this.EarlyFinish=B,this.LateStart=J,this.LateFinish=ft,this.FreeFloat=Ot,this.TotalFloat=Wt,this.IsCritical=we,this.StatusTime=$s,this.ActualDuration=Js,this.ActualStart=vr,this.ActualFinish=rl,this.RemainingTime=oy,this.Completion=hy,this.Recurrence=_p,this.type=2771591690}}e.IfcTaskTimeRecurring=uA;class xm extends OT{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f),this.Purpose=o,this.Description=l,this.UserDefinedPurpose=f,this.TelephoneNumbers=T,this.FacsimileNumbers=R,this.PagerNumber=A,this.ElectronicMailAddresses=L,this.WWWHomePageURL=P,this.MessagingIDs=B,this.type=912023232}}e.IfcTelecomAddress=xm;class pA extends tp{constructor(o,l,f,T,R){super(o),this.Name=o,this.TextCharacterAppearance=l,this.TextStyle=f,this.TextFontStyle=T,this.ModelOrDraughting=R,this.type=1447204868}}e.IfcTextStyle=pA;class EA extends De{constructor(o,l){super(),this.Colour=o,this.BackgroundColour=l,this.type=2636378356}}e.IfcTextStyleForDefinedFont=EA;class bE extends De{constructor(o,l,f,T,R,A,L){super(),this.TextIndent=o,this.TextAlign=l,this.TextDecoration=f,this.LetterSpacing=T,this.WordSpacing=R,this.TextTransform=A,this.LineHeight=L,this.type=1640371178}}e.IfcTextStyleTextModel=bE;class TI extends De{constructor(o){super(),this.Maps=o,this.type=280115917}}e.IfcTextureCoordinate=TI;class fA extends TI{constructor(o,l,f){super(o),this.Maps=o,this.Mode=l,this.Parameter=f,this.type=1742049831}}e.IfcTextureCoordinateGenerator=fA;class Kh extends TI{constructor(o,l,f){super(o),this.Maps=o,this.Vertices=l,this.MappedTo=f,this.type=2552916305}}e.IfcTextureMap=Kh;class dI extends De{constructor(o){super(),this.Coordinates=o,this.type=1210645708}}e.IfcTextureVertex=dI;class Pm extends De{constructor(o){super(),this.TexCoordsList=o,this.type=3611470254}}e.IfcTextureVertexList=Pm;class IA extends lt{constructor(o,l){super(),this.StartTime=o,this.EndTime=l,this.type=1199560280}}e.IfcTimePeriod=IA;class bT extends lt{constructor(o,l,f,T,R,A,L,P){super(),this.Name=o,this.Description=l,this.StartTime=f,this.EndTime=T,this.TimeSeriesDataType=R,this.DataOrigin=A,this.UserDefinedDataOrigin=L,this.Unit=P,this.type=3101149627}}e.IfcTimeSeries=bT;class Dr extends lt{constructor(o){super(),this.ListValues=o,this.type=581633288}}e.IfcTimeSeriesValue=Dr;class Zh extends kh{constructor(){super(),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Zh;class yA extends PT{constructor(o,l,f,T){super(o,l,f,T),this.ContextOfItems=o,this.RepresentationIdentifier=l,this.RepresentationType=f,this.Items=T,this.type=1735638870}}e.IfcTopologyRepresentation=yA;class wT extends lt{constructor(o){super(),this.Units=o,this.type=180925521}}e.IfcUnitAssignment=wT;class wE extends Zh{constructor(){super(),this.type=2799835756}}e.IfcVertex=wE;class Mm extends wE{constructor(o){super(),this.VertexGeometry=o,this.type=1907098498}}e.IfcVertexPoint=Mm;class mI extends lt{constructor(o,l){super(),this.IntersectingAxes=o,this.OffsetDistances=l,this.type=891718957}}e.IfcVirtualGridIntersection=mI;class RI extends vc{constructor(o,l,f,T,R,A){super(o,l,f),this.Name=o,this.DataOrigin=l,this.UserDefinedDataOrigin=f,this.RecurrencePattern=T,this.Start=R,this.Finish=A,this.type=1236880293}}e.IfcWorkTime=RI;class SI extends ro{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.RelatingApproval=f,this.RelatedApprovals=T,this.type=3869604511}}e.IfcApprovalRelationship=SI;class Um extends Jr{constructor(o,l,f){super(o,l),this.ProfileType=o,this.ProfileName=l,this.OuterCurve=f,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Um;class Cm extends Jr{constructor(o,l,f){super(o,l),this.ProfileType=o,this.ProfileName=l,this.Curve=f,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Cm;class bm extends Um{constructor(o,l,f,T){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.OuterCurve=f,this.InnerCurves=T,this.type=2705031697}}e.IfcArbitraryProfileDefWithVoids=bm;class wm extends yI{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.RepeatS=o,this.RepeatT=l,this.Mode=f,this.TextureTransform=T,this.Parameter=R,this.RasterFormat=A,this.RasterCode=L,this.type=616511568}}e.IfcBlobTexture=wm;class TA extends Cm{constructor(o,l,f,T){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Curve=f,this.Thickness=T,this.type=3150382593}}e.IfcCenterLineProfileDef=TA;class BT extends jo{constructor(o,l,f,T,R,A,L){super(),this.Source=o,this.Edition=l,this.EditionDate=f,this.Name=T,this.Description=R,this.Location=A,this.ReferenceTokens=L,this.type=747523909}}e.IfcClassification=BT;class qh extends na{constructor(o,l,f,T,R,A){super(o,l,f),this.Location=o,this.Identification=l,this.Name=f,this.ReferencedSource=T,this.Description=R,this.Sort=A,this.type=647927063}}e.IfcClassificationReference=qh;class dA extends De{constructor(o){super(),this.ColourList=o,this.type=3285139300}}e.IfcColourRgbList=dA;class qs extends De{constructor(o){super(),this.Name=o,this.type=3264961684}}e.IfcColourSpecification=qs;class Bm extends Jr{constructor(o,l,f,T){super(o,l),this.ProfileType=o,this.ProfileName=l,this.Profiles=f,this.Label=T,this.type=1485152156}}e.IfcCompositeProfileDef=Bm;class GT extends Zh{constructor(o){super(),this.CfsFaces=o,this.type=370225590}}e.IfcConnectedFaceSet=GT;class BE extends Zn{constructor(o,l){super(),this.CurveOnRelatingElement=o,this.CurveOnRelatedElement=l,this.type=1981873012}}e.IfcConnectionCurveGeometry=BE;class Ki extends PE{constructor(o,l,f,T,R){super(o,l),this.PointOnRelatingElement=o,this.PointOnRelatedElement=l,this.EccentricityInX=f,this.EccentricityInY=T,this.EccentricityInZ=R,this.type=45288368}}e.IfcConnectionPointEccentricity=Ki;class Hl extends qn{constructor(o,l,f){super(o,l),this.Dimensions=o,this.UnitType=l,this.Name=f,this.type=3050246964}}e.IfcContextDependentUnit=Hl;class Gm extends qn{constructor(o,l,f,T){super(o,l),this.Dimensions=o,this.UnitType=l,this.Name=f,this.ConversionFactor=T,this.type=2889183280}}e.IfcConversionBasedUnit=Gm;class Wl extends Gm{constructor(o,l,f,T,R){super(o,l,f,T),this.Dimensions=o,this.UnitType=l,this.Name=f,this.ConversionFactor=T,this.ConversionOffset=R,this.type=2713554722}}e.IfcConversionBasedUnitWithOffset=Wl;class mA extends ro{constructor(o,l,f,T,R,A,L){super(o,l),this.Name=o,this.Description=l,this.RelatingMonetaryUnit=f,this.RelatedMonetaryUnit=T,this.ExchangeRate=R,this.RateDateTime=A,this.RateSource=L,this.type=539742890}}e.IfcCurrencyRelationship=mA;class RA extends tp{constructor(o,l,f,T,R){super(o),this.Name=o,this.CurveFont=l,this.CurveWidth=f,this.CurveColour=T,this.ModelOrDraughting=R,this.type=3800577675}}e.IfcCurveStyle=RA;class np extends De{constructor(o,l){super(),this.Name=o,this.PatternList=l,this.type=1105321065}}e.IfcCurveStyleFont=np;class SA extends De{constructor(o,l,f){super(),this.Name=o,this.CurveFont=l,this.CurveFontScaling=f,this.type=2367409068}}e.IfcCurveStyleFontAndScaling=SA;class NA extends De{constructor(o,l){super(),this.VisibleSegmentLength=o,this.InvisibleSegmentLength=l,this.type=3510044353}}e.IfcCurveStyleFontPattern=NA;class Fm extends Jr{constructor(o,l,f,T,R){super(o,l),this.ProfileType=o,this.ProfileName=l,this.ParentProfile=f,this.Operator=T,this.Label=R,this.type=3632507154}}e.IfcDerivedProfileDef=Fm;class AA extends jo{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr){super(),this.Identification=o,this.Name=l,this.Description=f,this.Location=T,this.Purpose=R,this.IntendedUse=A,this.Scope=L,this.Revision=P,this.DocumentOwner=B,this.Editors=J,this.CreationTime=ft,this.LastRevisionTime=Ot,this.ElectronicFormat=Wt,this.ValidFrom=we,this.ValidUntil=$s,this.Confidentiality=Js,this.Status=vr,this.type=1154170062}}e.IfcDocumentInformation=AA;class DA extends ro{constructor(o,l,f,T,R){super(o,l),this.Name=o,this.Description=l,this.RelatingDocument=f,this.RelatedDocuments=T,this.RelationshipType=R,this.type=770865208}}e.IfcDocumentInformationRelationship=DA;class GE extends na{constructor(o,l,f,T,R){super(o,l,f),this.Location=o,this.Identification=l,this.Name=f,this.Description=T,this.ReferencedDocument=R,this.type=3732053477}}e.IfcDocumentReference=GE;class NI extends Zh{constructor(o,l){super(),this.EdgeStart=o,this.EdgeEnd=l,this.type=3900360178}}e.IfcEdge=NI;class FT extends NI{constructor(o,l,f,T){super(o,l),this.EdgeStart=o,this.EdgeEnd=l,this.EdgeGeometry=f,this.SameSense=T,this.type=476780140}}e.IfcEdgeCurve=FT;class Vm extends vc{constructor(o,l,f,T,R,A,L){super(o,l,f),this.Name=o,this.DataOrigin=l,this.UserDefinedDataOrigin=f,this.ActualDate=T,this.EarlyDate=R,this.LateDate=A,this.ScheduleDate=L,this.type=211053100}}e.IfcEventTime=Vm;class zl extends no{constructor(o,l,f){super(),this.Name=o,this.Description=l,this.Properties=f,this.type=297599258}}e.IfcExtendedProperties=zl;class OA extends ro{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.RelatingReference=f,this.RelatedResourceObjects=T,this.type=1437805879}}e.IfcExternalReferenceRelationship=OA;class _c extends Zh{constructor(o){super(),this.Bounds=o,this.type=2556980723}}e.IfcFace=_c;class Hm extends Zh{constructor(o,l){super(),this.Bound=o,this.Orientation=l,this.type=1809719519}}e.IfcFaceBound=Hm;class FE extends Hm{constructor(o,l){super(o,l),this.Bound=o,this.Orientation=l,this.type=803316827}}e.IfcFaceOuterBound=FE;class Wm extends _c{constructor(o,l,f){super(o),this.Bounds=o,this.FaceSurface=l,this.SameSense=f,this.type=3008276851}}e.IfcFaceSurface=Wm;class Yl extends pI{constructor(o,l,f,T,R,A,L){super(o),this.Name=o,this.TensionFailureX=l,this.TensionFailureY=f,this.TensionFailureZ=T,this.CompressionFailureX=R,this.CompressionFailureY=A,this.CompressionFailureZ=L,this.type=4219587988}}e.IfcFailureConnectionCondition=Yl;class vA extends tp{constructor(o,l,f){super(o),this.Name=o,this.FillStyles=l,this.ModelorDraughting=f,this.type=738692330}}e.IfcFillAreaStyle=vA;class AI extends uI{constructor(o,l,f,T,R,A){super(o,l),this.ContextIdentifier=o,this.ContextType=l,this.CoordinateSpaceDimension=f,this.Precision=T,this.WorldCoordinateSystem=R,this.TrueNorth=A,this.type=3448662350}}e.IfcGeometricRepresentationContext=AI;class He extends kh{constructor(){super(),this.type=2453401579}}e.IfcGeometricRepresentationItem=He;class VT extends AI{constructor(o,l,f,T,R,A){super(o,l,new at(0),null,new Io(0),null),this.ContextIdentifier=o,this.ContextType=l,this.ParentContext=f,this.TargetScale=T,this.TargetView=R,this.UserDefinedTargetView=A,this.type=4142052618}}e.IfcGeometricRepresentationSubContext=VT;class kl extends He{constructor(o){super(),this.Elements=o,this.type=3590301190}}e.IfcGeometricSet=kl;class _A extends gT{constructor(o,l){super(),this.PlacementLocation=o,this.PlacementRefDirection=l,this.type=178086475}}e.IfcGridPlacement=_A;class Kl extends He{constructor(o,l){super(),this.BaseSurface=o,this.AgreementFlag=l,this.type=812098782}}e.IfcHalfSpaceSolid=Kl;class rp extends yI{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.RepeatS=o,this.RepeatT=l,this.Mode=f,this.TextureTransform=T,this.Parameter=R,this.URLReference=A,this.type=3905492369}}e.IfcImageTexture=rp;class zm extends De{constructor(o,l,f,T){super(),this.MappedTo=o,this.Opacity=l,this.Colours=f,this.ColourIndex=T,this.type=3570813810}}e.IfcIndexedColourMap=zm;class DI extends TI{constructor(o,l,f){super(o),this.Maps=o,this.MappedTo=l,this.TexCoords=f,this.type=1437953363}}e.IfcIndexedTextureMap=DI;class gA extends DI{constructor(o,l,f,T){super(o,l,f),this.Maps=o,this.MappedTo=l,this.TexCoords=f,this.TexCoordIndex=T,this.type=2133299955}}e.IfcIndexedTriangleTextureMap=gA;class LA extends bT{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.Name=o,this.Description=l,this.StartTime=f,this.EndTime=T,this.TimeSeriesDataType=R,this.DataOrigin=A,this.UserDefinedDataOrigin=L,this.Unit=P,this.Values=B,this.type=3741457305}}e.IfcIrregularTimeSeries=LA;class xA extends vc{constructor(o,l,f,T,R){super(o,l,f),this.Name=o,this.DataOrigin=l,this.UserDefinedDataOrigin=f,this.LagValue=T,this.DurationType=R,this.type=1585845231}}e.IfcLagTime=xA;class cp extends He{constructor(o,l,f,T){super(),this.Name=o,this.LightColour=l,this.AmbientIntensity=f,this.Intensity=T,this.type=1402838566}}e.IfcLightSource=cp;class OI extends cp{constructor(o,l,f,T){super(o,l,f,T),this.Name=o,this.LightColour=l,this.AmbientIntensity=f,this.Intensity=T,this.type=125510826}}e.IfcLightSourceAmbient=OI;class PA extends cp{constructor(o,l,f,T,R){super(o,l,f,T),this.Name=o,this.LightColour=l,this.AmbientIntensity=f,this.Intensity=T,this.Orientation=R,this.type=2604431987}}e.IfcLightSourceDirectional=PA;class Ym extends cp{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T),this.Name=o,this.LightColour=l,this.AmbientIntensity=f,this.Intensity=T,this.Position=R,this.ColourAppearance=A,this.ColourTemperature=L,this.LuminousFlux=P,this.LightEmissionSource=B,this.LightDistributionDataSource=J,this.type=4266656042}}e.IfcLightSourceGoniometric=Ym;class km extends cp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.Name=o,this.LightColour=l,this.AmbientIntensity=f,this.Intensity=T,this.Position=R,this.Radius=A,this.ConstantAttenuation=L,this.DistanceAttenuation=P,this.QuadricAttenuation=B,this.type=1520743889}}e.IfcLightSourcePositional=km;class vI extends km{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P,B),this.Name=o,this.LightColour=l,this.AmbientIntensity=f,this.Intensity=T,this.Position=R,this.Radius=A,this.ConstantAttenuation=L,this.DistanceAttenuation=P,this.QuadricAttenuation=B,this.Orientation=J,this.ConcentrationExponent=ft,this.SpreadAngle=Ot,this.BeamWidthAngle=Wt,this.type=3422422726}}e.IfcLightSourceSpot=vI;class MA extends gT{constructor(o,l){super(),this.PlacementRelTo=o,this.RelativePlacement=l,this.type=2624227202}}e.IfcLocalPlacement=MA;class _I extends Zh{constructor(){super(),this.type=1008929658}}e.IfcLoop=_I;class UA extends kh{constructor(o,l){super(),this.MappingSource=o,this.MappingTarget=l,this.type=2347385850}}e.IfcMappedItem=UA;class gI extends ca{constructor(o,l,f){super(),this.Name=o,this.Description=l,this.Category=f,this.type=1838606355}}e.IfcMaterial=gI;class CA extends ca{constructor(o,l,f,T,R){super(),this.Name=o,this.Description=l,this.Material=f,this.Fraction=T,this.Category=R,this.type=3708119e3}}e.IfcMaterialConstituent=CA;class bA extends ca{constructor(o,l,f){super(),this.Name=o,this.Description=l,this.MaterialConstituents=f,this.type=2852063980}}e.IfcMaterialConstituentSet=bA;class wA extends lI{constructor(o,l,f,T){super(o,l,f),this.Name=o,this.Description=l,this.Representations=f,this.RepresentedMaterial=T,this.type=2022407955}}e.IfcMaterialDefinitionRepresentation=wA;class BA extends so{constructor(o,l,f,T,R){super(),this.ForLayerSet=o,this.LayerSetDirection=l,this.DirectionSense=f,this.OffsetFromReferenceLine=T,this.ReferenceExtent=R,this.type=1303795690}}e.IfcMaterialLayerSetUsage=BA;class Km extends so{constructor(o,l,f){super(),this.ForProfileSet=o,this.CardinalPoint=l,this.ReferenceExtent=f,this.type=3079605661}}e.IfcMaterialProfileSetUsage=Km;class LI extends Km{constructor(o,l,f,T,R){super(o,l,f),this.ForProfileSet=o,this.CardinalPoint=l,this.ReferenceExtent=f,this.ForProfileEndSet=T,this.CardinalEndPoint=R,this.type=3404854881}}e.IfcMaterialProfileSetUsageTapering=LI;class Zm extends zl{constructor(o,l,f,T){super(o,l,f),this.Name=o,this.Description=l,this.Properties=f,this.Material=T,this.type=3265635763}}e.IfcMaterialProperties=Zm;class xI extends ro{constructor(o,l,f,T,R){super(o,l),this.Name=o,this.Description=l,this.RelatingMaterial=f,this.RelatedMaterials=T,this.Expression=R,this.type=853536259}}e.IfcMaterialRelationship=xI;class GA extends Fm{constructor(o,l,f,T){super(o,l,f,new Io(0),T),this.ProfileType=o,this.ProfileName=l,this.ParentProfile=f,this.Label=T,this.type=2998442950}}e.IfcMirroredProfileDef=GA;class PI extends UE{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=219451334}}e.IfcObjectDefinition=PI;class FA extends GT{constructor(o){super(o),this.CfsFaces=o,this.type=2665983363}}e.IfcOpenShell=FA;class VA extends ro{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.RelatingOrganization=f,this.RelatedOrganizations=T,this.type=1411181986}}e.IfcOrganizationRelationship=VA;class HT extends NI{constructor(o,l){super(new Io(0),new Io(0)),this.EdgeElement=o,this.Orientation=l,this.type=1029017970}}e.IfcOrientedEdge=HT;class $n extends Jr{constructor(o,l,f){super(o,l),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.type=2529465313}}e.IfcParameterizedProfileDef=$n;class HA extends Zh{constructor(o){super(),this.EdgeList=o,this.type=2519244187}}e.IfcPath=HA;class Xo extends LT{constructor(o,l,f,T,R,A){super(o,l),this.Name=o,this.Description=l,this.HasQuantities=f,this.Discrimination=T,this.Quality=R,this.Usage=A,this.type=3021840470}}e.IfcPhysicalComplexQuantity=Xo;class WA extends yI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R),this.RepeatS=o,this.RepeatT=l,this.Mode=f,this.TextureTransform=T,this.Parameter=R,this.Width=A,this.Height=L,this.ColourComponents=P,this.Pixel=B,this.type=597895409}}e.IfcPixelTexture=WA;class VE extends He{constructor(o){super(),this.Location=o,this.type=2004835150}}e.IfcPlacement=VE;class WT extends He{constructor(o,l){super(),this.SizeInX=o,this.SizeInY=l,this.type=1663979128}}e.IfcPlanarExtent=WT;class MI extends He{constructor(){super(),this.type=2067069095}}e.IfcPoint=MI;class zA extends MI{constructor(o,l){super(),this.BasisCurve=o,this.PointParameter=l,this.type=4022376103}}e.IfcPointOnCurve=zA;class YA extends MI{constructor(o,l,f){super(),this.BasisSurface=o,this.PointParameterU=l,this.PointParameterV=f,this.type=1423911732}}e.IfcPointOnSurface=YA;class ap extends _I{constructor(o){super(),this.Polygon=o,this.type=2924175390}}e.IfcPolyLoop=ap;class kA extends Kl{constructor(o,l,f,T){super(o,l),this.BaseSurface=o,this.AgreementFlag=l,this.Position=f,this.PolygonalBoundary=T,this.type=2775532180}}e.IfcPolygonalBoundedHalfSpace=kA;class th extends De{constructor(o){super(),this.Name=o,this.type=3727388367}}e.IfcPreDefinedItem=th;class UI extends no{constructor(){super(),this.type=3778827333}}e.IfcPreDefinedProperties=UI;class zT extends th{constructor(o){super(o),this.Name=o,this.type=1775413392}}e.IfcPreDefinedTextFont=zT;class qm extends lI{constructor(o,l,f){super(o,l,f),this.Name=o,this.Description=l,this.Representations=f,this.type=673634403}}e.IfcProductDefinitionShape=qm;class KA extends zl{constructor(o,l,f,T){super(o,l,f),this.Name=o,this.Description=l,this.Properties=f,this.ProfileDefinition=T,this.type=2802850158}}e.IfcProfileProperties=KA;class YT extends no{constructor(o,l){super(),this.Name=o,this.Description=l,this.type=2598011224}}e.IfcProperty=YT;class kT extends UE{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=1680319473}}e.IfcPropertyDefinition=kT;class ZA extends ro{constructor(o,l,f,T,R){super(o,l),this.Name=o,this.Description=l,this.DependingProperty=f,this.DependantProperty=T,this.Expression=R,this.type=148025276}}e.IfcPropertyDependencyRelationship=ZA;class CI extends kT{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=3357820518}}e.IfcPropertySetDefinition=CI;class HE extends kT{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=1482703590}}e.IfcPropertyTemplateDefinition=HE;class KT extends CI{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=2090586900}}e.IfcQuantitySet=KT;class ZT extends $n{constructor(o,l,f,T,R){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.XDim=T,this.YDim=R,this.type=3615266464}}e.IfcRectangleProfileDef=ZT;class qT extends bT{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P),this.Name=o,this.Description=l,this.StartTime=f,this.EndTime=T,this.TimeSeriesDataType=R,this.DataOrigin=A,this.UserDefinedDataOrigin=L,this.Unit=P,this.TimeStep=B,this.Values=J,this.type=3413951693}}e.IfcRegularTimeSeries=qT;class qA extends UI{constructor(o,l,f,T,R,A){super(),this.TotalCrossSectionArea=o,this.SteelGrade=l,this.BarSurface=f,this.EffectiveDepth=T,this.NominalBarDiameter=R,this.BarCount=A,this.type=1580146022}}e.IfcReinforcementBarProperties=qA;class Xr extends UE{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=478536968}}e.IfcRelationship=Xr;class jm extends ro{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.RelatedResourceObjects=f,this.RelatingApproval=T,this.type=2943643501}}e.IfcResourceApprovalRelationship=jm;class Qm extends ro{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.RelatingConstraint=f,this.RelatedResourceObjects=T,this.type=1608871552}}e.IfcResourceConstraintRelationship=Qm;class $m extends vc{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr,rl){super(o,l,f),this.Name=o,this.DataOrigin=l,this.UserDefinedDataOrigin=f,this.ScheduleWork=T,this.ScheduleUsage=R,this.ScheduleStart=A,this.ScheduleFinish=L,this.ScheduleContour=P,this.LevelingDelay=B,this.IsOverAllocated=J,this.StatusTime=ft,this.ActualWork=Ot,this.ActualUsage=Wt,this.ActualStart=we,this.ActualFinish=$s,this.RemainingWork=Js,this.RemainingUsage=vr,this.Completion=rl,this.type=1042787934}}e.IfcResourceTime=$m;class jA extends ZT{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.XDim=T,this.YDim=R,this.RoundingRadius=A,this.type=2778083089}}e.IfcRoundedRectangleProfileDef=jA;class QA extends UI{constructor(o,l,f){super(),this.SectionType=o,this.StartProfile=l,this.EndProfile=f,this.type=2042790032}}e.IfcSectionProperties=QA;class $A extends UI{constructor(o,l,f,T,R,A){super(),this.LongitudinalStartPosition=o,this.LongitudinalEndPosition=l,this.TransversePosition=f,this.ReinforcementRole=T,this.SectionDefinition=R,this.CrossSectionReinforcementDefinitions=A,this.type=4165799628}}e.IfcSectionReinforcementProperties=$A;class JA extends He{constructor(o,l,f){super(),this.SpineCurve=o,this.CrossSections=l,this.CrossSectionPositions=f,this.type=1509187699}}e.IfcSectionedSpine=JA;class XA extends He{constructor(o){super(),this.SbsmBoundary=o,this.type=4124623270}}e.IfcShellBasedSurfaceModel=XA;class jh extends YT{constructor(o,l){super(o,l),this.Name=o,this.Description=l,this.type=3692461612}}e.IfcSimpleProperty=jh;class jT extends pI{constructor(o,l,f,T){super(o),this.Name=o,this.SlippageX=l,this.SlippageY=f,this.SlippageZ=T,this.type=2609359061}}e.IfcSlippageConnectionCondition=jT;class WE extends He{constructor(){super(),this.type=723233188}}e.IfcSolidModel=WE;class tD extends ip{constructor(o,l,f,T,R,A,L){super(o),this.Name=o,this.LinearForceX=l,this.LinearForceY=f,this.LinearForceZ=T,this.LinearMomentX=R,this.LinearMomentY=A,this.LinearMomentZ=L,this.type=1595516126}}e.IfcStructuralLoadLinearForce=tD;class zE extends ip{constructor(o,l,f,T){super(o),this.Name=o,this.PlanarForceX=l,this.PlanarForceY=f,this.PlanarForceZ=T,this.type=2668620305}}e.IfcStructuralLoadPlanarForce=zE;class Jm extends ip{constructor(o,l,f,T,R,A,L){super(o),this.Name=o,this.DisplacementX=l,this.DisplacementY=f,this.DisplacementZ=T,this.RotationalDisplacementRX=R,this.RotationalDisplacementRY=A,this.RotationalDisplacementRZ=L,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=Jm;class eD extends Jm{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.Name=o,this.DisplacementX=l,this.DisplacementY=f,this.DisplacementZ=T,this.RotationalDisplacementRX=R,this.RotationalDisplacementRY=A,this.RotationalDisplacementRZ=L,this.Distortion=P,this.type=1973038258}}e.IfcStructuralLoadSingleDisplacementDistortion=eD;class op extends ip{constructor(o,l,f,T,R,A,L){super(o),this.Name=o,this.ForceX=l,this.ForceY=f,this.ForceZ=T,this.MomentX=R,this.MomentY=A,this.MomentZ=L,this.type=1597423693}}e.IfcStructuralLoadSingleForce=op;class Qh extends op{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.Name=o,this.ForceX=l,this.ForceY=f,this.ForceZ=T,this.MomentX=R,this.MomentY=A,this.MomentZ=L,this.WarpingMoment=P,this.type=1190533807}}e.IfcStructuralLoadSingleForceWarping=Qh;class Xm extends NI{constructor(o,l,f){super(o,l),this.EdgeStart=o,this.EdgeEnd=l,this.ParentEdge=f,this.type=2233826070}}e.IfcSubedge=Xm;class YE extends He{constructor(){super(),this.type=2513912981}}e.IfcSurface=YE;class sD extends co{constructor(o,l,f,T,R,A,L,P,B){super(o,l),this.SurfaceColour=o,this.Transparency=l,this.DiffuseColour=f,this.TransmissionColour=T,this.DiffuseTransmissionColour=R,this.ReflectionColour=A,this.SpecularColour=L,this.SpecularHighlight=P,this.ReflectanceMethod=B,this.type=1878645084}}e.IfcSurfaceStyleRendering=sD;class hp extends WE{constructor(o,l){super(),this.SweptArea=o,this.Position=l,this.type=2247615214}}e.IfcSweptAreaSolid=hp;class tR extends WE{constructor(o,l,f,T,R){super(),this.Directrix=o,this.Radius=l,this.InnerRadius=f,this.StartParam=T,this.EndParam=R,this.type=1260650574}}e.IfcSweptDiskSolid=tR;class QT extends tR{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.Directrix=o,this.Radius=l,this.InnerRadius=f,this.StartParam=T,this.EndParam=R,this.FilletRadius=A,this.type=1096409881}}e.IfcSweptDiskSolidPolygonal=QT;class gc extends YE{constructor(o,l){super(),this.SweptCurve=o,this.Position=l,this.type=230924584}}e.IfcSweptSurface=gc;class is extends $n{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.Depth=T,this.FlangeWidth=R,this.WebThickness=A,this.FlangeThickness=L,this.FilletRadius=P,this.FlangeEdgeRadius=B,this.WebEdgeRadius=J,this.WebSlope=ft,this.FlangeSlope=Ot,this.type=3071757647}}e.IfcTShapeProfileDef=is;class $T extends He{constructor(){super(),this.type=901063453}}e.IfcTessellatedItem=$T;class JT extends He{constructor(o,l,f){super(),this.Literal=o,this.Placement=l,this.Path=f,this.type=4282788508}}e.IfcTextLiteral=JT;class iD extends JT{constructor(o,l,f,T,R){super(o,l,f),this.Literal=o,this.Placement=l,this.Path=f,this.Extent=T,this.BoxAlignment=R,this.type=3124975700}}e.IfcTextLiteralWithExtent=iD;class XT extends zT{constructor(o,l,f,T,R,A){super(o),this.Name=o,this.FontFamily=l,this.FontStyle=f,this.FontVariant=T,this.FontWeight=R,this.FontSize=A,this.type=1983826977}}e.IfcTextStyleFontModel=XT;class nD extends $n{constructor(o,l,f,T,R,A,L){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.BottomXDim=T,this.TopXDim=R,this.YDim=A,this.TopXOffset=L,this.type=2715220739}}e.IfcTrapeziumProfileDef=nD;class bI extends PI{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.type=1628702193}}e.IfcTypeObject=bI;class Lc extends bI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ProcessType=B,this.type=3736923433}}e.IfcTypeProcess=Lc;class lp extends bI{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.type=2347495698}}e.IfcTypeProduct=lp;class kE extends bI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.type=3698973494}}e.IfcTypeResource=kE;class rD extends $n{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.Depth=T,this.FlangeWidth=R,this.WebThickness=A,this.FlangeThickness=L,this.FilletRadius=P,this.EdgeRadius=B,this.FlangeSlope=J,this.type=427810014}}e.IfcUShapeProfileDef=rD;class KE extends He{constructor(o,l){super(),this.Orientation=o,this.Magnitude=l,this.type=1417489154}}e.IfcVector=KE;class cD extends _I{constructor(o){super(),this.LoopVertex=o,this.type=2759199220}}e.IfcVertexLoop=cD;class aD extends lp{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ConstructionType=B,this.OperationType=J,this.ParameterTakesPrecedence=ft,this.Sizeable=Ot,this.type=1299126871}}e.IfcWindowStyle=aD;class oD extends $n{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.Depth=T,this.FlangeWidth=R,this.WebThickness=A,this.FlangeThickness=L,this.FilletRadius=P,this.EdgeRadius=B,this.type=2543172580}}e.IfcZShapeProfileDef=oD;class ao extends Wm{constructor(o,l,f){super(o,l,f),this.Bounds=o,this.FaceSurface=l,this.SameSense=f,this.type=3406155212}}e.IfcAdvancedFace=ao;class hD extends He{constructor(o,l){super(),this.OuterBoundary=o,this.InnerBoundaries=l,this.type=669184980}}e.IfcAnnotationFillArea=hD;class lD extends $n{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.BottomFlangeWidth=T,this.OverallDepth=R,this.WebThickness=A,this.BottomFlangeThickness=L,this.BottomFlangeFilletRadius=P,this.TopFlangeWidth=B,this.TopFlangeThickness=J,this.TopFlangeFilletRadius=ft,this.BottomFlangeEdgeRadius=Ot,this.BottomFlangeSlope=Wt,this.TopFlangeEdgeRadius=we,this.TopFlangeSlope=$s,this.type=3207858831}}e.IfcAsymmetricIShapeProfileDef=lD;class uD extends VE{constructor(o,l){super(o),this.Location=o,this.Axis=l,this.type=4261334040}}e.IfcAxis1Placement=uD;class wI extends VE{constructor(o,l){super(o),this.Location=o,this.RefDirection=l,this.type=3125803723}}e.IfcAxis2Placement2D=wI;class pD extends VE{constructor(o,l,f){super(o),this.Location=o,this.Axis=l,this.RefDirection=f,this.type=2740243338}}e.IfcAxis2Placement3D=pD;class eR extends He{constructor(o,l,f){super(),this.Operator=o,this.FirstOperand=l,this.SecondOperand=f,this.type=2736907675}}e.IfcBooleanResult=eR;class ZE extends YE{constructor(){super(),this.type=4182860854}}e.IfcBoundedSurface=ZE;class ED extends He{constructor(o,l,f,T){super(),this.Corner=o,this.XDim=l,this.YDim=f,this.ZDim=T,this.type=2581212453}}e.IfcBoundingBox=ED;class ai extends Kl{constructor(o,l,f){super(o,l),this.BaseSurface=o,this.AgreementFlag=l,this.Enclosure=f,this.type=2713105998}}e.IfcBoxedHalfSpace=ai;class td extends $n{constructor(o,l,f,T,R,A,L,P){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.Depth=T,this.Width=R,this.WallThickness=A,this.Girth=L,this.InternalFilletRadius=P,this.type=2898889636}}e.IfcCShapeProfileDef=td;class sR extends MI{constructor(o){super(),this.Coordinates=o,this.type=1123145078}}e.IfcCartesianPoint=sR;class ed extends He{constructor(){super(),this.type=574549367}}e.IfcCartesianPointList=ed;class fD extends ed{constructor(o){super(),this.CoordList=o,this.type=1675464909}}e.IfcCartesianPointList2D=fD;class ID extends ed{constructor(o){super(),this.CoordList=o,this.type=2059837836}}e.IfcCartesianPointList3D=ID;class sd extends He{constructor(o,l,f,T){super(),this.Axis1=o,this.Axis2=l,this.LocalOrigin=f,this.Scale=T,this.type=59481748}}e.IfcCartesianTransformationOperator=sd;class up extends sd{constructor(o,l,f,T){super(o,l,f,T),this.Axis1=o,this.Axis2=l,this.LocalOrigin=f,this.Scale=T,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=up;class yD extends up{constructor(o,l,f,T,R){super(o,l,f,T),this.Axis1=o,this.Axis2=l,this.LocalOrigin=f,this.Scale=T,this.Scale2=R,this.type=3486308946}}e.IfcCartesianTransformationOperator2DnonUniform=yD;class iR extends sd{constructor(o,l,f,T,R){super(o,l,f,T),this.Axis1=o,this.Axis2=l,this.LocalOrigin=f,this.Scale=T,this.Axis3=R,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=iR;class TD extends iR{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.Axis1=o,this.Axis2=l,this.LocalOrigin=f,this.Scale=T,this.Axis3=R,this.Scale2=A,this.Scale3=L,this.type=1416205885}}e.IfcCartesianTransformationOperator3DnonUniform=TD;class nR extends $n{constructor(o,l,f,T){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.Radius=T,this.type=1383045692}}e.IfcCircleProfileDef=nR;class xc extends GT{constructor(o){super(o),this.CfsFaces=o,this.type=2205249479}}e.IfcClosedShell=xc;class id extends qs{constructor(o,l,f,T){super(o),this.Name=o,this.Red=l,this.Green=f,this.Blue=T,this.type=776857604}}e.IfcColourRgb=id;class nd extends YT{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.UsageName=f,this.HasProperties=T,this.type=2542286263}}e.IfcComplexProperty=nd;class rd extends He{constructor(o,l,f){super(),this.Transition=o,this.SameSense=l,this.ParentCurve=f,this.type=2485617015}}e.IfcCompositeCurveSegment=rd;class aa extends kE{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.BaseCosts=J,this.BaseQuantity=ft,this.type=2574617495}}e.IfcConstructionResourceType=aa;class BI extends PI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.LongName=A,this.Phase=L,this.RepresentationContexts=P,this.UnitsInContext=B,this.type=3419103109}}e.IfcContext=BI;class qE extends aa{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.BaseCosts=J,this.BaseQuantity=ft,this.PredefinedType=Ot,this.type=1815067380}}e.IfcCrewResourceType=qE;class pp extends He{constructor(o){super(),this.Position=o,this.type=2506170314}}e.IfcCsgPrimitive3D=pp;class dD extends WE{constructor(o){super(),this.TreeRootExpression=o,this.type=2147822146}}e.IfcCsgSolid=dD;class $h extends He{constructor(){super(),this.type=2601014836}}e.IfcCurve=$h;class mD extends ZE{constructor(o,l,f){super(),this.BasisSurface=o,this.OuterBoundary=l,this.InnerBoundaries=f,this.type=2827736869}}e.IfcCurveBoundedPlane=mD;class RD extends ZE{constructor(o,l,f){super(),this.BasisSurface=o,this.Boundaries=l,this.ImplicitOuter=f,this.type=2629017746}}e.IfcCurveBoundedSurface=RD;class GI extends He{constructor(o){super(),this.DirectionRatios=o,this.type=32440307}}e.IfcDirection=GI;class FI extends lp{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.OperationType=B,this.ConstructionType=J,this.ParameterTakesPrecedence=ft,this.Sizeable=Ot,this.type=526551008}}e.IfcDoorStyle=FI;class rR extends _I{constructor(o){super(),this.EdgeList=o,this.type=1472233963}}e.IfcEdgeLoop=rR;class SD extends KT{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.MethodOfMeasurement=R,this.Quantities=A,this.type=1883228015}}e.IfcElementQuantity=SD;class eh extends lp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=339256511}}e.IfcElementType=eh;class Zl extends YE{constructor(o){super(),this.Position=o,this.type=2777663545}}e.IfcElementarySurface=Zl;class VI extends $n{constructor(o,l,f,T,R){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.SemiAxis1=T,this.SemiAxis2=R,this.type=2835456948}}e.IfcEllipseProfileDef=VI;class ND extends Lc{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ProcessType=B,this.PredefinedType=J,this.EventTriggerType=ft,this.UserDefinedEventTriggerType=Ot,this.type=4024345920}}e.IfcEventType=ND;class jE extends hp{constructor(o,l,f,T){super(o,l),this.SweptArea=o,this.Position=l,this.ExtrudedDirection=f,this.Depth=T,this.type=477187591}}e.IfcExtrudedAreaSolid=jE;class cd extends jE{constructor(o,l,f,T,R){super(o,l,f,T),this.SweptArea=o,this.Position=l,this.ExtrudedDirection=f,this.Depth=T,this.EndSweptArea=R,this.type=2804161546}}e.IfcExtrudedAreaSolidTapered=cd;class Ep extends He{constructor(o){super(),this.FbsmFaces=o,this.type=2047409740}}e.IfcFaceBasedSurfaceModel=Ep;class HI extends He{constructor(o,l,f,T,R){super(),this.HatchLineAppearance=o,this.StartOfNextHatchLine=l,this.PointOfReferenceHatchLine=f,this.PatternStart=T,this.HatchLineAngle=R,this.type=374418227}}e.IfcFillAreaStyleHatching=HI;class AD extends He{constructor(o,l,f){super(),this.TilingPattern=o,this.Tiles=l,this.TilingScale=f,this.type=315944413}}e.IfcFillAreaStyleTiles=AD;class ad extends hp{constructor(o,l,f,T,R,A){super(o,l),this.SweptArea=o,this.Position=l,this.Directrix=f,this.StartParam=T,this.EndParam=R,this.FixedReference=A,this.type=2652556860}}e.IfcFixedReferenceSweptAreaSolid=ad;class oa extends eh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=4238390223}}e.IfcFurnishingElementType=oa;class od extends oa{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.AssemblyPlace=J,this.PredefinedType=ft,this.type=1268542332}}e.IfcFurnitureType=od;class cR extends eh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=4095422895}}e.IfcGeographicElementType=cR;class aR extends kl{constructor(o){super(o),this.Elements=o,this.type=987898635}}e.IfcGeometricCurveSet=aR;class DD extends $n{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.OverallWidth=T,this.OverallDepth=R,this.WebThickness=A,this.FlangeThickness=L,this.FilletRadius=P,this.FlangeEdgeRadius=B,this.FlangeSlope=J,this.type=1484403080}}e.IfcIShapeProfileDef=DD;class oR extends $T{constructor(o){super(),this.CoordIndex=o,this.type=178912537}}e.IfcIndexedPolygonalFace=oR;class OD extends oR{constructor(o,l){super(o),this.CoordIndex=o,this.InnerCoordIndices=l,this.type=2294589976}}e.IfcIndexedPolygonalFaceWithVoids=OD;class vD extends $n{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.Depth=T,this.Width=R,this.Thickness=A,this.FilletRadius=L,this.EdgeRadius=P,this.LegSlope=B,this.type=572779678}}e.IfcLShapeProfileDef=vD;class hd extends aa{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.BaseCosts=J,this.BaseQuantity=ft,this.PredefinedType=Ot,this.type=428585644}}e.IfcLaborResourceType=hd;class _D extends $h{constructor(o,l){super(),this.Pnt=o,this.Dir=l,this.type=1281925730}}e.IfcLine=_D;class ha extends WE{constructor(o){super(),this.Outer=o,this.type=1425443689}}e.IfcManifoldSolidBrep=ha;class ql extends PI{constructor(o,l,f,T,R){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.type=3888040117}}e.IfcObject=ql;class jl extends $h{constructor(o,l,f){super(),this.BasisCurve=o,this.Distance=l,this.SelfIntersect=f,this.type=3388369263}}e.IfcOffsetCurve2D=jl;class gD extends $h{constructor(o,l,f,T){super(),this.BasisCurve=o,this.Distance=l,this.SelfIntersect=f,this.RefDirection=T,this.type=3505215534}}e.IfcOffsetCurve3D=gD;class LD extends $h{constructor(o,l){super(),this.BasisSurface=o,this.ReferenceCurve=l,this.type=1682466193}}e.IfcPcurve=LD;class hR extends WT{constructor(o,l,f){super(o,l),this.SizeInX=o,this.SizeInY=l,this.Placement=f,this.type=603570806}}e.IfcPlanarBox=hR;class xD extends Zl{constructor(o){super(o),this.Position=o,this.type=220341763}}e.IfcPlane=xD;class Ql extends th{constructor(o){super(o),this.Name=o,this.type=759155922}}e.IfcPreDefinedColour=Ql;class lR extends th{constructor(o){super(o),this.Name=o,this.type=2559016684}}e.IfcPreDefinedCurveFont=lR;class oi extends CI{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=3967405729}}e.IfcPreDefinedPropertySet=oi;class QE extends Lc{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ProcessType=B,this.PredefinedType=J,this.type=569719735}}e.IfcProcedureType=QE;class WI extends ql{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.type=2945172077}}e.IfcProcess=WI;class Pc extends ql{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.type=4208778838}}e.IfcProduct=Pc;class ld extends BI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.LongName=A,this.Phase=L,this.RepresentationContexts=P,this.UnitsInContext=B,this.type=103090709}}e.IfcProject=ld;class ud extends BI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.LongName=A,this.Phase=L,this.RepresentationContexts=P,this.UnitsInContext=B,this.type=653396225}}e.IfcProjectLibrary=ud;class sh extends jh{constructor(o,l,f,T,R,A){super(o,l),this.Name=o,this.Description=l,this.UpperBoundValue=f,this.LowerBoundValue=T,this.Unit=R,this.SetPointValue=A,this.type=871118103}}e.IfcPropertyBoundedValue=sh;class Sn extends jh{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.EnumerationValues=f,this.EnumerationReference=T,this.type=4166981789}}e.IfcPropertyEnumeratedValue=Sn;class pd extends jh{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.ListValues=f,this.Unit=T,this.type=2752243245}}e.IfcPropertyListValue=pd;class uR extends jh{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.UsageName=f,this.PropertyReference=T,this.type=941946838}}e.IfcPropertyReferenceValue=uR;class PD extends CI{constructor(o,l,f,T,R){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.HasProperties=R,this.type=1451395588}}e.IfcPropertySet=PD;class MD extends HE{constructor(o,l,f,T,R,A,L){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.TemplateType=R,this.ApplicableEntity=A,this.HasPropertyTemplates=L,this.type=492091185}}e.IfcPropertySetTemplate=MD;class UD extends jh{constructor(o,l,f,T){super(o,l),this.Name=o,this.Description=l,this.NominalValue=f,this.Unit=T,this.type=3650150729}}e.IfcPropertySingleValue=UD;class Jh extends jh{constructor(o,l,f,T,R,A,L,P){super(o,l),this.Name=o,this.Description=l,this.DefiningValues=f,this.DefinedValues=T,this.Expression=R,this.DefiningUnit=A,this.DefinedUnit=L,this.CurveInterpolation=P,this.type=110355661}}e.IfcPropertyTableValue=Jh;class Xh extends HE{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=3521284610}}e.IfcPropertyTemplate=Xh;class Mc extends Pc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.ProxyType=P,this.Tag=B,this.type=3219374653}}e.IfcProxy=Mc;class pR extends ZT{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.XDim=T,this.YDim=R,this.WallThickness=A,this.InnerFilletRadius=L,this.OuterFilletRadius=P,this.type=2770003689}}e.IfcRectangleHollowProfileDef=pR;class la extends pp{constructor(o,l,f,T){super(o),this.Position=o,this.XLength=l,this.YLength=f,this.Height=T,this.type=2798486643}}e.IfcRectangularPyramid=la;class CD extends ZE{constructor(o,l,f,T,R,A,L){super(),this.BasisSurface=o,this.U1=l,this.V1=f,this.U2=T,this.V2=R,this.Usense=A,this.Vsense=L,this.type=3454111270}}e.IfcRectangularTrimmedSurface=CD;class Ed extends oi{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.DefinitionType=R,this.ReinforcementSectionDefinitions=A,this.type=3765753017}}e.IfcReinforcementDefinitionProperties=Ed;class ih extends Xr{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.type=3939117080}}e.IfcRelAssigns=ih;class bD extends ih{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.RelatingActor=L,this.ActingRole=P,this.type=1683148259}}e.IfcRelAssignsToActor=bD;class hi extends ih{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.RelatingControl=L,this.type=2495723537}}e.IfcRelAssignsToControl=hi;class ER extends ih{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.RelatingGroup=L,this.type=1307041759}}e.IfcRelAssignsToGroup=ER;class wD extends ER{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.RelatingGroup=L,this.Factor=P,this.type=1027710054}}e.IfcRelAssignsToGroupByFactor=wD;class BD extends ih{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.RelatingProcess=L,this.QuantityInProcess=P,this.type=4278684876}}e.IfcRelAssignsToProcess=BD;class GD extends ih{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.RelatingProduct=L,this.type=2857406711}}e.IfcRelAssignsToProduct=GD;class FD extends ih{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatedObjectsType=A,this.RelatingResource=L,this.type=205026976}}e.IfcRelAssignsToResource=FD;class tl extends Xr{constructor(o,l,f,T,R){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.type=1865459582}}e.IfcRelAssociates=tl;class fp extends tl{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingApproval=A,this.type=4095574036}}e.IfcRelAssociatesApproval=fp;class fR extends tl{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingClassification=A,this.type=919958153}}e.IfcRelAssociatesClassification=fR;class fd extends tl{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.Intent=A,this.RelatingConstraint=L,this.type=2728634034}}e.IfcRelAssociatesConstraint=fd;class IR extends tl{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingDocument=A,this.type=982818633}}e.IfcRelAssociatesDocument=IR;class Id extends tl{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingLibrary=A,this.type=3840914261}}e.IfcRelAssociatesLibrary=Id;class oo extends tl{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingMaterial=A,this.type=2655215786}}e.IfcRelAssociatesMaterial=oo;class js extends Xr{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=826625072}}e.IfcRelConnects=js;class yd extends js{constructor(o,l,f,T,R,A,L){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ConnectionGeometry=R,this.RelatingElement=A,this.RelatedElement=L,this.type=1204542856}}e.IfcRelConnectsElements=yd;class Ip extends yd{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ConnectionGeometry=R,this.RelatingElement=A,this.RelatedElement=L,this.RelatingPriorities=P,this.RelatedPriorities=B,this.RelatedConnectionType=J,this.RelatingConnectionType=ft,this.type=3945020480}}e.IfcRelConnectsPathElements=Ip;class yp extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingPort=R,this.RelatedElement=A,this.type=4201705270}}e.IfcRelConnectsPortToElement=yp;class Td extends js{constructor(o,l,f,T,R,A,L){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingPort=R,this.RelatedPort=A,this.RealizingElement=L,this.type=3190031847}}e.IfcRelConnectsPorts=Td;class tc extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingElement=R,this.RelatedStructuralActivity=A,this.type=2127690289}}e.IfcRelConnectsStructuralActivity=tc;class zI extends js{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingStructuralMember=R,this.RelatedStructuralConnection=A,this.AppliedCondition=L,this.AdditionalConditions=P,this.SupportedLength=B,this.ConditionCoordinateSystem=J,this.type=1638771189}}e.IfcRelConnectsStructuralMember=zI;class yR extends zI{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingStructuralMember=R,this.RelatedStructuralConnection=A,this.AppliedCondition=L,this.AdditionalConditions=P,this.SupportedLength=B,this.ConditionCoordinateSystem=J,this.ConnectionConstraint=ft,this.type=504942748}}e.IfcRelConnectsWithEccentricity=yR;class VD extends yd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ConnectionGeometry=R,this.RelatingElement=A,this.RelatedElement=L,this.RealizingElements=P,this.ConnectionType=B,this.type=3678494232}}e.IfcRelConnectsWithRealizingElements=VD;class HD extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedElements=R,this.RelatingStructure=A,this.type=3242617779}}e.IfcRelContainedInSpatialStructure=HD;class WD extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingBuildingElement=R,this.RelatedCoverings=A,this.type=886880790}}e.IfcRelCoversBldgElements=WD;class nh extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingSpace=R,this.RelatedCoverings=A,this.type=2802773753}}e.IfcRelCoversSpaces=nh;class $l extends Xr{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingContext=R,this.RelatedDefinitions=A,this.type=2565941209}}e.IfcRelDeclares=$l;class Jl extends Xr{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=2551354335}}e.IfcRelDecomposes=Jl;class $E extends Xr{constructor(o,l,f,T){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.type=693640335}}e.IfcRelDefines=$E;class Tp extends $E{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingObject=A,this.type=1462361463}}e.IfcRelDefinesByObject=Tp;class zD extends $E{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingPropertyDefinition=A,this.type=4186316022}}e.IfcRelDefinesByProperties=zD;class rh extends $E{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedPropertySets=R,this.RelatingTemplate=A,this.type=307848117}}e.IfcRelDefinesByTemplate=rh;class YD extends $E{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedObjects=R,this.RelatingType=A,this.type=781010003}}e.IfcRelDefinesByType=YD;class kD extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingOpeningElement=R,this.RelatedBuildingElement=A,this.type=3940055652}}e.IfcRelFillsElement=kD;class KD extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedControlElements=R,this.RelatingFlowElement=A,this.type=279856033}}e.IfcRelFlowControlElements=KD;class ZD extends js{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingElement=R,this.RelatedElement=A,this.InterferenceGeometry=L,this.InterferenceType=P,this.ImpliedOrder=B,this.type=427948657}}e.IfcRelInterferesElements=ZD;class dd extends Jl{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingObject=R,this.RelatedObjects=A,this.type=3268803585}}e.IfcRelNests=dd;class qD extends Jl{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingElement=R,this.RelatedFeatureElement=A,this.type=750771296}}e.IfcRelProjectsElement=qD;class jD extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatedElements=R,this.RelatingStructure=A,this.type=1245217292}}e.IfcRelReferencedInSpatialStructure=jD;class ch extends js{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingProcess=R,this.RelatedProcess=A,this.TimeLag=L,this.SequenceType=P,this.UserDefinedSequenceType=B,this.type=4122056220}}e.IfcRelSequence=ch;class JE extends js{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingSystem=R,this.RelatedBuildings=A,this.type=366585022}}e.IfcRelServicesBuildings=JE;class TR extends js{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingSpace=R,this.RelatedBuildingElement=A,this.ConnectionGeometry=L,this.PhysicalOrVirtualBoundary=P,this.InternalOrExternalBoundary=B,this.type=3451746338}}e.IfcRelSpaceBoundary=TR;class dR extends TR{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingSpace=R,this.RelatedBuildingElement=A,this.ConnectionGeometry=L,this.PhysicalOrVirtualBoundary=P,this.InternalOrExternalBoundary=B,this.ParentBoundary=J,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=dR;class mR extends dR{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingSpace=R,this.RelatedBuildingElement=A,this.ConnectionGeometry=L,this.PhysicalOrVirtualBoundary=P,this.InternalOrExternalBoundary=B,this.ParentBoundary=J,this.CorrespondingBoundary=ft,this.type=1521410863}}e.IfcRelSpaceBoundary2ndLevel=mR;class QD extends Jl{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingBuildingElement=R,this.RelatedOpeningElement=A,this.type=1401173127}}e.IfcRelVoidsElement=QD;class $D extends rd{constructor(o,l,f,T){super(o,l,f),this.Transition=o,this.SameSense=l,this.ParentCurve=f,this.ParamLength=T,this.type=816062949}}e.IfcReparametrisedCompositeCurveSegment=$D;class RR extends ql{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.type=2914609552}}e.IfcResource=RR;class SR extends hp{constructor(o,l,f,T){super(o,l),this.SweptArea=o,this.Position=l,this.Axis=f,this.Angle=T,this.type=1856042241}}e.IfcRevolvedAreaSolid=SR;class NR extends SR{constructor(o,l,f,T,R){super(o,l,f,T),this.SweptArea=o,this.Position=l,this.Axis=f,this.Angle=T,this.EndSweptArea=R,this.type=3243963512}}e.IfcRevolvedAreaSolidTapered=NR;class YI extends pp{constructor(o,l,f){super(o),this.Position=o,this.Height=l,this.BottomRadius=f,this.type=4158566097}}e.IfcRightCircularCone=YI;class JD extends pp{constructor(o,l,f){super(o),this.Position=o,this.Height=l,this.Radius=f,this.type=3626867408}}e.IfcRightCircularCylinder=JD;class XD extends Xh{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.TemplateType=R,this.PrimaryMeasureType=A,this.SecondaryMeasureType=L,this.Enumerators=P,this.PrimaryUnit=B,this.SecondaryUnit=J,this.Expression=ft,this.AccessState=Ot,this.type=3663146110}}e.IfcSimplePropertyTemplate=XD;class kI extends Pc{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.type=1412071761}}e.IfcSpatialElement=kI;class md extends lp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=710998568}}e.IfcSpatialElementType=md;class dp extends kI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.CompositionType=B,this.type=2706606064}}e.IfcSpatialStructureElement=dp;class AR extends md{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=3893378262}}e.IfcSpatialStructureElementType=AR;class tO extends kI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.PredefinedType=B,this.type=463610769}}e.IfcSpatialZone=tO;class eO extends md{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.LongName=ft,this.type=2481509218}}e.IfcSpatialZoneType=eO;class sO extends pp{constructor(o,l){super(o),this.Position=o,this.Radius=l,this.type=451544542}}e.IfcSphere=sO;class iO extends Zl{constructor(o,l){super(o),this.Position=o,this.Radius=l,this.type=4015995234}}e.IfcSphericalSurface=iO;class XE extends Pc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.type=3544373492}}e.IfcStructuralActivity=XE;class ah extends Pc{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.type=3136571912}}e.IfcStructuralItem=ah;class mp extends ah{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.type=530289379}}e.IfcStructuralMember=mp;class KI extends XE{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.type=3689010777}}e.IfcStructuralReaction=KI;class DR extends mp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.PredefinedType=P,this.Thickness=B,this.type=3979015343}}e.IfcStructuralSurfaceMember=DR;class nO extends DR{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.PredefinedType=P,this.Thickness=B,this.type=2218152070}}e.IfcStructuralSurfaceMemberVarying=nO;class rO extends KI{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.PredefinedType=J,this.type=603775116}}e.IfcStructuralSurfaceReaction=rO;class cO extends aa{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.BaseCosts=J,this.BaseQuantity=ft,this.PredefinedType=Ot,this.type=4095615324}}e.IfcSubContractResourceType=cO;class Rd extends $h{constructor(o,l,f){super(),this.Curve3D=o,this.AssociatedGeometry=l,this.MasterRepresentation=f,this.type=699246055}}e.IfcSurfaceCurve=Rd;class aO extends hp{constructor(o,l,f,T,R,A){super(o,l),this.SweptArea=o,this.Position=l,this.Directrix=f,this.StartParam=T,this.EndParam=R,this.ReferenceSurface=A,this.type=2028607225}}e.IfcSurfaceCurveSweptAreaSolid=aO;class OR extends gc{constructor(o,l,f,T){super(o,l),this.SweptCurve=o,this.Position=l,this.ExtrudedDirection=f,this.Depth=T,this.type=2809605785}}e.IfcSurfaceOfLinearExtrusion=OR;class vR extends gc{constructor(o,l,f){super(o,l),this.SweptCurve=o,this.Position=l,this.AxisPosition=f,this.type=4124788165}}e.IfcSurfaceOfRevolution=vR;class ho extends oa{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1580310250}}e.IfcSystemFurnitureElementType=ho;class ZI extends WI{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Status=P,this.WorkMethod=B,this.IsMilestone=J,this.Priority=ft,this.TaskTime=Ot,this.PredefinedType=Wt,this.type=3473067441}}e.IfcTask=ZI;class qI extends Lc{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ProcessType=B,this.PredefinedType=J,this.WorkMethod=ft,this.type=3206491090}}e.IfcTaskType=qI;class Uc extends $T{constructor(o){super(),this.Coordinates=o,this.type=2387106220}}e.IfcTessellatedFaceSet=Uc;class oO extends Zl{constructor(o,l,f){super(o),this.Position=o,this.MajorRadius=l,this.MinorRadius=f,this.type=1935646853}}e.IfcToroidalSurface=oO;class _R extends eh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2097647324}}e.IfcTransportElementType=_R;class hO extends Uc{constructor(o,l,f,T,R){super(o),this.Coordinates=o,this.Normals=l,this.Closed=f,this.CoordIndex=T,this.PnIndex=R,this.type=2916149573}}e.IfcTriangulatedFaceSet=hO;class lO extends oi{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.LiningDepth=R,this.LiningThickness=A,this.TransomThickness=L,this.MullionThickness=P,this.FirstTransomOffset=B,this.SecondTransomOffset=J,this.FirstMullionOffset=ft,this.SecondMullionOffset=Ot,this.ShapeAspectStyle=Wt,this.LiningOffset=we,this.LiningToPanelOffsetX=$s,this.LiningToPanelOffsetY=Js,this.type=336235671}}e.IfcWindowLiningProperties=lO;class gR extends oi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.OperationType=R,this.PanelPosition=A,this.FrameDepth=L,this.FrameThickness=P,this.ShapeAspectStyle=B,this.type=512836454}}e.IfcWindowPanelProperties=gR;class LR extends ql{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.TheActor=A,this.type=2296667514}}e.IfcActor=LR;class xR extends ha{constructor(o){super(o),this.Outer=o,this.type=1635779807}}e.IfcAdvancedBrep=xR;class uO extends xR{constructor(o,l){super(o),this.Outer=o,this.Voids=l,this.type=2603310189}}e.IfcAdvancedBrepWithVoids=uO;class pO extends Pc{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.type=1674181508}}e.IfcAnnotation=pO;class PR extends ZE{constructor(o,l,f,T,R,A,L){super(),this.UDegree=o,this.VDegree=l,this.ControlPointsList=f,this.SurfaceForm=T,this.UClosed=R,this.VClosed=A,this.SelfIntersect=L,this.type=2887950389}}e.IfcBSplineSurface=PR;class jI extends PR{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L),this.UDegree=o,this.VDegree=l,this.ControlPointsList=f,this.SurfaceForm=T,this.UClosed=R,this.VClosed=A,this.SelfIntersect=L,this.UMultiplicities=P,this.VMultiplicities=B,this.UKnots=J,this.VKnots=ft,this.KnotSpec=Ot,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=jI;class EO extends pp{constructor(o,l,f,T){super(o),this.Position=o,this.XLength=l,this.YLength=f,this.ZLength=T,this.type=1334484129}}e.IfcBlock=EO;class fO extends eR{constructor(o,l,f){super(o,l,f),this.Operator=o,this.FirstOperand=l,this.SecondOperand=f,this.type=3649129432}}e.IfcBooleanClippingResult=fO;class el extends $h{constructor(){super(),this.type=1260505505}}e.IfcBoundedCurve=el;class IO extends dp{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.CompositionType=B,this.ElevationOfRefHeight=J,this.ElevationOfTerrain=ft,this.BuildingAddress=Ot,this.type=4031249490}}e.IfcBuilding=IO;class Ke extends eh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=1950629157}}e.IfcBuildingElementType=Ke;class yO extends dp{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.CompositionType=B,this.Elevation=J,this.type=3124254112}}e.IfcBuildingStorey=yO;class TO extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2197970202}}e.IfcChimneyType=TO;class MR extends nR{constructor(o,l,f,T,R){super(o,l,f,T),this.ProfileType=o,this.ProfileName=l,this.Position=f,this.Radius=T,this.WallThickness=R,this.type=2937912522}}e.IfcCircleHollowProfileDef=MR;class dO extends eh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=3893394355}}e.IfcCivilElementType=dO;class mO extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=300633059}}e.IfcColumnType=mO;class RO extends Xh{constructor(o,l,f,T,R,A,L){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.UsageName=R,this.TemplateType=A,this.HasPropertyTemplates=L,this.type=3875453745}}e.IfcComplexPropertyTemplate=RO;class UR extends el{constructor(o,l){super(),this.Segments=o,this.SelfIntersect=l,this.type=3732776249}}e.IfcCompositeCurve=UR;class oh extends UR{constructor(o,l){super(o,l),this.Segments=o,this.SelfIntersect=l,this.type=15328376}}e.IfcCompositeCurveOnSurface=oh;class Sd extends $h{constructor(o){super(),this.Position=o,this.type=2510884976}}e.IfcConic=Sd;class Nd extends aa{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.BaseCosts=J,this.BaseQuantity=ft,this.PredefinedType=Ot,this.type=2185764099}}e.IfcConstructionEquipmentResourceType=Nd;class SO extends aa{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.BaseCosts=J,this.BaseQuantity=ft,this.PredefinedType=Ot,this.type=4105962743}}e.IfcConstructionMaterialResourceType=SO;class NO extends aa{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.Identification=L,this.LongDescription=P,this.ResourceType=B,this.BaseCosts=J,this.BaseQuantity=ft,this.PredefinedType=Ot,this.type=1525564444}}e.IfcConstructionProductResourceType=NO;class Xl extends RR{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Usage=P,this.BaseCosts=B,this.BaseQuantity=J,this.type=2559216714}}e.IfcConstructionResource=Xl;class hh extends ql{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.type=3293443760}}e.IfcControl=hh;class AO extends hh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.PredefinedType=L,this.CostValues=P,this.CostQuantities=B,this.type=3895139033}}e.IfcCostItem=AO;class Zi extends hh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.PredefinedType=L,this.Status=P,this.SubmittedOn=B,this.UpdateDate=J,this.type=1419761937}}e.IfcCostSchedule=Zi;class Ad extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1916426348}}e.IfcCoveringType=Ad;class DO extends Xl{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Usage=P,this.BaseCosts=B,this.BaseQuantity=J,this.PredefinedType=ft,this.type=3295246426}}e.IfcCrewResource=DO;class OO extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1457835157}}e.IfcCurtainWallType=OO;class vO extends Zl{constructor(o,l){super(o),this.Position=o,this.Radius=l,this.type=1213902940}}e.IfcCylindricalSurface=vO;class QI extends eh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=3256556792}}e.IfcDistributionElementType=QI;class ua extends QI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=3849074793}}e.IfcDistributionFlowElementType=ua;class CR extends oi{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.LiningDepth=R,this.LiningThickness=A,this.ThresholdDepth=L,this.ThresholdThickness=P,this.TransomThickness=B,this.TransomOffset=J,this.LiningOffset=ft,this.ThresholdOffset=Ot,this.CasingThickness=Wt,this.CasingDepth=we,this.ShapeAspectStyle=$s,this.LiningToPanelOffsetX=Js,this.LiningToPanelOffsetY=vr,this.type=2963535650}}e.IfcDoorLiningProperties=CR;class _O extends oi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.PanelDepth=R,this.PanelOperation=A,this.PanelWidth=L,this.PanelPosition=P,this.ShapeAspectStyle=B,this.type=1714330368}}e.IfcDoorPanelProperties=_O;class bs extends Ke{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.OperationType=ft,this.ParameterTakesPrecedence=Ot,this.UserDefinedOperationType=Wt,this.type=2323601079}}e.IfcDoorType=bs;class Dd extends Ql{constructor(o){super(o),this.Name=o,this.type=445594917}}e.IfcDraughtingPreDefinedColour=Dd;class gO extends lR{constructor(o){super(o),this.Name=o,this.type=4006246654}}e.IfcDraughtingPreDefinedCurveFont=gO;class pa extends Pc{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=1758889154}}e.IfcElement=pa;class Rp extends pa{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.AssemblyPlace=B,this.PredefinedType=J,this.type=4123344466}}e.IfcElementAssembly=Rp;class tf extends eh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2397081782}}e.IfcElementAssemblyType=tf;class tu extends pa{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=1623761950}}e.IfcElementComponent=tu;class eu extends eh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=2590856083}}e.IfcElementComponentType=eu;class LO extends Sd{constructor(o,l,f){super(o),this.Position=o,this.SemiAxis1=l,this.SemiAxis2=f,this.type=1704287377}}e.IfcEllipse=LO;class ws extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=2107101300}}e.IfcEnergyConversionDeviceType=ws;class xO extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=132023988}}e.IfcEngineType=xO;class PO extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3174744832}}e.IfcEvaporativeCoolerType=PO;class MO extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3390157468}}e.IfcEvaporatorType=MO;class UO extends WI{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.PredefinedType=P,this.EventTriggerType=B,this.UserDefinedEventTriggerType=J,this.EventOccurenceTime=ft,this.type=4148101412}}e.IfcEvent=UO;class bR extends kI{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.type=2853485674}}e.IfcExternalSpatialStructureElement=bR;class wR extends ha{constructor(o){super(o),this.Outer=o,this.type=807026263}}e.IfcFacetedBrep=wR;class CO extends wR{constructor(o,l){super(o),this.Outer=o,this.Voids=l,this.type=3737207727}}e.IfcFacetedBrepWithVoids=CO;class bO extends tu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=647756555}}e.IfcFastener=bO;class wO extends eu{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2489546625}}e.IfcFastenerType=wO;class ef extends pa{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=2827207264}}e.IfcFeatureElement=ef;class Od extends ef{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=2143335405}}e.IfcFeatureElementAddition=Od;class vd extends ef{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=1287392070}}e.IfcFeatureElementSubtraction=vd;class lh extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=3907093117}}e.IfcFlowControllerType=lh;class Sp extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=3198132628}}e.IfcFlowFittingType=Sp;class BR extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3815607619}}e.IfcFlowMeterType=BR;class sf extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=1482959167}}e.IfcFlowMovingDeviceType=sf;class Np extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=1834744321}}e.IfcFlowSegmentType=Np;class _d extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=1339347760}}e.IfcFlowStorageDeviceType=_d;class li extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=2297155007}}e.IfcFlowTerminalType=li;class su extends ua{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=su;class lo extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1893162501}}e.IfcFootingType=lo;class gd extends pa{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=263784265}}e.IfcFurnishingElement=gd;class BO extends gd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1509553395}}e.IfcFurniture=BO;class $I extends pa{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3493046030}}e.IfcGeographicElement=$I;class Ld extends Pc{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.UAxes=P,this.VAxes=B,this.WAxes=J,this.PredefinedType=ft,this.type=3009204131}}e.IfcGrid=Ld;class Ea extends ql{constructor(o,l,f,T,R){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.type=2706460486}}e.IfcGroup=Ea;class JI extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1251058090}}e.IfcHeatExchangerType=JI;class GO extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1806887404}}e.IfcHumidifierType=GO;class FO extends el{constructor(o,l,f){super(),this.Points=o,this.Segments=l,this.SelfIntersect=f,this.type=2571569899}}e.IfcIndexedPolyCurve=FO;class VO extends su{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3946677679}}e.IfcInterceptorType=VO;class HO extends Rd{constructor(o,l,f){super(o,l,f),this.Curve3D=o,this.AssociatedGeometry=l,this.MasterRepresentation=f,this.type=3113134337}}e.IfcIntersectionCurve=HO;class iu extends Ea{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.PredefinedType=A,this.Jurisdiction=L,this.ResponsiblePersons=P,this.LastUpdateDate=B,this.CurrentValue=J,this.OriginalValue=ft,this.type=2391368822}}e.IfcInventory=iu;class xd extends Sp{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=4288270099}}e.IfcJunctionBoxType=xd;class Pd extends Xl{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Usage=P,this.BaseCosts=B,this.BaseQuantity=J,this.PredefinedType=ft,this.type=3827777499}}e.IfcLaborResource=Pd;class Md extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1051575348}}e.IfcLampType=Md;class XI extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1161773419}}e.IfcLightFixtureType=XI;class GR extends tu{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.NominalDiameter=B,this.NominalLength=J,this.PredefinedType=ft,this.type=377706215}}e.IfcMechanicalFastener=GR;class WO extends eu{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.NominalDiameter=ft,this.NominalLength=Ot,this.type=2108223431}}e.IfcMechanicalFastenerType=WO;class zO extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1114901282}}e.IfcMedicalDeviceType=zO;class FR extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3181161470}}e.IfcMemberType=FR;class Ud extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=977012517}}e.IfcMotorConnectionType=Ud;class YO extends LR{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.TheActor=A,this.PredefinedType=L,this.type=4143007308}}e.IfcOccupant=YO;class VR extends vd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3588315303}}e.IfcOpeningElement=VR;class kO extends VR{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3079942009}}e.IfcOpeningStandardCase=kO;class KO extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2837617999}}e.IfcOutletType=KO;class ZO extends hh{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LifeCyclePhase=L,this.PredefinedType=P,this.type=2382730787}}e.IfcPerformanceHistory=ZO;class qO extends oi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.OperationType=R,this.PanelPosition=A,this.FrameDepth=L,this.FrameThickness=P,this.ShapeAspectStyle=B,this.type=3566463478}}e.IfcPermeableCoveringProperties=qO;class Cd extends hh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.PredefinedType=L,this.Status=P,this.LongDescription=B,this.type=3327091369}}e.IfcPermit=Cd;class jO extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1158309216}}e.IfcPileType=jO;class QO extends Sp{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=804291784}}e.IfcPipeFittingType=QO;class bd extends Np{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=4231323485}}e.IfcPipeSegmentType=bd;class HR extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=4017108033}}e.IfcPlateType=HR;class $O extends Uc{constructor(o,l,f,T){super(o),this.Coordinates=o,this.Closed=l,this.Faces=f,this.PnIndex=T,this.type=2839578677}}e.IfcPolygonalFaceSet=$O;class JO extends el{constructor(o){super(),this.Points=o,this.type=3724593414}}e.IfcPolyline=JO;class WR extends Pc{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.type=3740093272}}e.IfcPort=WR;class nf extends WI{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.PredefinedType=P,this.type=2744685151}}e.IfcProcedure=nf;class zR extends hh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.PredefinedType=L,this.Status=P,this.LongDescription=B,this.type=2904328755}}e.IfcProjectOrder=zR;class YR extends Od{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3651124850}}e.IfcProjectionElement=YR;class XO extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1842657554}}e.IfcProtectiveDeviceType=XO;class tv extends sf{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2250791053}}e.IfcPumpType=tv;class kR extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2893384427}}e.IfcRailingType=kR;class KR extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2324767716}}e.IfcRampFlightType=KR;class ev extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1469900589}}e.IfcRampType=ev;class sv extends jI{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P,B,J,ft,Ot),this.UDegree=o,this.VDegree=l,this.ControlPointsList=f,this.SurfaceForm=T,this.UClosed=R,this.VClosed=A,this.SelfIntersect=L,this.UMultiplicities=P,this.VMultiplicities=B,this.UKnots=J,this.VKnots=ft,this.KnotSpec=Ot,this.WeightsData=Wt,this.type=683857671}}e.IfcRationalBSplineSurfaceWithKnots=sv;class uo extends tu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.SteelGrade=B,this.type=3027567501}}e.IfcReinforcingElement=uo;class rf extends eu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=964333572}}e.IfcReinforcingElementType=rf;class be extends uo{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr,rl){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.SteelGrade=B,this.MeshLength=J,this.MeshWidth=ft,this.LongitudinalBarNominalDiameter=Ot,this.TransverseBarNominalDiameter=Wt,this.LongitudinalBarCrossSectionArea=we,this.TransverseBarCrossSectionArea=$s,this.LongitudinalBarSpacing=Js,this.TransverseBarSpacing=vr,this.PredefinedType=rl,this.type=2320036040}}e.IfcReinforcingMesh=be;class ZR extends rf{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr,rl,oy,hy){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.MeshLength=ft,this.MeshWidth=Ot,this.LongitudinalBarNominalDiameter=Wt,this.TransverseBarNominalDiameter=we,this.LongitudinalBarCrossSectionArea=$s,this.TransverseBarCrossSectionArea=Js,this.LongitudinalBarSpacing=vr,this.TransverseBarSpacing=rl,this.BendingShapeCode=oy,this.BendingParameters=hy,this.type=2310774935}}e.IfcReinforcingMeshType=ZR;class iv extends Jl{constructor(o,l,f,T,R,A){super(o,l,f,T),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.RelatingObject=R,this.RelatedObjects=A,this.type=160246688}}e.IfcRelAggregates=iv;class nv extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2781568857}}e.IfcRoofType=nv;class rv extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1768891740}}e.IfcSanitaryTerminalType=rv;class cv extends Rd{constructor(o,l,f){super(o,l,f),this.Curve3D=o,this.AssociatedGeometry=l,this.MasterRepresentation=f,this.type=2157484638}}e.IfcSeamCurve=cv;class av extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=4074543187}}e.IfcShadingDeviceType=av;class ty extends dp{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.CompositionType=B,this.RefLatitude=J,this.RefLongitude=ft,this.RefElevation=Ot,this.LandTitleNumber=Wt,this.SiteAddress=we,this.type=4097777520}}e.IfcSite=ty;class qR extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2533589738}}e.IfcSlabType=qR;class wd extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1072016465}}e.IfcSolarDeviceType=wd;class ov extends dp{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.CompositionType=B,this.PredefinedType=J,this.ElevationWithFlooring=ft,this.type=3856911033}}e.IfcSpace=ov;class hv extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1305183839}}e.IfcSpaceHeaterType=hv;class lv extends AR{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.LongName=ft,this.type=3812236995}}e.IfcSpaceType=lv;class b extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3112655638}}e.IfcStackTerminalType=b;class E extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1039846685}}e.IfcStairFlightType=E;class d extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=338393293}}e.IfcStairType=d;class S extends XE{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.DestabilizingLoad=J,this.type=682877961}}e.IfcStructuralAction=S;class v extends ah{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedCondition=P,this.type=1179482911}}e.IfcStructuralConnection=v;class M extends S{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.DestabilizingLoad=J,this.ProjectedOrTrue=ft,this.PredefinedType=Ot,this.type=1004757350}}e.IfcStructuralCurveAction=M;class w extends v{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedCondition=P,this.Axis=B,this.type=4243806635}}e.IfcStructuralCurveConnection=w;class G extends mp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.PredefinedType=P,this.Axis=B,this.type=214636428}}e.IfcStructuralCurveMember=G;class W extends G{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.PredefinedType=P,this.Axis=B,this.type=2445595289}}e.IfcStructuralCurveMemberVarying=W;class Y extends KI{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.PredefinedType=J,this.type=2757150158}}e.IfcStructuralCurveReaction=Y;class st extends M{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft,Ot),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.DestabilizingLoad=J,this.ProjectedOrTrue=ft,this.PredefinedType=Ot,this.type=1807405624}}e.IfcStructuralLinearAction=st;class At extends Ea{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.PredefinedType=A,this.ActionType=L,this.ActionSource=P,this.Coefficient=B,this.Purpose=J,this.type=1252848954}}e.IfcStructuralLoadGroup=At;class Mt extends S{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.DestabilizingLoad=J,this.type=2082059205}}e.IfcStructuralPointAction=Mt;class Ft extends v{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedCondition=P,this.ConditionCoordinateSystem=B,this.type=734778138}}e.IfcStructuralPointConnection=Ft;class ie extends KI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.type=1235345126}}e.IfcStructuralPointReaction=ie;class ns extends Ea{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.TheoryType=A,this.ResultForLoadGroup=L,this.IsLinear=P,this.type=2986769608}}e.IfcStructuralResultGroup=ns;class Jn extends S{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.DestabilizingLoad=J,this.ProjectedOrTrue=ft,this.PredefinedType=Ot,this.type=3657597509}}e.IfcStructuralSurfaceAction=Jn;class Or extends v{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedCondition=P,this.type=1975003073}}e.IfcStructuralSurfaceConnection=Or;class sl extends Xl{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Usage=P,this.BaseCosts=B,this.BaseQuantity=J,this.PredefinedType=ft,this.type=148013059}}e.IfcSubContractResource=sl;class ui extends ef{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3101698114}}e.IfcSurfaceFeature=ui;class Ap extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2315554128}}e.IfcSwitchingDeviceType=Ap;class po extends Ea{constructor(o,l,f,T,R){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.type=2254336722}}e.IfcSystem=po;class Xn extends gd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=413509423}}e.IfcSystemFurnitureElement=Xn;class tr extends _d{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=5716631}}e.IfcTankType=tr;class uv extends uo{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js,vr){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.SteelGrade=B,this.PredefinedType=J,this.NominalDiameter=ft,this.CrossSectionArea=Ot,this.TensionForce=Wt,this.PreStress=we,this.FrictionCoefficient=$s,this.AnchorageSlip=Js,this.MinCurvatureRadius=vr,this.type=3824725483}}e.IfcTendon=uv;class Bs extends uo{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.SteelGrade=B,this.PredefinedType=J,this.type=2347447852}}e.IfcTendonAnchor=Bs;class pv extends rf{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3081323446}}e.IfcTendonAnchorType=pv;class Ev extends rf{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.NominalDiameter=ft,this.CrossSectionArea=Ot,this.SheathDiameter=Wt,this.type=2415094496}}e.IfcTendonType=Ev;class ZL extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1692211062}}e.IfcTransformerType=ZL;class qL extends pa{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1620046519}}e.IfcTransportElement=qL;class U_ extends el{constructor(o,l,f,T,R){super(),this.BasisCurve=o,this.Trim1=l,this.Trim2=f,this.SenseAgreement=T,this.MasterRepresentation=R,this.type=3593883385}}e.IfcTrimmedCurve=U_;class C_ extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1600972822}}e.IfcTubeBundleType=C_;class jL extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1911125066}}e.IfcUnitaryEquipmentType=jL;class ey extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=728799441}}e.IfcValveType=ey;class sy extends tu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2391383451}}e.IfcVibrationIsolator=sy;class QL extends eu{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3313531582}}e.IfcVibrationIsolatorType=QL;class $L extends pa{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=2769231204}}e.IfcVirtualElement=$L;class JL extends vd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=926996030}}e.IfcVoidingFeature=JL;class jR extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1898987631}}e.IfcWallType=jR;class b_ extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1133259667}}e.IfcWasteTerminalType=b_;class QR extends Ke{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.PartitioningType=ft,this.ParameterTakesPrecedence=Ot,this.UserDefinedPartitioningType=Wt,this.type=4009809668}}e.IfcWindowType=QR;class il extends hh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.WorkingTimes=L,this.ExceptionTimes=P,this.PredefinedType=B,this.type=4088093105}}e.IfcWorkCalendar=il;class Dp extends hh{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.CreationDate=L,this.Creators=P,this.Purpose=B,this.Duration=J,this.TotalFloat=ft,this.StartTime=Ot,this.FinishTime=Wt,this.type=1028945134}}e.IfcWorkControl=Dp;class XL extends Dp{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we){super(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.CreationDate=L,this.Creators=P,this.Purpose=B,this.Duration=J,this.TotalFloat=ft,this.StartTime=Ot,this.FinishTime=Wt,this.PredefinedType=we,this.type=4218914973}}e.IfcWorkPlan=XL;class $R extends Dp{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we){super(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.CreationDate=L,this.Creators=P,this.Purpose=B,this.Duration=J,this.TotalFloat=ft,this.StartTime=Ot,this.FinishTime=Wt,this.PredefinedType=we,this.type=3342526732}}e.IfcWorkSchedule=$R;class iy extends po{constructor(o,l,f,T,R,A){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.LongName=A,this.type=1033361043}}e.IfcZone=iy;class fv extends hh{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.PredefinedType=L,this.Status=P,this.LongDescription=B,this.type=3821786052}}e.IfcActionRequest=fv;class er extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1411407467}}e.IfcAirTerminalBoxType=er;class Bd extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3352864051}}e.IfcAirTerminalType=Bd;class t3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1871374353}}e.IfcAirToAirHeatRecoveryType=t3;class Iv extends Ea{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.OriginalValue=L,this.CurrentValue=P,this.TotalReplacementCost=B,this.Owner=J,this.User=ft,this.ResponsiblePerson=Ot,this.IncorporationDate=Wt,this.DepreciatedValue=we,this.type=3460190687}}e.IfcAsset=Iv;class e3 extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1532957894}}e.IfcAudioVisualApplianceType=e3;class w_ extends el{constructor(o,l,f,T,R){super(),this.Degree=o,this.ControlPointsList=l,this.CurveForm=f,this.ClosedCurve=T,this.SelfIntersect=R,this.type=1967976161}}e.IfcBSplineCurve=w_;class JR extends w_{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R),this.Degree=o,this.ControlPointsList=l,this.CurveForm=f,this.ClosedCurve=T,this.SelfIntersect=R,this.KnotMultiplicities=A,this.Knots=L,this.KnotSpec=P,this.type=2461110595}}e.IfcBSplineCurveWithKnots=JR;class s3 extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=819618141}}e.IfcBeamType=s3;class i3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=231477066}}e.IfcBoilerType=i3;class cf extends oh{constructor(o,l){super(o,l),this.Segments=o,this.SelfIntersect=l,this.type=1136057603}}e.IfcBoundaryCurve=cf;class Qs extends pa{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=3299480353}}e.IfcBuildingElement=Qs;class n3 extends tu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2979338954}}e.IfcBuildingElementPart=n3;class r3 extends eu{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=39481116}}e.IfcBuildingElementPartType=r3;class c3 extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1095909175}}e.IfcBuildingElementProxy=c3;class a3 extends Ke{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1909888760}}e.IfcBuildingElementProxyType=a3;class o3 extends po{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.PredefinedType=A,this.LongName=L,this.type=1177604601}}e.IfcBuildingSystem=o3;class h3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2188180465}}e.IfcBurnerType=h3;class l3 extends Sp{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=395041908}}e.IfcCableCarrierFittingType=l3;class u3 extends Np{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3293546465}}e.IfcCableCarrierSegmentType=u3;class p3 extends Sp{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2674252688}}e.IfcCableFittingType=p3;class E3 extends Np{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1285652485}}e.IfcCableSegmentType=E3;class f3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2951183804}}e.IfcChillerType=f3;class I3 extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3296154744}}e.IfcChimney=I3;class Gd extends Sd{constructor(o,l){super(o),this.Position=o,this.Radius=l,this.type=2611217952}}e.IfcCircle=Gd;class y3 extends pa{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=1677625105}}e.IfcCivilElement=y3;class T3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2301859152}}e.IfcCoilType=T3;class B_ extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=843113511}}e.IfcColumn=B_;class d3 extends B_{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=905975707}}e.IfcColumnStandardCase=d3;class m3 extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=400855858}}e.IfcCommunicationsApplianceType=m3;class R3 extends sf{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3850581409}}e.IfcCompressorType=R3;class S3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2816379211}}e.IfcCondenserType=S3;class N3 extends Xl{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Usage=P,this.BaseCosts=B,this.BaseQuantity=J,this.PredefinedType=ft,this.type=3898045240}}e.IfcConstructionEquipmentResource=N3;class A3 extends Xl{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Usage=P,this.BaseCosts=B,this.BaseQuantity=J,this.PredefinedType=ft,this.type=1060000209}}e.IfcConstructionMaterialResource=A3;class D3 extends Xl{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.Identification=A,this.LongDescription=L,this.Usage=P,this.BaseCosts=B,this.BaseQuantity=J,this.PredefinedType=ft,this.type=488727124}}e.IfcConstructionProductResource=D3;class O3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=335055490}}e.IfcCooledBeamType=O3;class v3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2954562838}}e.IfcCoolingTowerType=v3;class _3 extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1973544240}}e.IfcCovering=_3;class g3 extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3495092785}}e.IfcCurtainWall=g3;class L3 extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3961806047}}e.IfcDamperType=L3;class x3 extends tu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1335981549}}e.IfcDiscreteAccessory=x3;class P3 extends eu{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2635815018}}e.IfcDiscreteAccessoryType=P3;class M3 extends ua{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1599208980}}e.IfcDistributionChamberElementType=M3;class Op extends QI{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.type=2063403501}}e.IfcDistributionControlElementType=Op;class yv extends pa{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=1945004755}}e.IfcDistributionElement=yv;class nl extends yv{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=3040386961}}e.IfcDistributionFlowElement=nl;class U3 extends WR{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.FlowDirection=P,this.PredefinedType=B,this.SystemType=J,this.type=3041715199}}e.IfcDistributionPort=U3;class G_ extends po{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.LongName=A,this.PredefinedType=L,this.type=3205830791}}e.IfcDistributionSystem=G_;class F_ extends Qs{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.OverallHeight=B,this.OverallWidth=J,this.PredefinedType=ft,this.OperationType=Ot,this.UserDefinedOperationType=Wt,this.type=395920057}}e.IfcDoor=F_;class V_ extends F_{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.OverallHeight=B,this.OverallWidth=J,this.PredefinedType=ft,this.OperationType=Ot,this.UserDefinedOperationType=Wt,this.type=3242481149}}e.IfcDoorStandardCase=V_;class XR extends Sp{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=869906466}}e.IfcDuctFittingType=XR;class C3 extends Np{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3760055223}}e.IfcDuctSegmentType=C3;class b3 extends su{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2030761528}}e.IfcDuctSilencerType=b3;class w3 extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=663422040}}e.IfcElectricApplianceType=w3;class B3 extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2417008758}}e.IfcElectricDistributionBoardType=B3;class G3 extends _d{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3277789161}}e.IfcElectricFlowStorageDeviceType=G3;class F3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1534661035}}e.IfcElectricGeneratorType=F3;class V3 extends ws{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1217240411}}e.IfcElectricMotorType=V3;class H3 extends lh{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=712377611}}e.IfcElectricTimeControlType=H3;class pi extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=1658829314}}e.IfcEnergyConversionDevice=pi;class W3 extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2814081492}}e.IfcEngine=W3;class z3 extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3747195512}}e.IfcEvaporativeCooler=z3;class Y3 extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=484807127}}e.IfcEvaporator=Y3;class k3 extends bR{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.LongName=P,this.PredefinedType=B,this.type=1209101575}}e.IfcExternalSpatialElement=k3;class ny extends sf{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=346874300}}e.IfcFanType=ny;class ry extends su{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1810631287}}e.IfcFilterType=ry;class K3 extends li{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=4222183408}}e.IfcFireSuppressionTerminalType=K3;class nu extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=2058353004}}e.IfcFlowController=nu;class cy extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=4278956645}}e.IfcFlowFitting=cy;class Z3 extends Op{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=4037862832}}e.IfcFlowInstrumentType=Z3;class q3 extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2188021234}}e.IfcFlowMeter=q3;class tS extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=3132237377}}e.IfcFlowMovingDevice=tS;class Fd extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=987401354}}e.IfcFlowSegment=Fd;class Tv extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=707683696}}e.IfcFlowStorageDevice=Tv;class Cc extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=2223149337}}e.IfcFlowTerminal=Cc;class eS extends nl{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=3508470533}}e.IfcFlowTreatmentDevice=eS;class j3 extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=900683007}}e.IfcFooting=j3;class Q3 extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3319311131}}e.IfcHeatExchanger=Q3;class $3 extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2068733104}}e.IfcHumidifier=$3;class J3 extends eS{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4175244083}}e.IfcInterceptor=J3;class X3 extends cy{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2176052936}}e.IfcJunctionBox=X3;class tx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=76236018}}e.IfcLamp=tx;class ex extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=629592764}}e.IfcLightFixture=ex;class sx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1437502449}}e.IfcMedicalDevice=sx;class H_ extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1073191201}}e.IfcMember=H_;class ix extends H_{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1911478936}}e.IfcMemberStandardCase=ix;class nx extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2474470126}}e.IfcMotorConnection=nx;class rx extends cf{constructor(o,l){super(o,l),this.Segments=o,this.SelfIntersect=l,this.type=144952367}}e.IfcOuterBoundaryCurve=rx;class cx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3694346114}}e.IfcOutlet=cx;class ax extends Qs{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.ConstructionType=J,this.type=1687234759}}e.IfcPile=ax;class ox extends cy{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=310824031}}e.IfcPipeFitting=ox;class hx extends Fd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3612865200}}e.IfcPipeSegment=hx;class Vd extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3171933400}}e.IfcPlate=Vd;class sS extends Vd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1156407060}}e.IfcPlateStandardCase=sS;class W_ extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=738039164}}e.IfcProtectiveDevice=W_;class lx extends Op{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=655969474}}e.IfcProtectiveDeviceTrippingUnitType=lx;class z_ extends tS{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=90941305}}e.IfcPump=z_;class ux extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2262370178}}e.IfcRailing=ux;class px extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3024970846}}e.IfcRamp=px;class Ex extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3283111854}}e.IfcRampFlight=Ex;class Y_ extends JR{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.Degree=o,this.ControlPointsList=l,this.CurveForm=f,this.ClosedCurve=T,this.SelfIntersect=R,this.KnotMultiplicities=A,this.Knots=L,this.KnotSpec=P,this.WeightsData=B,this.type=1232101972}}e.IfcRationalBSplineCurveWithKnots=Y_;class fx extends uo{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.SteelGrade=B,this.NominalDiameter=J,this.CrossSectionArea=ft,this.BarLength=Ot,this.PredefinedType=Wt,this.BarSurface=we,this.type=979691226}}e.IfcReinforcingBar=fx;class Ix extends rf{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt,we,$s,Js){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.NominalDiameter=ft,this.CrossSectionArea=Ot,this.BarLength=Wt,this.BarSurface=we,this.BendingShapeCode=$s,this.BendingParameters=Js,this.type=2572171363}}e.IfcReinforcingBarType=Ix;class yx extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2016517767}}e.IfcRoof=yx;class Tx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3053780830}}e.IfcSanitaryTerminal=Tx;class k_ extends Op{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=1783015770}}e.IfcSensorType=k_;class dx extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1329646415}}e.IfcShadingDevice=dx;class dv extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1529196076}}e.IfcSlab=dv;class mx extends dv{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3127900445}}e.IfcSlabElementedCase=mx;class Rx extends dv{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3027962421}}e.IfcSlabStandardCase=Rx;class ay extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3420628829}}e.IfcSolarDevice=ay;class Sx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1999602285}}e.IfcSpaceHeater=Sx;class Nx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1404847402}}e.IfcStackTerminal=Nx;class Ax extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=331165859}}e.IfcStair=Ax;class Dx extends Qs{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.NumberOfRisers=B,this.NumberOfTreads=J,this.RiserHeight=ft,this.TreadLength=Ot,this.PredefinedType=Wt,this.type=4252922144}}e.IfcStairFlight=Dx;class Ox extends po{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.PredefinedType=A,this.OrientationOf2DPlane=L,this.LoadedBy=P,this.HasResults=B,this.SharedPlacement=J,this.type=2515109513}}e.IfcStructuralAnalysisModel=Ox;class vx extends At{constructor(o,l,f,T,R,A,L,P,B,J,ft){super(o,l,f,T,R,A,L,P,B,J),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.PredefinedType=A,this.ActionType=L,this.ActionSource=P,this.Coefficient=B,this.Purpose=J,this.SelfWeightCoefficients=ft,this.type=385403989}}e.IfcStructuralLoadCase=vx;class _x extends Jn{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot){super(o,l,f,T,R,A,L,P,B,J,ft,Ot),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.AppliedLoad=P,this.GlobalOrLocal=B,this.DestabilizingLoad=J,this.ProjectedOrTrue=ft,this.PredefinedType=Ot,this.type=1621171031}}e.IfcStructuralPlanarAction=_x;class gx extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1162798199}}e.IfcSwitchingDevice=gx;class Lx extends Tv{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=812556717}}e.IfcTank=Lx;class xx extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3825984169}}e.IfcTransformer=xx;class Px extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3026737570}}e.IfcTubeBundle=Px;class mv extends Op{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3179687236}}e.IfcUnitaryControlElementType=mv;class Mx extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4292641817}}e.IfcUnitaryEquipment=Mx;class Ux extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4207607924}}e.IfcValve=Ux;class Rv extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2391406946}}e.IfcWall=Rv;class Cx extends Rv{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4156078855}}e.IfcWallElementedCase=Cx;class bx extends Rv{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3512223829}}e.IfcWallStandardCase=bx;class wx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4237592921}}e.IfcWasteTerminal=wx;class K_ extends Qs{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.OverallHeight=B,this.OverallWidth=J,this.PredefinedType=ft,this.PartitioningType=Ot,this.UserDefinedPartitioningType=Wt,this.type=3304561284}}e.IfcWindow=K_;class Bx extends K_{constructor(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt){super(o,l,f,T,R,A,L,P,B,J,ft,Ot,Wt),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.OverallHeight=B,this.OverallWidth=J,this.PredefinedType=ft,this.PartitioningType=Ot,this.UserDefinedPartitioningType=Wt,this.type=486154966}}e.IfcWindowStandardCase=Bx;class Gx extends Op{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=2874132201}}e.IfcActuatorType=Gx;class Fx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1634111441}}e.IfcAirTerminal=Fx;class Vx extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=177149247}}e.IfcAirTerminalBox=Vx;class Hx extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2056796094}}e.IfcAirToAirHeatRecovery=Hx;class Wx extends Op{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=3001207471}}e.IfcAlarmType=Wx;class zx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=277319702}}e.IfcAudioVisualAppliance=zx;class Z_ extends Qs{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=753842376}}e.IfcBeam=Z_;class Sv extends Z_{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2906023776}}e.IfcBeamStandardCase=Sv;class Yx extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=32344328}}e.IfcBoiler=Yx;class kx extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2938176219}}e.IfcBurner=kx;class Kx extends cy{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=635142910}}e.IfcCableCarrierFitting=Kx;class Zx extends Fd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3758799889}}e.IfcCableCarrierSegment=Zx;class qx extends cy{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1051757585}}e.IfcCableFitting=qx;class jx extends Fd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4217484030}}e.IfcCableSegment=jx;class Qx extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3902619387}}e.IfcChiller=Qx;class $x extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=639361253}}e.IfcCoil=$x;class Jx extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3221913625}}e.IfcCommunicationsAppliance=Jx;class Xx extends tS{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3571504051}}e.IfcCompressor=Xx;class tP extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2272882330}}e.IfcCondenser=tP;class eP extends Op{constructor(o,l,f,T,R,A,L,P,B,J){super(o,l,f,T,R,A,L,P,B),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ApplicableOccurrence=R,this.HasPropertySets=A,this.RepresentationMaps=L,this.Tag=P,this.ElementType=B,this.PredefinedType=J,this.type=578613899}}e.IfcControllerType=eP;class sP extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4136498852}}e.IfcCooledBeam=sP;class q_ extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3640358203}}e.IfcCoolingTower=q_;class j_ extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4074379575}}e.IfcDamper=j_;class iP extends nl{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1052013943}}e.IfcDistributionChamberElement=iP;class nP extends G_{constructor(o,l,f,T,R,A,L){super(o,l,f,T,R,A,L),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.LongName=A,this.PredefinedType=L,this.type=562808652}}e.IfcDistributionCircuit=nP;class vp extends yv{constructor(o,l,f,T,R,A,L,P){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.type=1062813311}}e.IfcDistributionControlElement=vp;class Q_ extends cy{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=342316401}}e.IfcDuctFitting=Q_;class rP extends Fd{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3518393246}}e.IfcDuctSegment=rP;class cP extends eS{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1360408905}}e.IfcDuctSilencer=cP;class aP extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1904799276}}e.IfcElectricAppliance=aP;class oP extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=862014818}}e.IfcElectricDistributionBoard=oP;class hP extends Tv{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3310460725}}e.IfcElectricFlowStorageDevice=hP;class lP extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=264262732}}e.IfcElectricGenerator=lP;class uP extends pi{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=402227799}}e.IfcElectricMotor=uP;class We extends nu{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1003880860}}e.IfcElectricTimeControl=We;class pP extends tS{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3415622556}}e.IfcFan=pP;class EP extends eS{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=819412036}}e.IfcFilter=EP;class fP extends Cc{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=1426591983}}e.IfcFireSuppressionTerminal=fP;class IP extends vp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=182646315}}e.IfcFlowInstrument=IP;class yP extends vp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=2295281155}}e.IfcProtectiveDeviceTrippingUnit=yP;class TP extends vp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4086658281}}e.IfcSensor=TP;class dP extends vp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=630975310}}e.IfcUnitaryControlElement=dP;class mP extends vp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=4288193352}}e.IfcActuator=mP;class RP extends vp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=3087945054}}e.IfcAlarm=RP;class SP extends vp{constructor(o,l,f,T,R,A,L,P,B){super(o,l,f,T,R,A,L,P),this.GlobalId=o,this.OwnerHistory=l,this.Name=f,this.Description=T,this.ObjectType=R,this.ObjectPlacement=A,this.Representation=L,this.Tag=P,this.PredefinedType=B,this.type=25142252}}e.IfcController=SP})(Rt||(Rt={}));KL[3]={3699917729:e=>new mt.IfcAbsorbedDoseMeasure(e),4182062534:e=>new mt.IfcAccelerationMeasure(e),360377573:e=>new mt.IfcAmountOfSubstanceMeasure(e),632304761:e=>new mt.IfcAngularVelocityMeasure(e),3683503648:e=>new mt.IfcArcIndex(e.map(t=>t.value)),1500781891:e=>new mt.IfcAreaDensityMeasure(e),2650437152:e=>new mt.IfcAreaMeasure(e),2314439260:e=>new mt.IfcBinary(e),2735952531:e=>new mt.IfcBoolean(e),1867003952:e=>new mt.IfcBoxAlignment(e),1683019596:e=>new mt.IfcCardinalPointReference(e),2991860651:e=>new mt.IfcComplexNumber(e.map(t=>t.value)),3812528620:e=>new mt.IfcCompoundPlaneAngleMeasure(e.map(t=>t.value)),3238673880:e=>new mt.IfcContextDependentMeasure(e),1778710042:e=>new mt.IfcCountMeasure(e),94842927:e=>new mt.IfcCurvatureMeasure(e),937566702:e=>new mt.IfcDate(e),2195413836:e=>new mt.IfcDateTime(e),86635668:e=>new mt.IfcDayInMonthNumber(e),3701338814:e=>new mt.IfcDayInWeekNumber(e),1514641115:e=>new mt.IfcDescriptiveMeasure(e),4134073009:e=>new mt.IfcDimensionCount(e),524656162:e=>new mt.IfcDoseEquivalentMeasure(e),2541165894:e=>new mt.IfcDuration(e),69416015:e=>new mt.IfcDynamicViscosityMeasure(e),1827137117:e=>new mt.IfcElectricCapacitanceMeasure(e),3818826038:e=>new mt.IfcElectricChargeMeasure(e),2093906313:e=>new mt.IfcElectricConductanceMeasure(e),3790457270:e=>new mt.IfcElectricCurrentMeasure(e),2951915441:e=>new mt.IfcElectricResistanceMeasure(e),2506197118:e=>new mt.IfcElectricVoltageMeasure(e),2078135608:e=>new mt.IfcEnergyMeasure(e),1102727119:e=>new mt.IfcFontStyle(e),2715512545:e=>new mt.IfcFontVariant(e),2590844177:e=>new mt.IfcFontWeight(e),1361398929:e=>new mt.IfcForceMeasure(e),3044325142:e=>new mt.IfcFrequencyMeasure(e),3064340077:e=>new mt.IfcGloballyUniqueId(e),3113092358:e=>new mt.IfcHeatFluxDensityMeasure(e),1158859006:e=>new mt.IfcHeatingValueMeasure(e),983778844:e=>new mt.IfcIdentifier(e),3358199106:e=>new mt.IfcIlluminanceMeasure(e),2679005408:e=>new mt.IfcInductanceMeasure(e),1939436016:e=>new mt.IfcInteger(e),3809634241:e=>new mt.IfcIntegerCountRateMeasure(e),3686016028:e=>new mt.IfcIonConcentrationMeasure(e),3192672207:e=>new mt.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new mt.IfcKinematicViscosityMeasure(e),3258342251:e=>new mt.IfcLabel(e),1275358634:e=>new mt.IfcLanguageId(e),1243674935:e=>new mt.IfcLengthMeasure(e),1774176899:e=>new mt.IfcLineIndex(e.map(t=>t.value)),191860431:e=>new mt.IfcLinearForceMeasure(e),2128979029:e=>new mt.IfcLinearMomentMeasure(e),1307019551:e=>new mt.IfcLinearStiffnessMeasure(e),3086160713:e=>new mt.IfcLinearVelocityMeasure(e),503418787:e=>new mt.IfcLogical(e),2095003142:e=>new mt.IfcLuminousFluxMeasure(e),2755797622:e=>new mt.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new mt.IfcLuminousIntensityMeasure(e),286949696:e=>new mt.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new mt.IfcMagneticFluxMeasure(e),1477762836:e=>new mt.IfcMassDensityMeasure(e),4017473158:e=>new mt.IfcMassFlowRateMeasure(e),3124614049:e=>new mt.IfcMassMeasure(e),3531705166:e=>new mt.IfcMassPerLengthMeasure(e),3341486342:e=>new mt.IfcModulusOfElasticityMeasure(e),2173214787:e=>new mt.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new mt.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new mt.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new mt.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new mt.IfcMolecularWeightMeasure(e),3114022597:e=>new mt.IfcMomentOfInertiaMeasure(e),2615040989:e=>new mt.IfcMonetaryMeasure(e),765770214:e=>new mt.IfcMonthInYearNumber(e),525895558:e=>new mt.IfcNonNegativeLengthMeasure(e),2095195183:e=>new mt.IfcNormalisedRatioMeasure(e),2395907400:e=>new mt.IfcNumericMeasure(e),929793134:e=>new mt.IfcPHMeasure(e),2260317790:e=>new mt.IfcParameterValue(e),2642773653:e=>new mt.IfcPlanarForceMeasure(e),4042175685:e=>new mt.IfcPlaneAngleMeasure(e),1790229001:e=>new mt.IfcPositiveInteger(e),2815919920:e=>new mt.IfcPositiveLengthMeasure(e),3054510233:e=>new mt.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new mt.IfcPositiveRatioMeasure(e),1364037233:e=>new mt.IfcPowerMeasure(e),2169031380:e=>new mt.IfcPresentableText(e),3665567075:e=>new mt.IfcPressureMeasure(e),2798247006:e=>new mt.IfcPropertySetDefinitionSet(e.map(t=>t.value)),3972513137:e=>new mt.IfcRadioActivityMeasure(e),96294661:e=>new mt.IfcRatioMeasure(e),200335297:e=>new mt.IfcReal(e),2133746277:e=>new mt.IfcRotationalFrequencyMeasure(e),1755127002:e=>new mt.IfcRotationalMassMeasure(e),3211557302:e=>new mt.IfcRotationalStiffnessMeasure(e),3467162246:e=>new mt.IfcSectionModulusMeasure(e),2190458107:e=>new mt.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new mt.IfcShearModulusMeasure(e),3471399674:e=>new mt.IfcSolidAngleMeasure(e),4157543285:e=>new mt.IfcSoundPowerLevelMeasure(e),846465480:e=>new mt.IfcSoundPowerMeasure(e),3457685358:e=>new mt.IfcSoundPressureLevelMeasure(e),993287707:e=>new mt.IfcSoundPressureMeasure(e),3477203348:e=>new mt.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new mt.IfcSpecularExponent(e),361837227:e=>new mt.IfcSpecularRoughness(e),1805707277:e=>new mt.IfcStrippedOptional(e),58845555:e=>new mt.IfcTemperatureGradientMeasure(e),1209108979:e=>new mt.IfcTemperatureRateOfChangeMeasure(e),2801250643:e=>new mt.IfcText(e),1460886941:e=>new mt.IfcTextAlignment(e),3490877962:e=>new mt.IfcTextDecoration(e),603696268:e=>new mt.IfcTextFontName(e),296282323:e=>new mt.IfcTextTransformation(e),232962298:e=>new mt.IfcThermalAdmittanceMeasure(e),2645777649:e=>new mt.IfcThermalConductivityMeasure(e),2281867870:e=>new mt.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new mt.IfcThermalResistanceMeasure(e),2016195849:e=>new mt.IfcThermalTransmittanceMeasure(e),743184107:e=>new mt.IfcThermodynamicTemperatureMeasure(e),4075327185:e=>new mt.IfcTime(e),2726807636:e=>new mt.IfcTimeMeasure(e),2591213694:e=>new mt.IfcTimeStamp(e),1278329552:e=>new mt.IfcTorqueMeasure(e),950732822:e=>new mt.IfcURIReference(e),3345633955:e=>new mt.IfcVaporPermeabilityMeasure(e),3458127941:e=>new mt.IfcVolumeMeasure(e),2593997549:e=>new mt.IfcVolumetricFlowRateMeasure(e),51269191:e=>new mt.IfcWarpingConstantMeasure(e),1718600412:e=>new mt.IfcWarpingMomentMeasure(e),2149462589:e=>new mt.IfcWellKnownTextLiteral(e)};var mt;(e=>{class t extends et{constructor(){super(...arguments),this.type=4,this.name="IFCABSORBEDDOSEMEASURE"}}e.IfcAbsorbedDoseMeasure=t;class s extends et{constructor(){super(...arguments),this.type=4,this.name="IFCACCELERATIONMEASURE"}}e.IfcAccelerationMeasure=s;class i extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAMOUNTOFSUBSTANCEMEASURE"}}e.IfcAmountOfSubstanceMeasure=i;class n extends et{constructor(){super(...arguments),this.type=4,this.name="IFCANGULARVELOCITYMEASURE"}}e.IfcAngularVelocityMeasure=n;class c{constructor(r){this.value=r,this.type=5}}e.IfcArcIndex=c;class u extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAREADENSITYMEASURE"}}e.IfcAreaDensityMeasure=u;class I extends et{constructor(){super(...arguments),this.type=4,this.name="IFCAREAMEASURE"}}e.IfcAreaMeasure=I;class D extends et{constructor(){super(...arguments),this.type=4,this.name="IFCBINARY"}}e.IfcBinary=D;class g{constructor(r){this.type=3,this.name="IFCBOOLEAN",this.value=r}}e.IfcBoolean=g;class U{constructor(r){this.value=r,this.type=1,this.name="IFCBOXALIGNMENT"}}e.IfcBoxAlignment=U;class F extends et{constructor(){super(...arguments),this.type=10,this.name="IFCCARDINALPOINTREFERENCE"}}e.IfcCardinalPointReference=F;class V{constructor(r){this.value=r,this.type=4}}e.IfcComplexNumber=V;class H{constructor(r){this.value=r,this.type=10}}e.IfcCompoundPlaneAngleMeasure=H;class z extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCONTEXTDEPENDENTMEASURE"}}e.IfcContextDependentMeasure=z;class j extends et{constructor(){super(...arguments),this.type=10,this.name="IFCCOUNTMEASURE"}}e.IfcCountMeasure=j;class Q extends et{constructor(){super(...arguments),this.type=4,this.name="IFCCURVATUREMEASURE"}}e.IfcCurvatureMeasure=Q;class Z{constructor(r){this.value=r,this.type=1,this.name="IFCDATE"}}e.IfcDate=Z;class X{constructor(r){this.value=r,this.type=1,this.name="IFCDATETIME"}}e.IfcDateTime=X;class $ extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDAYINMONTHNUMBER"}}e.IfcDayInMonthNumber=$;class q extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDAYINWEEKNUMBER"}}e.IfcDayInWeekNumber=q;class tt{constructor(r){this.value=r,this.type=1,this.name="IFCDESCRIPTIVEMEASURE"}}e.IfcDescriptiveMeasure=tt;class at extends et{constructor(){super(...arguments),this.type=10,this.name="IFCDIMENSIONCOUNT"}}e.IfcDimensionCount=at;class nt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCDOSEEQUIVALENTMEASURE"}}e.IfcDoseEquivalentMeasure=nt;class ht{constructor(r){this.value=r,this.type=1,this.name="IFCDURATION"}}e.IfcDuration=ht;class ut extends et{constructor(){super(...arguments),this.type=4,this.name="IFCDYNAMICVISCOSITYMEASURE"}}e.IfcDynamicViscosityMeasure=ut;class ot extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCAPACITANCEMEASURE"}}e.IfcElectricCapacitanceMeasure=ot;class pt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCHARGEMEASURE"}}e.IfcElectricChargeMeasure=pt;class Et extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCONDUCTANCEMEASURE"}}e.IfcElectricConductanceMeasure=Et;class dt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICCURRENTMEASURE"}}e.IfcElectricCurrentMeasure=dt;class Dt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICRESISTANCEMEASURE"}}e.IfcElectricResistanceMeasure=Dt;class Ut extends et{constructor(){super(...arguments),this.type=4,this.name="IFCELECTRICVOLTAGEMEASURE"}}e.IfcElectricVoltageMeasure=Ut;class Xt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCENERGYMEASURE"}}e.IfcEnergyMeasure=Xt;class Yt{constructor(r){this.value=r,this.type=1,this.name="IFCFONTSTYLE"}}e.IfcFontStyle=Yt;class Jt{constructor(r){this.value=r,this.type=1,this.name="IFCFONTVARIANT"}}e.IfcFontVariant=Jt;class ve{constructor(r){this.value=r,this.type=1,this.name="IFCFONTWEIGHT"}}e.IfcFontWeight=ve;class Tt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCFORCEMEASURE"}}e.IfcForceMeasure=Tt;class le extends et{constructor(){super(...arguments),this.type=4,this.name="IFCFREQUENCYMEASURE"}}e.IfcFrequencyMeasure=le;class fs{constructor(r){this.value=r,this.type=1,this.name="IFCGLOBALLYUNIQUEID"}}e.IfcGloballyUniqueId=fs;class Mr extends et{constructor(){super(...arguments),this.type=4,this.name="IFCHEATFLUXDENSITYMEASURE"}}e.IfcHeatFluxDensityMeasure=Mr;class Do extends et{constructor(){super(...arguments),this.type=4,this.name="IFCHEATINGVALUEMEASURE"}}e.IfcHeatingValueMeasure=Do;class _s{constructor(r){this.value=r,this.type=1,this.name="IFCIDENTIFIER"}}e.IfcIdentifier=_s;class or extends et{constructor(){super(...arguments),this.type=4,this.name="IFCILLUMINANCEMEASURE"}}e.IfcIlluminanceMeasure=or;class si extends et{constructor(){super(...arguments),this.type=4,this.name="IFCINDUCTANCEMEASURE"}}e.IfcInductanceMeasure=si;class Ur extends et{constructor(){super(...arguments),this.type=10,this.name="IFCINTEGER"}}e.IfcInteger=Ur;class hr extends et{constructor(){super(...arguments),this.type=10,this.name="IFCINTEGERCOUNTRATEMEASURE"}}e.IfcIntegerCountRateMeasure=hr;class Qi extends et{constructor(){super(...arguments),this.type=4,this.name="IFCIONCONCENTRATIONMEASURE"}}e.IfcIonConcentrationMeasure=Qi;class $i extends et{constructor(){super(...arguments),this.type=4,this.name="IFCISOTHERMALMOISTURECAPACITYMEASURE"}}e.IfcIsothermalMoistureCapacityMeasure=$i;class Ii extends et{constructor(){super(...arguments),this.type=4,this.name="IFCKINEMATICVISCOSITYMEASURE"}}e.IfcKinematicViscosityMeasure=Ii;class $p{constructor(r){this.value=r,this.type=1,this.name="IFCLABEL"}}e.IfcLabel=$p;class gf{constructor(r){this.value=r,this.type=1,this.name="IFCLANGUAGEID"}}e.IfcLanguageId=gf;class Lf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLENGTHMEASURE"}}e.IfcLengthMeasure=Lf;class xf{constructor(r){this.value=r,this.type=5}}e.IfcLineIndex=xf;class Pf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARFORCEMEASURE"}}e.IfcLinearForceMeasure=Pf;class Mf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARMOMENTMEASURE"}}e.IfcLinearMomentMeasure=Mf;class Uf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARSTIFFNESSMEASURE"}}e.IfcLinearStiffnessMeasure=Uf;class Cf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLINEARVELOCITYMEASURE"}}e.IfcLinearVelocityMeasure=Cf;class Jp{constructor(r){this.type=3,this.name="IFCLOGICAL",this.value=r}}e.IfcLogical=Jp;class wy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSFLUXMEASURE"}}e.IfcLuminousFluxMeasure=wy;class By extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE"}}e.IfcLuminousIntensityDistributionMeasure=By;class bf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCLUMINOUSINTENSITYMEASURE"}}e.IfcLuminousIntensityMeasure=bf;class Xp extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMAGNETICFLUXDENSITYMEASURE"}}e.IfcMagneticFluxDensityMeasure=Xp;class Gy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMAGNETICFLUXMEASURE"}}e.IfcMagneticFluxMeasure=Gy;class Fy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSDENSITYMEASURE"}}e.IfcMassDensityMeasure=Fy;class wf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSFLOWRATEMEASURE"}}e.IfcMassFlowRateMeasure=wf;class Bf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSMEASURE"}}e.IfcMassMeasure=Bf;class Gf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMASSPERLENGTHMEASURE"}}e.IfcMassPerLengthMeasure=Gf;class Vy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFELASTICITYMEASURE"}}e.IfcModulusOfElasticityMeasure=Vy;class Hy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfLinearSubgradeReactionMeasure=Hy;class Ff extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfRotationalSubgradeReactionMeasure=Ff;class Vf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMODULUSOFSUBGRADEREACTIONMEASURE"}}e.IfcModulusOfSubgradeReactionMeasure=Vf;class Wy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOISTUREDIFFUSIVITYMEASURE"}}e.IfcMoistureDiffusivityMeasure=Wy;class zy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOLECULARWEIGHTMEASURE"}}e.IfcMolecularWeightMeasure=zy;class Hf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMOMENTOFINERTIAMEASURE"}}e.IfcMomentOfInertiaMeasure=Hf;class tE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCMONETARYMEASURE"}}e.IfcMonetaryMeasure=tE;class Yy extends et{constructor(){super(...arguments),this.type=10,this.name="IFCMONTHINYEARNUMBER"}}e.IfcMonthInYearNumber=Yy;class ky extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNONNEGATIVELENGTHMEASURE"}}e.IfcNonNegativeLengthMeasure=ky;class Wf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNORMALISEDRATIOMEASURE"}}e.IfcNormalisedRatioMeasure=Wf;class eE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCNUMERICMEASURE"}}e.IfcNumericMeasure=eE;class Ky extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPHMEASURE"}}e.IfcPHMeasure=Ky;class Zy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPARAMETERVALUE"}}e.IfcParameterValue=Zy;class zf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPLANARFORCEMEASURE"}}e.IfcPlanarForceMeasure=zf;class sE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPLANEANGLEMEASURE"}}e.IfcPlaneAngleMeasure=sE;class qy extends et{constructor(){super(...arguments),this.type=10,this.name="IFCPOSITIVEINTEGER"}}e.IfcPositiveInteger=qy;class jy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVELENGTHMEASURE"}}e.IfcPositiveLengthMeasure=jy;class Yf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVEPLANEANGLEMEASURE"}}e.IfcPositivePlaneAngleMeasure=Yf;class _e extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOSITIVERATIOMEASURE"}}e.IfcPositiveRatioMeasure=_e;class iE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPOWERMEASURE"}}e.IfcPowerMeasure=iE;class nE{constructor(r){this.value=r,this.type=1,this.name="IFCPRESENTABLETEXT"}}e.IfcPresentableText=nE;class Iu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCPRESSUREMEASURE"}}e.IfcPressureMeasure=Iu;class rE{constructor(r){this.value=r,this.type=5}}e.IfcPropertySetDefinitionSet=rE;class yu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCRADIOACTIVITYMEASURE"}}e.IfcRadioActivityMeasure=yu;class cE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCRATIOMEASURE"}}e.IfcRatioMeasure=cE;class Tu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCREAL"}}e.IfcReal=Tu;class kf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALFREQUENCYMEASURE"}}e.IfcRotationalFrequencyMeasure=kf;class Kf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALMASSMEASURE"}}e.IfcRotationalMassMeasure=Kf;class Zf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCROTATIONALSTIFFNESSMEASURE"}}e.IfcRotationalStiffnessMeasure=Zf;class qf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSECTIONMODULUSMEASURE"}}e.IfcSectionModulusMeasure=qf;class jf extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSECTIONALAREAINTEGRALMEASURE"}}e.IfcSectionalAreaIntegralMeasure=jf;class Nt extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSHEARMODULUSMEASURE"}}e.IfcShearModulusMeasure=Nt;class du extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOLIDANGLEMEASURE"}}e.IfcSolidAngleMeasure=du;class Qy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPOWERLEVELMEASURE"}}e.IfcSoundPowerLevelMeasure=Qy;class mu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPOWERMEASURE"}}e.IfcSoundPowerMeasure=mu;class $y extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPRESSURELEVELMEASURE"}}e.IfcSoundPressureLevelMeasure=$y;class Ru extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSOUNDPRESSUREMEASURE"}}e.IfcSoundPressureMeasure=Ru;class Jy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECIFICHEATCAPACITYMEASURE"}}e.IfcSpecificHeatCapacityMeasure=Jy;class Su extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECULAREXPONENT"}}e.IfcSpecularExponent=Su;class aE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCSPECULARROUGHNESS"}}e.IfcSpecularRoughness=aE;class oE{constructor(r){this.type=3,this.name="IFCSTRIPPEDOPTIONAL",this.value=r}}e.IfcStrippedOptional=oE;class Xy extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTEMPERATUREGRADIENTMEASURE"}}e.IfcTemperatureGradientMeasure=Xy;class Nu extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTEMPERATURERATEOFCHANGEMEASURE"}}e.IfcTemperatureRateOfChangeMeasure=Nu;class tT{constructor(r){this.value=r,this.type=1,this.name="IFCTEXT"}}e.IfcText=tT;class Au{constructor(r){this.value=r,this.type=1,this.name="IFCTEXTALIGNMENT"}}e.IfcTextAlignment=Au;class eT{constructor(r){this.value=r,this.type=1,this.name="IFCTEXTDECORATION"}}e.IfcTextDecoration=eT;class Du{constructor(r){this.value=r,this.type=1,this.name="IFCTEXTFONTNAME"}}e.IfcTextFontName=Du;class sT{constructor(r){this.value=r,this.type=1,this.name="IFCTEXTTRANSFORMATION"}}e.IfcTextTransformation=sT;class iT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALADMITTANCEMEASURE"}}e.IfcThermalAdmittanceMeasure=iT;class nT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALCONDUCTIVITYMEASURE"}}e.IfcThermalConductivityMeasure=nT;class ge extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALEXPANSIONCOEFFICIENTMEASURE"}}e.IfcThermalExpansionCoefficientMeasure=ge;class rT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALRESISTANCEMEASURE"}}e.IfcThermalResistanceMeasure=rT;class dh extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMALTRANSMITTANCEMEASURE"}}e.IfcThermalTransmittanceMeasure=dh;class cT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTHERMODYNAMICTEMPERATUREMEASURE"}}e.IfcThermodynamicTemperatureMeasure=cT;class Na{constructor(r){this.value=r,this.type=1,this.name="IFCTIME"}}e.IfcTime=Na;class aT extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTIMEMEASURE"}}e.IfcTimeMeasure=aT;class mh extends et{constructor(){super(...arguments),this.type=10,this.name="IFCTIMESTAMP"}}e.IfcTimeStamp=mh;class hE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCTORQUEMEASURE"}}e.IfcTorqueMeasure=hE;class lE{constructor(r){this.value=r,this.type=1,this.name="IFCURIREFERENCE"}}e.IfcURIReference=lE;class uE extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVAPORPERMEABILITYMEASURE"}}e.IfcVaporPermeabilityMeasure=uE;class Hc extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVOLUMEMEASURE"}}e.IfcVolumeMeasure=Hc;class Ou extends et{constructor(){super(...arguments),this.type=4,this.name="IFCVOLUMETRICFLOWRATEMEASURE"}}e.IfcVolumetricFlowRateMeasure=Ou;class gn extends et{constructor(){super(...arguments),this.type=4,this.name="IFCWARPINGCONSTANTMEASURE"}}e.IfcWarpingConstantMeasure=gn;class Cr extends et{constructor(){super(...arguments),this.type=4,this.name="IFCWARPINGMOMENTMEASURE"}}e.IfcWarpingMomentMeasure=Cr;class Ln{constructor(r){this.value=r,this.type=1,this.name="IFCWELLKNOWNTEXTLITERAL"}}e.IfcWellKnownTextLiteral=Ln;let ue=class{};ue.EMAIL={type:3,value:"EMAIL"},ue.FAX={type:3,value:"FAX"},ue.PHONE={type:3,value:"PHONE"},ue.POST={type:3,value:"POST"},ue.VERBAL={type:3,value:"VERBAL"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"};let oc=ue;e.IfcActionRequestTypeEnum=oc;let Ie=class{};Ie.BRAKES={type:3,value:"BRAKES"},Ie.BUOYANCY={type:3,value:"BUOYANCY"},Ie.COMPLETION_G1={type:3,value:"COMPLETION_G1"},Ie.CREEP={type:3,value:"CREEP"},Ie.CURRENT={type:3,value:"CURRENT"},Ie.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},Ie.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},Ie.ERECTION={type:3,value:"ERECTION"},Ie.FIRE={type:3,value:"FIRE"},Ie.ICE={type:3,value:"ICE"},Ie.IMPACT={type:3,value:"IMPACT"},Ie.IMPULSE={type:3,value:"IMPULSE"},Ie.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},Ie.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},Ie.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},Ie.PROPPING={type:3,value:"PROPPING"},Ie.RAIN={type:3,value:"RAIN"},Ie.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},Ie.SHRINKAGE={type:3,value:"SHRINKAGE"},Ie.SNOW_S={type:3,value:"SNOW_S"},Ie.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},Ie.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},Ie.TRANSPORT={type:3,value:"TRANSPORT"},Ie.WAVE={type:3,value:"WAVE"},Ie.WIND_W={type:3,value:"WIND_W"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"};let Rh=Ie;e.IfcActionSourceTypeEnum=Rh;let Ji=class{};Ji.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},Ji.PERMANENT_G={type:3,value:"PERMANENT_G"},Ji.VARIABLE_Q={type:3,value:"VARIABLE_Q"},Ji.USERDEFINED={type:3,value:"USERDEFINED"},Ji.NOTDEFINED={type:3,value:"NOTDEFINED"};let Oo=Ji;e.IfcActionTypeEnum=Oo;let xn=class{};xn.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},xn.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},xn.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},xn.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},xn.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},xn.USERDEFINED={type:3,value:"USERDEFINED"},xn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Sl=xn;e.IfcActuatorTypeEnum=Sl;let lr=class{};lr.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},lr.HOME={type:3,value:"HOME"},lr.OFFICE={type:3,value:"OFFICE"},lr.SITE={type:3,value:"SITE"},lr.USERDEFINED={type:3,value:"USERDEFINED"};let Sh=lr;e.IfcAddressTypeEnum=Sh;let Xi=class{};Xi.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},Xi.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},Xi.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},Xi.USERDEFINED={type:3,value:"USERDEFINED"},Xi.NOTDEFINED={type:3,value:"NOTDEFINED"};let vo=Xi;e.IfcAirTerminalBoxTypeEnum=vo;let gs=class{};gs.DIFFUSER={type:3,value:"DIFFUSER"},gs.GRILLE={type:3,value:"GRILLE"},gs.LOUVRE={type:3,value:"LOUVRE"},gs.REGISTER={type:3,value:"REGISTER"},gs.USERDEFINED={type:3,value:"USERDEFINED"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"};let _o=gs;e.IfcAirTerminalTypeEnum=_o;let ms=class{};ms.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},ms.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},ms.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},ms.HEATPIPE={type:3,value:"HEATPIPE"},ms.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},ms.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},ms.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},ms.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},ms.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"};let go=ms;e.IfcAirToAirHeatRecoveryTypeEnum=go;let yi=class{};yi.BELL={type:3,value:"BELL"},yi.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},yi.LIGHT={type:3,value:"LIGHT"},yi.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},yi.RAILWAYCROCODILE={type:3,value:"RAILWAYCROCODILE"},yi.RAILWAYDETONATOR={type:3,value:"RAILWAYDETONATOR"},yi.SIREN={type:3,value:"SIREN"},yi.WHISTLE={type:3,value:"WHISTLE"},yi.USERDEFINED={type:3,value:"USERDEFINED"},yi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Aa=yi;e.IfcAlarmTypeEnum=Aa;let tn=class{};tn.BLOSSCURVE={type:3,value:"BLOSSCURVE"},tn.CONSTANTCANT={type:3,value:"CONSTANTCANT"},tn.COSINECURVE={type:3,value:"COSINECURVE"},tn.HELMERTCURVE={type:3,value:"HELMERTCURVE"},tn.LINEARTRANSITION={type:3,value:"LINEARTRANSITION"},tn.SINECURVE={type:3,value:"SINECURVE"},tn.VIENNESEBEND={type:3,value:"VIENNESEBEND"};let vu=tn;e.IfcAlignmentCantSegmentTypeEnum=vu;let en=class{};en.BLOSSCURVE={type:3,value:"BLOSSCURVE"},en.CIRCULARARC={type:3,value:"CIRCULARARC"},en.CLOTHOID={type:3,value:"CLOTHOID"},en.COSINECURVE={type:3,value:"COSINECURVE"},en.CUBIC={type:3,value:"CUBIC"},en.HELMERTCURVE={type:3,value:"HELMERTCURVE"},en.LINE={type:3,value:"LINE"},en.SINECURVE={type:3,value:"SINECURVE"},en.VIENNESEBEND={type:3,value:"VIENNESEBEND"};let _u=en;e.IfcAlignmentHorizontalSegmentTypeEnum=_u;let Nh=class{};Nh.USERDEFINED={type:3,value:"USERDEFINED"},Nh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Da=Nh;e.IfcAlignmentTypeEnum=Da;let Vs=class{};Vs.CIRCULARARC={type:3,value:"CIRCULARARC"},Vs.CLOTHOID={type:3,value:"CLOTHOID"},Vs.CONSTANTGRADIENT={type:3,value:"CONSTANTGRADIENT"},Vs.PARABOLICARC={type:3,value:"PARABOLICARC"};let rt=Vs;e.IfcAlignmentVerticalSegmentTypeEnum=rt;let yt=class{};yt.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},yt.LOADING_3D={type:3,value:"LOADING_3D"},yt.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},yt.USERDEFINED={type:3,value:"USERDEFINED"},yt.NOTDEFINED={type:3,value:"NOTDEFINED"};let vt=yt;e.IfcAnalysisModelTypeEnum=vt;let xt=class{};xt.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},xt.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},xt.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},xt.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bt=xt;e.IfcAnalysisTheoryTypeEnum=Bt;let bt=class{};bt.CONTOURLINE={type:3,value:"CONTOURLINE"},bt.DIMENSION={type:3,value:"DIMENSION"},bt.ISOBAR={type:3,value:"ISOBAR"},bt.ISOLUX={type:3,value:"ISOLUX"},bt.ISOTHERM={type:3,value:"ISOTHERM"},bt.LEADER={type:3,value:"LEADER"},bt.SURVEY={type:3,value:"SURVEY"},bt.SYMBOL={type:3,value:"SYMBOL"},bt.TEXT={type:3,value:"TEXT"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"};let $t=bt;e.IfcAnnotationTypeEnum=$t;let Kt=class{};Kt.ADD={type:3,value:"ADD"},Kt.DIVIDE={type:3,value:"DIVIDE"},Kt.MODULO={type:3,value:"MODULO"},Kt.MULTIPLY={type:3,value:"MULTIPLY"},Kt.SUBTRACT={type:3,value:"SUBTRACT"};let ye=Kt;e.IfcArithmeticOperatorEnum=ye;let qe=class{};qe.FACTORY={type:3,value:"FACTORY"},qe.SITE={type:3,value:"SITE"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ti=qe;e.IfcAssemblyPlaceEnum=Ti;let Be=class{};Be.AMPLIFIER={type:3,value:"AMPLIFIER"},Be.CAMERA={type:3,value:"CAMERA"},Be.COMMUNICATIONTERMINAL={type:3,value:"COMMUNICATIONTERMINAL"},Be.DISPLAY={type:3,value:"DISPLAY"},Be.MICROPHONE={type:3,value:"MICROPHONE"},Be.PLAYER={type:3,value:"PLAYER"},Be.PROJECTOR={type:3,value:"PROJECTOR"},Be.RECEIVER={type:3,value:"RECEIVER"},Be.RECORDINGEQUIPMENT={type:3,value:"RECORDINGEQUIPMENT"},Be.SPEAKER={type:3,value:"SPEAKER"},Be.SWITCHER={type:3,value:"SWITCHER"},Be.TELEPHONE={type:3,value:"TELEPHONE"},Be.TUNER={type:3,value:"TUNER"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"};let os=Be;e.IfcAudioVisualApplianceTypeEnum=os;let br=class{};br.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},br.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},br.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},br.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},br.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},br.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let Lo=br;e.IfcBSplineCurveForm=Lo;let ii=class{};ii.CONICAL_SURF={type:3,value:"CONICAL_SURF"},ii.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},ii.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},ii.PLANE_SURF={type:3,value:"PLANE_SURF"},ii.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},ii.RULED_SURF={type:3,value:"RULED_SURF"},ii.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},ii.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},ii.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},ii.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},ii.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let pE=ii;e.IfcBSplineSurfaceForm=pE;let Is=class{};Is.BEAM={type:3,value:"BEAM"},Is.CORNICE={type:3,value:"CORNICE"},Is.DIAPHRAGM={type:3,value:"DIAPHRAGM"},Is.EDGEBEAM={type:3,value:"EDGEBEAM"},Is.GIRDER_SEGMENT={type:3,value:"GIRDER_SEGMENT"},Is.HATSTONE={type:3,value:"HATSTONE"},Is.HOLLOWCORE={type:3,value:"HOLLOWCORE"},Is.JOIST={type:3,value:"JOIST"},Is.LINTEL={type:3,value:"LINTEL"},Is.PIERCAP={type:3,value:"PIERCAP"},Is.SPANDREL={type:3,value:"SPANDREL"},Is.T_BEAM={type:3,value:"T_BEAM"},Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"};let gu=Is;e.IfcBeamTypeEnum=gu;let wr=class{};wr.CYLINDRICAL={type:3,value:"CYLINDRICAL"},wr.DISK={type:3,value:"DISK"},wr.ELASTOMERIC={type:3,value:"ELASTOMERIC"},wr.GUIDE={type:3,value:"GUIDE"},wr.POT={type:3,value:"POT"},wr.ROCKER={type:3,value:"ROCKER"},wr.ROLLER={type:3,value:"ROLLER"},wr.SPHERICAL={type:3,value:"SPHERICAL"},wr.USERDEFINED={type:3,value:"USERDEFINED"},wr.NOTDEFINED={type:3,value:"NOTDEFINED"};let xo=wr;e.IfcBearingTypeEnum=xo;let Mi=class{};Mi.EQUALTO={type:3,value:"EQUALTO"},Mi.GREATERTHAN={type:3,value:"GREATERTHAN"},Mi.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},Mi.INCLUDEDIN={type:3,value:"INCLUDEDIN"},Mi.INCLUDES={type:3,value:"INCLUDES"},Mi.LESSTHAN={type:3,value:"LESSTHAN"},Mi.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},Mi.NOTEQUALTO={type:3,value:"NOTEQUALTO"},Mi.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},Mi.NOTINCLUDES={type:3,value:"NOTINCLUDES"};let EE=Mi;e.IfcBenchmarkEnum=EE;let Wc=class{};Wc.STEAM={type:3,value:"STEAM"},Wc.WATER={type:3,value:"WATER"},Wc.USERDEFINED={type:3,value:"USERDEFINED"},Wc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Lu=Wc;e.IfcBoilerTypeEnum=Lu;let zc=class{};zc.DIFFERENCE={type:3,value:"DIFFERENCE"},zc.INTERSECTION={type:3,value:"INTERSECTION"},zc.UNION={type:3,value:"UNION"};let Oa=zc;e.IfcBooleanOperator=Oa;let ni=class{};ni.ABUTMENT={type:3,value:"ABUTMENT"},ni.DECK={type:3,value:"DECK"},ni.DECK_SEGMENT={type:3,value:"DECK_SEGMENT"},ni.FOUNDATION={type:3,value:"FOUNDATION"},ni.PIER={type:3,value:"PIER"},ni.PIER_SEGMENT={type:3,value:"PIER_SEGMENT"},ni.PYLON={type:3,value:"PYLON"},ni.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},ni.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},ni.SURFACESTRUCTURE={type:3,value:"SURFACESTRUCTURE"},ni.USERDEFINED={type:3,value:"USERDEFINED"},ni.NOTDEFINED={type:3,value:"NOTDEFINED"};let Yc=ni;e.IfcBridgePartTypeEnum=Yc;let sn=class{};sn.ARCHED={type:3,value:"ARCHED"},sn.CABLE_STAYED={type:3,value:"CABLE_STAYED"},sn.CANTILEVER={type:3,value:"CANTILEVER"},sn.CULVERT={type:3,value:"CULVERT"},sn.FRAMEWORK={type:3,value:"FRAMEWORK"},sn.GIRDER={type:3,value:"GIRDER"},sn.SUSPENSION={type:3,value:"SUSPENSION"},sn.TRUSS={type:3,value:"TRUSS"},sn.USERDEFINED={type:3,value:"USERDEFINED"},sn.NOTDEFINED={type:3,value:"NOTDEFINED"};let gt=sn;e.IfcBridgeTypeEnum=gt;let Br=class{};Br.APRON={type:3,value:"APRON"},Br.ARMOURUNIT={type:3,value:"ARMOURUNIT"},Br.INSULATION={type:3,value:"INSULATION"},Br.PRECASTPANEL={type:3,value:"PRECASTPANEL"},Br.SAFETYCAGE={type:3,value:"SAFETYCAGE"},Br.USERDEFINED={type:3,value:"USERDEFINED"},Br.NOTDEFINED={type:3,value:"NOTDEFINED"};let oT=Br;e.IfcBuildingElementPartTypeEnum=oT;let va=class{};va.COMPLEX={type:3,value:"COMPLEX"},va.ELEMENT={type:3,value:"ELEMENT"},va.PARTIAL={type:3,value:"PARTIAL"},va.PROVISIONFORSPACE={type:3,value:"PROVISIONFORSPACE"},va.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},va.USERDEFINED={type:3,value:"USERDEFINED"},va.NOTDEFINED={type:3,value:"NOTDEFINED"};let ur=va;e.IfcBuildingElementProxyTypeEnum=ur;let di=class{};di.FENESTRATION={type:3,value:"FENESTRATION"},di.FOUNDATION={type:3,value:"FOUNDATION"},di.LOADBEARING={type:3,value:"LOADBEARING"},di.OUTERSHELL={type:3,value:"OUTERSHELL"},di.SHADING={type:3,value:"SHADING"},di.TRANSPORT={type:3,value:"TRANSPORT"},di.USERDEFINED={type:3,value:"USERDEFINED"},di.NOTDEFINED={type:3,value:"NOTDEFINED"};let xu=di;e.IfcBuildingSystemTypeEnum=xu;let Hs=class{};Hs.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},Hs.FENESTRATION={type:3,value:"FENESTRATION"},Hs.FOUNDATION={type:3,value:"FOUNDATION"},Hs.LOADBEARING={type:3,value:"LOADBEARING"},Hs.MOORING={type:3,value:"MOORING"},Hs.OUTERSHELL={type:3,value:"OUTERSHELL"},Hs.PRESTRESSING={type:3,value:"PRESTRESSING"},Hs.RAILWAYLINE={type:3,value:"RAILWAYLINE"},Hs.RAILWAYTRACK={type:3,value:"RAILWAYTRACK"},Hs.REINFORCING={type:3,value:"REINFORCING"},Hs.SHADING={type:3,value:"SHADING"},Hs.TRACKCIRCUIT={type:3,value:"TRACKCIRCUIT"},Hs.TRANSPORT={type:3,value:"TRANSPORT"},Hs.USERDEFINED={type:3,value:"USERDEFINED"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"};let Zt=Hs;e.IfcBuiltSystemTypeEnum=Zt;let Ui=class{};Ui.USERDEFINED={type:3,value:"USERDEFINED"},Ui.NOTDEFINED={type:3,value:"NOTDEFINED"};let hT=Ui;e.IfcBurnerTypeEnum=hT;let hc=class{};hc.BEND={type:3,value:"BEND"},hc.CONNECTOR={type:3,value:"CONNECTOR"},hc.CROSS={type:3,value:"CROSS"},hc.JUNCTION={type:3,value:"JUNCTION"},hc.REDUCER={type:3,value:"REDUCER"},hc.TEE={type:3,value:"TEE"},hc.TRANSITION={type:3,value:"TRANSITION"},hc.USERDEFINED={type:3,value:"USERDEFINED"},hc.NOTDEFINED={type:3,value:"NOTDEFINED"};let lT=hc;e.IfcCableCarrierFittingTypeEnum=lT;let je=class{};je.CABLEBRACKET={type:3,value:"CABLEBRACKET"},je.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},je.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},je.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},je.CATENARYWIRE={type:3,value:"CATENARYWIRE"},je.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},je.DROPPER={type:3,value:"DROPPER"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"};let kc=je;e.IfcCableCarrierSegmentTypeEnum=kc;let mi=class{};mi.CONNECTOR={type:3,value:"CONNECTOR"},mi.ENTRY={type:3,value:"ENTRY"},mi.EXIT={type:3,value:"EXIT"},mi.FANOUT={type:3,value:"FANOUT"},mi.JUNCTION={type:3,value:"JUNCTION"},mi.TRANSITION={type:3,value:"TRANSITION"},mi.USERDEFINED={type:3,value:"USERDEFINED"},mi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Nl=mi;e.IfcCableFittingTypeEnum=Nl;let Ci=class{};Ci.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},Ci.CABLESEGMENT={type:3,value:"CABLESEGMENT"},Ci.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},Ci.CONTACTWIRESEGMENT={type:3,value:"CONTACTWIRESEGMENT"},Ci.CORESEGMENT={type:3,value:"CORESEGMENT"},Ci.FIBERSEGMENT={type:3,value:"FIBERSEGMENT"},Ci.FIBERTUBE={type:3,value:"FIBERTUBE"},Ci.OPTICALCABLESEGMENT={type:3,value:"OPTICALCABLESEGMENT"},Ci.STITCHWIRE={type:3,value:"STITCHWIRE"},Ci.WIREPAIRSEGMENT={type:3,value:"WIREPAIRSEGMENT"},Ci.USERDEFINED={type:3,value:"USERDEFINED"},Ci.NOTDEFINED={type:3,value:"NOTDEFINED"};let Pu=Ci;e.IfcCableSegmentTypeEnum=Pu;let _a=class{};_a.CAISSON={type:3,value:"CAISSON"},_a.WELL={type:3,value:"WELL"},_a.USERDEFINED={type:3,value:"USERDEFINED"},_a.NOTDEFINED={type:3,value:"NOTDEFINED"};let Po=_a;e.IfcCaissonFoundationTypeEnum=Po;let nn=class{};nn.ADDED={type:3,value:"ADDED"},nn.DELETED={type:3,value:"DELETED"},nn.MODIFIED={type:3,value:"MODIFIED"},nn.NOCHANGE={type:3,value:"NOCHANGE"},nn.NOTDEFINED={type:3,value:"NOTDEFINED"};let fE=nn;e.IfcChangeActionEnum=fE;let bi=class{};bi.AIRCOOLED={type:3,value:"AIRCOOLED"},bi.HEATRECOVERY={type:3,value:"HEATRECOVERY"},bi.WATERCOOLED={type:3,value:"WATERCOOLED"},bi.USERDEFINED={type:3,value:"USERDEFINED"},bi.NOTDEFINED={type:3,value:"NOTDEFINED"};let ga=bi;e.IfcChillerTypeEnum=ga;let Al=class{};Al.USERDEFINED={type:3,value:"USERDEFINED"},Al.NOTDEFINED={type:3,value:"NOTDEFINED"};let ri=Al;e.IfcChimneyTypeEnum=ri;let wi=class{};wi.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},wi.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},wi.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},wi.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},wi.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},wi.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},wi.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},wi.USERDEFINED={type:3,value:"USERDEFINED"},wi.NOTDEFINED={type:3,value:"NOTDEFINED"};let La=wi;e.IfcCoilTypeEnum=La;let lc=class{};lc.COLUMN={type:3,value:"COLUMN"},lc.PIERSTEM={type:3,value:"PIERSTEM"},lc.PIERSTEM_SEGMENT={type:3,value:"PIERSTEM_SEGMENT"},lc.PILASTER={type:3,value:"PILASTER"},lc.STANDCOLUMN={type:3,value:"STANDCOLUMN"},lc.USERDEFINED={type:3,value:"USERDEFINED"},lc.NOTDEFINED={type:3,value:"NOTDEFINED"};let IE=lc;e.IfcColumnTypeEnum=IE;let me=class{};me.ANTENNA={type:3,value:"ANTENNA"},me.AUTOMATON={type:3,value:"AUTOMATON"},me.COMPUTER={type:3,value:"COMPUTER"},me.FAX={type:3,value:"FAX"},me.GATEWAY={type:3,value:"GATEWAY"},me.INTELLIGENTPERIPHERAL={type:3,value:"INTELLIGENTPERIPHERAL"},me.IPNETWORKEQUIPMENT={type:3,value:"IPNETWORKEQUIPMENT"},me.LINESIDEELECTRONICUNIT={type:3,value:"LINESIDEELECTRONICUNIT"},me.MODEM={type:3,value:"MODEM"},me.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},me.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},me.NETWORKHUB={type:3,value:"NETWORKHUB"},me.OPTICALLINETERMINAL={type:3,value:"OPTICALLINETERMINAL"},me.OPTICALNETWORKUNIT={type:3,value:"OPTICALNETWORKUNIT"},me.PRINTER={type:3,value:"PRINTER"},me.RADIOBLOCKCENTER={type:3,value:"RADIOBLOCKCENTER"},me.REPEATER={type:3,value:"REPEATER"},me.ROUTER={type:3,value:"ROUTER"},me.SCANNER={type:3,value:"SCANNER"},me.TELECOMMAND={type:3,value:"TELECOMMAND"},me.TELEPHONYEXCHANGE={type:3,value:"TELEPHONYEXCHANGE"},me.TRANSITIONCOMPONENT={type:3,value:"TRANSITIONCOMPONENT"},me.TRANSPONDER={type:3,value:"TRANSPONDER"},me.TRANSPORTEQUIPMENT={type:3,value:"TRANSPORTEQUIPMENT"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"};let Mu=me;e.IfcCommunicationsApplianceTypeEnum=Mu;let yE=class{};yE.P_COMPLEX={type:3,value:"P_COMPLEX"},yE.Q_COMPLEX={type:3,value:"Q_COMPLEX"};let Qe=yE;e.IfcComplexPropertyTemplateTypeEnum=Qe;let $e=class{};$e.BOOSTER={type:3,value:"BOOSTER"},$e.DYNAMIC={type:3,value:"DYNAMIC"},$e.HERMETIC={type:3,value:"HERMETIC"},$e.OPENTYPE={type:3,value:"OPENTYPE"},$e.RECIPROCATING={type:3,value:"RECIPROCATING"},$e.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},$e.ROTARY={type:3,value:"ROTARY"},$e.ROTARYVANE={type:3,value:"ROTARYVANE"},$e.SCROLL={type:3,value:"SCROLL"},$e.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},$e.SINGLESCREW={type:3,value:"SINGLESCREW"},$e.SINGLESTAGE={type:3,value:"SINGLESTAGE"},$e.TROCHOIDAL={type:3,value:"TROCHOIDAL"},$e.TWINSCREW={type:3,value:"TWINSCREW"},$e.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"};let Qf=$e;e.IfcCompressorTypeEnum=Qf;let Rs=class{};Rs.AIRCOOLED={type:3,value:"AIRCOOLED"},Rs.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},Rs.WATERCOOLED={type:3,value:"WATERCOOLED"},Rs.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},Rs.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},Rs.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},Rs.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},Rs.USERDEFINED={type:3,value:"USERDEFINED"},Rs.NOTDEFINED={type:3,value:"NOTDEFINED"};let uc=Rs;e.IfcCondenserTypeEnum=uc;let Mo=class{};Mo.ATEND={type:3,value:"ATEND"},Mo.ATPATH={type:3,value:"ATPATH"},Mo.ATSTART={type:3,value:"ATSTART"},Mo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ah=Mo;e.IfcConnectionTypeEnum=Ah;let Dh=class{};Dh.ADVISORY={type:3,value:"ADVISORY"},Dh.HARD={type:3,value:"HARD"},Dh.SOFT={type:3,value:"SOFT"},Dh.USERDEFINED={type:3,value:"USERDEFINED"},Dh.NOTDEFINED={type:3,value:"NOTDEFINED"};let uT=Dh;e.IfcConstraintEnum=uT;let Pn=class{};Pn.DEMOLISHING={type:3,value:"DEMOLISHING"},Pn.EARTHMOVING={type:3,value:"EARTHMOVING"},Pn.ERECTING={type:3,value:"ERECTING"},Pn.HEATING={type:3,value:"HEATING"},Pn.LIGHTING={type:3,value:"LIGHTING"},Pn.PAVING={type:3,value:"PAVING"},Pn.PUMPING={type:3,value:"PUMPING"},Pn.TRANSPORTING={type:3,value:"TRANSPORTING"},Pn.USERDEFINED={type:3,value:"USERDEFINED"},Pn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Uu=Pn;e.IfcConstructionEquipmentResourceTypeEnum=Uu;let cs=class{};cs.AGGREGATES={type:3,value:"AGGREGATES"},cs.CONCRETE={type:3,value:"CONCRETE"},cs.DRYWALL={type:3,value:"DRYWALL"},cs.FUEL={type:3,value:"FUEL"},cs.GYPSUM={type:3,value:"GYPSUM"},cs.MASONRY={type:3,value:"MASONRY"},cs.METAL={type:3,value:"METAL"},cs.PLASTIC={type:3,value:"PLASTIC"},cs.WOOD={type:3,value:"WOOD"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"};let Oh=cs;e.IfcConstructionMaterialResourceTypeEnum=Oh;let xa=class{};xa.ASSEMBLY={type:3,value:"ASSEMBLY"},xa.FORMWORK={type:3,value:"FORMWORK"},xa.USERDEFINED={type:3,value:"USERDEFINED"},xa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Cu=xa;e.IfcConstructionProductResourceTypeEnum=Cu;let Gt=class{};Gt.FLOATING={type:3,value:"FLOATING"},Gt.MULTIPOSITION={type:3,value:"MULTIPOSITION"},Gt.PROGRAMMABLE={type:3,value:"PROGRAMMABLE"},Gt.PROPORTIONAL={type:3,value:"PROPORTIONAL"},Gt.TWOPOSITION={type:3,value:"TWOPOSITION"},Gt.USERDEFINED={type:3,value:"USERDEFINED"},Gt.NOTDEFINED={type:3,value:"NOTDEFINED"};let pc=Gt;e.IfcControllerTypeEnum=pc;let Uo=class{};Uo.BELTCONVEYOR={type:3,value:"BELTCONVEYOR"},Uo.BUCKETCONVEYOR={type:3,value:"BUCKETCONVEYOR"},Uo.CHUTECONVEYOR={type:3,value:"CHUTECONVEYOR"},Uo.SCREWCONVEYOR={type:3,value:"SCREWCONVEYOR"},Uo.USERDEFINED={type:3,value:"USERDEFINED"},Uo.NOTDEFINED={type:3,value:"NOTDEFINED"};let $f=Uo;e.IfcConveyorSegmentTypeEnum=$f;let Pa=class{};Pa.ACTIVE={type:3,value:"ACTIVE"},Pa.PASSIVE={type:3,value:"PASSIVE"},Pa.USERDEFINED={type:3,value:"USERDEFINED"},Pa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Dl=Pa;e.IfcCooledBeamTypeEnum=Dl;let rn=class{};rn.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},rn.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},rn.NATURALDRAFT={type:3,value:"NATURALDRAFT"},rn.USERDEFINED={type:3,value:"USERDEFINED"},rn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Co=rn;e.IfcCoolingTowerTypeEnum=Co;let bo=class{};bo.USERDEFINED={type:3,value:"USERDEFINED"},bo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ec=bo;e.IfcCostItemTypeEnum=Ec;let kt=class{};kt.BUDGET={type:3,value:"BUDGET"},kt.COSTPLAN={type:3,value:"COSTPLAN"},kt.ESTIMATE={type:3,value:"ESTIMATE"},kt.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},kt.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},kt.TENDER={type:3,value:"TENDER"},kt.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"};let vh=kt;e.IfcCostScheduleTypeEnum=vh;let Mn=class{};Mn.ARMOUR={type:3,value:"ARMOUR"},Mn.BALLASTBED={type:3,value:"BALLASTBED"},Mn.CORE={type:3,value:"CORE"},Mn.FILTER={type:3,value:"FILTER"},Mn.PAVEMENT={type:3,value:"PAVEMENT"},Mn.PROTECTION={type:3,value:"PROTECTION"},Mn.USERDEFINED={type:3,value:"USERDEFINED"},Mn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ma=Mn;e.IfcCourseTypeEnum=Ma;let Ws=class{};Ws.CEILING={type:3,value:"CEILING"},Ws.CLADDING={type:3,value:"CLADDING"},Ws.COPING={type:3,value:"COPING"},Ws.FLOORING={type:3,value:"FLOORING"},Ws.INSULATION={type:3,value:"INSULATION"},Ws.MEMBRANE={type:3,value:"MEMBRANE"},Ws.MOLDING={type:3,value:"MOLDING"},Ws.ROOFING={type:3,value:"ROOFING"},Ws.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},Ws.SLEEVING={type:3,value:"SLEEVING"},Ws.TOPPING={type:3,value:"TOPPING"},Ws.WRAPPING={type:3,value:"WRAPPING"},Ws.USERDEFINED={type:3,value:"USERDEFINED"},Ws.NOTDEFINED={type:3,value:"NOTDEFINED"};let _h=Ws;e.IfcCoveringTypeEnum=_h;let pr=class{};pr.OFFICE={type:3,value:"OFFICE"},pr.SITE={type:3,value:"SITE"},pr.USERDEFINED={type:3,value:"USERDEFINED"},pr.NOTDEFINED={type:3,value:"NOTDEFINED"};let gh=pr;e.IfcCrewResourceTypeEnum=gh;let Ol=class{};Ol.USERDEFINED={type:3,value:"USERDEFINED"},Ol.NOTDEFINED={type:3,value:"NOTDEFINED"};let TE=Ol;e.IfcCurtainWallTypeEnum=TE;let Er=class{};Er.LINEAR={type:3,value:"LINEAR"},Er.LOG_LINEAR={type:3,value:"LOG_LINEAR"},Er.LOG_LOG={type:3,value:"LOG_LOG"},Er.NOTDEFINED={type:3,value:"NOTDEFINED"};let Kc=Er;e.IfcCurveInterpolationEnum=Kc;let Re=class{};Re.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},Re.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},Re.BLASTDAMPER={type:3,value:"BLASTDAMPER"},Re.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},Re.FIREDAMPER={type:3,value:"FIREDAMPER"},Re.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},Re.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},Re.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},Re.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},Re.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},Re.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"};let wo=Re;e.IfcDamperTypeEnum=wo;let Zc=class{};Zc.MEASURED={type:3,value:"MEASURED"},Zc.PREDICTED={type:3,value:"PREDICTED"},Zc.SIMULATED={type:3,value:"SIMULATED"},Zc.USERDEFINED={type:3,value:"USERDEFINED"},Zc.NOTDEFINED={type:3,value:"NOTDEFINED"};let vl=Zc;e.IfcDataOriginEnum=vl;let Pt=class{};Pt.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},Pt.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},Pt.AREADENSITYUNIT={type:3,value:"AREADENSITYUNIT"},Pt.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},Pt.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},Pt.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},Pt.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},Pt.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},Pt.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},Pt.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},Pt.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},Pt.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},Pt.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},Pt.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},Pt.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},Pt.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},Pt.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},Pt.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},Pt.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},Pt.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},Pt.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},Pt.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},Pt.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},Pt.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},Pt.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},Pt.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},Pt.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},Pt.PHUNIT={type:3,value:"PHUNIT"},Pt.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},Pt.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},Pt.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},Pt.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},Pt.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},Pt.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},Pt.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},Pt.SOUNDPOWERLEVELUNIT={type:3,value:"SOUNDPOWERLEVELUNIT"},Pt.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},Pt.SOUNDPRESSURELEVELUNIT={type:3,value:"SOUNDPRESSURELEVELUNIT"},Pt.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},Pt.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},Pt.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},Pt.TEMPERATURERATEOFCHANGEUNIT={type:3,value:"TEMPERATURERATEOFCHANGEUNIT"},Pt.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},Pt.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},Pt.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},Pt.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},Pt.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},Pt.TORQUEUNIT={type:3,value:"TORQUEUNIT"},Pt.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},Pt.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},Pt.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},Pt.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},Pt.USERDEFINED={type:3,value:"USERDEFINED"};let bu=Pt;e.IfcDerivedUnitEnum=bu;let fc=class{};fc.NEGATIVE={type:3,value:"NEGATIVE"},fc.POSITIVE={type:3,value:"POSITIVE"};let Ua=fc;e.IfcDirectionSenseEnum=Ua;let Ye=class{};Ye.ANCHORPLATE={type:3,value:"ANCHORPLATE"},Ye.BIRDPROTECTION={type:3,value:"BIRDPROTECTION"},Ye.BRACKET={type:3,value:"BRACKET"},Ye.CABLEARRANGER={type:3,value:"CABLEARRANGER"},Ye.ELASTIC_CUSHION={type:3,value:"ELASTIC_CUSHION"},Ye.EXPANSION_JOINT_DEVICE={type:3,value:"EXPANSION_JOINT_DEVICE"},Ye.FILLER={type:3,value:"FILLER"},Ye.FLASHING={type:3,value:"FLASHING"},Ye.INSULATOR={type:3,value:"INSULATOR"},Ye.LOCK={type:3,value:"LOCK"},Ye.PANEL_STRENGTHENING={type:3,value:"PANEL_STRENGTHENING"},Ye.POINTMACHINEMOUNTINGDEVICE={type:3,value:"POINTMACHINEMOUNTINGDEVICE"},Ye.POINT_MACHINE_LOCKING_DEVICE={type:3,value:"POINT_MACHINE_LOCKING_DEVICE"},Ye.RAILBRACE={type:3,value:"RAILBRACE"},Ye.RAILPAD={type:3,value:"RAILPAD"},Ye.RAIL_LUBRICATION={type:3,value:"RAIL_LUBRICATION"},Ye.RAIL_MECHANICAL_EQUIPMENT={type:3,value:"RAIL_MECHANICAL_EQUIPMENT"},Ye.SHOE={type:3,value:"SHOE"},Ye.SLIDINGCHAIR={type:3,value:"SLIDINGCHAIR"},Ye.SOUNDABSORPTION={type:3,value:"SOUNDABSORPTION"},Ye.TENSIONINGEQUIPMENT={type:3,value:"TENSIONINGEQUIPMENT"},Ye.USERDEFINED={type:3,value:"USERDEFINED"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"};let pT=Ye;e.IfcDiscreteAccessoryTypeEnum=pT;let fr=class{};fr.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},fr.DISPATCHINGBOARD={type:3,value:"DISPATCHINGBOARD"},fr.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},fr.DISTRIBUTIONFRAME={type:3,value:"DISTRIBUTIONFRAME"},fr.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},fr.SWITCHBOARD={type:3,value:"SWITCHBOARD"},fr.USERDEFINED={type:3,value:"USERDEFINED"},fr.NOTDEFINED={type:3,value:"NOTDEFINED"};let dE=fr;e.IfcDistributionBoardTypeEnum=dE;let Ge=class{};Ge.FORMEDDUCT={type:3,value:"FORMEDDUCT"},Ge.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},Ge.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},Ge.MANHOLE={type:3,value:"MANHOLE"},Ge.METERCHAMBER={type:3,value:"METERCHAMBER"},Ge.SUMP={type:3,value:"SUMP"},Ge.TRENCH={type:3,value:"TRENCH"},Ge.VALVECHAMBER={type:3,value:"VALVECHAMBER"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"};let cn=Ge;e.IfcDistributionChamberElementTypeEnum=cn;let Ir=class{};Ir.CABLE={type:3,value:"CABLE"},Ir.CABLECARRIER={type:3,value:"CABLECARRIER"},Ir.DUCT={type:3,value:"DUCT"},Ir.PIPE={type:3,value:"PIPE"},Ir.WIRELESS={type:3,value:"WIRELESS"},Ir.USERDEFINED={type:3,value:"USERDEFINED"},Ir.NOTDEFINED={type:3,value:"NOTDEFINED"};let Jf=Ir;e.IfcDistributionPortTypeEnum=Jf;let Ht=class{};Ht.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},Ht.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},Ht.CATENARY_SYSTEM={type:3,value:"CATENARY_SYSTEM"},Ht.CHEMICAL={type:3,value:"CHEMICAL"},Ht.CHILLEDWATER={type:3,value:"CHILLEDWATER"},Ht.COMMUNICATION={type:3,value:"COMMUNICATION"},Ht.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},Ht.CONDENSERWATER={type:3,value:"CONDENSERWATER"},Ht.CONTROL={type:3,value:"CONTROL"},Ht.CONVEYING={type:3,value:"CONVEYING"},Ht.DATA={type:3,value:"DATA"},Ht.DISPOSAL={type:3,value:"DISPOSAL"},Ht.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},Ht.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},Ht.DRAINAGE={type:3,value:"DRAINAGE"},Ht.EARTHING={type:3,value:"EARTHING"},Ht.ELECTRICAL={type:3,value:"ELECTRICAL"},Ht.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},Ht.EXHAUST={type:3,value:"EXHAUST"},Ht.FIREPROTECTION={type:3,value:"FIREPROTECTION"},Ht.FIXEDTRANSMISSIONNETWORK={type:3,value:"FIXEDTRANSMISSIONNETWORK"},Ht.FUEL={type:3,value:"FUEL"},Ht.GAS={type:3,value:"GAS"},Ht.HAZARDOUS={type:3,value:"HAZARDOUS"},Ht.HEATING={type:3,value:"HEATING"},Ht.LIGHTING={type:3,value:"LIGHTING"},Ht.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},Ht.MOBILENETWORK={type:3,value:"MOBILENETWORK"},Ht.MONITORINGSYSTEM={type:3,value:"MONITORINGSYSTEM"},Ht.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},Ht.OIL={type:3,value:"OIL"},Ht.OPERATIONAL={type:3,value:"OPERATIONAL"},Ht.OPERATIONALTELEPHONYSYSTEM={type:3,value:"OPERATIONALTELEPHONYSYSTEM"},Ht.OVERHEAD_CONTACTLINE_SYSTEM={type:3,value:"OVERHEAD_CONTACTLINE_SYSTEM"},Ht.POWERGENERATION={type:3,value:"POWERGENERATION"},Ht.RAINWATER={type:3,value:"RAINWATER"},Ht.REFRIGERATION={type:3,value:"REFRIGERATION"},Ht.RETURN_CIRCUIT={type:3,value:"RETURN_CIRCUIT"},Ht.SECURITY={type:3,value:"SECURITY"},Ht.SEWAGE={type:3,value:"SEWAGE"},Ht.SIGNAL={type:3,value:"SIGNAL"},Ht.STORMWATER={type:3,value:"STORMWATER"},Ht.TELEPHONE={type:3,value:"TELEPHONE"},Ht.TV={type:3,value:"TV"},Ht.VACUUM={type:3,value:"VACUUM"},Ht.VENT={type:3,value:"VENT"},Ht.VENTILATION={type:3,value:"VENTILATION"},Ht.WASTEWATER={type:3,value:"WASTEWATER"},Ht.WATERSUPPLY={type:3,value:"WATERSUPPLY"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"};let wu=Ht;e.IfcDistributionSystemEnum=wu;let Ic=class{};Ic.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},Ic.PERSONAL={type:3,value:"PERSONAL"},Ic.PUBLIC={type:3,value:"PUBLIC"},Ic.RESTRICTED={type:3,value:"RESTRICTED"},Ic.USERDEFINED={type:3,value:"USERDEFINED"},Ic.NOTDEFINED={type:3,value:"NOTDEFINED"};let ET=Ic;e.IfcDocumentConfidentialityEnum=ET;let Gr=class{};Gr.DRAFT={type:3,value:"DRAFT"},Gr.FINAL={type:3,value:"FINAL"},Gr.FINALDRAFT={type:3,value:"FINALDRAFT"},Gr.REVISION={type:3,value:"REVISION"},Gr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bo=Gr;e.IfcDocumentStatusEnum=Bo;let Un=class{};Un.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},Un.FIXEDPANEL={type:3,value:"FIXEDPANEL"},Un.FOLDING={type:3,value:"FOLDING"},Un.REVOLVING={type:3,value:"REVOLVING"},Un.ROLLINGUP={type:3,value:"ROLLINGUP"},Un.SLIDING={type:3,value:"SLIDING"},Un.SWINGING={type:3,value:"SWINGING"},Un.USERDEFINED={type:3,value:"USERDEFINED"},Un.NOTDEFINED={type:3,value:"NOTDEFINED"};let Xf=Un;e.IfcDoorPanelOperationEnum=Xf;let an=class{};an.LEFT={type:3,value:"LEFT"},an.MIDDLE={type:3,value:"MIDDLE"},an.RIGHT={type:3,value:"RIGHT"},an.NOTDEFINED={type:3,value:"NOTDEFINED"};let mE=an;e.IfcDoorPanelPositionEnum=mE;let qc=class{};qc.BOOM_BARRIER={type:3,value:"BOOM_BARRIER"},qc.DOOR={type:3,value:"DOOR"},qc.GATE={type:3,value:"GATE"},qc.TRAPDOOR={type:3,value:"TRAPDOOR"},qc.TURNSTILE={type:3,value:"TURNSTILE"},qc.USERDEFINED={type:3,value:"USERDEFINED"},qc.NOTDEFINED={type:3,value:"NOTDEFINED"};let yc=qc;e.IfcDoorTypeEnum=yc;let Le=class{};Le.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Le.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Le.DOUBLE_DOOR_LIFTING_VERTICAL={type:3,value:"DOUBLE_DOOR_LIFTING_VERTICAL"},Le.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Le.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Le.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Le.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Le.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Le.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Le.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Le.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Le.LIFTING_HORIZONTAL={type:3,value:"LIFTING_HORIZONTAL"},Le.LIFTING_VERTICAL_LEFT={type:3,value:"LIFTING_VERTICAL_LEFT"},Le.LIFTING_VERTICAL_RIGHT={type:3,value:"LIFTING_VERTICAL_RIGHT"},Le.REVOLVING={type:3,value:"REVOLVING"},Le.REVOLVING_VERTICAL={type:3,value:"REVOLVING_VERTICAL"},Le.ROLLINGUP={type:3,value:"ROLLINGUP"},Le.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Le.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Le.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Le.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Le.SWING_FIXED_LEFT={type:3,value:"SWING_FIXED_LEFT"},Le.SWING_FIXED_RIGHT={type:3,value:"SWING_FIXED_RIGHT"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"};let RE=Le;e.IfcDoorTypeOperationEnum=RE;let Ls=class{};Ls.BEND={type:3,value:"BEND"},Ls.CONNECTOR={type:3,value:"CONNECTOR"},Ls.ENTRY={type:3,value:"ENTRY"},Ls.EXIT={type:3,value:"EXIT"},Ls.JUNCTION={type:3,value:"JUNCTION"},Ls.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Ls.TRANSITION={type:3,value:"TRANSITION"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"};let _l=Ls;e.IfcDuctFittingTypeEnum=_l;let Fr=class{};Fr.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Fr.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Fr.USERDEFINED={type:3,value:"USERDEFINED"},Fr.NOTDEFINED={type:3,value:"NOTDEFINED"};let fT=Fr;e.IfcDuctSegmentTypeEnum=fT;let Tc=class{};Tc.FLATOVAL={type:3,value:"FLATOVAL"},Tc.RECTANGULAR={type:3,value:"RECTANGULAR"},Tc.ROUND={type:3,value:"ROUND"},Tc.USERDEFINED={type:3,value:"USERDEFINED"},Tc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Cn=Tc;e.IfcDuctSilencerTypeEnum=Cn;let Bi=class{};Bi.BASE_EXCAVATION={type:3,value:"BASE_EXCAVATION"},Bi.CUT={type:3,value:"CUT"},Bi.DREDGING={type:3,value:"DREDGING"},Bi.EXCAVATION={type:3,value:"EXCAVATION"},Bi.OVEREXCAVATION={type:3,value:"OVEREXCAVATION"},Bi.PAVEMENTMILLING={type:3,value:"PAVEMENTMILLING"},Bi.STEPEXCAVATION={type:3,value:"STEPEXCAVATION"},Bi.TOPSOILREMOVAL={type:3,value:"TOPSOILREMOVAL"},Bi.TRENCH={type:3,value:"TRENCH"},Bi.USERDEFINED={type:3,value:"USERDEFINED"},Bi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bu=Bi;e.IfcEarthworksCutTypeEnum=Bu;let on=class{};on.BACKFILL={type:3,value:"BACKFILL"},on.COUNTERWEIGHT={type:3,value:"COUNTERWEIGHT"},on.EMBANKMENT={type:3,value:"EMBANKMENT"},on.SLOPEFILL={type:3,value:"SLOPEFILL"},on.SUBGRADE={type:3,value:"SUBGRADE"},on.SUBGRADEBED={type:3,value:"SUBGRADEBED"},on.TRANSITIONSECTION={type:3,value:"TRANSITIONSECTION"},on.USERDEFINED={type:3,value:"USERDEFINED"},on.NOTDEFINED={type:3,value:"NOTDEFINED"};let fm=on;e.IfcEarthworksFillTypeEnum=fm;let ke=class{};ke.DISHWASHER={type:3,value:"DISHWASHER"},ke.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},ke.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},ke.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},ke.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},ke.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},ke.FREEZER={type:3,value:"FREEZER"},ke.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},ke.HANDDRYER={type:3,value:"HANDDRYER"},ke.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},ke.MICROWAVE={type:3,value:"MICROWAVE"},ke.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},ke.REFRIGERATOR={type:3,value:"REFRIGERATOR"},ke.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},ke.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},ke.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"};let Go=ke;e.IfcElectricApplianceTypeEnum=Go;let dc=class{};dc.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},dc.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},dc.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},dc.SWITCHBOARD={type:3,value:"SWITCHBOARD"},dc.USERDEFINED={type:3,value:"USERDEFINED"},dc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fo=dc;e.IfcElectricDistributionBoardTypeEnum=Fo;let zs=class{};zs.BATTERY={type:3,value:"BATTERY"},zs.CAPACITOR={type:3,value:"CAPACITOR"},zs.CAPACITORBANK={type:3,value:"CAPACITORBANK"},zs.COMPENSATOR={type:3,value:"COMPENSATOR"},zs.HARMONICFILTER={type:3,value:"HARMONICFILTER"},zs.INDUCTOR={type:3,value:"INDUCTOR"},zs.INDUCTORBANK={type:3,value:"INDUCTORBANK"},zs.RECHARGER={type:3,value:"RECHARGER"},zs.UPS={type:3,value:"UPS"},zs.USERDEFINED={type:3,value:"USERDEFINED"},zs.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ca=zs;e.IfcElectricFlowStorageDeviceTypeEnum=Ca;let jc=class{};jc.ELECTRONICFILTER={type:3,value:"ELECTRONICFILTER"},jc.USERDEFINED={type:3,value:"USERDEFINED"},jc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Gu=jc;e.IfcElectricFlowTreatmentDeviceTypeEnum=Gu;let ba=class{};ba.CHP={type:3,value:"CHP"},ba.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},ba.STANDALONE={type:3,value:"STANDALONE"},ba.USERDEFINED={type:3,value:"USERDEFINED"},ba.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fu=ba;e.IfcElectricGeneratorTypeEnum=Fu;let Ri=class{};Ri.DC={type:3,value:"DC"},Ri.INDUCTION={type:3,value:"INDUCTION"},Ri.POLYPHASE={type:3,value:"POLYPHASE"},Ri.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},Ri.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},Ri.USERDEFINED={type:3,value:"USERDEFINED"},Ri.NOTDEFINED={type:3,value:"NOTDEFINED"};let tI=Ri;e.IfcElectricMotorTypeEnum=tI;let mc=class{};mc.RELAY={type:3,value:"RELAY"},mc.TIMECLOCK={type:3,value:"TIMECLOCK"},mc.TIMEDELAY={type:3,value:"TIMEDELAY"},mc.USERDEFINED={type:3,value:"USERDEFINED"},mc.NOTDEFINED={type:3,value:"NOTDEFINED"};let gl=mc;e.IfcElectricTimeControlTypeEnum=gl;let ce=class{};ce.ABUTMENT={type:3,value:"ABUTMENT"},ce.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},ce.ARCH={type:3,value:"ARCH"},ce.BEAM_GRID={type:3,value:"BEAM_GRID"},ce.BRACED_FRAME={type:3,value:"BRACED_FRAME"},ce.CROSS_BRACING={type:3,value:"CROSS_BRACING"},ce.DECK={type:3,value:"DECK"},ce.DILATATIONPANEL={type:3,value:"DILATATIONPANEL"},ce.ENTRANCEWORKS={type:3,value:"ENTRANCEWORKS"},ce.GIRDER={type:3,value:"GIRDER"},ce.GRID={type:3,value:"GRID"},ce.MAST={type:3,value:"MAST"},ce.PIER={type:3,value:"PIER"},ce.PYLON={type:3,value:"PYLON"},ce.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY={type:3,value:"RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY"},ce.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},ce.RIGID_FRAME={type:3,value:"RIGID_FRAME"},ce.SHELTER={type:3,value:"SHELTER"},ce.SIGNALASSEMBLY={type:3,value:"SIGNALASSEMBLY"},ce.SLAB_FIELD={type:3,value:"SLAB_FIELD"},ce.SUMPBUSTER={type:3,value:"SUMPBUSTER"},ce.SUPPORTINGASSEMBLY={type:3,value:"SUPPORTINGASSEMBLY"},ce.SUSPENSIONASSEMBLY={type:3,value:"SUSPENSIONASSEMBLY"},ce.TRACKPANEL={type:3,value:"TRACKPANEL"},ce.TRACTION_SWITCHING_ASSEMBLY={type:3,value:"TRACTION_SWITCHING_ASSEMBLY"},ce.TRAFFIC_CALMING_DEVICE={type:3,value:"TRAFFIC_CALMING_DEVICE"},ce.TRUSS={type:3,value:"TRUSS"},ce.TURNOUTPANEL={type:3,value:"TURNOUTPANEL"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vu=ce;e.IfcElementAssemblyTypeEnum=Vu;let Vr=class{};Vr.COMPLEX={type:3,value:"COMPLEX"},Vr.ELEMENT={type:3,value:"ELEMENT"},Vr.PARTIAL={type:3,value:"PARTIAL"};let wa=Vr;e.IfcElementCompositionEnum=wa;let Lh=class{};Lh.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},Lh.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},Lh.USERDEFINED={type:3,value:"USERDEFINED"},Lh.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ll=Lh;e.IfcEngineTypeEnum=Ll;let xs=class{};xs.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},xs.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},xs.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},xs.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},xs.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},xs.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},xs.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},xs.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},xs.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"};let SE=xs;e.IfcEvaporativeCoolerTypeEnum=SE;let Qc=class{};Qc.DIRECTEXPANSION={type:3,value:"DIRECTEXPANSION"},Qc.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},Qc.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},Qc.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},Qc.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},Qc.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},Qc.USERDEFINED={type:3,value:"USERDEFINED"},Qc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ba=Qc;e.IfcEvaporatorTypeEnum=Ba;let Hr=class{};Hr.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},Hr.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},Hr.EVENTRULE={type:3,value:"EVENTRULE"},Hr.EVENTTIME={type:3,value:"EVENTTIME"},Hr.USERDEFINED={type:3,value:"USERDEFINED"},Hr.NOTDEFINED={type:3,value:"NOTDEFINED"};let IT=Hr;e.IfcEventTriggerTypeEnum=IT;let Ga=class{};Ga.ENDEVENT={type:3,value:"ENDEVENT"},Ga.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Ga.STARTEVENT={type:3,value:"STARTEVENT"},Ga.USERDEFINED={type:3,value:"USERDEFINED"},Ga.NOTDEFINED={type:3,value:"NOTDEFINED"};let xh=Ga;e.IfcEventTypeEnum=xh;let Ss=class{};Ss.EXTERNAL={type:3,value:"EXTERNAL"},Ss.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Ss.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Ss.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Ss.USERDEFINED={type:3,value:"USERDEFINED"},Ss.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ph=Ss;e.IfcExternalSpatialElementTypeEnum=Ph;let Gi=class{};Gi.ABOVEGROUND={type:3,value:"ABOVEGROUND"},Gi.BELOWGROUND={type:3,value:"BELOWGROUND"},Gi.JUNCTION={type:3,value:"JUNCTION"},Gi.LEVELCROSSING={type:3,value:"LEVELCROSSING"},Gi.SEGMENT={type:3,value:"SEGMENT"},Gi.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},Gi.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},Gi.TERMINAL={type:3,value:"TERMINAL"},Gi.USERDEFINED={type:3,value:"USERDEFINED"},Gi.NOTDEFINED={type:3,value:"NOTDEFINED"};let yT=Gi;e.IfcFacilityPartCommonTypeEnum=yT;let Wr=class{};Wr.LATERAL={type:3,value:"LATERAL"},Wr.LONGITUDINAL={type:3,value:"LONGITUDINAL"},Wr.REGION={type:3,value:"REGION"},Wr.VERTICAL={type:3,value:"VERTICAL"},Wr.USERDEFINED={type:3,value:"USERDEFINED"},Wr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fa=Wr;e.IfcFacilityUsageEnum=Fa;let bn=class{};bn.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},bn.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},bn.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},bn.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},bn.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},bn.TUBEAXIAL={type:3,value:"TUBEAXIAL"},bn.VANEAXIAL={type:3,value:"VANEAXIAL"},bn.USERDEFINED={type:3,value:"USERDEFINED"},bn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vo=bn;e.IfcFanTypeEnum=Vo;let Va=class{};Va.GLUE={type:3,value:"GLUE"},Va.MORTAR={type:3,value:"MORTAR"},Va.WELD={type:3,value:"WELD"},Va.USERDEFINED={type:3,value:"USERDEFINED"},Va.NOTDEFINED={type:3,value:"NOTDEFINED"};let Mh=Va;e.IfcFastenerTypeEnum=Mh;let zr=class{};zr.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},zr.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},zr.ODORFILTER={type:3,value:"ODORFILTER"},zr.OILFILTER={type:3,value:"OILFILTER"},zr.STRAINER={type:3,value:"STRAINER"},zr.WATERFILTER={type:3,value:"WATERFILTER"},zr.USERDEFINED={type:3,value:"USERDEFINED"},zr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Hu=zr;e.IfcFilterTypeEnum=Hu;let xe=class{};xe.BREECHINGINLET={type:3,value:"BREECHINGINLET"},xe.FIREHYDRANT={type:3,value:"FIREHYDRANT"},xe.FIREMONITOR={type:3,value:"FIREMONITOR"},xe.HOSEREEL={type:3,value:"HOSEREEL"},xe.SPRINKLER={type:3,value:"SPRINKLER"},xe.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"};let NE=xe;e.IfcFireSuppressionTerminalTypeEnum=NE;let hn=class{};hn.SINK={type:3,value:"SINK"},hn.SOURCE={type:3,value:"SOURCE"},hn.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},hn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ho=hn;e.IfcFlowDirectionEnum=Ho;let ln=class{};ln.AMMETER={type:3,value:"AMMETER"},ln.COMBINED={type:3,value:"COMBINED"},ln.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},ln.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},ln.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},ln.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},ln.THERMOMETER={type:3,value:"THERMOMETER"},ln.VOLTMETER={type:3,value:"VOLTMETER"},ln.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},ln.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},ln.USERDEFINED={type:3,value:"USERDEFINED"},ln.NOTDEFINED={type:3,value:"NOTDEFINED"};let $c=ln;e.IfcFlowInstrumentTypeEnum=$c;let Jc=class{};Jc.ENERGYMETER={type:3,value:"ENERGYMETER"},Jc.GASMETER={type:3,value:"GASMETER"},Jc.OILMETER={type:3,value:"OILMETER"},Jc.WATERMETER={type:3,value:"WATERMETER"},Jc.USERDEFINED={type:3,value:"USERDEFINED"},Jc.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ha=Jc;e.IfcFlowMeterTypeEnum=Ha;let ci=class{};ci.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},ci.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},ci.PAD_FOOTING={type:3,value:"PAD_FOOTING"},ci.PILE_CAP={type:3,value:"PILE_CAP"},ci.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},ci.USERDEFINED={type:3,value:"USERDEFINED"},ci.NOTDEFINED={type:3,value:"NOTDEFINED"};let TT=ci;e.IfcFootingTypeEnum=TT;let un=class{};un.BED={type:3,value:"BED"},un.CHAIR={type:3,value:"CHAIR"},un.DESK={type:3,value:"DESK"},un.FILECABINET={type:3,value:"FILECABINET"},un.SHELF={type:3,value:"SHELF"},un.SOFA={type:3,value:"SOFA"},un.TABLE={type:3,value:"TABLE"},un.TECHNICALCABINET={type:3,value:"TECHNICALCABINET"},un.USERDEFINED={type:3,value:"USERDEFINED"},un.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wo=un;e.IfcFurnitureTypeEnum=Wo;let Xc=class{};Xc.SOIL_BORING_POINT={type:3,value:"SOIL_BORING_POINT"},Xc.TERRAIN={type:3,value:"TERRAIN"},Xc.VEGETATION={type:3,value:"VEGETATION"},Xc.USERDEFINED={type:3,value:"USERDEFINED"},Xc.NOTDEFINED={type:3,value:"NOTDEFINED"};let dT=Xc;e.IfcGeographicElementTypeEnum=dT;let wn=class{};wn.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},wn.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},wn.MODEL_VIEW={type:3,value:"MODEL_VIEW"},wn.PLAN_VIEW={type:3,value:"PLAN_VIEW"},wn.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},wn.SECTION_VIEW={type:3,value:"SECTION_VIEW"},wn.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},wn.USERDEFINED={type:3,value:"USERDEFINED"},wn.NOTDEFINED={type:3,value:"NOTDEFINED"};let hs=wn;e.IfcGeometricProjectionEnum=hs;let Si=class{};Si.SOLID={type:3,value:"SOLID"},Si.VOID={type:3,value:"VOID"},Si.WATER={type:3,value:"WATER"},Si.USERDEFINED={type:3,value:"USERDEFINED"},Si.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bn=Si;e.IfcGeotechnicalStratumTypeEnum=Bn;let Wa=class{};Wa.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},Wa.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"};let Fi=Wa;e.IfcGlobalOrLocalEnum=Fi;let Ps=class{};Ps.IRREGULAR={type:3,value:"IRREGULAR"},Ps.RADIAL={type:3,value:"RADIAL"},Ps.RECTANGULAR={type:3,value:"RECTANGULAR"},Ps.TRIANGULAR={type:3,value:"TRIANGULAR"},Ps.USERDEFINED={type:3,value:"USERDEFINED"},Ps.NOTDEFINED={type:3,value:"NOTDEFINED"};let Se=Ps;e.IfcGridTypeEnum=Se;let ta=class{};ta.PLATE={type:3,value:"PLATE"},ta.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},ta.TURNOUTHEATING={type:3,value:"TURNOUTHEATING"},ta.USERDEFINED={type:3,value:"USERDEFINED"},ta.NOTDEFINED={type:3,value:"NOTDEFINED"};let Yr=ta;e.IfcHeatExchangerTypeEnum=Yr;let Vi=class{};Vi.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},Vi.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},Vi.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},Vi.ADIABATICPAN={type:3,value:"ADIABATICPAN"},Vi.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},Vi.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},Vi.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},Vi.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},Vi.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},Vi.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},Vi.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},Vi.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},Vi.STEAMINJECTION={type:3,value:"STEAMINJECTION"},Vi.USERDEFINED={type:3,value:"USERDEFINED"},Vi.NOTDEFINED={type:3,value:"NOTDEFINED"};let mT=Vi;e.IfcHumidifierTypeEnum=mT;let Gn=class{};Gn.BUMPER={type:3,value:"BUMPER"},Gn.CRASHCUSHION={type:3,value:"CRASHCUSHION"},Gn.DAMPINGSYSTEM={type:3,value:"DAMPINGSYSTEM"},Gn.FENDER={type:3,value:"FENDER"},Gn.USERDEFINED={type:3,value:"USERDEFINED"},Gn.NOTDEFINED={type:3,value:"NOTDEFINED"};let pn=Gn;e.IfcImpactProtectionDeviceTypeEnum=pn;let Ys=class{};Ys.CYCLONIC={type:3,value:"CYCLONIC"},Ys.GREASE={type:3,value:"GREASE"},Ys.OIL={type:3,value:"OIL"},Ys.PETROL={type:3,value:"PETROL"},Ys.USERDEFINED={type:3,value:"USERDEFINED"},Ys.NOTDEFINED={type:3,value:"NOTDEFINED"};let Wu=Ys;e.IfcInterceptorTypeEnum=Wu;let En=class{};En.EXTERNAL={type:3,value:"EXTERNAL"},En.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},En.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},En.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},En.INTERNAL={type:3,value:"INTERNAL"},En.NOTDEFINED={type:3,value:"NOTDEFINED"};let za=En;e.IfcInternalOrExternalEnum=za;let Ya=class{};Ya.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},Ya.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},Ya.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},Ya.USERDEFINED={type:3,value:"USERDEFINED"},Ya.NOTDEFINED={type:3,value:"NOTDEFINED"};let zu=Ya;e.IfcInventoryTypeEnum=zu;let Rc=class{};Rc.DATA={type:3,value:"DATA"},Rc.POWER={type:3,value:"POWER"},Rc.USERDEFINED={type:3,value:"USERDEFINED"},Rc.NOTDEFINED={type:3,value:"NOTDEFINED"};let xl=Rc;e.IfcJunctionBoxTypeEnum=xl;let AE=class{};AE.USERDEFINED={type:3,value:"USERDEFINED"},AE.NOTDEFINED={type:3,value:"NOTDEFINED"};let Uh=AE;e.IfcKerbTypeEnum=Uh;let ka=class{};ka.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},ka.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},ka.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},ka.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let Ka=ka;e.IfcKnotType=Ka;let Je=class{};Je.ADMINISTRATION={type:3,value:"ADMINISTRATION"},Je.CARPENTRY={type:3,value:"CARPENTRY"},Je.CLEANING={type:3,value:"CLEANING"},Je.CONCRETE={type:3,value:"CONCRETE"},Je.DRYWALL={type:3,value:"DRYWALL"},Je.ELECTRIC={type:3,value:"ELECTRIC"},Je.FINISHING={type:3,value:"FINISHING"},Je.FLOORING={type:3,value:"FLOORING"},Je.GENERAL={type:3,value:"GENERAL"},Je.HVAC={type:3,value:"HVAC"},Je.LANDSCAPING={type:3,value:"LANDSCAPING"},Je.MASONRY={type:3,value:"MASONRY"},Je.PAINTING={type:3,value:"PAINTING"},Je.PAVING={type:3,value:"PAVING"},Je.PLUMBING={type:3,value:"PLUMBING"},Je.ROOFING={type:3,value:"ROOFING"},Je.SITEGRADING={type:3,value:"SITEGRADING"},Je.STEELWORK={type:3,value:"STEELWORK"},Je.SURVEYING={type:3,value:"SURVEYING"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"};let RT=Je;e.IfcLaborResourceTypeEnum=RT;let Fn=class{};Fn.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Fn.FLUORESCENT={type:3,value:"FLUORESCENT"},Fn.HALOGEN={type:3,value:"HALOGEN"},Fn.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Fn.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Fn.LED={type:3,value:"LED"},Fn.METALHALIDE={type:3,value:"METALHALIDE"},Fn.OLED={type:3,value:"OLED"},Fn.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Fn.USERDEFINED={type:3,value:"USERDEFINED"},Fn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Yu=Fn;e.IfcLampTypeEnum=Yu;let Za=class{};Za.AXIS1={type:3,value:"AXIS1"},Za.AXIS2={type:3,value:"AXIS2"},Za.AXIS3={type:3,value:"AXIS3"};let Ch=Za;e.IfcLayerSetDirectionEnum=Ch;let kr=class{};kr.TYPE_A={type:3,value:"TYPE_A"},kr.TYPE_B={type:3,value:"TYPE_B"},kr.TYPE_C={type:3,value:"TYPE_C"},kr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Hi=kr;e.IfcLightDistributionCurveEnum=Hi;let Ms=class{};Ms.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Ms.FLUORESCENT={type:3,value:"FLUORESCENT"},Ms.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Ms.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Ms.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},Ms.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},Ms.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},Ms.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},Ms.METALHALIDE={type:3,value:"METALHALIDE"},Ms.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"};let ku=Ms;e.IfcLightEmissionSourceEnum=ku;let Kr=class{};Kr.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},Kr.POINTSOURCE={type:3,value:"POINTSOURCE"},Kr.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},Kr.USERDEFINED={type:3,value:"USERDEFINED"},Kr.NOTDEFINED={type:3,value:"NOTDEFINED"};let bh=Kr;e.IfcLightFixtureTypeEnum=bh;let zo=class{};zo.HOSEREEL={type:3,value:"HOSEREEL"},zo.LOADINGARM={type:3,value:"LOADINGARM"},zo.USERDEFINED={type:3,value:"USERDEFINED"},zo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ku=zo;e.IfcLiquidTerminalTypeEnum=Ku;let Yo=class{};Yo.LOAD_CASE={type:3,value:"LOAD_CASE"},Yo.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Yo.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Yo.USERDEFINED={type:3,value:"USERDEFINED"},Yo.NOTDEFINED={type:3,value:"NOTDEFINED"};let eI=Yo;e.IfcLoadGroupTypeEnum=eI;let Vn=class{};Vn.LOGICALAND={type:3,value:"LOGICALAND"},Vn.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},Vn.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},Vn.LOGICALOR={type:3,value:"LOGICALOR"},Vn.LOGICALXOR={type:3,value:"LOGICALXOR"};let qa=Vn;e.IfcLogicalOperatorEnum=qa;let ls=class{};ls.BARRIERBEACH={type:3,value:"BARRIERBEACH"},ls.BREAKWATER={type:3,value:"BREAKWATER"},ls.CANAL={type:3,value:"CANAL"},ls.DRYDOCK={type:3,value:"DRYDOCK"},ls.FLOATINGDOCK={type:3,value:"FLOATINGDOCK"},ls.HYDROLIFT={type:3,value:"HYDROLIFT"},ls.JETTY={type:3,value:"JETTY"},ls.LAUNCHRECOVERY={type:3,value:"LAUNCHRECOVERY"},ls.MARINEDEFENCE={type:3,value:"MARINEDEFENCE"},ls.NAVIGATIONALCHANNEL={type:3,value:"NAVIGATIONALCHANNEL"},ls.PORT={type:3,value:"PORT"},ls.QUAY={type:3,value:"QUAY"},ls.REVETMENT={type:3,value:"REVETMENT"},ls.SHIPLIFT={type:3,value:"SHIPLIFT"},ls.SHIPLOCK={type:3,value:"SHIPLOCK"},ls.SHIPYARD={type:3,value:"SHIPYARD"},ls.SLIPWAY={type:3,value:"SLIPWAY"},ls.WATERWAY={type:3,value:"WATERWAY"},ls.WATERWAYSHIPLIFT={type:3,value:"WATERWAYSHIPLIFT"},ls.USERDEFINED={type:3,value:"USERDEFINED"},ls.NOTDEFINED={type:3,value:"NOTDEFINED"};let wh=ls;e.IfcMarineFacilityTypeEnum=wh;let Te=class{};Te.ABOVEWATERLINE={type:3,value:"ABOVEWATERLINE"},Te.ANCHORAGE={type:3,value:"ANCHORAGE"},Te.APPROACHCHANNEL={type:3,value:"APPROACHCHANNEL"},Te.BELOWWATERLINE={type:3,value:"BELOWWATERLINE"},Te.BERTHINGSTRUCTURE={type:3,value:"BERTHINGSTRUCTURE"},Te.CHAMBER={type:3,value:"CHAMBER"},Te.CILL_LEVEL={type:3,value:"CILL_LEVEL"},Te.COPELEVEL={type:3,value:"COPELEVEL"},Te.CORE={type:3,value:"CORE"},Te.CREST={type:3,value:"CREST"},Te.GATEHEAD={type:3,value:"GATEHEAD"},Te.GUDINGSTRUCTURE={type:3,value:"GUDINGSTRUCTURE"},Te.HIGHWATERLINE={type:3,value:"HIGHWATERLINE"},Te.LANDFIELD={type:3,value:"LANDFIELD"},Te.LEEWARDSIDE={type:3,value:"LEEWARDSIDE"},Te.LOWWATERLINE={type:3,value:"LOWWATERLINE"},Te.MANUFACTURING={type:3,value:"MANUFACTURING"},Te.NAVIGATIONALAREA={type:3,value:"NAVIGATIONALAREA"},Te.PROTECTION={type:3,value:"PROTECTION"},Te.SHIPTRANSFER={type:3,value:"SHIPTRANSFER"},Te.STORAGEAREA={type:3,value:"STORAGEAREA"},Te.VEHICLESERVICING={type:3,value:"VEHICLESERVICING"},Te.WATERFIELD={type:3,value:"WATERFIELD"},Te.WEATHERSIDE={type:3,value:"WEATHERSIDE"},Te.USERDEFINED={type:3,value:"USERDEFINED"},Te.NOTDEFINED={type:3,value:"NOTDEFINED"};let Pl=Te;e.IfcMarinePartTypeEnum=Pl;let ks=class{};ks.ANCHORBOLT={type:3,value:"ANCHORBOLT"},ks.BOLT={type:3,value:"BOLT"},ks.CHAIN={type:3,value:"CHAIN"},ks.COUPLER={type:3,value:"COUPLER"},ks.DOWEL={type:3,value:"DOWEL"},ks.NAIL={type:3,value:"NAIL"},ks.NAILPLATE={type:3,value:"NAILPLATE"},ks.RAILFASTENING={type:3,value:"RAILFASTENING"},ks.RAILJOINT={type:3,value:"RAILJOINT"},ks.RIVET={type:3,value:"RIVET"},ks.ROPE={type:3,value:"ROPE"},ks.SCREW={type:3,value:"SCREW"},ks.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},ks.STAPLE={type:3,value:"STAPLE"},ks.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},ks.USERDEFINED={type:3,value:"USERDEFINED"},ks.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ml=ks;e.IfcMechanicalFastenerTypeEnum=Ml;let ja=class{};ja.AIRSTATION={type:3,value:"AIRSTATION"},ja.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},ja.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},ja.OXYGENPLANT={type:3,value:"OXYGENPLANT"},ja.VACUUMSTATION={type:3,value:"VACUUMSTATION"},ja.USERDEFINED={type:3,value:"USERDEFINED"},ja.NOTDEFINED={type:3,value:"NOTDEFINED"};let DE=ja;e.IfcMedicalDeviceTypeEnum=DE;let Pe=class{};Pe.ARCH_SEGMENT={type:3,value:"ARCH_SEGMENT"},Pe.BRACE={type:3,value:"BRACE"},Pe.CHORD={type:3,value:"CHORD"},Pe.COLLAR={type:3,value:"COLLAR"},Pe.MEMBER={type:3,value:"MEMBER"},Pe.MULLION={type:3,value:"MULLION"},Pe.PLATE={type:3,value:"PLATE"},Pe.POST={type:3,value:"POST"},Pe.PURLIN={type:3,value:"PURLIN"},Pe.RAFTER={type:3,value:"RAFTER"},Pe.STAY_CABLE={type:3,value:"STAY_CABLE"},Pe.STIFFENING_RIB={type:3,value:"STIFFENING_RIB"},Pe.STRINGER={type:3,value:"STRINGER"},Pe.STRUCTURALCABLE={type:3,value:"STRUCTURALCABLE"},Pe.STRUT={type:3,value:"STRUT"},Pe.STUD={type:3,value:"STUD"},Pe.SUSPENDER={type:3,value:"SUSPENDER"},Pe.SUSPENSION_CABLE={type:3,value:"SUSPENSION_CABLE"},Pe.TIEBAR={type:3,value:"TIEBAR"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"};let yr=Pe;e.IfcMemberTypeEnum=yr;let Ns=class{};Ns.ACCESSPOINT={type:3,value:"ACCESSPOINT"},Ns.BASEBANDUNIT={type:3,value:"BASEBANDUNIT"},Ns.BASETRANSCEIVERSTATION={type:3,value:"BASETRANSCEIVERSTATION"},Ns.E_UTRAN_NODE_B={type:3,value:"E_UTRAN_NODE_B"},Ns.GATEWAY_GPRS_SUPPORT_NODE={type:3,value:"GATEWAY_GPRS_SUPPORT_NODE"},Ns.MASTERUNIT={type:3,value:"MASTERUNIT"},Ns.MOBILESWITCHINGCENTER={type:3,value:"MOBILESWITCHINGCENTER"},Ns.MSCSERVER={type:3,value:"MSCSERVER"},Ns.PACKETCONTROLUNIT={type:3,value:"PACKETCONTROLUNIT"},Ns.REMOTERADIOUNIT={type:3,value:"REMOTERADIOUNIT"},Ns.REMOTEUNIT={type:3,value:"REMOTEUNIT"},Ns.SERVICE_GPRS_SUPPORT_NODE={type:3,value:"SERVICE_GPRS_SUPPORT_NODE"},Ns.SUBSCRIBERSERVER={type:3,value:"SUBSCRIBERSERVER"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"};let OE=Ns;e.IfcMobileTelecommunicationsApplianceTypeEnum=OE;let Wi=class{};Wi.BOLLARD={type:3,value:"BOLLARD"},Wi.LINETENSIONER={type:3,value:"LINETENSIONER"},Wi.MAGNETICDEVICE={type:3,value:"MAGNETICDEVICE"},Wi.MOORINGHOOKS={type:3,value:"MOORINGHOOKS"},Wi.VACUUMDEVICE={type:3,value:"VACUUMDEVICE"},Wi.USERDEFINED={type:3,value:"USERDEFINED"},Wi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bh=Wi;e.IfcMooringDeviceTypeEnum=Bh;let Hn=class{};Hn.BELTDRIVE={type:3,value:"BELTDRIVE"},Hn.COUPLING={type:3,value:"COUPLING"},Hn.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Hn.USERDEFINED={type:3,value:"USERDEFINED"},Hn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ul=Hn;e.IfcMotorConnectionTypeEnum=Ul;let Qa=class{};Qa.BEACON={type:3,value:"BEACON"},Qa.BUOY={type:3,value:"BUOY"},Qa.USERDEFINED={type:3,value:"USERDEFINED"},Qa.NOTDEFINED={type:3,value:"NOTDEFINED"};let Zu=Qa;e.IfcNavigationElementTypeEnum=Zu;let Ni=class{};Ni.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ni.CODEWAIVER={type:3,value:"CODEWAIVER"},Ni.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ni.EXTERNAL={type:3,value:"EXTERNAL"},Ni.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ni.MERGECONFLICT={type:3,value:"MERGECONFLICT"},Ni.MODELVIEW={type:3,value:"MODELVIEW"},Ni.PARAMETER={type:3,value:"PARAMETER"},Ni.REQUIREMENT={type:3,value:"REQUIREMENT"},Ni.SPECIFICATION={type:3,value:"SPECIFICATION"},Ni.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ni.USERDEFINED={type:3,value:"USERDEFINED"},Ni.NOTDEFINED={type:3,value:"NOTDEFINED"};let vE=Ni;e.IfcObjectiveEnum=vE;let Ai=class{};Ai.ASSIGNEE={type:3,value:"ASSIGNEE"},Ai.ASSIGNOR={type:3,value:"ASSIGNOR"},Ai.LESSEE={type:3,value:"LESSEE"},Ai.LESSOR={type:3,value:"LESSOR"},Ai.LETTINGAGENT={type:3,value:"LETTINGAGENT"},Ai.OWNER={type:3,value:"OWNER"},Ai.TENANT={type:3,value:"TENANT"},Ai.USERDEFINED={type:3,value:"USERDEFINED"},Ai.NOTDEFINED={type:3,value:"NOTDEFINED"};let qu=Ai;e.IfcOccupantTypeEnum=qu;let Zr=class{};Zr.OPENING={type:3,value:"OPENING"},Zr.RECESS={type:3,value:"RECESS"},Zr.USERDEFINED={type:3,value:"USERDEFINED"},Zr.NOTDEFINED={type:3,value:"NOTDEFINED"};let sI=Zr;e.IfcOpeningElementTypeEnum=sI;let Di=class{};Di.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},Di.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},Di.DATAOUTLET={type:3,value:"DATAOUTLET"},Di.POWEROUTLET={type:3,value:"POWEROUTLET"},Di.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},Di.USERDEFINED={type:3,value:"USERDEFINED"},Di.NOTDEFINED={type:3,value:"NOTDEFINED"};let iI=Di;e.IfcOutletTypeEnum=iI;let Wn=class{};Wn.FLEXIBLE={type:3,value:"FLEXIBLE"},Wn.RIGID={type:3,value:"RIGID"},Wn.USERDEFINED={type:3,value:"USERDEFINED"},Wn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Ne=Wn;e.IfcPavementTypeEnum=Ne;let _E=class{};_E.USERDEFINED={type:3,value:"USERDEFINED"},_E.NOTDEFINED={type:3,value:"NOTDEFINED"};let Cl=_E;e.IfcPerformanceHistoryTypeEnum=Cl;let fn=class{};fn.GRILL={type:3,value:"GRILL"},fn.LOUVER={type:3,value:"LOUVER"},fn.SCREEN={type:3,value:"SCREEN"},fn.USERDEFINED={type:3,value:"USERDEFINED"},fn.NOTDEFINED={type:3,value:"NOTDEFINED"};let us=fn;e.IfcPermeableCoveringOperationEnum=us;let Gh=class{};Gh.ACCESS={type:3,value:"ACCESS"},Gh.BUILDING={type:3,value:"BUILDING"},Gh.WORK={type:3,value:"WORK"},Gh.USERDEFINED={type:3,value:"USERDEFINED"},Gh.NOTDEFINED={type:3,value:"NOTDEFINED"};let gE=Gh;e.IfcPermitTypeEnum=gE;let Xe=class{};Xe.PHYSICAL={type:3,value:"PHYSICAL"},Xe.VIRTUAL={type:3,value:"VIRTUAL"},Xe.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fh=Xe;e.IfcPhysicalOrVirtualEnum=Fh;let As=class{};As.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},As.COMPOSITE={type:3,value:"COMPOSITE"},As.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},As.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"};let qr=As;e.IfcPileConstructionEnum=qr;let as=class{};as.BORED={type:3,value:"BORED"},as.COHESION={type:3,value:"COHESION"},as.DRIVEN={type:3,value:"DRIVEN"},as.FRICTION={type:3,value:"FRICTION"},as.JETGROUTING={type:3,value:"JETGROUTING"},as.SUPPORT={type:3,value:"SUPPORT"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"};let zn=as;e.IfcPileTypeEnum=zn;let se=class{};se.BEND={type:3,value:"BEND"},se.CONNECTOR={type:3,value:"CONNECTOR"},se.ENTRY={type:3,value:"ENTRY"},se.EXIT={type:3,value:"EXIT"},se.JUNCTION={type:3,value:"JUNCTION"},se.OBSTRUCTION={type:3,value:"OBSTRUCTION"},se.TRANSITION={type:3,value:"TRANSITION"},se.USERDEFINED={type:3,value:"USERDEFINED"},se.NOTDEFINED={type:3,value:"NOTDEFINED"};let bl=se;e.IfcPipeFittingTypeEnum=bl;let Ks=class{};Ks.CULVERT={type:3,value:"CULVERT"},Ks.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Ks.GUTTER={type:3,value:"GUTTER"},Ks.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Ks.SPOOL={type:3,value:"SPOOL"},Ks.USERDEFINED={type:3,value:"USERDEFINED"},Ks.NOTDEFINED={type:3,value:"NOTDEFINED"};let ko=Ks;e.IfcPipeSegmentTypeEnum=ko;let Tr=class{};Tr.BASE_PLATE={type:3,value:"BASE_PLATE"},Tr.COVER_PLATE={type:3,value:"COVER_PLATE"},Tr.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},Tr.FLANGE_PLATE={type:3,value:"FLANGE_PLATE"},Tr.GUSSET_PLATE={type:3,value:"GUSSET_PLATE"},Tr.SHEET={type:3,value:"SHEET"},Tr.SPLICE_PLATE={type:3,value:"SPLICE_PLATE"},Tr.STIFFENER_PLATE={type:3,value:"STIFFENER_PLATE"},Tr.WEB_PLATE={type:3,value:"WEB_PLATE"},Tr.USERDEFINED={type:3,value:"USERDEFINED"},Tr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Sc=Tr;e.IfcPlateTypeEnum=Sc;let Me=class{};Me.CURVE3D={type:3,value:"CURVE3D"},Me.PCURVE_S1={type:3,value:"PCURVE_S1"},Me.PCURVE_S2={type:3,value:"PCURVE_S2"};let ju=Me;e.IfcPreferredSurfaceCurveRepresentation=ju;let In=class{};In.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},In.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},In.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},In.CALIBRATION={type:3,value:"CALIBRATION"},In.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},In.SHUTDOWN={type:3,value:"SHUTDOWN"},In.STARTUP={type:3,value:"STARTUP"},In.USERDEFINED={type:3,value:"USERDEFINED"},In.NOTDEFINED={type:3,value:"NOTDEFINED"};let cN=In;e.IfcProcedureTypeEnum=cN;let $a=class{};$a.AREA={type:3,value:"AREA"},$a.CURVE={type:3,value:"CURVE"};let aN=$a;e.IfcProfileTypeEnum=aN;let Ds=class{};Ds.CHANGEORDER={type:3,value:"CHANGEORDER"},Ds.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},Ds.MOVEORDER={type:3,value:"MOVEORDER"},Ds.PURCHASEORDER={type:3,value:"PURCHASEORDER"},Ds.WORKORDER={type:3,value:"WORKORDER"},Ds.USERDEFINED={type:3,value:"USERDEFINED"},Ds.NOTDEFINED={type:3,value:"NOTDEFINED"};let oN=Ds;e.IfcProjectOrderTypeEnum=oN;let Ko=class{};Ko.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},Ko.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"};let hN=Ko;e.IfcProjectedOrTrueLengthEnum=hN;let Zo=class{};Zo.BLISTER={type:3,value:"BLISTER"},Zo.DEVIATOR={type:3,value:"DEVIATOR"},Zo.USERDEFINED={type:3,value:"USERDEFINED"},Zo.NOTDEFINED={type:3,value:"NOTDEFINED"};let lN=Zo;e.IfcProjectionElementTypeEnum=lN;let Oi=class{};Oi.PSET_MATERIALDRIVEN={type:3,value:"PSET_MATERIALDRIVEN"},Oi.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},Oi.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},Oi.PSET_PROFILEDRIVEN={type:3,value:"PSET_PROFILEDRIVEN"},Oi.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},Oi.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},Oi.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},Oi.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},Oi.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},Oi.NOTDEFINED={type:3,value:"NOTDEFINED"};let uN=Oi;e.IfcPropertySetTemplateTypeEnum=uN;let dr=class{};dr.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},dr.ELECTRONIC={type:3,value:"ELECTRONIC"},dr.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},dr.THERMAL={type:3,value:"THERMAL"},dr.USERDEFINED={type:3,value:"USERDEFINED"},dr.NOTDEFINED={type:3,value:"NOTDEFINED"};let Im=dr;e.IfcProtectiveDeviceTrippingUnitTypeEnum=Im;let ys=class{};ys.ANTI_ARCING_DEVICE={type:3,value:"ANTI_ARCING_DEVICE"},ys.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},ys.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},ys.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},ys.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},ys.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},ys.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},ys.SPARKGAP={type:3,value:"SPARKGAP"},ys.VARISTOR={type:3,value:"VARISTOR"},ys.VOLTAGELIMITER={type:3,value:"VOLTAGELIMITER"},ys.USERDEFINED={type:3,value:"USERDEFINED"},ys.NOTDEFINED={type:3,value:"NOTDEFINED"};let pN=ys;e.IfcProtectiveDeviceTypeEnum=pN;let Yn=class{};Yn.CIRCULATOR={type:3,value:"CIRCULATOR"},Yn.ENDSUCTION={type:3,value:"ENDSUCTION"},Yn.SPLITCASE={type:3,value:"SPLITCASE"},Yn.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},Yn.SUMPPUMP={type:3,value:"SUMPPUMP"},Yn.VERTICALINLINE={type:3,value:"VERTICALINLINE"},Yn.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},Yn.USERDEFINED={type:3,value:"USERDEFINED"},Yn.NOTDEFINED={type:3,value:"NOTDEFINED"};let EN=Yn;e.IfcPumpTypeEnum=EN;let yn=class{};yn.BLADE={type:3,value:"BLADE"},yn.CHECKRAIL={type:3,value:"CHECKRAIL"},yn.GUARDRAIL={type:3,value:"GUARDRAIL"},yn.RACKRAIL={type:3,value:"RACKRAIL"},yn.RAIL={type:3,value:"RAIL"},yn.STOCKRAIL={type:3,value:"STOCKRAIL"},yn.USERDEFINED={type:3,value:"USERDEFINED"},yn.NOTDEFINED={type:3,value:"NOTDEFINED"};let fN=yn;e.IfcRailTypeEnum=fN;let Ts=class{};Ts.BALUSTRADE={type:3,value:"BALUSTRADE"},Ts.FENCE={type:3,value:"FENCE"},Ts.GUARDRAIL={type:3,value:"GUARDRAIL"},Ts.HANDRAIL={type:3,value:"HANDRAIL"},Ts.USERDEFINED={type:3,value:"USERDEFINED"},Ts.NOTDEFINED={type:3,value:"NOTDEFINED"};let ym=Ts;e.IfcRailingTypeEnum=ym;let Us=class{};Us.ABOVETRACK={type:3,value:"ABOVETRACK"},Us.DILATIONTRACK={type:3,value:"DILATIONTRACK"},Us.LINESIDE={type:3,value:"LINESIDE"},Us.LINESIDEPART={type:3,value:"LINESIDEPART"},Us.PLAINTRACK={type:3,value:"PLAINTRACK"},Us.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},Us.TRACK={type:3,value:"TRACK"},Us.TRACKPART={type:3,value:"TRACKPART"},Us.TURNOUTTRACK={type:3,value:"TURNOUTTRACK"},Us.USERDEFINED={type:3,value:"USERDEFINED"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"};let Tm=Us;e.IfcRailwayPartTypeEnum=Tm;let Nc=class{};Nc.USERDEFINED={type:3,value:"USERDEFINED"},Nc.NOTDEFINED={type:3,value:"NOTDEFINED"};let IN=Nc;e.IfcRailwayTypeEnum=IN;let mr=class{};mr.SPIRAL={type:3,value:"SPIRAL"},mr.STRAIGHT={type:3,value:"STRAIGHT"},mr.USERDEFINED={type:3,value:"USERDEFINED"},mr.NOTDEFINED={type:3,value:"NOTDEFINED"};let yN=mr;e.IfcRampFlightTypeEnum=yN;let kn=class{};kn.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},kn.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},kn.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},kn.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},kn.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},kn.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},kn.USERDEFINED={type:3,value:"USERDEFINED"},kn.NOTDEFINED={type:3,value:"NOTDEFINED"};let TN=kn;e.IfcRampTypeEnum=TN;let Rr=class{};Rr.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},Rr.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},Rr.DAILY={type:3,value:"DAILY"},Rr.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},Rr.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},Rr.WEEKLY={type:3,value:"WEEKLY"},Rr.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},Rr.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"};let dN=Rr;e.IfcRecurrenceTypeEnum=dN;let zi=class{};zi.BOUNDARY={type:3,value:"BOUNDARY"},zi.INTERSECTION={type:3,value:"INTERSECTION"},zi.KILOPOINT={type:3,value:"KILOPOINT"},zi.LANDMARK={type:3,value:"LANDMARK"},zi.MILEPOINT={type:3,value:"MILEPOINT"},zi.POSITION={type:3,value:"POSITION"},zi.REFERENCEMARKER={type:3,value:"REFERENCEMARKER"},zi.STATION={type:3,value:"STATION"},zi.SUPERELEVATIONEVENT={type:3,value:"SUPERELEVATIONEVENT"},zi.WIDTHEVENT={type:3,value:"WIDTHEVENT"},zi.USERDEFINED={type:3,value:"USERDEFINED"},zi.NOTDEFINED={type:3,value:"NOTDEFINED"};let mN=zi;e.IfcReferentTypeEnum=mN;let Yi=class{};Yi.BLINN={type:3,value:"BLINN"},Yi.FLAT={type:3,value:"FLAT"},Yi.GLASS={type:3,value:"GLASS"},Yi.MATT={type:3,value:"MATT"},Yi.METAL={type:3,value:"METAL"},Yi.MIRROR={type:3,value:"MIRROR"},Yi.PHONG={type:3,value:"PHONG"},Yi.PHYSICAL={type:3,value:"PHYSICAL"},Yi.PLASTIC={type:3,value:"PLASTIC"},Yi.STRAUSS={type:3,value:"STRAUSS"},Yi.NOTDEFINED={type:3,value:"NOTDEFINED"};let RN=Yi;e.IfcReflectanceMethodEnum=RN;let Ac=class{};Ac.DYNAMICALLYCOMPACTED={type:3,value:"DYNAMICALLYCOMPACTED"},Ac.GROUTED={type:3,value:"GROUTED"},Ac.REPLACED={type:3,value:"REPLACED"},Ac.ROLLERCOMPACTED={type:3,value:"ROLLERCOMPACTED"},Ac.SURCHARGEPRELOADED={type:3,value:"SURCHARGEPRELOADED"},Ac.VERTICALLYDRAINED={type:3,value:"VERTICALLYDRAINED"},Ac.USERDEFINED={type:3,value:"USERDEFINED"},Ac.NOTDEFINED={type:3,value:"NOTDEFINED"};let SN=Ac;e.IfcReinforcedSoilTypeEnum=SN;let Os=class{};Os.ANCHORING={type:3,value:"ANCHORING"},Os.EDGE={type:3,value:"EDGE"},Os.LIGATURE={type:3,value:"LIGATURE"},Os.MAIN={type:3,value:"MAIN"},Os.PUNCHING={type:3,value:"PUNCHING"},Os.RING={type:3,value:"RING"},Os.SHEAR={type:3,value:"SHEAR"},Os.STUD={type:3,value:"STUD"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"};let NN=Os;e.IfcReinforcingBarRoleEnum=NN;let wl=class{};wl.PLAIN={type:3,value:"PLAIN"},wl.TEXTURED={type:3,value:"TEXTURED"};let AN=wl;e.IfcReinforcingBarSurfaceEnum=AN;let Cs=class{};Cs.ANCHORING={type:3,value:"ANCHORING"},Cs.EDGE={type:3,value:"EDGE"},Cs.LIGATURE={type:3,value:"LIGATURE"},Cs.MAIN={type:3,value:"MAIN"},Cs.PUNCHING={type:3,value:"PUNCHING"},Cs.RING={type:3,value:"RING"},Cs.SHEAR={type:3,value:"SHEAR"},Cs.SPACEBAR={type:3,value:"SPACEBAR"},Cs.STUD={type:3,value:"STUD"},Cs.USERDEFINED={type:3,value:"USERDEFINED"},Cs.NOTDEFINED={type:3,value:"NOTDEFINED"};let ST=Cs;e.IfcReinforcingBarTypeEnum=ST;let Qu=class{};Qu.USERDEFINED={type:3,value:"USERDEFINED"},Qu.NOTDEFINED={type:3,value:"NOTDEFINED"};let Vh=Qu;e.IfcReinforcingMeshTypeEnum=Vh;let te=class{};te.BICYCLECROSSING={type:3,value:"BICYCLECROSSING"},te.BUS_STOP={type:3,value:"BUS_STOP"},te.CARRIAGEWAY={type:3,value:"CARRIAGEWAY"},te.CENTRALISLAND={type:3,value:"CENTRALISLAND"},te.CENTRALRESERVE={type:3,value:"CENTRALRESERVE"},te.HARDSHOULDER={type:3,value:"HARDSHOULDER"},te.INTERSECTION={type:3,value:"INTERSECTION"},te.LAYBY={type:3,value:"LAYBY"},te.PARKINGBAY={type:3,value:"PARKINGBAY"},te.PASSINGBAY={type:3,value:"PASSINGBAY"},te.PEDESTRIAN_CROSSING={type:3,value:"PEDESTRIAN_CROSSING"},te.RAILWAYCROSSING={type:3,value:"RAILWAYCROSSING"},te.REFUGEISLAND={type:3,value:"REFUGEISLAND"},te.ROADSEGMENT={type:3,value:"ROADSEGMENT"},te.ROADSIDE={type:3,value:"ROADSIDE"},te.ROADSIDEPART={type:3,value:"ROADSIDEPART"},te.ROADWAYPLATEAU={type:3,value:"ROADWAYPLATEAU"},te.ROUNDABOUT={type:3,value:"ROUNDABOUT"},te.SHOULDER={type:3,value:"SHOULDER"},te.SIDEWALK={type:3,value:"SIDEWALK"},te.SOFTSHOULDER={type:3,value:"SOFTSHOULDER"},te.TOLLPLAZA={type:3,value:"TOLLPLAZA"},te.TRAFFICISLAND={type:3,value:"TRAFFICISLAND"},te.TRAFFICLANE={type:3,value:"TRAFFICLANE"},te.USERDEFINED={type:3,value:"USERDEFINED"},te.NOTDEFINED={type:3,value:"NOTDEFINED"};let DN=te;e.IfcRoadPartTypeEnum=DN;let Hh=class{};Hh.USERDEFINED={type:3,value:"USERDEFINED"},Hh.NOTDEFINED={type:3,value:"NOTDEFINED"};let ON=Hh;e.IfcRoadTypeEnum=ON;let Ue=class{};Ue.ARCHITECT={type:3,value:"ARCHITECT"},Ue.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},Ue.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},Ue.CIVILENGINEER={type:3,value:"CIVILENGINEER"},Ue.CLIENT={type:3,value:"CLIENT"},Ue.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},Ue.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},Ue.CONSULTANT={type:3,value:"CONSULTANT"},Ue.CONTRACTOR={type:3,value:"CONTRACTOR"},Ue.COSTENGINEER={type:3,value:"COSTENGINEER"},Ue.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},Ue.ENGINEER={type:3,value:"ENGINEER"},Ue.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},Ue.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},Ue.MANUFACTURER={type:3,value:"MANUFACTURER"},Ue.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},Ue.OWNER={type:3,value:"OWNER"},Ue.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},Ue.RESELLER={type:3,value:"RESELLER"},Ue.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},Ue.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},Ue.SUPPLIER={type:3,value:"SUPPLIER"},Ue.USERDEFINED={type:3,value:"USERDEFINED"};let vN=Ue;e.IfcRoleEnum=vN;let Zs=class{};Zs.BARREL_ROOF={type:3,value:"BARREL_ROOF"},Zs.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},Zs.DOME_ROOF={type:3,value:"DOME_ROOF"},Zs.FLAT_ROOF={type:3,value:"FLAT_ROOF"},Zs.FREEFORM={type:3,value:"FREEFORM"},Zs.GABLE_ROOF={type:3,value:"GABLE_ROOF"},Zs.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},Zs.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},Zs.HIP_ROOF={type:3,value:"HIP_ROOF"},Zs.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},Zs.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},Zs.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},Zs.SHED_ROOF={type:3,value:"SHED_ROOF"},Zs.USERDEFINED={type:3,value:"USERDEFINED"},Zs.NOTDEFINED={type:3,value:"NOTDEFINED"};let _N=Zs;e.IfcRoofTypeEnum=_N;let ps=class{};ps.ATTO={type:3,value:"ATTO"},ps.CENTI={type:3,value:"CENTI"},ps.DECA={type:3,value:"DECA"},ps.DECI={type:3,value:"DECI"},ps.EXA={type:3,value:"EXA"},ps.FEMTO={type:3,value:"FEMTO"},ps.GIGA={type:3,value:"GIGA"},ps.HECTO={type:3,value:"HECTO"},ps.KILO={type:3,value:"KILO"},ps.MEGA={type:3,value:"MEGA"},ps.MICRO={type:3,value:"MICRO"},ps.MILLI={type:3,value:"MILLI"},ps.NANO={type:3,value:"NANO"},ps.PETA={type:3,value:"PETA"},ps.PICO={type:3,value:"PICO"},ps.TERA={type:3,value:"TERA"};let gN=ps;e.IfcSIPrefix=gN;let ae=class{};ae.AMPERE={type:3,value:"AMPERE"},ae.BECQUEREL={type:3,value:"BECQUEREL"},ae.CANDELA={type:3,value:"CANDELA"},ae.COULOMB={type:3,value:"COULOMB"},ae.CUBIC_METRE={type:3,value:"CUBIC_METRE"},ae.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},ae.FARAD={type:3,value:"FARAD"},ae.GRAM={type:3,value:"GRAM"},ae.GRAY={type:3,value:"GRAY"},ae.HENRY={type:3,value:"HENRY"},ae.HERTZ={type:3,value:"HERTZ"},ae.JOULE={type:3,value:"JOULE"},ae.KELVIN={type:3,value:"KELVIN"},ae.LUMEN={type:3,value:"LUMEN"},ae.LUX={type:3,value:"LUX"},ae.METRE={type:3,value:"METRE"},ae.MOLE={type:3,value:"MOLE"},ae.NEWTON={type:3,value:"NEWTON"},ae.OHM={type:3,value:"OHM"},ae.PASCAL={type:3,value:"PASCAL"},ae.RADIAN={type:3,value:"RADIAN"},ae.SECOND={type:3,value:"SECOND"},ae.SIEMENS={type:3,value:"SIEMENS"},ae.SIEVERT={type:3,value:"SIEVERT"},ae.SQUARE_METRE={type:3,value:"SQUARE_METRE"},ae.STERADIAN={type:3,value:"STERADIAN"},ae.TESLA={type:3,value:"TESLA"},ae.VOLT={type:3,value:"VOLT"},ae.WATT={type:3,value:"WATT"},ae.WEBER={type:3,value:"WEBER"};let LN=ae;e.IfcSIUnitName=LN;let ki=class{};ki.BATH={type:3,value:"BATH"},ki.BIDET={type:3,value:"BIDET"},ki.CISTERN={type:3,value:"CISTERN"},ki.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},ki.SHOWER={type:3,value:"SHOWER"},ki.SINK={type:3,value:"SINK"},ki.TOILETPAN={type:3,value:"TOILETPAN"},ki.URINAL={type:3,value:"URINAL"},ki.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},ki.WCSEAT={type:3,value:"WCSEAT"},ki.USERDEFINED={type:3,value:"USERDEFINED"},ki.NOTDEFINED={type:3,value:"NOTDEFINED"};let xN=ki;e.IfcSanitaryTerminalTypeEnum=xN;let Ja=class{};Ja.TAPERED={type:3,value:"TAPERED"},Ja.UNIFORM={type:3,value:"UNIFORM"};let PN=Ja;e.IfcSectionTypeEnum=PN;let oe=class{};oe.CO2SENSOR={type:3,value:"CO2SENSOR"},oe.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},oe.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},oe.COSENSOR={type:3,value:"COSENSOR"},oe.EARTHQUAKESENSOR={type:3,value:"EARTHQUAKESENSOR"},oe.FIRESENSOR={type:3,value:"FIRESENSOR"},oe.FLOWSENSOR={type:3,value:"FLOWSENSOR"},oe.FOREIGNOBJECTDETECTIONSENSOR={type:3,value:"FOREIGNOBJECTDETECTIONSENSOR"},oe.FROSTSENSOR={type:3,value:"FROSTSENSOR"},oe.GASSENSOR={type:3,value:"GASSENSOR"},oe.HEATSENSOR={type:3,value:"HEATSENSOR"},oe.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},oe.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},oe.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},oe.LEVELSENSOR={type:3,value:"LEVELSENSOR"},oe.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},oe.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},oe.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},oe.OBSTACLESENSOR={type:3,value:"OBSTACLESENSOR"},oe.PHSENSOR={type:3,value:"PHSENSOR"},oe.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},oe.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},oe.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},oe.RAINSENSOR={type:3,value:"RAINSENSOR"},oe.SMOKESENSOR={type:3,value:"SMOKESENSOR"},oe.SNOWDEPTHSENSOR={type:3,value:"SNOWDEPTHSENSOR"},oe.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},oe.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},oe.TRAINSENSOR={type:3,value:"TRAINSENSOR"},oe.TURNOUTCLOSURESENSOR={type:3,value:"TURNOUTCLOSURESENSOR"},oe.WHEELSENSOR={type:3,value:"WHEELSENSOR"},oe.WINDSENSOR={type:3,value:"WINDSENSOR"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"};let Xa=oe;e.IfcSensorTypeEnum=Xa;let to=class{};to.FINISH_FINISH={type:3,value:"FINISH_FINISH"},to.FINISH_START={type:3,value:"FINISH_START"},to.START_FINISH={type:3,value:"START_FINISH"},to.START_START={type:3,value:"START_START"},to.USERDEFINED={type:3,value:"USERDEFINED"},to.NOTDEFINED={type:3,value:"NOTDEFINED"};let NT=to;e.IfcSequenceEnum=NT;let fe=class{};fe.AWNING={type:3,value:"AWNING"},fe.JALOUSIE={type:3,value:"JALOUSIE"},fe.SHUTTER={type:3,value:"SHUTTER"},fe.USERDEFINED={type:3,value:"USERDEFINED"},fe.NOTDEFINED={type:3,value:"NOTDEFINED"};let MN=fe;e.IfcShadingDeviceTypeEnum=MN;let Tn=class{};Tn.MARKER={type:3,value:"MARKER"},Tn.MIRROR={type:3,value:"MIRROR"},Tn.PICTORAL={type:3,value:"PICTORAL"},Tn.USERDEFINED={type:3,value:"USERDEFINED"},Tn.NOTDEFINED={type:3,value:"NOTDEFINED"};let nI=Tn;e.IfcSignTypeEnum=nI;let Kn=class{};Kn.AUDIO={type:3,value:"AUDIO"},Kn.MIXED={type:3,value:"MIXED"},Kn.VISUAL={type:3,value:"VISUAL"},Kn.USERDEFINED={type:3,value:"USERDEFINED"},Kn.NOTDEFINED={type:3,value:"NOTDEFINED"};let UN=Kn;e.IfcSignalTypeEnum=UN;let pe=class{};pe.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},pe.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},pe.P_LISTVALUE={type:3,value:"P_LISTVALUE"},pe.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},pe.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},pe.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},pe.Q_AREA={type:3,value:"Q_AREA"},pe.Q_COUNT={type:3,value:"Q_COUNT"},pe.Q_LENGTH={type:3,value:"Q_LENGTH"},pe.Q_NUMBER={type:3,value:"Q_NUMBER"},pe.Q_TIME={type:3,value:"Q_TIME"},pe.Q_VOLUME={type:3,value:"Q_VOLUME"},pe.Q_WEIGHT={type:3,value:"Q_WEIGHT"};let CN=pe;e.IfcSimplePropertyTemplateTypeEnum=CN;let dn=class{};dn.APPROACH_SLAB={type:3,value:"APPROACH_SLAB"},dn.BASESLAB={type:3,value:"BASESLAB"},dn.FLOOR={type:3,value:"FLOOR"},dn.LANDING={type:3,value:"LANDING"},dn.PAVING={type:3,value:"PAVING"},dn.ROOF={type:3,value:"ROOF"},dn.SIDEWALK={type:3,value:"SIDEWALK"},dn.TRACKSLAB={type:3,value:"TRACKSLAB"},dn.WEARING={type:3,value:"WEARING"},dn.USERDEFINED={type:3,value:"USERDEFINED"},dn.NOTDEFINED={type:3,value:"NOTDEFINED"};let bN=dn;e.IfcSlabTypeEnum=bN;let jr=class{};jr.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},jr.SOLARPANEL={type:3,value:"SOLARPANEL"},jr.USERDEFINED={type:3,value:"USERDEFINED"},jr.NOTDEFINED={type:3,value:"NOTDEFINED"};let wN=jr;e.IfcSolarDeviceTypeEnum=wN;let vi=class{};vi.CONVECTOR={type:3,value:"CONVECTOR"},vi.RADIATOR={type:3,value:"RADIATOR"},vi.USERDEFINED={type:3,value:"USERDEFINED"},vi.NOTDEFINED={type:3,value:"NOTDEFINED"};let Bl=vi;e.IfcSpaceHeaterTypeEnum=Bl;let _i=class{};_i.BERTH={type:3,value:"BERTH"},_i.EXTERNAL={type:3,value:"EXTERNAL"},_i.GFA={type:3,value:"GFA"},_i.INTERNAL={type:3,value:"INTERNAL"},_i.PARKING={type:3,value:"PARKING"},_i.SPACE={type:3,value:"SPACE"},_i.USERDEFINED={type:3,value:"USERDEFINED"},_i.NOTDEFINED={type:3,value:"NOTDEFINED"};let LE=_i;e.IfcSpaceTypeEnum=LE;let Ce=class{};Ce.CONSTRUCTION={type:3,value:"CONSTRUCTION"},Ce.FIRESAFETY={type:3,value:"FIRESAFETY"},Ce.INTERFERENCE={type:3,value:"INTERFERENCE"},Ce.LIGHTING={type:3,value:"LIGHTING"},Ce.OCCUPANCY={type:3,value:"OCCUPANCY"},Ce.RESERVATION={type:3,value:"RESERVATION"},Ce.SECURITY={type:3,value:"SECURITY"},Ce.THERMAL={type:3,value:"THERMAL"},Ce.TRANSPORT={type:3,value:"TRANSPORT"},Ce.VENTILATION={type:3,value:"VENTILATION"},Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"};let BN=Ce;e.IfcSpatialZoneTypeEnum=BN;let Sr=class{};Sr.BIRDCAGE={type:3,value:"BIRDCAGE"},Sr.COWL={type:3,value:"COWL"},Sr.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},Sr.USERDEFINED={type:3,value:"USERDEFINED"},Sr.NOTDEFINED={type:3,value:"NOTDEFINED"};let dm=Sr;e.IfcStackTerminalTypeEnum=dm;let mn=class{};mn.CURVED={type:3,value:"CURVED"},mn.FREEFORM={type:3,value:"FREEFORM"},mn.SPIRAL={type:3,value:"SPIRAL"},mn.STRAIGHT={type:3,value:"STRAIGHT"},mn.WINDER={type:3,value:"WINDER"},mn.USERDEFINED={type:3,value:"USERDEFINED"},mn.NOTDEFINED={type:3,value:"NOTDEFINED"};let $u=mn;e.IfcStairFlightTypeEnum=$u;let Fe=class{};Fe.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},Fe.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},Fe.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},Fe.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},Fe.LADDER={type:3,value:"LADDER"},Fe.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},Fe.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},Fe.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},Fe.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},Fe.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},Fe.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},Fe.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},Fe.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},Fe.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},Fe.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"};let AT=Fe;e.IfcStairTypeEnum=AT;let ea=class{};ea.LOCKED={type:3,value:"LOCKED"},ea.READONLY={type:3,value:"READONLY"},ea.READONLYLOCKED={type:3,value:"READONLYLOCKED"},ea.READWRITE={type:3,value:"READWRITE"},ea.READWRITELOCKED={type:3,value:"READWRITELOCKED"};let Ju=ea;e.IfcStateEnum=Ju;let ds=class{};ds.CONST={type:3,value:"CONST"},ds.DISCRETE={type:3,value:"DISCRETE"},ds.EQUIDISTANT={type:3,value:"EQUIDISTANT"},ds.LINEAR={type:3,value:"LINEAR"},ds.PARABOLA={type:3,value:"PARABOLA"},ds.POLYGONAL={type:3,value:"POLYGONAL"},ds.SINUS={type:3,value:"SINUS"},ds.USERDEFINED={type:3,value:"USERDEFINED"},ds.NOTDEFINED={type:3,value:"NOTDEFINED"};let DT=ds;e.IfcStructuralCurveActivityTypeEnum=DT;let Qr=class{};Qr.CABLE={type:3,value:"CABLE"},Qr.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},Qr.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},Qr.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},Qr.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},Qr.USERDEFINED={type:3,value:"USERDEFINED"},Qr.NOTDEFINED={type:3,value:"NOTDEFINED"};let GN=Qr;e.IfcStructuralCurveMemberTypeEnum=GN;let Dc=class{};Dc.BILINEAR={type:3,value:"BILINEAR"},Dc.CONST={type:3,value:"CONST"},Dc.DISCRETE={type:3,value:"DISCRETE"},Dc.ISOCONTOUR={type:3,value:"ISOCONTOUR"},Dc.USERDEFINED={type:3,value:"USERDEFINED"},Dc.NOTDEFINED={type:3,value:"NOTDEFINED"};let FN=Dc;e.IfcStructuralSurfaceActivityTypeEnum=FN;let sa=class{};sa.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},sa.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},sa.SHELL={type:3,value:"SHELL"},sa.USERDEFINED={type:3,value:"USERDEFINED"},sa.NOTDEFINED={type:3,value:"NOTDEFINED"};let VN=sa;e.IfcStructuralSurfaceMemberTypeEnum=VN;let xE=class{};xE.PURCHASE={type:3,value:"PURCHASE"},xE.WORK={type:3,value:"WORK"},xE.USERDEFINED={type:3,value:"USERDEFINED"},xE.NOTDEFINED={type:3,value:"NOTDEFINED"};let OT=xE;e.IfcSubContractResourceTypeEnum=OT;let Nr=class{};Nr.DEFECT={type:3,value:"DEFECT"},Nr.HATCHMARKING={type:3,value:"HATCHMARKING"},Nr.LINEMARKING={type:3,value:"LINEMARKING"},Nr.MARK={type:3,value:"MARK"},Nr.NONSKIDSURFACING={type:3,value:"NONSKIDSURFACING"},Nr.PAVEMENTSURFACEMARKING={type:3,value:"PAVEMENTSURFACEMARKING"},Nr.RUMBLESTRIP={type:3,value:"RUMBLESTRIP"},Nr.SYMBOLMARKING={type:3,value:"SYMBOLMARKING"},Nr.TAG={type:3,value:"TAG"},Nr.TRANSVERSERUMBLESTRIP={type:3,value:"TRANSVERSERUMBLESTRIP"},Nr.TREATMENT={type:3,value:"TREATMENT"},Nr.USERDEFINED={type:3,value:"USERDEFINED"},Nr.NOTDEFINED={type:3,value:"NOTDEFINED"};let mm=Nr;e.IfcSurfaceFeatureTypeEnum=mm;let rI=class{};rI.BOTH={type:3,value:"BOTH"},rI.NEGATIVE={type:3,value:"NEGATIVE"},rI.POSITIVE={type:3,value:"POSITIVE"};let cI=rI;e.IfcSurfaceSide=cI;let Rn=class{};Rn.CONTACTOR={type:3,value:"CONTACTOR"},Rn.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Rn.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Rn.KEYPAD={type:3,value:"KEYPAD"},Rn.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Rn.RELAY={type:3,value:"RELAY"},Rn.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Rn.STARTER={type:3,value:"STARTER"},Rn.START_AND_STOP_EQUIPMENT={type:3,value:"START_AND_STOP_EQUIPMENT"},Rn.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Rn.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Rn.USERDEFINED={type:3,value:"USERDEFINED"},Rn.NOTDEFINED={type:3,value:"NOTDEFINED"};let Rm=Rn;e.IfcSwitchingDeviceTypeEnum=Rm;let ia=class{};ia.PANEL={type:3,value:"PANEL"},ia.SUBRACK={type:3,value:"SUBRACK"},ia.WORKSURFACE={type:3,value:"WORKSURFACE"},ia.USERDEFINED={type:3,value:"USERDEFINED"},ia.NOTDEFINED={type:3,value:"NOTDEFINED"};let HN=ia;e.IfcSystemFurnitureElementTypeEnum=HN;let Zn=class{};Zn.BASIN={type:3,value:"BASIN"},Zn.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},Zn.EXPANSION={type:3,value:"EXPANSION"},Zn.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},Zn.OILRETENTIONTRAY={type:3,value:"OILRETENTIONTRAY"},Zn.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Zn.STORAGE={type:3,value:"STORAGE"},Zn.VESSEL={type:3,value:"VESSEL"},Zn.USERDEFINED={type:3,value:"USERDEFINED"},Zn.NOTDEFINED={type:3,value:"NOTDEFINED"};let PE=Zn;e.IfcTankTypeEnum=PE;let aI=class{};aI.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},aI.WORKTIME={type:3,value:"WORKTIME"},aI.NOTDEFINED={type:3,value:"NOTDEFINED"};let WN=aI;e.IfcTaskDurationEnum=WN;let ss=class{};ss.ADJUSTMENT={type:3,value:"ADJUSTMENT"},ss.ATTENDANCE={type:3,value:"ATTENDANCE"},ss.CALIBRATION={type:3,value:"CALIBRATION"},ss.CONSTRUCTION={type:3,value:"CONSTRUCTION"},ss.DEMOLITION={type:3,value:"DEMOLITION"},ss.DISMANTLE={type:3,value:"DISMANTLE"},ss.DISPOSAL={type:3,value:"DISPOSAL"},ss.EMERGENCY={type:3,value:"EMERGENCY"},ss.INSPECTION={type:3,value:"INSPECTION"},ss.INSTALLATION={type:3,value:"INSTALLATION"},ss.LOGISTIC={type:3,value:"LOGISTIC"},ss.MAINTENANCE={type:3,value:"MAINTENANCE"},ss.MOVE={type:3,value:"MOVE"},ss.OPERATION={type:3,value:"OPERATION"},ss.REMOVAL={type:3,value:"REMOVAL"},ss.RENOVATION={type:3,value:"RENOVATION"},ss.SAFETY={type:3,value:"SAFETY"},ss.SHUTDOWN={type:3,value:"SHUTDOWN"},ss.STARTUP={type:3,value:"STARTUP"},ss.TESTING={type:3,value:"TESTING"},ss.TROUBLESHOOTING={type:3,value:"TROUBLESHOOTING"},ss.USERDEFINED={type:3,value:"USERDEFINED"},ss.NOTDEFINED={type:3,value:"NOTDEFINED"};let Sm=ss;e.IfcTaskTypeEnum=Sm;let qo=class{};qo.COUPLER={type:3,value:"COUPLER"},qo.FIXED_END={type:3,value:"FIXED_END"},qo.TENSIONING_END={type:3,value:"TENSIONING_END"},qo.USERDEFINED={type:3,value:"USERDEFINED"},qo.NOTDEFINED={type:3,value:"NOTDEFINED"};let zN=qo;e.IfcTendonAnchorTypeEnum=zN;let Ar=class{};Ar.COUPLER={type:3,value:"COUPLER"},Ar.DIABOLO={type:3,value:"DIABOLO"},Ar.DUCT={type:3,value:"DUCT"},Ar.GROUTING_DUCT={type:3,value:"GROUTING_DUCT"},Ar.TRUMPET={type:3,value:"TRUMPET"},Ar.USERDEFINED={type:3,value:"USERDEFINED"},Ar.NOTDEFINED={type:3,value:"NOTDEFINED"};let vT=Ar;e.IfcTendonConduitTypeEnum=vT;let Wh=class{};Wh.BAR={type:3,value:"BAR"},Wh.COATED={type:3,value:"COATED"},Wh.STRAND={type:3,value:"STRAND"},Wh.WIRE={type:3,value:"WIRE"},Wh.USERDEFINED={type:3,value:"USERDEFINED"},Wh.NOTDEFINED={type:3,value:"NOTDEFINED"};let jo=Wh;e.IfcTendonTypeEnum=jo;let na=class{};na.DOWN={type:3,value:"DOWN"},na.LEFT={type:3,value:"LEFT"},na.RIGHT={type:3,value:"RIGHT"},na.UP={type:3,value:"UP"};let Nm=na;e.IfcTextPath=Nm;let Qo=class{};Qo.CONTINUOUS={type:3,value:"CONTINUOUS"},Qo.DISCRETE={type:3,value:"DISCRETE"},Qo.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},Qo.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},Qo.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},Qo.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},Qo.NOTDEFINED={type:3,value:"NOTDEFINED"};let YN=Qo;e.IfcTimeSeriesDataTypeEnum=YN;let ra=class{};ra.BLOCKINGDEVICE={type:3,value:"BLOCKINGDEVICE"},ra.DERAILER={type:3,value:"DERAILER"},ra.FROG={type:3,value:"FROG"},ra.HALF_SET_OF_BLADES={type:3,value:"HALF_SET_OF_BLADES"},ra.SLEEPER={type:3,value:"SLEEPER"},ra.SPEEDREGULATOR={type:3,value:"SPEEDREGULATOR"},ra.TRACKENDOFALIGNMENT={type:3,value:"TRACKENDOFALIGNMENT"},ra.VEHICLESTOP={type:3,value:"VEHICLESTOP"},ra.USERDEFINED={type:3,value:"USERDEFINED"},ra.NOTDEFINED={type:3,value:"NOTDEFINED"};let kN=ra;e.IfcTrackElementTypeEnum=kN;let eo=class{};eo.CHOPPER={type:3,value:"CHOPPER"},eo.COMBINED={type:3,value:"COMBINED"},eo.CURRENT={type:3,value:"CURRENT"},eo.FREQUENCY={type:3,value:"FREQUENCY"},eo.INVERTER={type:3,value:"INVERTER"},eo.RECTIFIER={type:3,value:"RECTIFIER"},eo.VOLTAGE={type:3,value:"VOLTAGE"},eo.USERDEFINED={type:3,value:"USERDEFINED"},eo.NOTDEFINED={type:3,value:"NOTDEFINED"};let Am=eo;e.IfcTransformerTypeEnum=Am;let ME=class{};ME.CONTINUOUS={type:3,value:"CONTINUOUS"},ME.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},ME.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},ME.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"};let oI=ME;e.IfcTransitionCode=oI;let $o=class{};$o.CRANEWAY={type:3,value:"CRANEWAY"},$o.ELEVATOR={type:3,value:"ELEVATOR"},$o.ESCALATOR={type:3,value:"ESCALATOR"},$o.HAULINGGEAR={type:3,value:"HAULINGGEAR"},$o.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},$o.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},$o.USERDEFINED={type:3,value:"USERDEFINED"},$o.NOTDEFINED={type:3,value:"NOTDEFINED"};let KN=$o;e.IfcTransportElementTypeEnum=KN;let ca=class{};ca.CARTESIAN={type:3,value:"CARTESIAN"},ca.PARAMETER={type:3,value:"PARAMETER"},ca.UNSPECIFIED={type:3,value:"UNSPECIFIED"};let Dm=ca;e.IfcTrimmingPreference=Dm;let hI=class{};hI.FINNED={type:3,value:"FINNED"},hI.USERDEFINED={type:3,value:"USERDEFINED"},hI.NOTDEFINED={type:3,value:"NOTDEFINED"};let ZN=hI;e.IfcTubeBundleTypeEnum=ZN;let Ae=class{};Ae.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Ae.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Ae.AREAUNIT={type:3,value:"AREAUNIT"},Ae.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Ae.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Ae.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Ae.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Ae.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Ae.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Ae.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Ae.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Ae.FORCEUNIT={type:3,value:"FORCEUNIT"},Ae.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Ae.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Ae.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Ae.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Ae.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Ae.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Ae.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Ae.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Ae.MASSUNIT={type:3,value:"MASSUNIT"},Ae.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Ae.POWERUNIT={type:3,value:"POWERUNIT"},Ae.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Ae.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Ae.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Ae.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Ae.TIMEUNIT={type:3,value:"TIMEUNIT"},Ae.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Ae.USERDEFINED={type:3,value:"USERDEFINED"};let Om=Ae;e.IfcUnitEnum=Om;let $r=class{};$r.ALARMPANEL={type:3,value:"ALARMPANEL"},$r.BASESTATIONCONTROLLER={type:3,value:"BASESTATIONCONTROLLER"},$r.COMBINED={type:3,value:"COMBINED"},$r.CONTROLPANEL={type:3,value:"CONTROLPANEL"},$r.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},$r.HUMIDISTAT={type:3,value:"HUMIDISTAT"},$r.INDICATORPANEL={type:3,value:"INDICATORPANEL"},$r.MIMICPANEL={type:3,value:"MIMICPANEL"},$r.THERMOSTAT={type:3,value:"THERMOSTAT"},$r.WEATHERSTATION={type:3,value:"WEATHERSTATION"},$r.USERDEFINED={type:3,value:"USERDEFINED"},$r.NOTDEFINED={type:3,value:"NOTDEFINED"};let _T=$r;e.IfcUnitaryControlElementTypeEnum=_T;let so=class{};so.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},so.AIRHANDLER={type:3,value:"AIRHANDLER"},so.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},so.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},so.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},so.USERDEFINED={type:3,value:"USERDEFINED"},so.NOTDEFINED={type:3,value:"NOTDEFINED"};let qN=so;e.IfcUnitaryEquipmentTypeEnum=qN;let Es=class{};Es.AIRRELEASE={type:3,value:"AIRRELEASE"},Es.ANTIVACUUM={type:3,value:"ANTIVACUUM"},Es.CHANGEOVER={type:3,value:"CHANGEOVER"},Es.CHECK={type:3,value:"CHECK"},Es.COMMISSIONING={type:3,value:"COMMISSIONING"},Es.DIVERTING={type:3,value:"DIVERTING"},Es.DOUBLECHECK={type:3,value:"DOUBLECHECK"},Es.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},Es.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},Es.FAUCET={type:3,value:"FAUCET"},Es.FLUSHING={type:3,value:"FLUSHING"},Es.GASCOCK={type:3,value:"GASCOCK"},Es.GASTAP={type:3,value:"GASTAP"},Es.ISOLATING={type:3,value:"ISOLATING"},Es.MIXING={type:3,value:"MIXING"},Es.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},Es.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},Es.REGULATING={type:3,value:"REGULATING"},Es.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},Es.STEAMTRAP={type:3,value:"STEAMTRAP"},Es.STOPCOCK={type:3,value:"STOPCOCK"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"};let jN=Es;e.IfcValveTypeEnum=jN;let qn=class{};qn.CARGO={type:3,value:"CARGO"},qn.ROLLINGSTOCK={type:3,value:"ROLLINGSTOCK"},qn.VEHICLE={type:3,value:"VEHICLE"},qn.VEHICLEAIR={type:3,value:"VEHICLEAIR"},qn.VEHICLEMARINE={type:3,value:"VEHICLEMARINE"},qn.VEHICLETRACKED={type:3,value:"VEHICLETRACKED"},qn.VEHICLEWHEELED={type:3,value:"VEHICLEWHEELED"},qn.USERDEFINED={type:3,value:"USERDEFINED"},qn.NOTDEFINED={type:3,value:"NOTDEFINED"};let gT=qn;e.IfcVehicleTypeEnum=gT;let Jo=class{};Jo.AXIAL_YIELD={type:3,value:"AXIAL_YIELD"},Jo.BENDING_YIELD={type:3,value:"BENDING_YIELD"},Jo.FRICTION={type:3,value:"FRICTION"},Jo.RUBBER={type:3,value:"RUBBER"},Jo.SHEAR_YIELD={type:3,value:"SHEAR_YIELD"},Jo.VISCOUS={type:3,value:"VISCOUS"},Jo.USERDEFINED={type:3,value:"USERDEFINED"},Jo.NOTDEFINED={type:3,value:"NOTDEFINED"};let zh=Jo;e.IfcVibrationDamperTypeEnum=zh;let Xu=class{};Xu.BASE={type:3,value:"BASE"},Xu.COMPRESSION={type:3,value:"COMPRESSION"},Xu.SPRING={type:3,value:"SPRING"},Xu.USERDEFINED={type:3,value:"USERDEFINED"},Xu.NOTDEFINED={type:3,value:"NOTDEFINED"};let QN=Xu;e.IfcVibrationIsolatorTypeEnum=QN;let Gl=class{};Gl.BOUNDARY={type:3,value:"BOUNDARY"},Gl.CLEARANCE={type:3,value:"CLEARANCE"},Gl.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},Gl.USERDEFINED={type:3,value:"USERDEFINED"},Gl.NOTDEFINED={type:3,value:"NOTDEFINED"};let LT=Gl;e.IfcVirtualElementTypeEnum=LT;let jn=class{};jn.CHAMFER={type:3,value:"CHAMFER"},jn.CUTOUT={type:3,value:"CUTOUT"},jn.EDGE={type:3,value:"EDGE"},jn.HOLE={type:3,value:"HOLE"},jn.MITER={type:3,value:"MITER"},jn.NOTCH={type:3,value:"NOTCH"},jn.USERDEFINED={type:3,value:"USERDEFINED"},jn.NOTDEFINED={type:3,value:"NOTDEFINED"};let $N=jn;e.IfcVoidingFeatureTypeEnum=$N;let De=class{};De.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},De.MOVABLE={type:3,value:"MOVABLE"},De.PARAPET={type:3,value:"PARAPET"},De.PARTITIONING={type:3,value:"PARTITIONING"},De.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},De.POLYGONAL={type:3,value:"POLYGONAL"},De.RETAININGWALL={type:3,value:"RETAININGWALL"},De.SHEAR={type:3,value:"SHEAR"},De.SOLIDWALL={type:3,value:"SOLIDWALL"},De.STANDARD={type:3,value:"STANDARD"},De.WAVEWALL={type:3,value:"WAVEWALL"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"};let Fl=De;e.IfcWallTypeEnum=Fl;let io=class{};io.FLOORTRAP={type:3,value:"FLOORTRAP"},io.FLOORWASTE={type:3,value:"FLOORWASTE"},io.GULLYSUMP={type:3,value:"GULLYSUMP"},io.GULLYTRAP={type:3,value:"GULLYTRAP"},io.ROOFDRAIN={type:3,value:"ROOFDRAIN"},io.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},io.WASTETRAP={type:3,value:"WASTETRAP"},io.USERDEFINED={type:3,value:"USERDEFINED"},io.NOTDEFINED={type:3,value:"NOTDEFINED"};let tp=io;e.IfcWasteTerminalTypeEnum=tp;let Qn=class{};Qn.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Qn.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Qn.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Qn.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Qn.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Qn.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Qn.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Qn.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Qn.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Qn.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Qn.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Qn.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Qn.TOPHUNG={type:3,value:"TOPHUNG"},Qn.NOTDEFINED={type:3,value:"NOTDEFINED"};let lI=Qn;e.IfcWindowPanelOperationEnum=lI;let Jr=class{};Jr.BOTTOM={type:3,value:"BOTTOM"},Jr.LEFT={type:3,value:"LEFT"},Jr.MIDDLE={type:3,value:"MIDDLE"},Jr.RIGHT={type:3,value:"RIGHT"},Jr.TOP={type:3,value:"TOP"},Jr.NOTDEFINED={type:3,value:"NOTDEFINED"};let JN=Jr;e.IfcWindowPanelPositionEnum=JN;let no=class{};no.LIGHTDOME={type:3,value:"LIGHTDOME"},no.SKYLIGHT={type:3,value:"SKYLIGHT"},no.WINDOW={type:3,value:"WINDOW"},no.USERDEFINED={type:3,value:"USERDEFINED"},no.NOTDEFINED={type:3,value:"NOTDEFINED"};let XN=no;e.IfcWindowTypeEnum=XN;let Oc=class{};Oc.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},Oc.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},Oc.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},Oc.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},Oc.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},Oc.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},Oc.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},Oc.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},Oc.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},Oc.USERDEFINED={type:3,value:"USERDEFINED"},Oc.NOTDEFINED={type:3,value:"NOTDEFINED"};let tA=Oc;e.IfcWindowTypePartitioningEnum=tA;let ep=class{};ep.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},ep.SECONDSHIFT={type:3,value:"SECONDSHIFT"},ep.THIRDSHIFT={type:3,value:"THIRDSHIFT"},ep.USERDEFINED={type:3,value:"USERDEFINED"},ep.NOTDEFINED={type:3,value:"NOTDEFINED"};let eA=ep;e.IfcWorkCalendarTypeEnum=eA;let Yh=class{};Yh.ACTUAL={type:3,value:"ACTUAL"},Yh.BASELINE={type:3,value:"BASELINE"},Yh.PLANNED={type:3,value:"PLANNED"},Yh.USERDEFINED={type:3,value:"USERDEFINED"},Yh.NOTDEFINED={type:3,value:"NOTDEFINED"};let sA=Yh;e.IfcWorkPlanTypeEnum=sA;let sp=class{};sp.ACTUAL={type:3,value:"ACTUAL"},sp.BASELINE={type:3,value:"BASELINE"},sp.PLANNED={type:3,value:"PLANNED"},sp.USERDEFINED={type:3,value:"USERDEFINED"},sp.NOTDEFINED={type:3,value:"NOTDEFINED"};let iA=sp;e.IfcWorkScheduleTypeEnum=iA;class xT extends lt{constructor(r,a,h){super(),this.Role=r,this.UserDefinedRole=a,this.Description=h,this.type=3630933823}}e.IfcActorRole=xT;class uI extends lt{constructor(r,a,h){super(),this.Purpose=r,this.Description=a,this.UserDefinedPurpose=h,this.type=618182010}}e.IfcAddress=uI;class kh extends lt{constructor(r,a){super(),this.StartTag=r,this.EndTag=a,this.type=2879124712}}e.IfcAlignmentParameterSegment=kh;class nA extends kh{constructor(r,a,h,p,y,m,N,O,C){super(r,a),this.StartTag=r,this.EndTag=a,this.StartDistAlong=h,this.HorizontalLength=p,this.StartHeight=y,this.StartGradient=m,this.EndGradient=N,this.RadiusOfCurvature=O,this.PredefinedType=C,this.type=3633395639}}e.IfcAlignmentVerticalSegment=nA;class ro extends lt{constructor(r,a,h,p){super(),this.ApplicationDeveloper=r,this.Version=a,this.ApplicationFullName=h,this.ApplicationIdentifier=p,this.type=639542469}}e.IfcApplication=ro;class UE extends lt{constructor(r,a,h,p,y,m,N,O,C,K){super(),this.Name=r,this.Description=a,this.AppliedValue=h,this.UnitBasis=p,this.ApplicableDate=y,this.FixedUntilDate=m,this.Category=N,this.Condition=O,this.ArithmeticOperator=C,this.Components=K,this.type=411424972}}e.IfcAppliedValue=UE;class rA extends lt{constructor(r,a,h,p,y,m,N,O,C){super(),this.Identifier=r,this.Name=a,this.Description=h,this.TimeOfApproval=p,this.Status=y,this.Level=m,this.Qualifier=N,this.RequestingApproval=O,this.GivingApproval=C,this.type=130549933}}e.IfcApproval=rA;class vc extends lt{constructor(r){super(),this.Name=r,this.type=4037036970}}e.IfcBoundaryCondition=vc;class cA extends vc{constructor(r,a,h,p,y,m,N){super(r),this.Name=r,this.TranslationalStiffnessByLengthX=a,this.TranslationalStiffnessByLengthY=h,this.TranslationalStiffnessByLengthZ=p,this.RotationalStiffnessByLengthX=y,this.RotationalStiffnessByLengthY=m,this.RotationalStiffnessByLengthZ=N,this.type=1560379544}}e.IfcBoundaryEdgeCondition=cA;class PT extends vc{constructor(r,a,h,p){super(r),this.Name=r,this.TranslationalStiffnessByAreaX=a,this.TranslationalStiffnessByAreaY=h,this.TranslationalStiffnessByAreaZ=p,this.type=3367102660}}e.IfcBoundaryFaceCondition=PT;class MT extends vc{constructor(r,a,h,p,y,m,N){super(r),this.Name=r,this.TranslationalStiffnessX=a,this.TranslationalStiffnessY=h,this.TranslationalStiffnessZ=p,this.RotationalStiffnessX=y,this.RotationalStiffnessY=m,this.RotationalStiffnessZ=N,this.type=1387855156}}e.IfcBoundaryNodeCondition=MT;class pI extends MT{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.Name=r,this.TranslationalStiffnessX=a,this.TranslationalStiffnessY=h,this.TranslationalStiffnessZ=p,this.RotationalStiffnessX=y,this.RotationalStiffnessY=m,this.RotationalStiffnessZ=N,this.WarpingStiffness=O,this.type=2069777674}}e.IfcBoundaryNodeConditionWarping=pI;class Vl extends lt{constructor(){super(),this.type=2859738748}}e.IfcConnectionGeometry=Vl;class vm extends Vl{constructor(r,a){super(),this.PointOnRelatingElement=r,this.PointOnRelatedElement=a,this.type=2614616156}}e.IfcConnectionPointGeometry=vm;class UT extends Vl{constructor(r,a){super(),this.SurfaceOnRelatingElement=r,this.SurfaceOnRelatedElement=a,this.type=2732653382}}e.IfcConnectionSurfaceGeometry=UT;class ip extends Vl{constructor(r,a){super(),this.VolumeOnRelatingElement=r,this.VolumeOnRelatedElement=a,this.type=775493141}}e.IfcConnectionVolumeGeometry=ip;class CT extends lt{constructor(r,a,h,p,y,m,N){super(),this.Name=r,this.Description=a,this.ConstraintGrade=h,this.ConstraintSource=p,this.CreatingActor=y,this.CreationTime=m,this.UserDefinedGrade=N,this.type=1959218052}}e.IfcConstraint=CT;class EI extends lt{constructor(r,a){super(),this.SourceCRS=r,this.TargetCRS=a,this.type=1785450214}}e.IfcCoordinateOperation=EI;class fI extends lt{constructor(r,a,h){super(),this.Name=r,this.Description=a,this.GeodeticDatum=h,this.type=1466758467}}e.IfcCoordinateReferenceSystem=fI;class _m extends UE{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C,K),this.Name=r,this.Description=a,this.AppliedValue=h,this.UnitBasis=p,this.ApplicableDate=y,this.FixedUntilDate=m,this.Category=N,this.Condition=O,this.ArithmeticOperator=C,this.Components=K,this.type=602808272}}e.IfcCostValue=_m;class Ve extends lt{constructor(r,a,h,p){super(),this.Elements=r,this.UnitType=a,this.UserDefinedType=h,this.Name=p,this.type=1765591967}}e.IfcDerivedUnit=Ve;class aA extends lt{constructor(r,a){super(),this.Unit=r,this.Exponent=a,this.type=1045800335}}e.IfcDerivedUnitElement=aA;class gm extends lt{constructor(r,a,h,p,y,m,N){super(),this.LengthExponent=r,this.MassExponent=a,this.TimeExponent=h,this.ElectricCurrentExponent=p,this.ThermodynamicTemperatureExponent=y,this.AmountOfSubstanceExponent=m,this.LuminousIntensityExponent=N,this.type=2949456006}}e.IfcDimensionalExponents=gm;class II extends lt{constructor(){super(),this.type=4294318154}}e.IfcExternalInformation=II;class co extends lt{constructor(r,a,h){super(),this.Location=r,this.Identification=a,this.Name=h,this.type=3200245327}}e.IfcExternalReference=co;class oA extends co{constructor(r,a,h){super(r,a,h),this.Location=r,this.Identification=a,this.Name=h,this.type=2242383968}}e.IfcExternallyDefinedHatchStyle=oA;class yI extends co{constructor(r,a,h){super(r,a,h),this.Location=r,this.Identification=a,this.Name=h,this.type=1040185647}}e.IfcExternallyDefinedSurfaceStyle=yI;class hA extends co{constructor(r,a,h){super(r,a,h),this.Location=r,this.Identification=a,this.Name=h,this.type=3548104201}}e.IfcExternallyDefinedTextFont=hA;class CE extends fI{constructor(r,a,h,p,y,m){super(r,a,h),this.Name=r,this.Description=a,this.GeodeticDatum=h,this.PrimeMeridian=p,this.AngleUnit=y,this.HeightUnit=m,this.type=917726184}}e.IfcGeographicCRS=CE;class lA extends lt{constructor(r,a,h){super(),this.AxisTag=r,this.AxisCurve=a,this.SameSense=h,this.type=852622518}}e.IfcGridAxis=lA;class Lm extends lt{constructor(r,a){super(),this.TimeStamp=r,this.ListValues=a,this.type=3020489413}}e.IfcIrregularTimeSeriesValue=Lm;class uA extends II{constructor(r,a,h,p,y,m){super(),this.Name=r,this.Version=a,this.Publisher=h,this.VersionDate=p,this.Location=y,this.Description=m,this.type=2655187982}}e.IfcLibraryInformation=uA;class xm extends co{constructor(r,a,h,p,y,m){super(r,a,h),this.Location=r,this.Identification=a,this.Name=h,this.Description=p,this.Language=y,this.ReferencedLibrary=m,this.type=3452421091}}e.IfcLibraryReference=xm;class pA extends lt{constructor(r,a,h){super(),this.MainPlaneAngle=r,this.SecondaryPlaneAngle=a,this.LuminousIntensity=h,this.type=4162380809}}e.IfcLightDistributionData=pA;class EA extends lt{constructor(r,a){super(),this.LightDistributionCurve=r,this.DistributionData=a,this.type=1566485204}}e.IfcLightIntensityDistribution=EA;class bE extends EI{constructor(r,a,h,p,y,m,N,O){super(r,a),this.SourceCRS=r,this.TargetCRS=a,this.Eastings=h,this.Northings=p,this.OrthogonalHeight=y,this.XAxisAbscissa=m,this.XAxisOrdinate=N,this.Scale=O,this.type=3057273783}}e.IfcMapConversion=bE;class TI extends bE{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O),this.SourceCRS=r,this.TargetCRS=a,this.Eastings=h,this.Northings=p,this.OrthogonalHeight=y,this.XAxisAbscissa=m,this.XAxisOrdinate=N,this.Scale=O,this.FactorX=C,this.FactorY=K,this.FactorZ=It,this.type=4105526436}}e.IfcMapConversionScaled=TI;class fA extends lt{constructor(r,a){super(),this.MaterialClassifications=r,this.ClassifiedMaterial=a,this.type=1847130766}}e.IfcMaterialClassificationRelationship=fA;class Kh extends lt{constructor(){super(),this.type=760658860}}e.IfcMaterialDefinition=Kh;class dI extends Kh{constructor(r,a,h,p,y,m,N){super(),this.Material=r,this.LayerThickness=a,this.IsVentilated=h,this.Name=p,this.Description=y,this.Category=m,this.Priority=N,this.type=248100487}}e.IfcMaterialLayer=dI;class Pm extends Kh{constructor(r,a,h){super(),this.MaterialLayers=r,this.LayerSetName=a,this.Description=h,this.type=3303938423}}e.IfcMaterialLayerSet=Pm;class IA extends dI{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N),this.Material=r,this.LayerThickness=a,this.IsVentilated=h,this.Name=p,this.Description=y,this.Category=m,this.Priority=N,this.OffsetDirection=O,this.OffsetValues=C,this.type=1847252529}}e.IfcMaterialLayerWithOffsets=IA;class bT extends lt{constructor(r){super(),this.Materials=r,this.type=2199411900}}e.IfcMaterialList=bT;class Dr extends Kh{constructor(r,a,h,p,y,m){super(),this.Name=r,this.Description=a,this.Material=h,this.Profile=p,this.Priority=y,this.Category=m,this.type=2235152071}}e.IfcMaterialProfile=Dr;class Zh extends Kh{constructor(r,a,h,p){super(),this.Name=r,this.Description=a,this.MaterialProfiles=h,this.CompositeProfile=p,this.type=164193824}}e.IfcMaterialProfileSet=Zh;class yA extends Dr{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m),this.Name=r,this.Description=a,this.Material=h,this.Profile=p,this.Priority=y,this.Category=m,this.OffsetValues=N,this.type=552965576}}e.IfcMaterialProfileWithOffsets=yA;class wT extends lt{constructor(){super(),this.type=1507914824}}e.IfcMaterialUsageDefinition=wT;class wE extends lt{constructor(r,a){super(),this.ValueComponent=r,this.UnitComponent=a,this.type=2597039031}}e.IfcMeasureWithUnit=wE;class Mm extends CT{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N),this.Name=r,this.Description=a,this.ConstraintGrade=h,this.ConstraintSource=p,this.CreatingActor=y,this.CreationTime=m,this.UserDefinedGrade=N,this.Benchmark=O,this.ValueSource=C,this.DataValue=K,this.ReferencePath=It,this.type=3368373690}}e.IfcMetric=Mm;class mI extends lt{constructor(r){super(),this.Currency=r,this.type=2706619895}}e.IfcMonetaryUnit=mI;class RI extends lt{constructor(r,a){super(),this.Dimensions=r,this.UnitType=a,this.type=1918398963}}e.IfcNamedUnit=RI;class SI extends lt{constructor(r){super(),this.PlacementRelTo=r,this.type=3701648758}}e.IfcObjectPlacement=SI;class Um extends CT{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N),this.Name=r,this.Description=a,this.ConstraintGrade=h,this.ConstraintSource=p,this.CreatingActor=y,this.CreationTime=m,this.UserDefinedGrade=N,this.BenchmarkValues=O,this.LogicalAggregator=C,this.ObjectiveQualifier=K,this.UserDefinedQualifier=It,this.type=2251480897}}e.IfcObjective=Um;class Cm extends lt{constructor(r,a,h,p,y){super(),this.Identification=r,this.Name=a,this.Description=h,this.Roles=p,this.Addresses=y,this.type=4251960020}}e.IfcOrganization=Cm;class bm extends lt{constructor(r,a,h,p,y,m,N,O){super(),this.OwningUser=r,this.OwningApplication=a,this.State=h,this.ChangeAction=p,this.LastModifiedDate=y,this.LastModifyingUser=m,this.LastModifyingApplication=N,this.CreationDate=O,this.type=1207048766}}e.IfcOwnerHistory=bm;class wm extends lt{constructor(r,a,h,p,y,m,N,O){super(),this.Identification=r,this.FamilyName=a,this.GivenName=h,this.MiddleNames=p,this.PrefixTitles=y,this.SuffixTitles=m,this.Roles=N,this.Addresses=O,this.type=2077209135}}e.IfcPerson=wm;class TA extends lt{constructor(r,a,h){super(),this.ThePerson=r,this.TheOrganization=a,this.Roles=h,this.type=101040310}}e.IfcPersonAndOrganization=TA;class BT extends lt{constructor(r,a){super(),this.Name=r,this.Description=a,this.type=2483315170}}e.IfcPhysicalQuantity=BT;class qh extends BT{constructor(r,a,h){super(r,a),this.Name=r,this.Description=a,this.Unit=h,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=qh;class dA extends uI{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h),this.Purpose=r,this.Description=a,this.UserDefinedPurpose=h,this.InternalLocation=p,this.AddressLines=y,this.PostalBox=m,this.Town=N,this.Region=O,this.PostalCode=C,this.Country=K,this.type=3355820592}}e.IfcPostalAddress=dA;class qs extends lt{constructor(){super(),this.type=677532197}}e.IfcPresentationItem=qs;class Bm extends lt{constructor(r,a,h,p){super(),this.Name=r,this.Description=a,this.AssignedItems=h,this.Identifier=p,this.type=2022622350}}e.IfcPresentationLayerAssignment=Bm;class GT extends Bm{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p),this.Name=r,this.Description=a,this.AssignedItems=h,this.Identifier=p,this.LayerOn=y,this.LayerFrozen=m,this.LayerBlocked=N,this.LayerStyles=O,this.type=1304840413}}e.IfcPresentationLayerWithStyle=GT;class BE extends lt{constructor(r){super(),this.Name=r,this.type=3119450353}}e.IfcPresentationStyle=BE;class Ki extends lt{constructor(r,a,h){super(),this.Name=r,this.Description=a,this.Representations=h,this.type=2095639259}}e.IfcProductRepresentation=Ki;class Hl extends lt{constructor(r,a){super(),this.ProfileType=r,this.ProfileName=a,this.type=3958567839}}e.IfcProfileDef=Hl;class Gm extends fI{constructor(r,a,h,p,y,m,N){super(r,a,h),this.Name=r,this.Description=a,this.GeodeticDatum=h,this.VerticalDatum=p,this.MapProjection=y,this.MapZone=m,this.MapUnit=N,this.type=3843373140}}e.IfcProjectedCRS=Gm;class Wl extends lt{constructor(){super(),this.type=986844984}}e.IfcPropertyAbstraction=Wl;class mA extends Wl{constructor(r,a,h){super(),this.Name=r,this.EnumerationValues=a,this.Unit=h,this.type=3710013099}}e.IfcPropertyEnumeration=mA;class RA extends qh{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.Description=a,this.Unit=h,this.AreaValue=p,this.Formula=y,this.type=2044713172}}e.IfcQuantityArea=RA;class np extends qh{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.Description=a,this.Unit=h,this.CountValue=p,this.Formula=y,this.type=2093928680}}e.IfcQuantityCount=np;class SA extends qh{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.Description=a,this.Unit=h,this.LengthValue=p,this.Formula=y,this.type=931644368}}e.IfcQuantityLength=SA;class NA extends qh{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.Description=a,this.Unit=h,this.NumberValue=p,this.Formula=y,this.type=2691318326}}e.IfcQuantityNumber=NA;class Fm extends qh{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.Description=a,this.Unit=h,this.TimeValue=p,this.Formula=y,this.type=3252649465}}e.IfcQuantityTime=Fm;class AA extends qh{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.Description=a,this.Unit=h,this.VolumeValue=p,this.Formula=y,this.type=2405470396}}e.IfcQuantityVolume=AA;class DA extends qh{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.Description=a,this.Unit=h,this.WeightValue=p,this.Formula=y,this.type=825690147}}e.IfcQuantityWeight=DA;class GE extends lt{constructor(r,a,h,p,y,m,N,O){super(),this.RecurrenceType=r,this.DayComponent=a,this.WeekdayComponent=h,this.MonthComponent=p,this.Position=y,this.Interval=m,this.Occurrences=N,this.TimePeriods=O,this.type=3915482550}}e.IfcRecurrencePattern=GE;class NI extends lt{constructor(r,a,h,p,y){super(),this.TypeIdentifier=r,this.AttributeIdentifier=a,this.InstanceName=h,this.ListPositions=p,this.InnerReference=y,this.type=2433181523}}e.IfcReference=NI;class FT extends lt{constructor(r,a,h,p){super(),this.ContextOfItems=r,this.RepresentationIdentifier=a,this.RepresentationType=h,this.Items=p,this.type=1076942058}}e.IfcRepresentation=FT;class Vm extends lt{constructor(r,a){super(),this.ContextIdentifier=r,this.ContextType=a,this.type=3377609919}}e.IfcRepresentationContext=Vm;class zl extends lt{constructor(){super(),this.type=3008791417}}e.IfcRepresentationItem=zl;class OA extends lt{constructor(r,a){super(),this.MappingOrigin=r,this.MappedRepresentation=a,this.type=1660063152}}e.IfcRepresentationMap=OA;class _c extends lt{constructor(r,a){super(),this.Name=r,this.Description=a,this.type=2439245199}}e.IfcResourceLevelRelationship=_c;class Hm extends EI{constructor(r,a,h,p,y){super(r,a),this.SourceCRS=r,this.TargetCRS=a,this.FirstCoordinate=h,this.SecondCoordinate=p,this.Height=y,this.type=1794013214}}e.IfcRigidOperation=Hm;class FE extends lt{constructor(r,a,h,p){super(),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=2341007311}}e.IfcRoot=FE;class Wm extends RI{constructor(r,a,h){super(new Io(0),r),this.UnitType=r,this.Prefix=a,this.Name=h,this.type=448429030}}e.IfcSIUnit=Wm;class Yl extends lt{constructor(r,a,h){super(),this.Name=r,this.DataOrigin=a,this.UserDefinedDataOrigin=h,this.type=1054537805}}e.IfcSchedulingTime=Yl;class vA extends lt{constructor(r,a,h,p,y){super(),this.ShapeRepresentations=r,this.Name=a,this.Description=h,this.ProductDefinitional=p,this.PartOfProductDefinitionShape=y,this.type=867548509}}e.IfcShapeAspect=vA;class AI extends FT{constructor(r,a,h,p){super(r,a,h,p),this.ContextOfItems=r,this.RepresentationIdentifier=a,this.RepresentationType=h,this.Items=p,this.type=3982875396}}e.IfcShapeModel=AI;class He extends AI{constructor(r,a,h,p){super(r,a,h,p),this.ContextOfItems=r,this.RepresentationIdentifier=a,this.RepresentationType=h,this.Items=p,this.type=4240577450}}e.IfcShapeRepresentation=He;class VT extends lt{constructor(r){super(),this.Name=r,this.type=2273995522}}e.IfcStructuralConnectionCondition=VT;class kl extends lt{constructor(r){super(),this.Name=r,this.type=2162789131}}e.IfcStructuralLoad=kl;class _A extends kl{constructor(r,a,h){super(r),this.Name=r,this.Values=a,this.Locations=h,this.type=3478079324}}e.IfcStructuralLoadConfiguration=_A;class Kl extends kl{constructor(r){super(r),this.Name=r,this.type=609421318}}e.IfcStructuralLoadOrResult=Kl;class rp extends Kl{constructor(r){super(r),this.Name=r,this.type=2525727697}}e.IfcStructuralLoadStatic=rp;class zm extends rp{constructor(r,a,h,p){super(r),this.Name=r,this.DeltaTConstant=a,this.DeltaTY=h,this.DeltaTZ=p,this.type=3408363356}}e.IfcStructuralLoadTemperature=zm;class DI extends FT{constructor(r,a,h,p){super(r,a,h,p),this.ContextOfItems=r,this.RepresentationIdentifier=a,this.RepresentationType=h,this.Items=p,this.type=2830218821}}e.IfcStyleModel=DI;class gA extends zl{constructor(r,a,h){super(),this.Item=r,this.Styles=a,this.Name=h,this.type=3958052878}}e.IfcStyledItem=gA;class LA extends DI{constructor(r,a,h,p){super(r,a,h,p),this.ContextOfItems=r,this.RepresentationIdentifier=a,this.RepresentationType=h,this.Items=p,this.type=3049322572}}e.IfcStyledRepresentation=LA;class xA extends Kl{constructor(r,a,h,p){super(r),this.Name=r,this.SurfaceReinforcement1=a,this.SurfaceReinforcement2=h,this.ShearReinforcement=p,this.type=2934153892}}e.IfcSurfaceReinforcementArea=xA;class cp extends BE{constructor(r,a,h){super(r),this.Name=r,this.Side=a,this.Styles=h,this.type=1300840506}}e.IfcSurfaceStyle=cp;class OI extends qs{constructor(r,a,h,p){super(),this.DiffuseTransmissionColour=r,this.DiffuseReflectionColour=a,this.TransmissionColour=h,this.ReflectanceColour=p,this.type=3303107099}}e.IfcSurfaceStyleLighting=OI;class PA extends qs{constructor(r,a){super(),this.RefractionIndex=r,this.DispersionFactor=a,this.type=1607154358}}e.IfcSurfaceStyleRefraction=PA;class Ym extends qs{constructor(r,a){super(),this.SurfaceColour=r,this.Transparency=a,this.type=846575682}}e.IfcSurfaceStyleShading=Ym;class km extends qs{constructor(r){super(),this.Textures=r,this.type=1351298697}}e.IfcSurfaceStyleWithTextures=km;class vI extends qs{constructor(r,a,h,p,y){super(),this.RepeatS=r,this.RepeatT=a,this.Mode=h,this.TextureTransform=p,this.Parameter=y,this.type=626085974}}e.IfcSurfaceTexture=vI;class MA extends lt{constructor(r,a,h){super(),this.Name=r,this.Rows=a,this.Columns=h,this.type=985171141}}e.IfcTable=MA;class _I extends lt{constructor(r,a,h,p,y){super(),this.Identifier=r,this.Name=a,this.Description=h,this.Unit=p,this.ReferencePath=y,this.type=2043862942}}e.IfcTableColumn=_I;class UA extends lt{constructor(r,a){super(),this.RowCells=r,this.IsHeading=a,this.type=531007025}}e.IfcTableRow=UA;class gI extends Yl{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc,xp,rS,cS){super(r,a,h),this.Name=r,this.DataOrigin=a,this.UserDefinedDataOrigin=h,this.DurationType=p,this.ScheduleDuration=y,this.ScheduleStart=m,this.ScheduleFinish=N,this.EarlyStart=O,this.EarlyFinish=C,this.LateStart=K,this.LateFinish=It,this.FreeFloat=_t,this.TotalFloat=qt,this.IsCritical=Ze,this.StatusTime=gi,this.ActualDuration=Nn,this.ActualStart=bc,this.ActualFinish=xp,this.RemainingTime=rS,this.Completion=cS,this.type=1549132990}}e.IfcTaskTime=gI;class CA extends gI{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc,xp,rS,cS,G5){super(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc,xp,rS,cS),this.Name=r,this.DataOrigin=a,this.UserDefinedDataOrigin=h,this.DurationType=p,this.ScheduleDuration=y,this.ScheduleStart=m,this.ScheduleFinish=N,this.EarlyStart=O,this.EarlyFinish=C,this.LateStart=K,this.LateFinish=It,this.FreeFloat=_t,this.TotalFloat=qt,this.IsCritical=Ze,this.StatusTime=gi,this.ActualDuration=Nn,this.ActualStart=bc,this.ActualFinish=xp,this.RemainingTime=rS,this.Completion=cS,this.Recurrence=G5,this.type=2771591690}}e.IfcTaskTimeRecurring=CA;class bA extends uI{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h),this.Purpose=r,this.Description=a,this.UserDefinedPurpose=h,this.TelephoneNumbers=p,this.FacsimileNumbers=y,this.PagerNumber=m,this.ElectronicMailAddresses=N,this.WWWHomePageURL=O,this.MessagingIDs=C,this.type=912023232}}e.IfcTelecomAddress=bA;class wA extends BE{constructor(r,a,h,p,y){super(r),this.Name=r,this.TextCharacterAppearance=a,this.TextStyle=h,this.TextFontStyle=p,this.ModelOrDraughting=y,this.type=1447204868}}e.IfcTextStyle=wA;class BA extends qs{constructor(r,a){super(),this.Colour=r,this.BackgroundColour=a,this.type=2636378356}}e.IfcTextStyleForDefinedFont=BA;class Km extends qs{constructor(r,a,h,p,y,m,N){super(),this.TextIndent=r,this.TextAlign=a,this.TextDecoration=h,this.LetterSpacing=p,this.WordSpacing=y,this.TextTransform=m,this.LineHeight=N,this.type=1640371178}}e.IfcTextStyleTextModel=Km;class LI extends qs{constructor(r){super(),this.Maps=r,this.type=280115917}}e.IfcTextureCoordinate=LI;class Zm extends LI{constructor(r,a,h){super(r),this.Maps=r,this.Mode=a,this.Parameter=h,this.type=1742049831}}e.IfcTextureCoordinateGenerator=Zm;class xI extends lt{constructor(r,a){super(),this.TexCoordIndex=r,this.TexCoordsOf=a,this.type=222769930}}e.IfcTextureCoordinateIndices=xI;class GA extends xI{constructor(r,a,h){super(r,a),this.TexCoordIndex=r,this.TexCoordsOf=a,this.InnerTexCoordIndices=h,this.type=1010789467}}e.IfcTextureCoordinateIndicesWithVoids=GA;class PI extends LI{constructor(r,a,h){super(r),this.Maps=r,this.Vertices=a,this.MappedTo=h,this.type=2552916305}}e.IfcTextureMap=PI;class FA extends qs{constructor(r){super(),this.Coordinates=r,this.type=1210645708}}e.IfcTextureVertex=FA;class VA extends qs{constructor(r){super(),this.TexCoordsList=r,this.type=3611470254}}e.IfcTextureVertexList=VA;class HT extends lt{constructor(r,a){super(),this.StartTime=r,this.EndTime=a,this.type=1199560280}}e.IfcTimePeriod=HT;class $n extends lt{constructor(r,a,h,p,y,m,N,O){super(),this.Name=r,this.Description=a,this.StartTime=h,this.EndTime=p,this.TimeSeriesDataType=y,this.DataOrigin=m,this.UserDefinedDataOrigin=N,this.Unit=O,this.type=3101149627}}e.IfcTimeSeries=$n;class HA extends lt{constructor(r){super(),this.ListValues=r,this.type=581633288}}e.IfcTimeSeriesValue=HA;class Xo extends zl{constructor(){super(),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Xo;class WA extends AI{constructor(r,a,h,p){super(r,a,h,p),this.ContextOfItems=r,this.RepresentationIdentifier=a,this.RepresentationType=h,this.Items=p,this.type=1735638870}}e.IfcTopologyRepresentation=WA;class VE extends lt{constructor(r){super(),this.Units=r,this.type=180925521}}e.IfcUnitAssignment=VE;class WT extends Xo{constructor(){super(),this.type=2799835756}}e.IfcVertex=WT;class MI extends WT{constructor(r){super(),this.VertexGeometry=r,this.type=1907098498}}e.IfcVertexPoint=MI;class zA extends lt{constructor(r,a){super(),this.IntersectingAxes=r,this.OffsetDistances=a,this.type=891718957}}e.IfcVirtualGridIntersection=zA;class YA extends lt{constructor(r,a){super(),this.WellKnownText=r,this.CoordinateReferenceSystem=a,this.type=1175146630}}e.IfcWellKnownText=YA;class ap extends Yl{constructor(r,a,h,p,y,m){super(r,a,h),this.Name=r,this.DataOrigin=a,this.UserDefinedDataOrigin=h,this.RecurrencePattern=p,this.StartDate=y,this.FinishDate=m,this.type=1236880293}}e.IfcWorkTime=ap;class kA extends kh{constructor(r,a,h,p,y,m,N,O,C){super(r,a),this.StartTag=r,this.EndTag=a,this.StartDistAlong=h,this.HorizontalLength=p,this.StartCantLeft=y,this.EndCantLeft=m,this.StartCantRight=N,this.EndCantRight=O,this.PredefinedType=C,this.type=3752311538}}e.IfcAlignmentCantSegment=kA;class th extends kh{constructor(r,a,h,p,y,m,N,O,C){super(r,a),this.StartTag=r,this.EndTag=a,this.StartPoint=h,this.StartDirection=p,this.StartRadiusOfCurvature=y,this.EndRadiusOfCurvature=m,this.SegmentLength=N,this.GravityCenterLineHeight=O,this.PredefinedType=C,this.type=536804194}}e.IfcAlignmentHorizontalSegment=th;class UI extends _c{constructor(r,a,h,p){super(r,a),this.Name=r,this.Description=a,this.RelatingApproval=h,this.RelatedApprovals=p,this.type=3869604511}}e.IfcApprovalRelationship=UI;class zT extends Hl{constructor(r,a,h){super(r,a),this.ProfileType=r,this.ProfileName=a,this.OuterCurve=h,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=zT;class qm extends Hl{constructor(r,a,h){super(r,a),this.ProfileType=r,this.ProfileName=a,this.Curve=h,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=qm;class KA extends zT{constructor(r,a,h,p){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.OuterCurve=h,this.InnerCurves=p,this.type=2705031697}}e.IfcArbitraryProfileDefWithVoids=KA;class YT extends vI{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.RepeatS=r,this.RepeatT=a,this.Mode=h,this.TextureTransform=p,this.Parameter=y,this.RasterFormat=m,this.RasterCode=N,this.type=616511568}}e.IfcBlobTexture=YT;class kT extends qm{constructor(r,a,h,p){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Curve=h,this.Thickness=p,this.type=3150382593}}e.IfcCenterLineProfileDef=kT;class ZA extends II{constructor(r,a,h,p,y,m,N){super(),this.Source=r,this.Edition=a,this.EditionDate=h,this.Name=p,this.Description=y,this.Specification=m,this.ReferenceTokens=N,this.type=747523909}}e.IfcClassification=ZA;class CI extends co{constructor(r,a,h,p,y,m){super(r,a,h),this.Location=r,this.Identification=a,this.Name=h,this.ReferencedSource=p,this.Description=y,this.Sort=m,this.type=647927063}}e.IfcClassificationReference=CI;class HE extends qs{constructor(r){super(),this.ColourList=r,this.type=3285139300}}e.IfcColourRgbList=HE;class KT extends qs{constructor(r){super(),this.Name=r,this.type=3264961684}}e.IfcColourSpecification=KT;class ZT extends Hl{constructor(r,a,h,p){super(r,a),this.ProfileType=r,this.ProfileName=a,this.Profiles=h,this.Label=p,this.type=1485152156}}e.IfcCompositeProfileDef=ZT;class qT extends Xo{constructor(r){super(),this.CfsFaces=r,this.type=370225590}}e.IfcConnectedFaceSet=qT;class qA extends Vl{constructor(r,a){super(),this.CurveOnRelatingElement=r,this.CurveOnRelatedElement=a,this.type=1981873012}}e.IfcConnectionCurveGeometry=qA;class Xr extends vm{constructor(r,a,h,p,y){super(r,a),this.PointOnRelatingElement=r,this.PointOnRelatedElement=a,this.EccentricityInX=h,this.EccentricityInY=p,this.EccentricityInZ=y,this.type=45288368}}e.IfcConnectionPointEccentricity=Xr;class jm extends RI{constructor(r,a,h){super(r,a),this.Dimensions=r,this.UnitType=a,this.Name=h,this.type=3050246964}}e.IfcContextDependentUnit=jm;class Qm extends RI{constructor(r,a,h,p){super(r,a),this.Dimensions=r,this.UnitType=a,this.Name=h,this.ConversionFactor=p,this.type=2889183280}}e.IfcConversionBasedUnit=Qm;class $m extends Qm{constructor(r,a,h,p,y){super(r,a,h,p),this.Dimensions=r,this.UnitType=a,this.Name=h,this.ConversionFactor=p,this.ConversionOffset=y,this.type=2713554722}}e.IfcConversionBasedUnitWithOffset=$m;class jA extends _c{constructor(r,a,h,p,y,m,N){super(r,a),this.Name=r,this.Description=a,this.RelatingMonetaryUnit=h,this.RelatedMonetaryUnit=p,this.ExchangeRate=y,this.RateDateTime=m,this.RateSource=N,this.type=539742890}}e.IfcCurrencyRelationship=jA;class QA extends BE{constructor(r,a,h,p,y){super(r),this.Name=r,this.CurveFont=a,this.CurveWidth=h,this.CurveColour=p,this.ModelOrDraughting=y,this.type=3800577675}}e.IfcCurveStyle=QA;class $A extends qs{constructor(r,a){super(),this.Name=r,this.PatternList=a,this.type=1105321065}}e.IfcCurveStyleFont=$A;class JA extends qs{constructor(r,a,h){super(),this.Name=r,this.CurveStyleFont=a,this.CurveFontScaling=h,this.type=2367409068}}e.IfcCurveStyleFontAndScaling=JA;class XA extends qs{constructor(r,a){super(),this.VisibleSegmentLength=r,this.InvisibleSegmentLength=a,this.type=3510044353}}e.IfcCurveStyleFontPattern=XA;class jh extends Hl{constructor(r,a,h,p,y){super(r,a),this.ProfileType=r,this.ProfileName=a,this.ParentProfile=h,this.Operator=p,this.Label=y,this.type=3632507154}}e.IfcDerivedProfileDef=jh;class jT extends II{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc){super(),this.Identification=r,this.Name=a,this.Description=h,this.Location=p,this.Purpose=y,this.IntendedUse=m,this.Scope=N,this.Revision=O,this.DocumentOwner=C,this.Editors=K,this.CreationTime=It,this.LastRevisionTime=_t,this.ElectronicFormat=qt,this.ValidFrom=Ze,this.ValidUntil=gi,this.Confidentiality=Nn,this.Status=bc,this.type=1154170062}}e.IfcDocumentInformation=jT;class WE extends _c{constructor(r,a,h,p,y){super(r,a),this.Name=r,this.Description=a,this.RelatingDocument=h,this.RelatedDocuments=p,this.RelationshipType=y,this.type=770865208}}e.IfcDocumentInformationRelationship=WE;class tD extends co{constructor(r,a,h,p,y){super(r,a,h),this.Location=r,this.Identification=a,this.Name=h,this.Description=p,this.ReferencedDocument=y,this.type=3732053477}}e.IfcDocumentReference=tD;class zE extends Xo{constructor(r,a){super(),this.EdgeStart=r,this.EdgeEnd=a,this.type=3900360178}}e.IfcEdge=zE;class Jm extends zE{constructor(r,a,h,p){super(r,a),this.EdgeStart=r,this.EdgeEnd=a,this.EdgeGeometry=h,this.SameSense=p,this.type=476780140}}e.IfcEdgeCurve=Jm;class eD extends Yl{constructor(r,a,h,p,y,m,N){super(r,a,h),this.Name=r,this.DataOrigin=a,this.UserDefinedDataOrigin=h,this.ActualDate=p,this.EarlyDate=y,this.LateDate=m,this.ScheduleDate=N,this.type=211053100}}e.IfcEventTime=eD;class op extends Wl{constructor(r,a,h){super(),this.Name=r,this.Description=a,this.Properties=h,this.type=297599258}}e.IfcExtendedProperties=op;class Qh extends _c{constructor(r,a,h,p){super(r,a),this.Name=r,this.Description=a,this.RelatingReference=h,this.RelatedResourceObjects=p,this.type=1437805879}}e.IfcExternalReferenceRelationship=Qh;class Xm extends Xo{constructor(r){super(),this.Bounds=r,this.type=2556980723}}e.IfcFace=Xm;class YE extends Xo{constructor(r,a){super(),this.Bound=r,this.Orientation=a,this.type=1809719519}}e.IfcFaceBound=YE;class sD extends YE{constructor(r,a){super(r,a),this.Bound=r,this.Orientation=a,this.type=803316827}}e.IfcFaceOuterBound=sD;class hp extends Xm{constructor(r,a,h){super(r),this.Bounds=r,this.FaceSurface=a,this.SameSense=h,this.type=3008276851}}e.IfcFaceSurface=hp;class tR extends VT{constructor(r,a,h,p,y,m,N){super(r),this.Name=r,this.TensionFailureX=a,this.TensionFailureY=h,this.TensionFailureZ=p,this.CompressionFailureX=y,this.CompressionFailureY=m,this.CompressionFailureZ=N,this.type=4219587988}}e.IfcFailureConnectionCondition=tR;class QT extends BE{constructor(r,a,h){super(r),this.Name=r,this.FillStyles=a,this.ModelOrDraughting=h,this.type=738692330}}e.IfcFillAreaStyle=QT;class gc extends Vm{constructor(r,a,h,p,y,m){super(r,a),this.ContextIdentifier=r,this.ContextType=a,this.CoordinateSpaceDimension=h,this.Precision=p,this.WorldCoordinateSystem=y,this.TrueNorth=m,this.type=3448662350}}e.IfcGeometricRepresentationContext=gc;class is extends zl{constructor(){super(),this.type=2453401579}}e.IfcGeometricRepresentationItem=is;class $T extends gc{constructor(r,a,h,p,y,m){super(r,a,new at(0),null,new Io(0),null),this.ContextIdentifier=r,this.ContextType=a,this.ParentContext=h,this.TargetScale=p,this.TargetView=y,this.UserDefinedTargetView=m,this.type=4142052618}}e.IfcGeometricRepresentationSubContext=$T;class JT extends is{constructor(r){super(),this.Elements=r,this.type=3590301190}}e.IfcGeometricSet=JT;class iD extends SI{constructor(r,a,h){super(r),this.PlacementRelTo=r,this.PlacementLocation=a,this.PlacementRefDirection=h,this.type=178086475}}e.IfcGridPlacement=iD;class XT extends is{constructor(r,a){super(),this.BaseSurface=r,this.AgreementFlag=a,this.type=812098782}}e.IfcHalfSpaceSolid=XT;class nD extends vI{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.RepeatS=r,this.RepeatT=a,this.Mode=h,this.TextureTransform=p,this.Parameter=y,this.URLReference=m,this.type=3905492369}}e.IfcImageTexture=nD;class bI extends qs{constructor(r,a,h,p){super(),this.MappedTo=r,this.Opacity=a,this.Colours=h,this.ColourIndex=p,this.type=3570813810}}e.IfcIndexedColourMap=bI;class Lc extends LI{constructor(r,a,h){super(r),this.Maps=r,this.MappedTo=a,this.TexCoords=h,this.type=1437953363}}e.IfcIndexedTextureMap=Lc;class lp extends Lc{constructor(r,a,h,p){super(r,a,h),this.Maps=r,this.MappedTo=a,this.TexCoords=h,this.TexCoordIndex=p,this.type=2133299955}}e.IfcIndexedTriangleTextureMap=lp;class kE extends $n{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.Name=r,this.Description=a,this.StartTime=h,this.EndTime=p,this.TimeSeriesDataType=y,this.DataOrigin=m,this.UserDefinedDataOrigin=N,this.Unit=O,this.Values=C,this.type=3741457305}}e.IfcIrregularTimeSeries=kE;class rD extends Yl{constructor(r,a,h,p,y){super(r,a,h),this.Name=r,this.DataOrigin=a,this.UserDefinedDataOrigin=h,this.LagValue=p,this.DurationType=y,this.type=1585845231}}e.IfcLagTime=rD;class KE extends is{constructor(r,a,h,p){super(),this.Name=r,this.LightColour=a,this.AmbientIntensity=h,this.Intensity=p,this.type=1402838566}}e.IfcLightSource=KE;class cD extends KE{constructor(r,a,h,p){super(r,a,h,p),this.Name=r,this.LightColour=a,this.AmbientIntensity=h,this.Intensity=p,this.type=125510826}}e.IfcLightSourceAmbient=cD;class aD extends KE{constructor(r,a,h,p,y){super(r,a,h,p),this.Name=r,this.LightColour=a,this.AmbientIntensity=h,this.Intensity=p,this.Orientation=y,this.type=2604431987}}e.IfcLightSourceDirectional=aD;class oD extends KE{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p),this.Name=r,this.LightColour=a,this.AmbientIntensity=h,this.Intensity=p,this.Position=y,this.ColourAppearance=m,this.ColourTemperature=N,this.LuminousFlux=O,this.LightEmissionSource=C,this.LightDistributionDataSource=K,this.type=4266656042}}e.IfcLightSourceGoniometric=oD;class ao extends KE{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p),this.Name=r,this.LightColour=a,this.AmbientIntensity=h,this.Intensity=p,this.Position=y,this.Radius=m,this.ConstantAttenuation=N,this.DistanceAttenuation=O,this.QuadricAttenuation=C,this.type=1520743889}}e.IfcLightSourcePositional=ao;class hD extends ao{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O,C),this.Name=r,this.LightColour=a,this.AmbientIntensity=h,this.Intensity=p,this.Position=y,this.Radius=m,this.ConstantAttenuation=N,this.DistanceAttenuation=O,this.QuadricAttenuation=C,this.Orientation=K,this.ConcentrationExponent=It,this.SpreadAngle=_t,this.BeamWidthAngle=qt,this.type=3422422726}}e.IfcLightSourceSpot=hD;class lD extends SI{constructor(r,a,h){super(r),this.PlacementRelTo=r,this.RelativePlacement=a,this.CartesianPosition=h,this.type=388784114}}e.IfcLinearPlacement=lD;class uD extends SI{constructor(r,a){super(r),this.PlacementRelTo=r,this.RelativePlacement=a,this.type=2624227202}}e.IfcLocalPlacement=uD;class wI extends Xo{constructor(){super(),this.type=1008929658}}e.IfcLoop=wI;class pD extends zl{constructor(r,a){super(),this.MappingSource=r,this.MappingTarget=a,this.type=2347385850}}e.IfcMappedItem=pD;class eR extends Kh{constructor(r,a,h){super(),this.Name=r,this.Description=a,this.Category=h,this.type=1838606355}}e.IfcMaterial=eR;class ZE extends Kh{constructor(r,a,h,p,y){super(),this.Name=r,this.Description=a,this.Material=h,this.Fraction=p,this.Category=y,this.type=3708119e3}}e.IfcMaterialConstituent=ZE;class ED extends Kh{constructor(r,a,h){super(),this.Name=r,this.Description=a,this.MaterialConstituents=h,this.type=2852063980}}e.IfcMaterialConstituentSet=ED;class ai extends Ki{constructor(r,a,h,p){super(r,a,h),this.Name=r,this.Description=a,this.Representations=h,this.RepresentedMaterial=p,this.type=2022407955}}e.IfcMaterialDefinitionRepresentation=ai;class td extends wT{constructor(r,a,h,p,y){super(),this.ForLayerSet=r,this.LayerSetDirection=a,this.DirectionSense=h,this.OffsetFromReferenceLine=p,this.ReferenceExtent=y,this.type=1303795690}}e.IfcMaterialLayerSetUsage=td;class sR extends wT{constructor(r,a,h){super(),this.ForProfileSet=r,this.CardinalPoint=a,this.ReferenceExtent=h,this.type=3079605661}}e.IfcMaterialProfileSetUsage=sR;class ed extends sR{constructor(r,a,h,p,y){super(r,a,h),this.ForProfileSet=r,this.CardinalPoint=a,this.ReferenceExtent=h,this.ForProfileEndSet=p,this.CardinalEndPoint=y,this.type=3404854881}}e.IfcMaterialProfileSetUsageTapering=ed;class fD extends op{constructor(r,a,h,p){super(r,a,h),this.Name=r,this.Description=a,this.Properties=h,this.Material=p,this.type=3265635763}}e.IfcMaterialProperties=fD;class ID extends _c{constructor(r,a,h,p,y){super(r,a),this.Name=r,this.Description=a,this.RelatingMaterial=h,this.RelatedMaterials=p,this.MaterialExpression=y,this.type=853536259}}e.IfcMaterialRelationship=ID;class sd extends jh{constructor(r,a,h,p){super(r,a,h,new Io(0),p),this.ProfileType=r,this.ProfileName=a,this.ParentProfile=h,this.Label=p,this.type=2998442950}}e.IfcMirroredProfileDef=sd;class up extends FE{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=219451334}}e.IfcObjectDefinition=up;class yD extends Hl{constructor(r,a,h,p,y,m,N){super(r,a),this.ProfileType=r,this.ProfileName=a,this.HorizontalWidths=h,this.Widths=p,this.Slopes=y,this.Tags=m,this.OffsetPoint=N,this.type=182550632}}e.IfcOpenCrossProfileDef=yD;class iR extends qT{constructor(r){super(r),this.CfsFaces=r,this.type=2665983363}}e.IfcOpenShell=iR;class TD extends _c{constructor(r,a,h,p){super(r,a),this.Name=r,this.Description=a,this.RelatingOrganization=h,this.RelatedOrganizations=p,this.type=1411181986}}e.IfcOrganizationRelationship=TD;class nR extends zE{constructor(r,a){super(new Io(0),new Io(0)),this.EdgeElement=r,this.Orientation=a,this.type=1029017970}}e.IfcOrientedEdge=nR;class xc extends Hl{constructor(r,a,h){super(r,a),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.type=2529465313}}e.IfcParameterizedProfileDef=xc;class id extends Xo{constructor(r){super(),this.EdgeList=r,this.type=2519244187}}e.IfcPath=id;class nd extends BT{constructor(r,a,h,p,y,m){super(r,a),this.Name=r,this.Description=a,this.HasQuantities=h,this.Discrimination=p,this.Quality=y,this.Usage=m,this.type=3021840470}}e.IfcPhysicalComplexQuantity=nd;class rd extends vI{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y),this.RepeatS=r,this.RepeatT=a,this.Mode=h,this.TextureTransform=p,this.Parameter=y,this.Width=m,this.Height=N,this.ColourComponents=O,this.Pixel=C,this.type=597895409}}e.IfcPixelTexture=rd;class aa extends is{constructor(r){super(),this.Location=r,this.type=2004835150}}e.IfcPlacement=aa;class BI extends is{constructor(r,a){super(),this.SizeInX=r,this.SizeInY=a,this.type=1663979128}}e.IfcPlanarExtent=BI;class qE extends is{constructor(){super(),this.type=2067069095}}e.IfcPoint=qE;class pp extends qE{constructor(r,a,h,p,y){super(),this.DistanceAlong=r,this.OffsetLateral=a,this.OffsetVertical=h,this.OffsetLongitudinal=p,this.BasisCurve=y,this.type=2165702409}}e.IfcPointByDistanceExpression=pp;class dD extends qE{constructor(r,a){super(),this.BasisCurve=r,this.PointParameter=a,this.type=4022376103}}e.IfcPointOnCurve=dD;class $h extends qE{constructor(r,a,h){super(),this.BasisSurface=r,this.PointParameterU=a,this.PointParameterV=h,this.type=1423911732}}e.IfcPointOnSurface=$h;class mD extends wI{constructor(r){super(),this.Polygon=r,this.type=2924175390}}e.IfcPolyLoop=mD;class RD extends XT{constructor(r,a,h,p){super(r,a),this.BaseSurface=r,this.AgreementFlag=a,this.Position=h,this.PolygonalBoundary=p,this.type=2775532180}}e.IfcPolygonalBoundedHalfSpace=RD;class GI extends qs{constructor(r){super(),this.Name=r,this.type=3727388367}}e.IfcPreDefinedItem=GI;class FI extends Wl{constructor(){super(),this.type=3778827333}}e.IfcPreDefinedProperties=FI;class rR extends GI{constructor(r){super(r),this.Name=r,this.type=1775413392}}e.IfcPreDefinedTextFont=rR;class SD extends Ki{constructor(r,a,h){super(r,a,h),this.Name=r,this.Description=a,this.Representations=h,this.type=673634403}}e.IfcProductDefinitionShape=SD;class eh extends op{constructor(r,a,h,p){super(r,a,h),this.Name=r,this.Description=a,this.Properties=h,this.ProfileDefinition=p,this.type=2802850158}}e.IfcProfileProperties=eh;class Zl extends Wl{constructor(r,a){super(),this.Name=r,this.Specification=a,this.type=2598011224}}e.IfcProperty=Zl;class VI extends FE{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=1680319473}}e.IfcPropertyDefinition=VI;class ND extends _c{constructor(r,a,h,p,y){super(r,a),this.Name=r,this.Description=a,this.DependingProperty=h,this.DependantProperty=p,this.Expression=y,this.type=148025276}}e.IfcPropertyDependencyRelationship=ND;class jE extends VI{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=3357820518}}e.IfcPropertySetDefinition=jE;class cd extends VI{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=1482703590}}e.IfcPropertyTemplateDefinition=cd;class Ep extends jE{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=2090586900}}e.IfcQuantitySet=Ep;class HI extends xc{constructor(r,a,h,p,y){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.XDim=p,this.YDim=y,this.type=3615266464}}e.IfcRectangleProfileDef=HI;class AD extends $n{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O),this.Name=r,this.Description=a,this.StartTime=h,this.EndTime=p,this.TimeSeriesDataType=y,this.DataOrigin=m,this.UserDefinedDataOrigin=N,this.Unit=O,this.TimeStep=C,this.Values=K,this.type=3413951693}}e.IfcRegularTimeSeries=AD;class ad extends FI{constructor(r,a,h,p,y,m){super(),this.TotalCrossSectionArea=r,this.SteelGrade=a,this.BarSurface=h,this.EffectiveDepth=p,this.NominalBarDiameter=y,this.BarCount=m,this.type=1580146022}}e.IfcReinforcementBarProperties=ad;class oa extends FE{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=478536968}}e.IfcRelationship=oa;class od extends _c{constructor(r,a,h,p){super(r,a),this.Name=r,this.Description=a,this.RelatedResourceObjects=h,this.RelatingApproval=p,this.type=2943643501}}e.IfcResourceApprovalRelationship=od;class cR extends _c{constructor(r,a,h,p){super(r,a),this.Name=r,this.Description=a,this.RelatingConstraint=h,this.RelatedResourceObjects=p,this.type=1608871552}}e.IfcResourceConstraintRelationship=cR;class aR extends Yl{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc,xp){super(r,a,h),this.Name=r,this.DataOrigin=a,this.UserDefinedDataOrigin=h,this.ScheduleWork=p,this.ScheduleUsage=y,this.ScheduleStart=m,this.ScheduleFinish=N,this.ScheduleContour=O,this.LevelingDelay=C,this.IsOverAllocated=K,this.StatusTime=It,this.ActualWork=_t,this.ActualUsage=qt,this.ActualStart=Ze,this.ActualFinish=gi,this.RemainingWork=Nn,this.RemainingUsage=bc,this.Completion=xp,this.type=1042787934}}e.IfcResourceTime=aR;class DD extends HI{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.XDim=p,this.YDim=y,this.RoundingRadius=m,this.type=2778083089}}e.IfcRoundedRectangleProfileDef=DD;class oR extends FI{constructor(r,a,h){super(),this.SectionType=r,this.StartProfile=a,this.EndProfile=h,this.type=2042790032}}e.IfcSectionProperties=oR;class OD extends FI{constructor(r,a,h,p,y,m){super(),this.LongitudinalStartPosition=r,this.LongitudinalEndPosition=a,this.TransversePosition=h,this.ReinforcementRole=p,this.SectionDefinition=y,this.CrossSectionReinforcementDefinitions=m,this.type=4165799628}}e.IfcSectionReinforcementProperties=OD;class vD extends is{constructor(r,a,h){super(),this.SpineCurve=r,this.CrossSections=a,this.CrossSectionPositions=h,this.type=1509187699}}e.IfcSectionedSpine=vD;class hd extends is{constructor(r){super(),this.Transition=r,this.type=823603102}}e.IfcSegment=hd;class _D extends is{constructor(r){super(),this.SbsmBoundary=r,this.type=4124623270}}e.IfcShellBasedSurfaceModel=_D;class ha extends Zl{constructor(r,a){super(r,a),this.Name=r,this.Specification=a,this.type=3692461612}}e.IfcSimpleProperty=ha;class ql extends VT{constructor(r,a,h,p){super(r),this.Name=r,this.SlippageX=a,this.SlippageY=h,this.SlippageZ=p,this.type=2609359061}}e.IfcSlippageConnectionCondition=ql;class jl extends is{constructor(){super(),this.type=723233188}}e.IfcSolidModel=jl;class gD extends rp{constructor(r,a,h,p,y,m,N){super(r),this.Name=r,this.LinearForceX=a,this.LinearForceY=h,this.LinearForceZ=p,this.LinearMomentX=y,this.LinearMomentY=m,this.LinearMomentZ=N,this.type=1595516126}}e.IfcStructuralLoadLinearForce=gD;class LD extends rp{constructor(r,a,h,p){super(r),this.Name=r,this.PlanarForceX=a,this.PlanarForceY=h,this.PlanarForceZ=p,this.type=2668620305}}e.IfcStructuralLoadPlanarForce=LD;class hR extends rp{constructor(r,a,h,p,y,m,N){super(r),this.Name=r,this.DisplacementX=a,this.DisplacementY=h,this.DisplacementZ=p,this.RotationalDisplacementRX=y,this.RotationalDisplacementRY=m,this.RotationalDisplacementRZ=N,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=hR;class xD extends hR{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.Name=r,this.DisplacementX=a,this.DisplacementY=h,this.DisplacementZ=p,this.RotationalDisplacementRX=y,this.RotationalDisplacementRY=m,this.RotationalDisplacementRZ=N,this.Distortion=O,this.type=1973038258}}e.IfcStructuralLoadSingleDisplacementDistortion=xD;class Ql extends rp{constructor(r,a,h,p,y,m,N){super(r),this.Name=r,this.ForceX=a,this.ForceY=h,this.ForceZ=p,this.MomentX=y,this.MomentY=m,this.MomentZ=N,this.type=1597423693}}e.IfcStructuralLoadSingleForce=Ql;class lR extends Ql{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.Name=r,this.ForceX=a,this.ForceY=h,this.ForceZ=p,this.MomentX=y,this.MomentY=m,this.MomentZ=N,this.WarpingMoment=O,this.type=1190533807}}e.IfcStructuralLoadSingleForceWarping=lR;class oi extends zE{constructor(r,a,h){super(r,a),this.EdgeStart=r,this.EdgeEnd=a,this.ParentEdge=h,this.type=2233826070}}e.IfcSubedge=oi;class QE extends is{constructor(){super(),this.type=2513912981}}e.IfcSurface=QE;class WI extends Ym{constructor(r,a,h,p,y,m,N,O,C){super(r,a),this.SurfaceColour=r,this.Transparency=a,this.DiffuseColour=h,this.TransmissionColour=p,this.DiffuseTransmissionColour=y,this.ReflectionColour=m,this.SpecularColour=N,this.SpecularHighlight=O,this.ReflectanceMethod=C,this.type=1878645084}}e.IfcSurfaceStyleRendering=WI;class Pc extends jl{constructor(r,a){super(),this.SweptArea=r,this.Position=a,this.type=2247615214}}e.IfcSweptAreaSolid=Pc;class ld extends jl{constructor(r,a,h,p,y){super(),this.Directrix=r,this.Radius=a,this.InnerRadius=h,this.StartParam=p,this.EndParam=y,this.type=1260650574}}e.IfcSweptDiskSolid=ld;class ud extends ld{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.Directrix=r,this.Radius=a,this.InnerRadius=h,this.StartParam=p,this.EndParam=y,this.FilletRadius=m,this.type=1096409881}}e.IfcSweptDiskSolidPolygonal=ud;class sh extends QE{constructor(r,a){super(),this.SweptCurve=r,this.Position=a,this.type=230924584}}e.IfcSweptSurface=sh;class Sn extends xc{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.Depth=p,this.FlangeWidth=y,this.WebThickness=m,this.FlangeThickness=N,this.FilletRadius=O,this.FlangeEdgeRadius=C,this.WebEdgeRadius=K,this.WebSlope=It,this.FlangeSlope=_t,this.type=3071757647}}e.IfcTShapeProfileDef=Sn;class pd extends is{constructor(){super(),this.type=901063453}}e.IfcTessellatedItem=pd;class uR extends is{constructor(r,a,h){super(),this.Literal=r,this.Placement=a,this.Path=h,this.type=4282788508}}e.IfcTextLiteral=uR;class PD extends uR{constructor(r,a,h,p,y){super(r,a,h),this.Literal=r,this.Placement=a,this.Path=h,this.Extent=p,this.BoxAlignment=y,this.type=3124975700}}e.IfcTextLiteralWithExtent=PD;class MD extends rR{constructor(r,a,h,p,y,m){super(r),this.Name=r,this.FontFamily=a,this.FontStyle=h,this.FontVariant=p,this.FontWeight=y,this.FontSize=m,this.type=1983826977}}e.IfcTextStyleFontModel=MD;class UD extends xc{constructor(r,a,h,p,y,m,N){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.BottomXDim=p,this.TopXDim=y,this.YDim=m,this.TopXOffset=N,this.type=2715220739}}e.IfcTrapeziumProfileDef=UD;class Jh extends up{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.type=1628702193}}e.IfcTypeObject=Jh;class Xh extends Jh{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ProcessType=C,this.type=3736923433}}e.IfcTypeProcess=Xh;class Mc extends Jh{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.type=2347495698}}e.IfcTypeProduct=Mc;class pR extends Jh{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.type=3698973494}}e.IfcTypeResource=pR;class la extends xc{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.Depth=p,this.FlangeWidth=y,this.WebThickness=m,this.FlangeThickness=N,this.FilletRadius=O,this.EdgeRadius=C,this.FlangeSlope=K,this.type=427810014}}e.IfcUShapeProfileDef=la;class CD extends is{constructor(r,a){super(),this.Orientation=r,this.Magnitude=a,this.type=1417489154}}e.IfcVector=CD;class Ed extends wI{constructor(r){super(),this.LoopVertex=r,this.type=2759199220}}e.IfcVertexLoop=Ed;class ih extends xc{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.Depth=p,this.FlangeWidth=y,this.WebThickness=m,this.FlangeThickness=N,this.FilletRadius=O,this.EdgeRadius=C,this.type=2543172580}}e.IfcZShapeProfileDef=ih;class bD extends hp{constructor(r,a,h){super(r,a,h),this.Bounds=r,this.FaceSurface=a,this.SameSense=h,this.type=3406155212}}e.IfcAdvancedFace=bD;class hi extends is{constructor(r,a){super(),this.OuterBoundary=r,this.InnerBoundaries=a,this.type=669184980}}e.IfcAnnotationFillArea=hi;class ER extends xc{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.BottomFlangeWidth=p,this.OverallDepth=y,this.WebThickness=m,this.BottomFlangeThickness=N,this.BottomFlangeFilletRadius=O,this.TopFlangeWidth=C,this.TopFlangeThickness=K,this.TopFlangeFilletRadius=It,this.BottomFlangeEdgeRadius=_t,this.BottomFlangeSlope=qt,this.TopFlangeEdgeRadius=Ze,this.TopFlangeSlope=gi,this.type=3207858831}}e.IfcAsymmetricIShapeProfileDef=ER;class wD extends aa{constructor(r,a){super(r),this.Location=r,this.Axis=a,this.type=4261334040}}e.IfcAxis1Placement=wD;class BD extends aa{constructor(r,a){super(r),this.Location=r,this.RefDirection=a,this.type=3125803723}}e.IfcAxis2Placement2D=BD;class GD extends aa{constructor(r,a,h){super(r),this.Location=r,this.Axis=a,this.RefDirection=h,this.type=2740243338}}e.IfcAxis2Placement3D=GD;class FD extends aa{constructor(r,a,h){super(r),this.Location=r,this.Axis=a,this.RefDirection=h,this.type=3425423356}}e.IfcAxis2PlacementLinear=FD;class tl extends is{constructor(r,a,h){super(),this.Operator=r,this.FirstOperand=a,this.SecondOperand=h,this.type=2736907675}}e.IfcBooleanResult=tl;class fp extends QE{constructor(){super(),this.type=4182860854}}e.IfcBoundedSurface=fp;class fR extends is{constructor(r,a,h,p){super(),this.Corner=r,this.XDim=a,this.YDim=h,this.ZDim=p,this.type=2581212453}}e.IfcBoundingBox=fR;class fd extends XT{constructor(r,a,h){super(r,a),this.BaseSurface=r,this.AgreementFlag=a,this.Enclosure=h,this.type=2713105998}}e.IfcBoxedHalfSpace=fd;class IR extends xc{constructor(r,a,h,p,y,m,N,O){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.Depth=p,this.Width=y,this.WallThickness=m,this.Girth=N,this.InternalFilletRadius=O,this.type=2898889636}}e.IfcCShapeProfileDef=IR;class Id extends qE{constructor(r){super(),this.Coordinates=r,this.type=1123145078}}e.IfcCartesianPoint=Id;class oo extends is{constructor(){super(),this.type=574549367}}e.IfcCartesianPointList=oo;class js extends oo{constructor(r,a){super(),this.CoordList=r,this.TagList=a,this.type=1675464909}}e.IfcCartesianPointList2D=js;class yd extends oo{constructor(r,a){super(),this.CoordList=r,this.TagList=a,this.type=2059837836}}e.IfcCartesianPointList3D=yd;class Ip extends is{constructor(r,a,h,p){super(),this.Axis1=r,this.Axis2=a,this.LocalOrigin=h,this.Scale=p,this.type=59481748}}e.IfcCartesianTransformationOperator=Ip;class yp extends Ip{constructor(r,a,h,p){super(r,a,h,p),this.Axis1=r,this.Axis2=a,this.LocalOrigin=h,this.Scale=p,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=yp;class Td extends yp{constructor(r,a,h,p,y){super(r,a,h,p),this.Axis1=r,this.Axis2=a,this.LocalOrigin=h,this.Scale=p,this.Scale2=y,this.type=3486308946}}e.IfcCartesianTransformationOperator2DnonUniform=Td;class tc extends Ip{constructor(r,a,h,p,y){super(r,a,h,p),this.Axis1=r,this.Axis2=a,this.LocalOrigin=h,this.Scale=p,this.Axis3=y,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=tc;class zI extends tc{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.Axis1=r,this.Axis2=a,this.LocalOrigin=h,this.Scale=p,this.Axis3=y,this.Scale2=m,this.Scale3=N,this.type=1416205885}}e.IfcCartesianTransformationOperator3DnonUniform=zI;class yR extends xc{constructor(r,a,h,p){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.Radius=p,this.type=1383045692}}e.IfcCircleProfileDef=yR;class VD extends qT{constructor(r){super(r),this.CfsFaces=r,this.type=2205249479}}e.IfcClosedShell=VD;class HD extends KT{constructor(r,a,h,p){super(r),this.Name=r,this.Red=a,this.Green=h,this.Blue=p,this.type=776857604}}e.IfcColourRgb=HD;class WD extends Zl{constructor(r,a,h,p){super(r,a),this.Name=r,this.Specification=a,this.UsageName=h,this.HasProperties=p,this.type=2542286263}}e.IfcComplexProperty=WD;class nh extends hd{constructor(r,a,h){super(r),this.Transition=r,this.SameSense=a,this.ParentCurve=h,this.type=2485617015}}e.IfcCompositeCurveSegment=nh;class $l extends pR{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.BaseCosts=K,this.BaseQuantity=It,this.type=2574617495}}e.IfcConstructionResourceType=$l;class Jl extends up{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.LongName=m,this.Phase=N,this.RepresentationContexts=O,this.UnitsInContext=C,this.type=3419103109}}e.IfcContext=Jl;class $E extends $l{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.BaseCosts=K,this.BaseQuantity=It,this.PredefinedType=_t,this.type=1815067380}}e.IfcCrewResourceType=$E;class Tp extends is{constructor(r){super(),this.Position=r,this.type=2506170314}}e.IfcCsgPrimitive3D=Tp;class zD extends jl{constructor(r){super(),this.TreeRootExpression=r,this.type=2147822146}}e.IfcCsgSolid=zD;class rh extends is{constructor(){super(),this.type=2601014836}}e.IfcCurve=rh;class YD extends fp{constructor(r,a,h){super(),this.BasisSurface=r,this.OuterBoundary=a,this.InnerBoundaries=h,this.type=2827736869}}e.IfcCurveBoundedPlane=YD;class kD extends fp{constructor(r,a,h){super(),this.BasisSurface=r,this.Boundaries=a,this.ImplicitOuter=h,this.type=2629017746}}e.IfcCurveBoundedSurface=kD;class KD extends hd{constructor(r,a,h,p,y){super(r),this.Transition=r,this.Placement=a,this.SegmentStart=h,this.SegmentLength=p,this.ParentCurve=y,this.type=4212018352}}e.IfcCurveSegment=KD;class ZD extends is{constructor(r){super(),this.DirectionRatios=r,this.type=32440307}}e.IfcDirection=ZD;class dd extends Pc{constructor(r,a,h,p,y){super(r,a),this.SweptArea=r,this.Position=a,this.Directrix=h,this.StartParam=p,this.EndParam=y,this.type=593015953}}e.IfcDirectrixCurveSweptAreaSolid=dd;class qD extends wI{constructor(r){super(),this.EdgeList=r,this.type=1472233963}}e.IfcEdgeLoop=qD;class jD extends Ep{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.MethodOfMeasurement=y,this.Quantities=m,this.type=1883228015}}e.IfcElementQuantity=jD;class ch extends Mc{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=339256511}}e.IfcElementType=ch;class JE extends QE{constructor(r){super(),this.Position=r,this.type=2777663545}}e.IfcElementarySurface=JE;class TR extends xc{constructor(r,a,h,p,y){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.SemiAxis1=p,this.SemiAxis2=y,this.type=2835456948}}e.IfcEllipseProfileDef=TR;class dR extends Xh{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ProcessType=C,this.PredefinedType=K,this.EventTriggerType=It,this.UserDefinedEventTriggerType=_t,this.type=4024345920}}e.IfcEventType=dR;class mR extends Pc{constructor(r,a,h,p){super(r,a),this.SweptArea=r,this.Position=a,this.ExtrudedDirection=h,this.Depth=p,this.type=477187591}}e.IfcExtrudedAreaSolid=mR;class QD extends mR{constructor(r,a,h,p,y){super(r,a,h,p),this.SweptArea=r,this.Position=a,this.ExtrudedDirection=h,this.Depth=p,this.EndSweptArea=y,this.type=2804161546}}e.IfcExtrudedAreaSolidTapered=QD;class $D extends is{constructor(r){super(),this.FbsmFaces=r,this.type=2047409740}}e.IfcFaceBasedSurfaceModel=$D;class RR extends is{constructor(r,a,h,p,y){super(),this.HatchLineAppearance=r,this.StartOfNextHatchLine=a,this.PointOfReferenceHatchLine=h,this.PatternStart=p,this.HatchLineAngle=y,this.type=374418227}}e.IfcFillAreaStyleHatching=RR;class SR extends is{constructor(r,a,h){super(),this.TilingPattern=r,this.Tiles=a,this.TilingScale=h,this.type=315944413}}e.IfcFillAreaStyleTiles=SR;class NR extends dd{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.SweptArea=r,this.Position=a,this.Directrix=h,this.StartParam=p,this.EndParam=y,this.FixedReference=m,this.type=2652556860}}e.IfcFixedReferenceSweptAreaSolid=NR;class YI extends ch{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=4238390223}}e.IfcFurnishingElementType=YI;class JD extends YI{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.AssemblyPlace=K,this.PredefinedType=It,this.type=1268542332}}e.IfcFurnitureType=JD;class XD extends ch{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4095422895}}e.IfcGeographicElementType=XD;class kI extends JT{constructor(r){super(r),this.Elements=r,this.type=987898635}}e.IfcGeometricCurveSet=kI;class md extends xc{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.OverallWidth=p,this.OverallDepth=y,this.WebThickness=m,this.FlangeThickness=N,this.FilletRadius=O,this.FlangeEdgeRadius=C,this.FlangeSlope=K,this.type=1484403080}}e.IfcIShapeProfileDef=md;class dp extends pd{constructor(r){super(),this.CoordIndex=r,this.type=178912537}}e.IfcIndexedPolygonalFace=dp;class AR extends dp{constructor(r,a){super(r),this.CoordIndex=r,this.InnerCoordIndices=a,this.type=2294589976}}e.IfcIndexedPolygonalFaceWithVoids=AR;class tO extends Lc{constructor(r,a,h,p){super(r,a,h),this.Maps=r,this.MappedTo=a,this.TexCoords=h,this.TexCoordIndices=p,this.type=3465909080}}e.IfcIndexedPolygonalTextureMap=tO;class eO extends xc{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.Depth=p,this.Width=y,this.Thickness=m,this.FilletRadius=N,this.EdgeRadius=O,this.LegSlope=C,this.type=572779678}}e.IfcLShapeProfileDef=eO;class sO extends $l{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.BaseCosts=K,this.BaseQuantity=It,this.PredefinedType=_t,this.type=428585644}}e.IfcLaborResourceType=sO;class iO extends rh{constructor(r,a){super(),this.Pnt=r,this.Dir=a,this.type=1281925730}}e.IfcLine=iO;class XE extends jl{constructor(r){super(),this.Outer=r,this.type=1425443689}}e.IfcManifoldSolidBrep=XE;class ah extends up{constructor(r,a,h,p,y){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.type=3888040117}}e.IfcObject=ah;class mp extends rh{constructor(r){super(),this.BasisCurve=r,this.type=590820931}}e.IfcOffsetCurve=mp;class KI extends mp{constructor(r,a,h){super(r),this.BasisCurve=r,this.Distance=a,this.SelfIntersect=h,this.type=3388369263}}e.IfcOffsetCurve2D=KI;class DR extends mp{constructor(r,a,h,p){super(r),this.BasisCurve=r,this.Distance=a,this.SelfIntersect=h,this.RefDirection=p,this.type=3505215534}}e.IfcOffsetCurve3D=DR;class nO extends mp{constructor(r,a,h){super(r),this.BasisCurve=r,this.OffsetValues=a,this.Tag=h,this.type=2485787929}}e.IfcOffsetCurveByDistances=nO;class rO extends rh{constructor(r,a){super(),this.BasisSurface=r,this.ReferenceCurve=a,this.type=1682466193}}e.IfcPcurve=rO;class cO extends BI{constructor(r,a,h){super(r,a),this.SizeInX=r,this.SizeInY=a,this.Placement=h,this.type=603570806}}e.IfcPlanarBox=cO;class Rd extends JE{constructor(r){super(r),this.Position=r,this.type=220341763}}e.IfcPlane=Rd;class aO extends rh{constructor(r,a,h,p){super(),this.Position=r,this.CoefficientsX=a,this.CoefficientsY=h,this.CoefficientsZ=p,this.type=3381221214}}e.IfcPolynomialCurve=aO;class OR extends GI{constructor(r){super(r),this.Name=r,this.type=759155922}}e.IfcPreDefinedColour=OR;class vR extends GI{constructor(r){super(r),this.Name=r,this.type=2559016684}}e.IfcPreDefinedCurveFont=vR;class ho extends jE{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=3967405729}}e.IfcPreDefinedPropertySet=ho;class ZI extends Xh{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ProcessType=C,this.PredefinedType=K,this.type=569719735}}e.IfcProcedureType=ZI;class qI extends ah{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.type=2945172077}}e.IfcProcess=qI;class Uc extends ah{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=4208778838}}e.IfcProduct=Uc;class oO extends Jl{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.LongName=m,this.Phase=N,this.RepresentationContexts=O,this.UnitsInContext=C,this.type=103090709}}e.IfcProject=oO;class _R extends Jl{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.LongName=m,this.Phase=N,this.RepresentationContexts=O,this.UnitsInContext=C,this.type=653396225}}e.IfcProjectLibrary=_R;class hO extends ha{constructor(r,a,h,p,y,m){super(r,a),this.Name=r,this.Specification=a,this.UpperBoundValue=h,this.LowerBoundValue=p,this.Unit=y,this.SetPointValue=m,this.type=871118103}}e.IfcPropertyBoundedValue=hO;class lO extends ha{constructor(r,a,h,p){super(r,a),this.Name=r,this.Specification=a,this.EnumerationValues=h,this.EnumerationReference=p,this.type=4166981789}}e.IfcPropertyEnumeratedValue=lO;class gR extends ha{constructor(r,a,h,p){super(r,a),this.Name=r,this.Specification=a,this.ListValues=h,this.Unit=p,this.type=2752243245}}e.IfcPropertyListValue=gR;class LR extends ha{constructor(r,a,h,p){super(r,a),this.Name=r,this.Specification=a,this.UsageName=h,this.PropertyReference=p,this.type=941946838}}e.IfcPropertyReferenceValue=LR;class xR extends jE{constructor(r,a,h,p,y){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.HasProperties=y,this.type=1451395588}}e.IfcPropertySet=xR;class uO extends cd{constructor(r,a,h,p,y,m,N){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.TemplateType=y,this.ApplicableEntity=m,this.HasPropertyTemplates=N,this.type=492091185}}e.IfcPropertySetTemplate=uO;class pO extends ha{constructor(r,a,h,p){super(r,a),this.Name=r,this.Specification=a,this.NominalValue=h,this.Unit=p,this.type=3650150729}}e.IfcPropertySingleValue=pO;class PR extends ha{constructor(r,a,h,p,y,m,N,O){super(r,a),this.Name=r,this.Specification=a,this.DefiningValues=h,this.DefinedValues=p,this.Expression=y,this.DefiningUnit=m,this.DefinedUnit=N,this.CurveInterpolation=O,this.type=110355661}}e.IfcPropertyTableValue=PR;class jI extends cd{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=3521284610}}e.IfcPropertyTemplate=jI;class EO extends HI{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.XDim=p,this.YDim=y,this.WallThickness=m,this.InnerFilletRadius=N,this.OuterFilletRadius=O,this.type=2770003689}}e.IfcRectangleHollowProfileDef=EO;class fO extends Tp{constructor(r,a,h,p){super(r),this.Position=r,this.XLength=a,this.YLength=h,this.Height=p,this.type=2798486643}}e.IfcRectangularPyramid=fO;class el extends fp{constructor(r,a,h,p,y,m,N){super(),this.BasisSurface=r,this.U1=a,this.V1=h,this.U2=p,this.V2=y,this.Usense=m,this.Vsense=N,this.type=3454111270}}e.IfcRectangularTrimmedSurface=el;class IO extends ho{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.DefinitionType=y,this.ReinforcementSectionDefinitions=m,this.type=3765753017}}e.IfcReinforcementDefinitionProperties=IO;class Ke extends oa{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.type=3939117080}}e.IfcRelAssigns=Ke;class yO extends Ke{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.RelatingActor=N,this.ActingRole=O,this.type=1683148259}}e.IfcRelAssignsToActor=yO;class TO extends Ke{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.RelatingControl=N,this.type=2495723537}}e.IfcRelAssignsToControl=TO;class MR extends Ke{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.RelatingGroup=N,this.type=1307041759}}e.IfcRelAssignsToGroup=MR;class dO extends MR{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.RelatingGroup=N,this.Factor=O,this.type=1027710054}}e.IfcRelAssignsToGroupByFactor=dO;class mO extends Ke{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.RelatingProcess=N,this.QuantityInProcess=O,this.type=4278684876}}e.IfcRelAssignsToProcess=mO;class RO extends Ke{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.RelatingProduct=N,this.type=2857406711}}e.IfcRelAssignsToProduct=RO;class UR extends Ke{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatedObjectsType=m,this.RelatingResource=N,this.type=205026976}}e.IfcRelAssignsToResource=UR;class oh extends oa{constructor(r,a,h,p,y){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.type=1865459582}}e.IfcRelAssociates=oh;class Sd extends oh{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingApproval=m,this.type=4095574036}}e.IfcRelAssociatesApproval=Sd;class Nd extends oh{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingClassification=m,this.type=919958153}}e.IfcRelAssociatesClassification=Nd;class SO extends oh{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.Intent=m,this.RelatingConstraint=N,this.type=2728634034}}e.IfcRelAssociatesConstraint=SO;class NO extends oh{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingDocument=m,this.type=982818633}}e.IfcRelAssociatesDocument=NO;class Xl extends oh{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingLibrary=m,this.type=3840914261}}e.IfcRelAssociatesLibrary=Xl;class hh extends oh{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingMaterial=m,this.type=2655215786}}e.IfcRelAssociatesMaterial=hh;class AO extends oh{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingProfileDef=m,this.type=1033248425}}e.IfcRelAssociatesProfileDef=AO;class Zi extends oa{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=826625072}}e.IfcRelConnects=Zi;class Ad extends Zi{constructor(r,a,h,p,y,m,N){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ConnectionGeometry=y,this.RelatingElement=m,this.RelatedElement=N,this.type=1204542856}}e.IfcRelConnectsElements=Ad;class DO extends Ad{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ConnectionGeometry=y,this.RelatingElement=m,this.RelatedElement=N,this.RelatingPriorities=O,this.RelatedPriorities=C,this.RelatedConnectionType=K,this.RelatingConnectionType=It,this.type=3945020480}}e.IfcRelConnectsPathElements=DO;class OO extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingPort=y,this.RelatedElement=m,this.type=4201705270}}e.IfcRelConnectsPortToElement=OO;class vO extends Zi{constructor(r,a,h,p,y,m,N){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingPort=y,this.RelatedPort=m,this.RealizingElement=N,this.type=3190031847}}e.IfcRelConnectsPorts=vO;class QI extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingElement=y,this.RelatedStructuralActivity=m,this.type=2127690289}}e.IfcRelConnectsStructuralActivity=QI;class ua extends Zi{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingStructuralMember=y,this.RelatedStructuralConnection=m,this.AppliedCondition=N,this.AdditionalConditions=O,this.SupportedLength=C,this.ConditionCoordinateSystem=K,this.type=1638771189}}e.IfcRelConnectsStructuralMember=ua;class CR extends ua{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingStructuralMember=y,this.RelatedStructuralConnection=m,this.AppliedCondition=N,this.AdditionalConditions=O,this.SupportedLength=C,this.ConditionCoordinateSystem=K,this.ConnectionConstraint=It,this.type=504942748}}e.IfcRelConnectsWithEccentricity=CR;class _O extends Ad{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ConnectionGeometry=y,this.RelatingElement=m,this.RelatedElement=N,this.RealizingElements=O,this.ConnectionType=C,this.type=3678494232}}e.IfcRelConnectsWithRealizingElements=_O;class bs extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedElements=y,this.RelatingStructure=m,this.type=3242617779}}e.IfcRelContainedInSpatialStructure=bs;class Dd extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingBuildingElement=y,this.RelatedCoverings=m,this.type=886880790}}e.IfcRelCoversBldgElements=Dd;class gO extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingSpace=y,this.RelatedCoverings=m,this.type=2802773753}}e.IfcRelCoversSpaces=gO;class pa extends oa{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingContext=y,this.RelatedDefinitions=m,this.type=2565941209}}e.IfcRelDeclares=pa;class Rp extends oa{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=2551354335}}e.IfcRelDecomposes=Rp;class tf extends oa{constructor(r,a,h,p){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.type=693640335}}e.IfcRelDefines=tf;class tu extends tf{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingObject=m,this.type=1462361463}}e.IfcRelDefinesByObject=tu;class eu extends tf{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingPropertyDefinition=m,this.type=4186316022}}e.IfcRelDefinesByProperties=eu;class LO extends tf{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedPropertySets=y,this.RelatingTemplate=m,this.type=307848117}}e.IfcRelDefinesByTemplate=LO;class ws extends tf{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedObjects=y,this.RelatingType=m,this.type=781010003}}e.IfcRelDefinesByType=ws;class xO extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingOpeningElement=y,this.RelatedBuildingElement=m,this.type=3940055652}}e.IfcRelFillsElement=xO;class PO extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedControlElements=y,this.RelatingFlowElement=m,this.type=279856033}}e.IfcRelFlowControlElements=PO;class MO extends Zi{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingElement=y,this.RelatedElement=m,this.InterferenceGeometry=N,this.InterferenceType=O,this.ImpliedOrder=C,this.InterferenceSpace=K,this.type=427948657}}e.IfcRelInterferesElements=MO;class UO extends Rp{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingObject=y,this.RelatedObjects=m,this.type=3268803585}}e.IfcRelNests=UO;class bR extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingPositioningElement=y,this.RelatedProducts=m,this.type=1441486842}}e.IfcRelPositions=bR;class wR extends Rp{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingElement=y,this.RelatedFeatureElement=m,this.type=750771296}}e.IfcRelProjectsElement=wR;class CO extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatedElements=y,this.RelatingStructure=m,this.type=1245217292}}e.IfcRelReferencedInSpatialStructure=CO;class bO extends Zi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingProcess=y,this.RelatedProcess=m,this.TimeLag=N,this.SequenceType=O,this.UserDefinedSequenceType=C,this.type=4122056220}}e.IfcRelSequence=bO;class wO extends Zi{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingSystem=y,this.RelatedBuildings=m,this.type=366585022}}e.IfcRelServicesBuildings=wO;class ef extends Zi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingSpace=y,this.RelatedBuildingElement=m,this.ConnectionGeometry=N,this.PhysicalOrVirtualBoundary=O,this.InternalOrExternalBoundary=C,this.type=3451746338}}e.IfcRelSpaceBoundary=ef;class Od extends ef{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingSpace=y,this.RelatedBuildingElement=m,this.ConnectionGeometry=N,this.PhysicalOrVirtualBoundary=O,this.InternalOrExternalBoundary=C,this.ParentBoundary=K,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=Od;class vd extends Od{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingSpace=y,this.RelatedBuildingElement=m,this.ConnectionGeometry=N,this.PhysicalOrVirtualBoundary=O,this.InternalOrExternalBoundary=C,this.ParentBoundary=K,this.CorrespondingBoundary=It,this.type=1521410863}}e.IfcRelSpaceBoundary2ndLevel=vd;class lh extends Rp{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingBuildingElement=y,this.RelatedOpeningElement=m,this.type=1401173127}}e.IfcRelVoidsElement=lh;class Sp extends nh{constructor(r,a,h,p){super(r,a,h),this.Transition=r,this.SameSense=a,this.ParentCurve=h,this.ParamLength=p,this.type=816062949}}e.IfcReparametrisedCompositeCurveSegment=Sp;class BR extends ah{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.type=2914609552}}e.IfcResource=BR;class sf extends Pc{constructor(r,a,h,p){super(r,a),this.SweptArea=r,this.Position=a,this.Axis=h,this.Angle=p,this.type=1856042241}}e.IfcRevolvedAreaSolid=sf;class Np extends sf{constructor(r,a,h,p,y){super(r,a,h,p),this.SweptArea=r,this.Position=a,this.Axis=h,this.Angle=p,this.EndSweptArea=y,this.type=3243963512}}e.IfcRevolvedAreaSolidTapered=Np;class _d extends Tp{constructor(r,a,h){super(r),this.Position=r,this.Height=a,this.BottomRadius=h,this.type=4158566097}}e.IfcRightCircularCone=_d;class li extends Tp{constructor(r,a,h){super(r),this.Position=r,this.Height=a,this.Radius=h,this.type=3626867408}}e.IfcRightCircularCylinder=li;class su extends jl{constructor(r,a){super(),this.Directrix=r,this.CrossSections=a,this.type=1862484736}}e.IfcSectionedSolid=su;class lo extends su{constructor(r,a,h){super(r,a),this.Directrix=r,this.CrossSections=a,this.CrossSectionPositions=h,this.type=1290935644}}e.IfcSectionedSolidHorizontal=lo;class gd extends QE{constructor(r,a,h){super(),this.Directrix=r,this.CrossSectionPositions=a,this.CrossSections=h,this.type=1356537516}}e.IfcSectionedSurface=gd;class BO extends jI{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.TemplateType=y,this.PrimaryMeasureType=m,this.SecondaryMeasureType=N,this.Enumerators=O,this.PrimaryUnit=C,this.SecondaryUnit=K,this.Expression=It,this.AccessState=_t,this.type=3663146110}}e.IfcSimplePropertyTemplate=BO;class $I extends Uc{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.type=1412071761}}e.IfcSpatialElement=$I;class Ld extends Mc{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=710998568}}e.IfcSpatialElementType=Ld;class Ea extends $I{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.type=2706606064}}e.IfcSpatialStructureElement=Ea;class JI extends Ld{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3893378262}}e.IfcSpatialStructureElementType=JI;class GO extends $I{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.PredefinedType=C,this.type=463610769}}e.IfcSpatialZone=GO;class FO extends Ld{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.LongName=It,this.type=2481509218}}e.IfcSpatialZoneType=FO;class VO extends Tp{constructor(r,a){super(r),this.Position=r,this.Radius=a,this.type=451544542}}e.IfcSphere=VO;class HO extends JE{constructor(r,a){super(r),this.Position=r,this.Radius=a,this.type=4015995234}}e.IfcSphericalSurface=HO;class iu extends rh{constructor(r){super(),this.Position=r,this.type=2735484536}}e.IfcSpiral=iu;class xd extends Uc{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.type=3544373492}}e.IfcStructuralActivity=xd;class Pd extends Uc{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=3136571912}}e.IfcStructuralItem=Pd;class Md extends Pd{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=530289379}}e.IfcStructuralMember=Md;class XI extends xd{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.type=3689010777}}e.IfcStructuralReaction=XI;class GR extends Md{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.PredefinedType=O,this.Thickness=C,this.type=3979015343}}e.IfcStructuralSurfaceMember=GR;class WO extends GR{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.PredefinedType=O,this.Thickness=C,this.type=2218152070}}e.IfcStructuralSurfaceMemberVarying=WO;class zO extends XI{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.PredefinedType=K,this.type=603775116}}e.IfcStructuralSurfaceReaction=zO;class FR extends $l{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.BaseCosts=K,this.BaseQuantity=It,this.PredefinedType=_t,this.type=4095615324}}e.IfcSubContractResourceType=FR;class Ud extends rh{constructor(r,a,h){super(),this.Curve3D=r,this.AssociatedGeometry=a,this.MasterRepresentation=h,this.type=699246055}}e.IfcSurfaceCurve=Ud;class YO extends dd{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.SweptArea=r,this.Position=a,this.Directrix=h,this.StartParam=p,this.EndParam=y,this.ReferenceSurface=m,this.type=2028607225}}e.IfcSurfaceCurveSweptAreaSolid=YO;class VR extends sh{constructor(r,a,h,p){super(r,a),this.SweptCurve=r,this.Position=a,this.ExtrudedDirection=h,this.Depth=p,this.type=2809605785}}e.IfcSurfaceOfLinearExtrusion=VR;class kO extends sh{constructor(r,a,h){super(r,a),this.SweptCurve=r,this.Position=a,this.AxisPosition=h,this.type=4124788165}}e.IfcSurfaceOfRevolution=kO;class KO extends YI{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1580310250}}e.IfcSystemFurnitureElementType=KO;class ZO extends qI{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Status=O,this.WorkMethod=C,this.IsMilestone=K,this.Priority=It,this.TaskTime=_t,this.PredefinedType=qt,this.type=3473067441}}e.IfcTask=ZO;class qO extends Xh{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ProcessType=C,this.PredefinedType=K,this.WorkMethod=It,this.type=3206491090}}e.IfcTaskType=qO;class Cd extends pd{constructor(r){super(),this.Coordinates=r,this.type=2387106220}}e.IfcTessellatedFaceSet=Cd;class jO extends iu{constructor(r,a,h,p,y){super(r),this.Position=r,this.CubicTerm=a,this.QuadraticTerm=h,this.LinearTerm=p,this.ConstantTerm=y,this.type=782932809}}e.IfcThirdOrderPolynomialSpiral=jO;class QO extends JE{constructor(r,a,h){super(r),this.Position=r,this.MajorRadius=a,this.MinorRadius=h,this.type=1935646853}}e.IfcToroidalSurface=QO;class bd extends ch{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3665877780}}e.IfcTransportationDeviceType=bd;class HR extends Cd{constructor(r,a,h,p,y){super(r),this.Coordinates=r,this.Normals=a,this.Closed=h,this.CoordIndex=p,this.PnIndex=y,this.type=2916149573}}e.IfcTriangulatedFaceSet=HR;class $O extends HR{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.Coordinates=r,this.Normals=a,this.Closed=h,this.CoordIndex=p,this.PnIndex=y,this.Flags=m,this.type=1229763772}}e.IfcTriangulatedIrregularNetwork=$O;class JO extends bd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3651464721}}e.IfcVehicleType=JO;class WR extends ho{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.LiningDepth=y,this.LiningThickness=m,this.TransomThickness=N,this.MullionThickness=O,this.FirstTransomOffset=C,this.SecondTransomOffset=K,this.FirstMullionOffset=It,this.SecondMullionOffset=_t,this.ShapeAspectStyle=qt,this.LiningOffset=Ze,this.LiningToPanelOffsetX=gi,this.LiningToPanelOffsetY=Nn,this.type=336235671}}e.IfcWindowLiningProperties=WR;class nf extends ho{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.OperationType=y,this.PanelPosition=m,this.FrameDepth=N,this.FrameThickness=O,this.ShapeAspectStyle=C,this.type=512836454}}e.IfcWindowPanelProperties=nf;class zR extends ah{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.TheActor=m,this.type=2296667514}}e.IfcActor=zR;class YR extends XE{constructor(r){super(r),this.Outer=r,this.type=1635779807}}e.IfcAdvancedBrep=YR;class XO extends YR{constructor(r,a){super(r),this.Outer=r,this.Voids=a,this.type=2603310189}}e.IfcAdvancedBrepWithVoids=XO;class tv extends Uc{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.PredefinedType=O,this.type=1674181508}}e.IfcAnnotation=tv;class kR extends fp{constructor(r,a,h,p,y,m,N){super(),this.UDegree=r,this.VDegree=a,this.ControlPointsList=h,this.SurfaceForm=p,this.UClosed=y,this.VClosed=m,this.SelfIntersect=N,this.type=2887950389}}e.IfcBSplineSurface=kR;class KR extends kR{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N),this.UDegree=r,this.VDegree=a,this.ControlPointsList=h,this.SurfaceForm=p,this.UClosed=y,this.VClosed=m,this.SelfIntersect=N,this.UMultiplicities=O,this.VMultiplicities=C,this.UKnots=K,this.VKnots=It,this.KnotSpec=_t,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=KR;class ev extends Tp{constructor(r,a,h,p){super(r),this.Position=r,this.XLength=a,this.YLength=h,this.ZLength=p,this.type=1334484129}}e.IfcBlock=ev;class sv extends tl{constructor(r,a,h){super(r,a,h),this.Operator=r,this.FirstOperand=a,this.SecondOperand=h,this.type=3649129432}}e.IfcBooleanClippingResult=sv;class uo extends rh{constructor(){super(),this.type=1260505505}}e.IfcBoundedCurve=uo;class rf extends Ea{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.Elevation=K,this.type=3124254112}}e.IfcBuildingStorey=rf;class be extends ch{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=1626504194}}e.IfcBuiltElementType=be;class ZR extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2197970202}}e.IfcChimneyType=ZR;class iv extends yR{constructor(r,a,h,p,y){super(r,a,h,p),this.ProfileType=r,this.ProfileName=a,this.Position=h,this.Radius=p,this.WallThickness=y,this.type=2937912522}}e.IfcCircleHollowProfileDef=iv;class nv extends ch{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3893394355}}e.IfcCivilElementType=nv;class rv extends iu{constructor(r,a){super(r),this.Position=r,this.ClothoidConstant=a,this.type=3497074424}}e.IfcClothoid=rv;class cv extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=300633059}}e.IfcColumnType=cv;class av extends jI{constructor(r,a,h,p,y,m,N){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.UsageName=y,this.TemplateType=m,this.HasPropertyTemplates=N,this.type=3875453745}}e.IfcComplexPropertyTemplate=av;class ty extends uo{constructor(r,a){super(),this.Segments=r,this.SelfIntersect=a,this.type=3732776249}}e.IfcCompositeCurve=ty;class qR extends ty{constructor(r,a){super(r,a),this.Segments=r,this.SelfIntersect=a,this.type=15328376}}e.IfcCompositeCurveOnSurface=qR;class wd extends rh{constructor(r){super(),this.Position=r,this.type=2510884976}}e.IfcConic=wd;class ov extends $l{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.BaseCosts=K,this.BaseQuantity=It,this.PredefinedType=_t,this.type=2185764099}}e.IfcConstructionEquipmentResourceType=ov;class hv extends $l{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.BaseCosts=K,this.BaseQuantity=It,this.PredefinedType=_t,this.type=4105962743}}e.IfcConstructionMaterialResourceType=hv;class lv extends $l{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.Identification=N,this.LongDescription=O,this.ResourceType=C,this.BaseCosts=K,this.BaseQuantity=It,this.PredefinedType=_t,this.type=1525564444}}e.IfcConstructionProductResourceType=lv;class b extends BR{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Usage=O,this.BaseCosts=C,this.BaseQuantity=K,this.type=2559216714}}e.IfcConstructionResource=b;class E extends ah{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.type=3293443760}}e.IfcControl=E;class d extends iu{constructor(r,a,h){super(r),this.Position=r,this.CosineTerm=a,this.ConstantTerm=h,this.type=2000195564}}e.IfcCosineSpiral=d;class S extends E{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.PredefinedType=N,this.CostValues=O,this.CostQuantities=C,this.type=3895139033}}e.IfcCostItem=S;class v extends E{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.PredefinedType=N,this.Status=O,this.SubmittedOn=C,this.UpdateDate=K,this.type=1419761937}}e.IfcCostSchedule=v;class M extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4189326743}}e.IfcCourseType=M;class w extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1916426348}}e.IfcCoveringType=w;class G extends b{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Usage=O,this.BaseCosts=C,this.BaseQuantity=K,this.PredefinedType=It,this.type=3295246426}}e.IfcCrewResource=G;class W extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1457835157}}e.IfcCurtainWallType=W;class Y extends JE{constructor(r,a){super(r),this.Position=r,this.Radius=a,this.type=1213902940}}e.IfcCylindricalSurface=Y;class st extends be{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=1306400036}}e.IfcDeepFoundationType=st;class At extends NR{constructor(r,a,h,p,y,m){super(r,a,h,p,y,m),this.SweptArea=r,this.Position=a,this.Directrix=h,this.StartParam=p,this.EndParam=y,this.FixedReference=m,this.type=4234616927}}e.IfcDirectrixDerivedReferenceSweptAreaSolid=At;class Mt extends ch{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3256556792}}e.IfcDistributionElementType=Mt;class Ft extends Mt{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3849074793}}e.IfcDistributionFlowElementType=Ft;class ie extends ho{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.LiningDepth=y,this.LiningThickness=m,this.ThresholdDepth=N,this.ThresholdThickness=O,this.TransomThickness=C,this.TransomOffset=K,this.LiningOffset=It,this.ThresholdOffset=_t,this.CasingThickness=qt,this.CasingDepth=Ze,this.ShapeAspectStyle=gi,this.LiningToPanelOffsetX=Nn,this.LiningToPanelOffsetY=bc,this.type=2963535650}}e.IfcDoorLiningProperties=ie;class ns extends ho{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.PanelDepth=y,this.PanelOperation=m,this.PanelWidth=N,this.PanelPosition=O,this.ShapeAspectStyle=C,this.type=1714330368}}e.IfcDoorPanelProperties=ns;class Jn extends be{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.OperationType=It,this.ParameterTakesPrecedence=_t,this.UserDefinedOperationType=qt,this.type=2323601079}}e.IfcDoorType=Jn;class Or extends OR{constructor(r){super(r),this.Name=r,this.type=445594917}}e.IfcDraughtingPreDefinedColour=Or;class sl extends vR{constructor(r){super(r),this.Name=r,this.type=4006246654}}e.IfcDraughtingPreDefinedCurveFont=sl;class ui extends Uc{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1758889154}}e.IfcElement=ui;class Ap extends ui{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.AssemblyPlace=C,this.PredefinedType=K,this.type=4123344466}}e.IfcElementAssembly=Ap;class po extends ch{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2397081782}}e.IfcElementAssemblyType=po;class Xn extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1623761950}}e.IfcElementComponent=Xn;class tr extends ch{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=2590856083}}e.IfcElementComponentType=tr;class uv extends wd{constructor(r,a,h){super(r),this.Position=r,this.SemiAxis1=a,this.SemiAxis2=h,this.type=1704287377}}e.IfcEllipse=uv;class Bs extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=2107101300}}e.IfcEnergyConversionDeviceType=Bs;class pv extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=132023988}}e.IfcEngineType=pv;class Ev extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3174744832}}e.IfcEvaporativeCoolerType=Ev;class ZL extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3390157468}}e.IfcEvaporatorType=ZL;class qL extends qI{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.PredefinedType=O,this.EventTriggerType=C,this.UserDefinedEventTriggerType=K,this.EventOccurenceTime=It,this.type=4148101412}}e.IfcEvent=qL;class U_ extends $I{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.type=2853485674}}e.IfcExternalSpatialStructureElement=U_;class C_ extends XE{constructor(r){super(r),this.Outer=r,this.type=807026263}}e.IfcFacetedBrep=C_;class jL extends C_{constructor(r,a){super(r),this.Outer=r,this.Voids=a,this.type=3737207727}}e.IfcFacetedBrepWithVoids=jL;class ey extends Ea{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.type=24185140}}e.IfcFacility=ey;class sy extends Ea{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.UsageType=K,this.type=1310830890}}e.IfcFacilityPart=sy;class QL extends sy{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.UsageType=K,this.PredefinedType=It,this.type=4228831410}}e.IfcFacilityPartCommon=QL;class $L extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=647756555}}e.IfcFastener=$L;class JL extends tr{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2489546625}}e.IfcFastenerType=JL;class jR extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=2827207264}}e.IfcFeatureElement=jR;class b_ extends jR{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=2143335405}}e.IfcFeatureElementAddition=b_;class QR extends jR{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1287392070}}e.IfcFeatureElementSubtraction=QR;class il extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3907093117}}e.IfcFlowControllerType=il;class Dp extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3198132628}}e.IfcFlowFittingType=Dp;class XL extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3815607619}}e.IfcFlowMeterType=XL;class $R extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=1482959167}}e.IfcFlowMovingDeviceType=$R;class iy extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=1834744321}}e.IfcFlowSegmentType=iy;class fv extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=1339347760}}e.IfcFlowStorageDeviceType=fv;class er extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=2297155007}}e.IfcFlowTerminalType=er;class Bd extends Ft{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=Bd;class t3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1893162501}}e.IfcFootingType=t3;class Iv extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=263784265}}e.IfcFurnishingElement=Iv;class e3 extends Iv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1509553395}}e.IfcFurniture=e3;class w_ extends ui{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3493046030}}e.IfcGeographicElement=w_;class JR extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=4230923436}}e.IfcGeotechnicalElement=JR;class s3 extends JR{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1594536857}}e.IfcGeotechnicalStratum=s3;class i3 extends ty{constructor(r,a,h,p){super(r,a),this.Segments=r,this.SelfIntersect=a,this.BaseCurve=h,this.EndPoint=p,this.type=2898700619}}e.IfcGradientCurve=i3;class cf extends ah{constructor(r,a,h,p,y){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.type=2706460486}}e.IfcGroup=cf;class Qs extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1251058090}}e.IfcHeatExchangerType=Qs;class n3 extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1806887404}}e.IfcHumidifierType=n3;class r3 extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2568555532}}e.IfcImpactProtectionDevice=r3;class c3 extends tr{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3948183225}}e.IfcImpactProtectionDeviceType=c3;class a3 extends uo{constructor(r,a,h){super(),this.Points=r,this.Segments=a,this.SelfIntersect=h,this.type=2571569899}}e.IfcIndexedPolyCurve=a3;class o3 extends Bd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3946677679}}e.IfcInterceptorType=o3;class h3 extends Ud{constructor(r,a,h){super(r,a,h),this.Curve3D=r,this.AssociatedGeometry=a,this.MasterRepresentation=h,this.type=3113134337}}e.IfcIntersectionCurve=h3;class l3 extends cf{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.PredefinedType=m,this.Jurisdiction=N,this.ResponsiblePersons=O,this.LastUpdateDate=C,this.CurrentValue=K,this.OriginalValue=It,this.type=2391368822}}e.IfcInventory=l3;class u3 extends Dp{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4288270099}}e.IfcJunctionBoxType=u3;class p3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=679976338}}e.IfcKerbType=p3;class E3 extends b{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Usage=O,this.BaseCosts=C,this.BaseQuantity=K,this.PredefinedType=It,this.type=3827777499}}e.IfcLaborResource=E3;class f3 extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1051575348}}e.IfcLampType=f3;class I3 extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1161773419}}e.IfcLightFixtureType=I3;class Gd extends Uc{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=2176059722}}e.IfcLinearElement=Gd;class y3 extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1770583370}}e.IfcLiquidTerminalType=y3;class T3 extends ey{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.PredefinedType=K,this.type=525669439}}e.IfcMarineFacility=T3;class B_ extends sy{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.UsageType=K,this.PredefinedType=It,this.type=976884017}}e.IfcMarinePart=B_;class d3 extends Xn{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.NominalDiameter=C,this.NominalLength=K,this.PredefinedType=It,this.type=377706215}}e.IfcMechanicalFastener=d3;class m3 extends tr{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.NominalDiameter=It,this.NominalLength=_t,this.type=2108223431}}e.IfcMechanicalFastenerType=m3;class R3 extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1114901282}}e.IfcMedicalDeviceType=R3;class S3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3181161470}}e.IfcMemberType=S3;class N3 extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1950438474}}e.IfcMobileTelecommunicationsApplianceType=N3;class A3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=710110818}}e.IfcMooringDeviceType=A3;class D3 extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=977012517}}e.IfcMotorConnectionType=D3;class O3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=506776471}}e.IfcNavigationElementType=O3;class v3 extends zR{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.TheActor=m,this.PredefinedType=N,this.type=4143007308}}e.IfcOccupant=v3;class _3 extends QR{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3588315303}}e.IfcOpeningElement=_3;class g3 extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2837617999}}e.IfcOutletType=g3;class L3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=514975943}}e.IfcPavementType=L3;class x3 extends E{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LifeCyclePhase=N,this.PredefinedType=O,this.type=2382730787}}e.IfcPerformanceHistory=x3;class P3 extends ho{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.OperationType=y,this.PanelPosition=m,this.FrameDepth=N,this.FrameThickness=O,this.ShapeAspectStyle=C,this.type=3566463478}}e.IfcPermeableCoveringProperties=P3;class M3 extends E{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.PredefinedType=N,this.Status=O,this.LongDescription=C,this.type=3327091369}}e.IfcPermit=M3;class Op extends st{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1158309216}}e.IfcPileType=Op;class yv extends Dp{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=804291784}}e.IfcPipeFittingType=yv;class nl extends iy{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4231323485}}e.IfcPipeSegmentType=nl;class U3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4017108033}}e.IfcPlateType=U3;class G_ extends Cd{constructor(r,a,h,p){super(r),this.Coordinates=r,this.Closed=a,this.Faces=h,this.PnIndex=p,this.type=2839578677}}e.IfcPolygonalFaceSet=G_;class F_ extends uo{constructor(r){super(),this.Points=r,this.type=3724593414}}e.IfcPolyline=F_;class V_ extends Uc{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=3740093272}}e.IfcPort=V_;class XR extends Uc{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=1946335990}}e.IfcPositioningElement=XR;class C3 extends qI{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.PredefinedType=O,this.type=2744685151}}e.IfcProcedure=C3;class b3 extends E{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.PredefinedType=N,this.Status=O,this.LongDescription=C,this.type=2904328755}}e.IfcProjectOrder=b3;class w3 extends b_{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3651124850}}e.IfcProjectionElement=w3;class B3 extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1842657554}}e.IfcProtectiveDeviceType=B3;class G3 extends $R{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2250791053}}e.IfcPumpType=G3;class F3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1763565496}}e.IfcRailType=F3;class V3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2893384427}}e.IfcRailingType=V3;class H3 extends ey{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.PredefinedType=K,this.type=3992365140}}e.IfcRailway=H3;class pi extends sy{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.UsageType=K,this.PredefinedType=It,this.type=1891881377}}e.IfcRailwayPart=pi;class W3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2324767716}}e.IfcRampFlightType=W3;class z3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1469900589}}e.IfcRampType=z3;class Y3 extends KR{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O,C,K,It,_t),this.UDegree=r,this.VDegree=a,this.ControlPointsList=h,this.SurfaceForm=p,this.UClosed=y,this.VClosed=m,this.SelfIntersect=N,this.UMultiplicities=O,this.VMultiplicities=C,this.UKnots=K,this.VKnots=It,this.KnotSpec=_t,this.WeightsData=qt,this.type=683857671}}e.IfcRationalBSplineSurfaceWithKnots=Y3;class k3 extends XR{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.PredefinedType=O,this.type=4021432810}}e.IfcReferent=k3;class ny extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.SteelGrade=C,this.type=3027567501}}e.IfcReinforcingElement=ny;class ry extends tr{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=964333572}}e.IfcReinforcingElementType=ry;class K3 extends ny{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc,xp){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.SteelGrade=C,this.MeshLength=K,this.MeshWidth=It,this.LongitudinalBarNominalDiameter=_t,this.TransverseBarNominalDiameter=qt,this.LongitudinalBarCrossSectionArea=Ze,this.TransverseBarCrossSectionArea=gi,this.LongitudinalBarSpacing=Nn,this.TransverseBarSpacing=bc,this.PredefinedType=xp,this.type=2320036040}}e.IfcReinforcingMesh=K3;class nu extends ry{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc,xp,rS,cS){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.MeshLength=It,this.MeshWidth=_t,this.LongitudinalBarNominalDiameter=qt,this.TransverseBarNominalDiameter=Ze,this.LongitudinalBarCrossSectionArea=gi,this.TransverseBarCrossSectionArea=Nn,this.LongitudinalBarSpacing=bc,this.TransverseBarSpacing=xp,this.BendingShapeCode=rS,this.BendingParameters=cS,this.type=2310774935}}e.IfcReinforcingMeshType=nu;class cy extends Rp{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingElement=y,this.RelatedSurfaceFeatures=m,this.type=3818125796}}e.IfcRelAdheresToElement=cy;class Z3 extends Rp{constructor(r,a,h,p,y,m){super(r,a,h,p),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.RelatingObject=y,this.RelatedObjects=m,this.type=160246688}}e.IfcRelAggregates=Z3;class q3 extends ey{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.PredefinedType=K,this.type=146592293}}e.IfcRoad=q3;class tS extends sy{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.UsageType=K,this.PredefinedType=It,this.type=550521510}}e.IfcRoadPart=tS;class Fd extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2781568857}}e.IfcRoofType=Fd;class Tv extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1768891740}}e.IfcSanitaryTerminalType=Tv;class Cc extends Ud{constructor(r,a,h){super(r,a,h),this.Curve3D=r,this.AssociatedGeometry=a,this.MasterRepresentation=h,this.type=2157484638}}e.IfcSeamCurve=Cc;class eS extends iu{constructor(r,a,h,p){super(r),this.Position=r,this.QuadraticTerm=a,this.LinearTerm=h,this.ConstantTerm=p,this.type=3649235739}}e.IfcSecondOrderPolynomialSpiral=eS;class j3 extends ty{constructor(r,a,h,p){super(r,a),this.Segments=r,this.SelfIntersect=a,this.BaseCurve=h,this.EndPoint=p,this.type=544395925}}e.IfcSegmentedReferenceCurve=j3;class Q3 extends iu{constructor(r,a,h,p,y,m,N,O,C){super(r),this.Position=r,this.SepticTerm=a,this.SexticTerm=h,this.QuinticTerm=p,this.QuarticTerm=y,this.CubicTerm=m,this.QuadraticTerm=N,this.LinearTerm=O,this.ConstantTerm=C,this.type=1027922057}}e.IfcSeventhOrderPolynomialSpiral=Q3;class $3 extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4074543187}}e.IfcShadingDeviceType=$3;class J3 extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=33720170}}e.IfcSign=J3;class X3 extends tr{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3599934289}}e.IfcSignType=X3;class tx extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1894708472}}e.IfcSignalType=tx;class ex extends iu{constructor(r,a,h,p){super(r),this.Position=r,this.SineTerm=a,this.LinearTerm=h,this.ConstantTerm=p,this.type=42703149}}e.IfcSineSpiral=ex;class sx extends Ea{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.RefLatitude=K,this.RefLongitude=It,this.RefElevation=_t,this.LandTitleNumber=qt,this.SiteAddress=Ze,this.type=4097777520}}e.IfcSite=sx;class H_ extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2533589738}}e.IfcSlabType=H_;class ix extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1072016465}}e.IfcSolarDeviceType=ix;class nx extends Ea{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.PredefinedType=K,this.ElevationWithFlooring=It,this.type=3856911033}}e.IfcSpace=nx;class rx extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1305183839}}e.IfcSpaceHeaterType=rx;class cx extends JI{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.LongName=It,this.type=3812236995}}e.IfcSpaceType=cx;class ax extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3112655638}}e.IfcStackTerminalType=ax;class ox extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1039846685}}e.IfcStairFlightType=ox;class hx extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=338393293}}e.IfcStairType=hx;class Vd extends xd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.DestabilizingLoad=K,this.type=682877961}}e.IfcStructuralAction=Vd;class sS extends Pd{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedCondition=O,this.type=1179482911}}e.IfcStructuralConnection=sS;class W_ extends Vd{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.DestabilizingLoad=K,this.ProjectedOrTrue=It,this.PredefinedType=_t,this.type=1004757350}}e.IfcStructuralCurveAction=W_;class lx extends sS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedCondition=O,this.AxisDirection=C,this.type=4243806635}}e.IfcStructuralCurveConnection=lx;class z_ extends Md{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.PredefinedType=O,this.Axis=C,this.type=214636428}}e.IfcStructuralCurveMember=z_;class ux extends z_{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.PredefinedType=O,this.Axis=C,this.type=2445595289}}e.IfcStructuralCurveMemberVarying=ux;class px extends XI{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.PredefinedType=K,this.type=2757150158}}e.IfcStructuralCurveReaction=px;class Ex extends W_{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It,_t),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.DestabilizingLoad=K,this.ProjectedOrTrue=It,this.PredefinedType=_t,this.type=1807405624}}e.IfcStructuralLinearAction=Ex;class Y_ extends cf{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.PredefinedType=m,this.ActionType=N,this.ActionSource=O,this.Coefficient=C,this.Purpose=K,this.type=1252848954}}e.IfcStructuralLoadGroup=Y_;class fx extends Vd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.DestabilizingLoad=K,this.type=2082059205}}e.IfcStructuralPointAction=fx;class Ix extends sS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedCondition=O,this.ConditionCoordinateSystem=C,this.type=734778138}}e.IfcStructuralPointConnection=Ix;class yx extends XI{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.type=1235345126}}e.IfcStructuralPointReaction=yx;class Tx extends cf{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.TheoryType=m,this.ResultForLoadGroup=N,this.IsLinear=O,this.type=2986769608}}e.IfcStructuralResultGroup=Tx;class k_ extends Vd{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.DestabilizingLoad=K,this.ProjectedOrTrue=It,this.PredefinedType=_t,this.type=3657597509}}e.IfcStructuralSurfaceAction=k_;class dx extends sS{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedCondition=O,this.type=1975003073}}e.IfcStructuralSurfaceConnection=dx;class dv extends b{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Usage=O,this.BaseCosts=C,this.BaseQuantity=K,this.PredefinedType=It,this.type=148013059}}e.IfcSubContractResource=dv;class mx extends jR{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3101698114}}e.IfcSurfaceFeature=mx;class Rx extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2315554128}}e.IfcSwitchingDeviceType=Rx;class ay extends cf{constructor(r,a,h,p,y){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.type=2254336722}}e.IfcSystem=ay;class Sx extends Iv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=413509423}}e.IfcSystemFurnitureElement=Sx;class Nx extends fv{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=5716631}}e.IfcTankType=Nx;class Ax extends ny{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn,bc){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.SteelGrade=C,this.PredefinedType=K,this.NominalDiameter=It,this.CrossSectionArea=_t,this.TensionForce=qt,this.PreStress=Ze,this.FrictionCoefficient=gi,this.AnchorageSlip=Nn,this.MinCurvatureRadius=bc,this.type=3824725483}}e.IfcTendon=Ax;class Dx extends ny{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.SteelGrade=C,this.PredefinedType=K,this.type=2347447852}}e.IfcTendonAnchor=Dx;class Ox extends ry{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3081323446}}e.IfcTendonAnchorType=Ox;class vx extends ny{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.SteelGrade=C,this.PredefinedType=K,this.type=3663046924}}e.IfcTendonConduit=vx;class _x extends ry{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2281632017}}e.IfcTendonConduitType=_x;class gx extends ry{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.NominalDiameter=It,this.CrossSectionArea=_t,this.SheathDiameter=qt,this.type=2415094496}}e.IfcTendonType=gx;class Lx extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=618700268}}e.IfcTrackElementType=Lx;class xx extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1692211062}}e.IfcTransformerType=xx;class Px extends bd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2097647324}}e.IfcTransportElementType=Px;class mv extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1953115116}}e.IfcTransportationDevice=mv;class Mx extends uo{constructor(r,a,h,p,y){super(),this.BasisCurve=r,this.Trim1=a,this.Trim2=h,this.SenseAgreement=p,this.MasterRepresentation=y,this.type=3593883385}}e.IfcTrimmedCurve=Mx;class Ux extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1600972822}}e.IfcTubeBundleType=Ux;class Rv extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1911125066}}e.IfcUnitaryEquipmentType=Rv;class Cx extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=728799441}}e.IfcValveType=Cx;class bx extends mv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=840318589}}e.IfcVehicle=bx;class wx extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1530820697}}e.IfcVibrationDamper=wx;class K_ extends tr{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3956297820}}e.IfcVibrationDamperType=K_;class Bx extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2391383451}}e.IfcVibrationIsolator=Bx;class Gx extends tr{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3313531582}}e.IfcVibrationIsolatorType=Gx;class Fx extends ui{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2769231204}}e.IfcVirtualElement=Fx;class Vx extends QR{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=926996030}}e.IfcVoidingFeature=Vx;class Hx extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1898987631}}e.IfcWallType=Hx;class Wx extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1133259667}}e.IfcWasteTerminalType=Wx;class zx extends be{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.PartitioningType=It,this.ParameterTakesPrecedence=_t,this.UserDefinedPartitioningType=qt,this.type=4009809668}}e.IfcWindowType=zx;class Z_ extends E{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.WorkingTimes=N,this.ExceptionTimes=O,this.PredefinedType=C,this.type=4088093105}}e.IfcWorkCalendar=Z_;class Sv extends E{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.CreationDate=N,this.Creators=O,this.Purpose=C,this.Duration=K,this.TotalFloat=It,this.StartTime=_t,this.FinishTime=qt,this.type=1028945134}}e.IfcWorkControl=Sv;class Yx extends Sv{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze){super(r,a,h,p,y,m,N,O,C,K,It,_t,qt),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.CreationDate=N,this.Creators=O,this.Purpose=C,this.Duration=K,this.TotalFloat=It,this.StartTime=_t,this.FinishTime=qt,this.PredefinedType=Ze,this.type=4218914973}}e.IfcWorkPlan=Yx;class kx extends Sv{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze){super(r,a,h,p,y,m,N,O,C,K,It,_t,qt),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.CreationDate=N,this.Creators=O,this.Purpose=C,this.Duration=K,this.TotalFloat=It,this.StartTime=_t,this.FinishTime=qt,this.PredefinedType=Ze,this.type=3342526732}}e.IfcWorkSchedule=kx;class Kx extends ay{constructor(r,a,h,p,y,m){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.LongName=m,this.type=1033361043}}e.IfcZone=Kx;class Zx extends E{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.PredefinedType=N,this.Status=O,this.LongDescription=C,this.type=3821786052}}e.IfcActionRequest=Zx;class qx extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1411407467}}e.IfcAirTerminalBoxType=qx;class jx extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3352864051}}e.IfcAirTerminalType=jx;class Qx extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1871374353}}e.IfcAirToAirHeatRecoveryType=Qx;class $x extends Gd{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.RailHeadDistance=O,this.type=4266260250}}e.IfcAlignmentCant=$x;class Jx extends Gd{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=1545765605}}e.IfcAlignmentHorizontal=Jx;class Xx extends Gd{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.DesignParameters=O,this.type=317615605}}e.IfcAlignmentSegment=Xx;class tP extends Gd{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=1662888072}}e.IfcAlignmentVertical=tP;class eP extends cf{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.OriginalValue=N,this.CurrentValue=O,this.TotalReplacementCost=C,this.Owner=K,this.User=It,this.ResponsiblePerson=_t,this.IncorporationDate=qt,this.DepreciatedValue=Ze,this.type=3460190687}}e.IfcAsset=eP;class sP extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1532957894}}e.IfcAudioVisualApplianceType=sP;class q_ extends uo{constructor(r,a,h,p,y){super(),this.Degree=r,this.ControlPointsList=a,this.CurveForm=h,this.ClosedCurve=p,this.SelfIntersect=y,this.type=1967976161}}e.IfcBSplineCurve=q_;class j_ extends q_{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y),this.Degree=r,this.ControlPointsList=a,this.CurveForm=h,this.ClosedCurve=p,this.SelfIntersect=y,this.KnotMultiplicities=m,this.Knots=N,this.KnotSpec=O,this.type=2461110595}}e.IfcBSplineCurveWithKnots=j_;class iP extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=819618141}}e.IfcBeamType=iP;class nP extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3649138523}}e.IfcBearingType=nP;class vp extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=231477066}}e.IfcBoilerType=vp;class Q_ extends qR{constructor(r,a){super(r,a),this.Segments=r,this.SelfIntersect=a,this.type=1136057603}}e.IfcBoundaryCurve=Q_;class rP extends ey{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.PredefinedType=K,this.type=644574406}}e.IfcBridge=rP;class cP extends sy{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.UsageType=K,this.PredefinedType=It,this.type=963979645}}e.IfcBridgePart=cP;class aP extends ey{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.CompositionType=C,this.ElevationOfRefHeight=K,this.ElevationOfTerrain=It,this.BuildingAddress=_t,this.type=4031249490}}e.IfcBuilding=aP;class oP extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2979338954}}e.IfcBuildingElementPart=oP;class hP extends tr{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=39481116}}e.IfcBuildingElementPartType=hP;class lP extends be{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1909888760}}e.IfcBuildingElementProxyType=lP;class uP extends ay{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.PredefinedType=m,this.LongName=N,this.type=1177604601}}e.IfcBuildingSystem=uP;class We extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1876633798}}e.IfcBuiltElement=We;class pP extends ay{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.PredefinedType=m,this.LongName=N,this.type=3862327254}}e.IfcBuiltSystem=pP;class EP extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2188180465}}e.IfcBurnerType=EP;class fP extends Dp{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=395041908}}e.IfcCableCarrierFittingType=fP;class IP extends iy{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3293546465}}e.IfcCableCarrierSegmentType=IP;class yP extends Dp{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2674252688}}e.IfcCableFittingType=yP;class TP extends iy{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1285652485}}e.IfcCableSegmentType=TP;class dP extends st{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3203706013}}e.IfcCaissonFoundationType=dP;class mP extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2951183804}}e.IfcChillerType=mP;class RP extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3296154744}}e.IfcChimney=RP;class SP extends wd{constructor(r,a){super(r),this.Position=r,this.Radius=a,this.type=2611217952}}e.IfcCircle=SP;class x extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1677625105}}e.IfcCivilElement=x;class o extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2301859152}}e.IfcCoilType=o;class l extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=843113511}}e.IfcColumn=l;class f extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=400855858}}e.IfcCommunicationsApplianceType=f;class T extends $R{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3850581409}}e.IfcCompressorType=T;class R extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2816379211}}e.IfcCondenserType=R;class A extends b{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Usage=O,this.BaseCosts=C,this.BaseQuantity=K,this.PredefinedType=It,this.type=3898045240}}e.IfcConstructionEquipmentResource=A;class L extends b{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Usage=O,this.BaseCosts=C,this.BaseQuantity=K,this.PredefinedType=It,this.type=1060000209}}e.IfcConstructionMaterialResource=L;class P extends b{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.Identification=m,this.LongDescription=N,this.Usage=O,this.BaseCosts=C,this.BaseQuantity=K,this.PredefinedType=It,this.type=488727124}}e.IfcConstructionProductResource=P;class B extends iy{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2940368186}}e.IfcConveyorSegmentType=B;class J extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=335055490}}e.IfcCooledBeamType=J;class ft extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2954562838}}e.IfcCoolingTowerType=ft;class Ot extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1502416096}}e.IfcCourse=Ot;class Wt extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1973544240}}e.IfcCovering=Wt;class we extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3495092785}}e.IfcCurtainWall=we;class $s extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3961806047}}e.IfcDamperType=$s;class Js extends We{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=3426335179}}e.IfcDeepFoundation=Js;class vr extends Xn{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1335981549}}e.IfcDiscreteAccessory=vr;class rl extends tr{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2635815018}}e.IfcDiscreteAccessoryType=rl;class oy extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=479945903}}e.IfcDistributionBoardType=oy;class hy extends Ft{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1599208980}}e.IfcDistributionChamberElementType=hy;class _p extends Mt{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.type=2063403501}}e.IfcDistributionControlElementType=_p;class NP extends ui{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1945004755}}e.IfcDistributionElement=NP;class gp extends NP{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=3040386961}}e.IfcDistributionFlowElement=gp;class lw extends V_{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.FlowDirection=O,this.PredefinedType=C,this.SystemType=K,this.type=3041715199}}e.IfcDistributionPort=lw;class F1 extends ay{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.LongName=m,this.PredefinedType=N,this.type=3205830791}}e.IfcDistributionSystem=F1;class uw extends We{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.OverallHeight=C,this.OverallWidth=K,this.PredefinedType=It,this.OperationType=_t,this.UserDefinedOperationType=qt,this.type=395920057}}e.IfcDoor=uw;class pw extends Dp{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=869906466}}e.IfcDuctFittingType=pw;class Ew extends iy{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3760055223}}e.IfcDuctSegmentType=Ew;class fw extends Bd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2030761528}}e.IfcDuctSilencerType=fw;class Iw extends QR{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3071239417}}e.IfcEarthworksCut=Iw;class AP extends We{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1077100507}}e.IfcEarthworksElement=AP;class yw extends AP{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3376911765}}e.IfcEarthworksFill=yw;class Tw extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=663422040}}e.IfcElectricApplianceType=Tw;class dw extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2417008758}}e.IfcElectricDistributionBoardType=dw;class mw extends fv{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3277789161}}e.IfcElectricFlowStorageDeviceType=mw;class Rw extends Bd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2142170206}}e.IfcElectricFlowTreatmentDeviceType=Rw;class Sw extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1534661035}}e.IfcElectricGeneratorType=Sw;class Nw extends Bs{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1217240411}}e.IfcElectricMotorType=Nw;class Aw extends il{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=712377611}}e.IfcElectricTimeControlType=Aw;class qi extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1658829314}}e.IfcEnergyConversionDevice=qi;class Dw extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2814081492}}e.IfcEngine=Dw;class Ow extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3747195512}}e.IfcEvaporativeCooler=Ow;class vw extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=484807127}}e.IfcEvaporator=vw;class _w extends U_{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.LongName=O,this.PredefinedType=C,this.type=1209101575}}e.IfcExternalSpatialElement=_w;class gw extends $R{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=346874300}}e.IfcFanType=gw;class Lw extends Bd{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1810631287}}e.IfcFilterType=Lw;class xw extends er{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4222183408}}e.IfcFireSuppressionTerminalType=xw;class Lp extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=2058353004}}e.IfcFlowController=Lp;class iS extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=4278956645}}e.IfcFlowFitting=iS;class Pw extends _p{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=4037862832}}e.IfcFlowInstrumentType=Pw;class Mw extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2188021234}}e.IfcFlowMeter=Mw;class $_ extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=3132237377}}e.IfcFlowMovingDevice=$_;class nS extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=987401354}}e.IfcFlowSegment=nS;class DP extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=707683696}}e.IfcFlowStorageDevice=DP;class ec extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=2223149337}}e.IfcFlowTerminal=ec;class Nv extends gp{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=3508470533}}e.IfcFlowTreatmentDevice=Nv;class Uw extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=900683007}}e.IfcFooting=Uw;class J_ extends JR{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=2713699986}}e.IfcGeotechnicalAssembly=J_;class Cw extends XR{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.UAxes=O,this.VAxes=C,this.WAxes=K,this.PredefinedType=It,this.type=3009204131}}e.IfcGrid=Cw;class bw extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3319311131}}e.IfcHeatExchanger=bw;class ww extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2068733104}}e.IfcHumidifier=ww;class Bw extends Nv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4175244083}}e.IfcInterceptor=Bw;class Gw extends iS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2176052936}}e.IfcJunctionBox=Gw;class Fw extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2696325953}}e.IfcKerb=Fw;class Vw extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=76236018}}e.IfcLamp=Vw;class Hw extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=629592764}}e.IfcLightFixture=Hw;class V1 extends XR{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.type=1154579445}}e.IfcLinearPositioningElement=V1;class Ww extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1638804497}}e.IfcLiquidTerminal=Ww;class zw extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1437502449}}e.IfcMedicalDevice=zw;class Yw extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1073191201}}e.IfcMember=Yw;class kw extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2078563270}}e.IfcMobileTelecommunicationsAppliance=kw;class Kw extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=234836483}}e.IfcMooringDevice=Kw;class Zw extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2474470126}}e.IfcMotorConnection=Zw;class qw extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2182337498}}e.IfcNavigationElement=qw;class jw extends Q_{constructor(r,a){super(r,a),this.Segments=r,this.SelfIntersect=a,this.type=144952367}}e.IfcOuterBoundaryCurve=jw;class Qw extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3694346114}}e.IfcOutlet=Qw;class $w extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1383356374}}e.IfcPavement=$w;class Jw extends Js{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.ConstructionType=K,this.type=1687234759}}e.IfcPile=Jw;class Xw extends iS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=310824031}}e.IfcPipeFitting=Xw;class tB extends nS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3612865200}}e.IfcPipeSegment=tB;class eB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3171933400}}e.IfcPlate=eB;class sB extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=738039164}}e.IfcProtectiveDevice=sB;class iB extends _p{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=655969474}}e.IfcProtectiveDeviceTrippingUnitType=iB;class nB extends $_{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=90941305}}e.IfcPump=nB;class rB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3290496277}}e.IfcRail=rB;class cB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2262370178}}e.IfcRailing=cB;class aB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3024970846}}e.IfcRamp=aB;class oB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3283111854}}e.IfcRampFlight=oB;class hB extends j_{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.Degree=r,this.ControlPointsList=a,this.CurveForm=h,this.ClosedCurve=p,this.SelfIntersect=y,this.KnotMultiplicities=m,this.Knots=N,this.KnotSpec=O,this.WeightsData=C,this.type=1232101972}}e.IfcRationalBSplineCurveWithKnots=hB;class lB extends AP{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3798194928}}e.IfcReinforcedSoil=lB;class uB extends ny{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.SteelGrade=C,this.NominalDiameter=K,this.CrossSectionArea=It,this.BarLength=_t,this.PredefinedType=qt,this.BarSurface=Ze,this.type=979691226}}e.IfcReinforcingBar=uB;class pB extends ry{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt,Ze,gi,Nn){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.NominalDiameter=It,this.CrossSectionArea=_t,this.BarLength=qt,this.BarSurface=Ze,this.BendingShapeCode=gi,this.BendingParameters=Nn,this.type=2572171363}}e.IfcReinforcingBarType=pB;class EB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2016517767}}e.IfcRoof=EB;class fB extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3053780830}}e.IfcSanitaryTerminal=fB;class IB extends _p{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=1783015770}}e.IfcSensorType=IB;class yB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1329646415}}e.IfcShadingDevice=yB;class TB extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=991950508}}e.IfcSignal=TB;class dB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1529196076}}e.IfcSlab=dB;class mB extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3420628829}}e.IfcSolarDevice=mB;class RB extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1999602285}}e.IfcSpaceHeater=RB;class SB extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1404847402}}e.IfcStackTerminal=SB;class NB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=331165859}}e.IfcStair=NB;class AB extends We{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.NumberOfRisers=C,this.NumberOfTreads=K,this.RiserHeight=It,this.TreadLength=_t,this.PredefinedType=qt,this.type=4252922144}}e.IfcStairFlight=AB;class DB extends ay{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.PredefinedType=m,this.OrientationOf2DPlane=N,this.LoadedBy=O,this.HasResults=C,this.SharedPlacement=K,this.type=2515109513}}e.IfcStructuralAnalysisModel=DB;class OB extends Y_{constructor(r,a,h,p,y,m,N,O,C,K,It){super(r,a,h,p,y,m,N,O,C,K),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.PredefinedType=m,this.ActionType=N,this.ActionSource=O,this.Coefficient=C,this.Purpose=K,this.SelfWeightCoefficients=It,this.type=385403989}}e.IfcStructuralLoadCase=OB;class vB extends k_{constructor(r,a,h,p,y,m,N,O,C,K,It,_t){super(r,a,h,p,y,m,N,O,C,K,It,_t),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.AppliedLoad=O,this.GlobalOrLocal=C,this.DestabilizingLoad=K,this.ProjectedOrTrue=It,this.PredefinedType=_t,this.type=1621171031}}e.IfcStructuralPlanarAction=vB;class _B extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1162798199}}e.IfcSwitchingDevice=_B;class gB extends DP{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=812556717}}e.IfcTank=gB;class LB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3425753595}}e.IfcTrackElement=LB;class xB extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3825984169}}e.IfcTransformer=xB;class PB extends mv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1620046519}}e.IfcTransportElement=PB;class MB extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3026737570}}e.IfcTubeBundle=MB;class UB extends _p{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3179687236}}e.IfcUnitaryControlElementType=UB;class CB extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4292641817}}e.IfcUnitaryEquipment=CB;class bB extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4207607924}}e.IfcValve=bB;class H1 extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2391406946}}e.IfcWall=H1;class wB extends H1{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3512223829}}e.IfcWallStandardCase=wB;class BB extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4237592921}}e.IfcWasteTerminal=BB;class GB extends We{constructor(r,a,h,p,y,m,N,O,C,K,It,_t,qt){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.OverallHeight=C,this.OverallWidth=K,this.PredefinedType=It,this.PartitioningType=_t,this.UserDefinedPartitioningType=qt,this.type=3304561284}}e.IfcWindow=GB;class FB extends _p{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=2874132201}}e.IfcActuatorType=FB;class VB extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1634111441}}e.IfcAirTerminal=VB;class HB extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=177149247}}e.IfcAirTerminalBox=HB;class WB extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2056796094}}e.IfcAirToAirHeatRecovery=WB;class zB extends _p{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=3001207471}}e.IfcAlarmType=zB;class YB extends V1{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.PredefinedType=O,this.type=325726236}}e.IfcAlignment=YB;class kB extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=277319702}}e.IfcAudioVisualAppliance=kB;class KB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=753842376}}e.IfcBeam=KB;class ZB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4196446775}}e.IfcBearing=ZB;class qB extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=32344328}}e.IfcBoiler=qB;class jB extends J_{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=3314249567}}e.IfcBorehole=jB;class QB extends We{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1095909175}}e.IfcBuildingElementProxy=QB;class $B extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2938176219}}e.IfcBurner=$B;class JB extends iS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=635142910}}e.IfcCableCarrierFitting=JB;class XB extends nS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3758799889}}e.IfcCableCarrierSegment=XB;class t5 extends iS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1051757585}}e.IfcCableFitting=t5;class e5 extends nS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4217484030}}e.IfcCableSegment=e5;class s5 extends Js{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3999819293}}e.IfcCaissonFoundation=s5;class i5 extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3902619387}}e.IfcChiller=i5;class n5 extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=639361253}}e.IfcCoil=n5;class r5 extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3221913625}}e.IfcCommunicationsAppliance=r5;class c5 extends $_{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3571504051}}e.IfcCompressor=c5;class a5 extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2272882330}}e.IfcCondenser=a5;class o5 extends _p{constructor(r,a,h,p,y,m,N,O,C,K){super(r,a,h,p,y,m,N,O,C),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ApplicableOccurrence=y,this.HasPropertySets=m,this.RepresentationMaps=N,this.Tag=O,this.ElementType=C,this.PredefinedType=K,this.type=578613899}}e.IfcControllerType=o5;class h5 extends nS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3460952963}}e.IfcConveyorSegment=h5;class l5 extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4136498852}}e.IfcCooledBeam=l5;class u5 extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3640358203}}e.IfcCoolingTower=u5;class p5 extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4074379575}}e.IfcDamper=p5;class E5 extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3693000487}}e.IfcDistributionBoard=E5;class f5 extends gp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1052013943}}e.IfcDistributionChamberElement=f5;class I5 extends F1{constructor(r,a,h,p,y,m,N){super(r,a,h,p,y,m,N),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.LongName=m,this.PredefinedType=N,this.type=562808652}}e.IfcDistributionCircuit=I5;class ly extends NP{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1062813311}}e.IfcDistributionControlElement=ly;class y5 extends iS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=342316401}}e.IfcDuctFitting=y5;class T5 extends nS{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3518393246}}e.IfcDuctSegment=T5;class d5 extends Nv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1360408905}}e.IfcDuctSilencer=d5;class m5 extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1904799276}}e.IfcElectricAppliance=m5;class R5 extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=862014818}}e.IfcElectricDistributionBoard=R5;class S5 extends DP{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3310460725}}e.IfcElectricFlowStorageDevice=S5;class N5 extends Nv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=24726584}}e.IfcElectricFlowTreatmentDevice=N5;class A5 extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=264262732}}e.IfcElectricGenerator=A5;class D5 extends qi{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=402227799}}e.IfcElectricMotor=D5;class O5 extends Lp{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1003880860}}e.IfcElectricTimeControl=O5;class v5 extends $_{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3415622556}}e.IfcFan=v5;class _5 extends Nv{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=819412036}}e.IfcFilter=_5;class g5 extends ec{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=1426591983}}e.IfcFireSuppressionTerminal=g5;class L5 extends ly{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=182646315}}e.IfcFlowInstrument=L5;class x5 extends J_{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=2680139844}}e.IfcGeomodel=x5;class P5 extends J_{constructor(r,a,h,p,y,m,N,O){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.type=1971632696}}e.IfcGeoslice=P5;class M5 extends ly{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=2295281155}}e.IfcProtectiveDeviceTrippingUnit=M5;class U5 extends ly{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4086658281}}e.IfcSensor=U5;class C5 extends ly{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=630975310}}e.IfcUnitaryControlElement=C5;class b5 extends ly{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=4288193352}}e.IfcActuator=b5;class w5 extends ly{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=3087945054}}e.IfcAlarm=w5;class B5 extends ly{constructor(r,a,h,p,y,m,N,O,C){super(r,a,h,p,y,m,N,O),this.GlobalId=r,this.OwnerHistory=a,this.Name=h,this.Description=p,this.ObjectType=y,this.ObjectPlacement=m,this.Representation=N,this.Tag=O,this.PredefinedType=C,this.type=25142252}}e.IfcController=B5})(mt||(mt={}));OP=class{static setLogLevel(e){this.logLevel=e}static log(e,...t){this.logLevel<=4&&console.log(e,...t)}static debug(e,...t){this.logLevel<=1&&console.trace("DEBUG: ",e,...t)}static warn(e,...t){this.logLevel<=3&&console.warn("WARN: ",e,...t)}static error(e,...t){this.logLevel<=4&&console.error("ERROR: ",e,...t)}},OP.logLevel=4;if(typeof document<"u"){let e=document.currentScript;e?.src!==void 0&&e.src.substring(0,e.src.lastIndexOf("/")+1)}var Y0=class{constructor(t,s,i){if(k(this,"_model"),k(this,"_boxes"),k(this,"_localIdsToGeometryIds",new Map),k(this,"_guidToLocalIdMap",new Map),k(this,"_items",new Map),k(this,"_itemDataCache",new Map),k(this,"_itemDataConfig",{attributesDefault:!0,relationsDefault:{attributes:!1,relations:!1}}),k(this,"_spatialStructure",null),k(this,"_virtualModel"),k(this,"_relations",new Map),this._virtualModel=t,this._model=t.data,this._boxes=s,this.preindexGeometryIds(),i&&i.extraRelations)for(let c of i.extraRelations){let{category:u,relation:I,inverseName:D}=c;this.addInverseRelation(u,I,D)}let n=this._model.localIdsArray();if(n){for(let c=0;c<this._model.localIdsLength();c++){let u=this._model.categories(c),I=n[c],D=this._items.get(I);D||(D={category:null,guid:null,geometryIds:null,attrs:null},this._items.set(I,D)),D.category=u}for(let c=0;c<this._model.guidsItemsLength();c++){let u=this._model.guidsItems(c);if(u===null)continue;let I=this._model.guids(c);this._guidToLocalIdMap.set(I,u);let D=this._items.get(u);D||(D={category:null,guid:null,geometryIds:null,attrs:null},this._items.set(u,D)),D.guid=I}}}getAllLocalIds(){return this._model.localIdsArray()??[]}addInverseRelation(t,s,i){let c=this.getItemsOfCategories([new RegExp(`^${t}$`)])[t];for(let u of c){let I=this.getItemRelations(u);if(!(I&&I[s]))continue;let D=I[s];for(let g of D){let U=this._relations.get(g);U||(U={},this._relations.set(g,U));let F=U[i];F||(F=[],U[i]=F),F.push(u)}}}getItemsCount(){return this._model.localIdsLength()}getMaxLocalId(){return this._model.maxLocalId()}getMetadata(){let t=this._model.metadata();return t?JSON.parse(t):null}getCRS(){let t=this.getMetadata();return!t||!t.crs?null:t.crs}getItemIdsFromLocalIds(t){if(!t)return Array.from(this._model.meshes().meshesItemsArray());let s=[];for(let i of t){let n=this._localIdsToGeometryIds.get(i);if(n)for(let c of n)s.push(c)}return s}getLocalIdsFromItemIds(t){let s=[],i=this._localIdsToGeometryIds.entries();for(let[n,c]of i)for(let u of t)c.includes(u)&&s.push(n);return s}getBox(t,s){for(let i of t){let n=this._boxes.sampleOf(i);if(n)for(let c of n){let u=this._boxes.get(c);s.union(u)}}}getSpatialStructure(){if(this._spatialStructure)return this._spatialStructure;let t=this._model.spatialStructure();return t?(this._spatialStructure=this.getTreeItem(t),this._spatialStructure):{}}getItemsChildren(t){let s=new Set;for(let i of t){let n=this.convertToLocalId(i);n!==null&&this.traverseSpatialStructure(n,s)}return[...s]}getGuids(){let t=[];for(let s=0;s<this._model.guidsLength();s++){let i=this._model.guids(s);t.push(i)}return t}getLocalIds(){let t=this._model.localIdsArray();return t?Array.from(t):[]}getItemsCategories(t){var s;let i=[];for(let n of t){let c=this.convertToLocalId(n);if(c===null)continue;let u=((s=this._items.get(c))==null?void 0:s.category)??null;if(u===null)for(let I=this._virtualModel.requests.length-1;I>=0;I--){let D=this._virtualModel.requests[I];D.type===wt.CREATE_ITEM&&D.localId===c&&(u=D.data.category)}i.push(u)}return i}getLocalIdsByGuids(t){let s=[];for(let i of t){let n=this._guidToLocalIdMap.get(i);s.push(n!==void 0?n:null)}return s}getGuidsByLocalIds(t){var s;let i=[];for(let n of t){let c=(s=this._items.get(n))==null?void 0:s.guid;i.push(c!==void 0?c:null)}return i}getAttributeNames(){let t=new Set;for(let s=0;s<this._model.uniqueAttributesLength();s++){let i=this._model.uniqueAttributes(s);if(!i)continue;let[n]=JSON.parse(i);t.add(n)}return[...t]}getAttributeValues(){let t=new Set;for(let s=0;s<this._model.uniqueAttributesLength();s++){let i=this._model.uniqueAttributes(s);if(!i)continue;let[,n]=JSON.parse(i);t.add(n)}return[...t]}getAttributesUniqueValues(t){var s,i,n;let c=new Map,u=t.every(g=>g.categories!==void 0),I=t.map(g=>g.categories).filter(g=>g!==void 0).flat();for(let g=0;g<this._model.categoriesLength();g++){let U=this._model.localIds(g);if(U===null)continue;let F=!0;if(u){let Q=this._model.categories(g);F=I.some(Z=>Z?.test(Q))}if(!F)continue;let V=this._model.attributes(g);if(!V)continue;let H={};for(let Q=0;Q<V.dataLength();Q++){let Z=V.data(Q);if(!Z)continue;let[X,$,q]=JSON.parse(Z);H[X]={value:$,type:q}}let z=Object.keys(H),j=this._model.categories(g);for(let{key:Q,attributes:Z,get:X,categories:$}of t){let q=!0;if($&&(q=$.some(at=>at.test(j))),!q)continue;let tt=!0;if(Z){let{aggregation:at,queries:nt}=Z,ht=[];for(let{name:ut,value:ot,type:pt,negate:Et}of nt){let dt=z.find(Yt=>ut.test(Yt));if(!(dt&&((s=H[dt])==null?void 0:s.value)!==void 0))break;let Dt=!1,{value:Ut,type:Xt}=H[dt];ot instanceof RegExp?Dt=typeof Ut=="string"&&ot.test(Ut):Dt=Ut===ot,pt!==void 0&&(Dt=Dt&&typeof Xt=="string"&&pt.test(Xt)),Et&&(Dt=!Dt),ht.push(Dt)}tt=at==="exclusive"?ht.every(ut=>ut):ht.some(ut=>ut)}if(tt){let at=z.find(ot=>X.test(ot));if(!(at&&((i=H[at])==null?void 0:i.value)!==void 0))continue;let nt=Q??at,ht=(n=H[at])==null?void 0:n.value;c.has(nt)||c.set(nt,new Map);let ut=c.get(nt);ut.has(ht)||ut.set(ht,new Set),ut.get(ht).add(U)}}}let D={};for(let[g,U]of c){D[g]=[];for(let[F,V]of U)D[g].push({value:F,localIds:Array.from(V)})}return D}getAttributeTypes(){let t=new Set;for(let s=0;s<this._model.uniqueAttributesLength();s++){let i=this._model.uniqueAttributes(s);if(!i)continue;let[,,n]=JSON.parse(i);t.add(n)}return[...t]}getRelationNames(){let t=new Set;for(let s=0;s<this._model.relationNamesLength();s++){let i=this._model.relationNames(s);i&&t.add(i)}return[...t]}getItemAttributes(t){var s;let n=typeof t=="number"?t:this.getLocalIdsByGuids([t])[0];if(n===null)return null;let c=(s=this._model.localIdsArray())==null?void 0:s.indexOf(n);if(c===void 0||c===-1){let D={};for(let g=this._virtualModel.requests.length-1;g>=0;g--){let U=this._virtualModel.requests[g];if((U.type===wt.CREATE_ITEM||U.type===wt.UPDATE_ITEM)&&U.localId===n){for(let F in U.data.data){let V=U.data.data[F];D[F]={value:V.value,type:V.type}}return D}}return null}let u=this._model.attributes(c);if(!u)return null;let I={};for(let D=this._virtualModel.requests.length-1;D>=0;D--){let g=this._virtualModel.requests[D];if((g.type===wt.UPDATE_ITEM||g.type===wt.CREATE_ITEM)&&g.localId===n){for(let U in g.data.data){let F=g.data.data[U];I[U]={value:F.value,type:F.type}}return I}}for(let D=0;D<u.dataLength();D++){let g=u.data(D);g&&this.parseAttribute(g,I)}return I}parseAttribute(t,s){let[i,n,c]=JSON.parse(t);s[i]={value:n,type:c}}getItemData(t,s={}){var i;let n=this._itemDataConfig.attributesDefault,c=this._itemDataConfig.attributes,u=this._itemDataConfig.relations??{},{attributes:I,relations:D}=this._itemDataConfig.relationsDefault,{parentName:g,rel:U}=s;if(!g&&!U)I=!0,D=!0;else{let Q=U&&U in u,Z=g&&g in u;if(Q){let X=u[U];X&&(I=X.attributes,D=X.relations)}else if(Z){let X=u[g];X&&(I=X.attributes,D=X.relations)}}if(!I&&!D)return{};if(this._itemDataCache.has(t))return this._itemDataCache.get(t);let F=typeof t=="number"?t:this._guidToLocalIdMap.get(t)??null,V=new Set;for(let Q of this._virtualModel.requests)Q.type===wt.DELETE_ITEM&&V.add(Q.localId);if(F===null||V.has(F))return{};let[H]=this.getItemsCategories([F]),z=typeof t=="string"?t:((i=this._items.get(t))==null?void 0:i.guid)??null,j={_category:{value:H},_localId:{value:F},_guid:{value:z}};if(this._itemDataCache.set(t,j),I&&F!==null){let Q=this.getItemAttributes(t);for(let[Z,X]of Object.entries(Q??{}))n?c?.includes(Z)||(j[Z]=X):c?.includes(Z)&&(j[Z]=X)}if(D){let Q=this.getItemRelations(t);for(let[Z,X]of Object.entries(Q??{}))for(let $ of X){if(V.has($))continue;let q=this.getItemData($,{parentName:U,rel:Z});if(Object.keys(q).length===0)continue;let tt=j[Z];Array.isArray(tt)?tt.push(q):j[Z]=[q]}}return j}getItemsData(t,s={}){this._itemDataCache.clear();let i=[],n=t.length!==0?t:this._model.localIdsArray();if(!n)return i;this._itemDataConfig={...this._itemDataConfig,...s};for(let c of n)i.push(this.getItemData(c));return this._itemDataCache.clear(),this._itemDataConfig={relationsDefault:{attributes:!1,relations:!1},attributesDefault:!0},i}getRawRelations(t){let s=new Set(t??this.getLocalIds()),i=new Map;for(let n of s){let c=this.getItemRelations(n);c&&i.set(n,{data:c})}return i}getItemRelations(t){var s;let n=typeof t=="number"?t:this.getLocalIdsByGuids([t])[0];for(let D=this._virtualModel.requests.length-1;D>=0;D--){let g=this._virtualModel.requests[D];if((g.type===wt.UPDATE_RELATION||g.type===wt.CREATE_RELATION)&&g.localId===n)return g.data.data}if(n===null)return null;let c=this._relations.get(n)??{},u=(s=this._model.relationsItemsArray())==null?void 0:s.indexOf(n);if(u===void 0||u===-1)return Object.keys(c).length>0?c:null;let I=this._model.relations(u);if(!I)return Object.keys(c).length>0?c:null;for(let D=0;D<I.dataLength();D++){let g=I.data(D);if(!g)continue;let[U,...F]=JSON.parse(g);c[U]=F}return c}getCategories(){let t=new Set;for(let s=0;s<this._model.categoriesLength();s++){let i=this._model.categories(s);i&&t.add(i)}for(let s=0;s<this._virtualModel.requests.length;s++){let i=this._virtualModel.requests[s];(i.type===wt.CREATE_ITEM||i.type===wt.UPDATE_ITEM)&&i.data.category&&t.add(i.data.category)}return[...t]}getItemsOfCategories(t){let s={},i=new Set;for(let n of this._virtualModel.requests)n.type===wt.DELETE_ITEM&&i.add(n.localId);for(let n of this._virtualModel.requests)if(n.type===wt.CREATE_ITEM||n.type===wt.UPDATE_ITEM){if(i.has(n.localId))continue;for(let c of t)c.test(n.data.category)&&(s[n.data.category]||(s[n.data.category]=[]),s[n.data.category].push(n.localId))}for(let n=0;n<this._model.categoriesLength();n++){let c=this._model.categories(n);if(!c)continue;let u=this._model.localIds(n);if(!i.has(u)){for(let I of t)if(I.test(c)){s[c]||(s[c]=[]),s[c].push(u);break}}}return s}getItemsWithGeometry(){let t=this._model.meshes(new zt),s=[];if(!t)return s;let i=t.meshesItemsArray();if(!i)return s;for(let n of i){let c=this._model.localIds(n);c!==null&&s.push(c)}return s}getItemsWithGeometryCategories(){let t=this.getItemsWithGeometry();return this.getItemsCategories(t)}checkAttribute(t,{name:s,value:i,type:n}){let{name:c,value:u,type:I}=t,D=!1;return s.test(c)&&(D=i===void 0&&n===void 0,D||(i!==void 0&&(Array.isArray(i)?D=i.some(g=>typeof u=="string"&&g.test(u)):i instanceof RegExp?D=typeof u=="string"&&i.test(u):D=u===i),n!==void 0&&(D=D&&typeof I=="string"&&n.test(I)))),D}getItemsByAttribute({name:t,value:s,type:i,negate:n,itemIds:c}){let u=this._model.attributesLength(),I=[],D=new Set(c);for(let g=0;g<u;g++){let U=this._model.localIds(g);if(U===null||(D.delete(U),c?.length&&!c.includes(U)))continue;let F=this._model.attributes(g);if(!F)continue;let V=F?.dataLength(),H=!1;for(let z=0;z<V;z++){let j=F.data(z);if(!j)continue;let[Q,Z,X]=JSON.parse(j);if(this.checkAttribute({name:Q,value:Z,type:X},{name:t,value:s,type:i})){H=!0;break}}(n?!H:H)&&I.push(U)}if(c)for(let g of D)for(let U=this._virtualModel.requests.length-1;U>=0;U--){let F=this._virtualModel.requests[U];if(F.type===wt.CREATE_ITEM){if(F.localId!==g)continue;let V={};for(let z in F.data.data){let j=F.data.data[z];V[z]={value:j.value,type:j.type}}let H=!1;for(let[z,{value:j,type:Q}]of Object.entries(V))if(this.checkAttribute({name:z,value:j,type:Q},{name:t,value:s,type:i})){H=!0;break}(n?!H:H)&&I.push(g)}}else for(let g=this._virtualModel.requests.length-1;g>=0;g--){let U=this._virtualModel.requests[g];if(U.type===wt.CREATE_ITEM&&U.localId!==void 0){let F={};for(let H in U.data.data){let z=U.data.data[H];F[H]={value:z.value,type:z.type}}let V=!1;for(let[H,{value:z,type:j}]of Object.entries(F))if(this.checkAttribute({name:H,value:z,type:j},{name:t,value:s,type:i})){V=!0;break}(n?!V:V)&&I.push(Number(U.localId))}}return I}getItemsByRelation({name:t,targetItemIds:s,sourceItemIds:i}){let n=[],c=i??this.getAllLocalIds();for(let u of c){let I=this.getItemRelations(u),D=I?.[t];if(D)if(s){for(let g of D)if(s.has(g)){n.push(u);break}}else n.push(u)}return n}getItemsByQuery(t,s){var i;let{categories:n,attributes:c,relation:u}=t,I=s?.localIds;if(I){if(n){let D=this.getItemsCategories(I);I=I.filter((g,U)=>{let F=D[U];return F?n.some(V=>V.test(F)):null})}}else I=(i=n?.filter(Boolean))!=null&&i.length?Object.values(this.getItemsOfCategories(n)).flat():void 0;if(I?.length===0)return[];if(c){let D=c.aggregation??"exclusive",g=[];for(let F of c.queries)if(c&&F.name){let V=this.getItemsByAttribute({...F,itemIds:I});g.push(V)}let U=new Set;if(D==="inclusive")for(let F of g)for(let V of F)U.add(V);else{let F=new Map;for(let V of g)for(let H of V){let z=F.get(H);z===void 0?F.set(H,1):F.set(H,z+1)}for(let[V,H]of F)H===g.length&&U.add(V)}I=[...U]}if(I?.length===0)return[];if(u&&u.name){let{name:D,query:g}=u,U=g?new Set(this.getItemsByQuery(g)):void 0;I=this.getItemsByRelation({name:D,targetItemIds:U,sourceItemIds:I})}return Array.from(new Set(I))}getTreeItem(t){let s={category:t.category(),localId:t.localId()},i=[];for(let n=0;n<t.childrenLength();n++){let c=t.children(n);c&&i.push(this.getTreeItem(c))}return i.length>0&&(s.children=i),s}preindexGeometryIds(){let t=this._model.meshes(),s=t.meshesItemsLength();for(let i=0;i<s;i++){let n=t.meshesItems(i),c=this._model.localIds(n);c!==null&&(this._localIdsToGeometryIds.has(c)||this._localIdsToGeometryIds.set(c,[]),this._localIdsToGeometryIds.get(c).push(i))}}convertToLocalId(t){if(typeof t=="number")return t;let i=this._guidToLocalIdMap.get(t);return i===void 0?null:i}getChildrenLocalIds(t,s){if(t.localId!==null&&s.add(t.localId),t.children)for(let i of t.children)this.getChildrenLocalIds(i,s)}traverseSpatialStructure(t,s,i=this.getSpatialStructure()){if(i){if(i.localId===t&&i.children){for(let n of i.children)this.getChildrenLocalIds(n,s);return}if(i.children)for(let n of i.children)this.traverseSpatialStructure(t,s,n)}}},k0=class{constructor(t){k(this,"_fragments"),this._fragments=t}async getAlignments(){let t=[],s=new RegExp(xU),n=this._fragments.getItemsOfCategories([s])[xU];if(!n)return[];let c=this._fragments.getItemsData(n,{});for(let u of c){let I=JSON.parse(u.data.value);t.push(I)}return t}},K0=class{constructor(){k(this,"_templates",new Map)}add(t,s){this._templates.set(t,s)}get(t){let s=this._templates.get(t);return Array.isArray(s)?this.getTemplateSet(s):{...s}}getTemplateSet(t){let s=[];for(let i of t){let c={...i};s.push(c)}return s}},ow=class Cp{constructor(t,s){k(this,"_dataBuffer"),k(this,"_dataPosition"),this._dataBuffer=s||this.getDefaultData(),this._dataPosition=t||Cp._data.defaultPosition}set(t){let s=0;for(let i of Cp._data.points)for(let n of Cp._data.coords){let c=this.getPosition(n,i),u=t[s++];this.setValue(c,u)}}get(t,s){let i=this.getPosition(t,s);return this._dataBuffer[i]}clone(t){for(let s of Cp._data.points)for(let i of Cp._data.coords){let n=this.getPosition(i,s),c=t.get(i,s);this.setValue(n,c)}}combine(t,s){for(let i of Cp._data.points)for(let n of Cp._data.coords)this.save(n,i,t,s)}setValue(t,s){this._dataBuffer[t]=s}getDefaultData(){return new Float64Array(Cp._data.size)}getPosition(t,s){return Cp._data[s][t]+this._dataPosition}save(t,s,i,n){let c=this.getPosition(t,s),u=i.get(t,s),I=n.get(t,s),D=Math[s](u,I);this.setValue(c,D)}};k(ow,"_data",{size:6,defaultPosition:0,min:{x:0,y:2,z:4},max:{x:1,y:3,z:5},coords:["x","y","z"],points:["min","max"]});var oL=ow,hw=class hL{constructor(t,s){k(this,"box"),k(this,"data",0),this.box=new oL(t,s)}get size(){return this.data*hL._data.factor}get isPoint(){return this.data>=hL._data.threshold}transform(t,s,i){i||(t*=hL._data.factor),this.data=t,this.box.clone(s)}};k(hw,"_data",{threshold:0,factor:-1});var JV=hw,Z0=class{constructor(t){k(this,"_boxes"),k(this,"_min",new it),k(this,"_max",new it),this._boxes=t}inflate(t){let s=this._boxes.fullBox.min,i=this.getVector(t,s,"min"),n=this.getVector(t,s,"max");return new rs(i,n)}deflate(t,s){this.read(t);let i=[];i.push(this._min.x,this._min.y,this._min.z),i.push(this._max.x,this._max.y,this._max.z),s.set(i)}getVector(t,s,i){let n=t.get("x",i)+s.x,c=t.get("y",i)+s.y,u=t.get("z",i)+s.z;return new it(n,c,u)}read(t){let{min:s}=this._boxes.fullBox;this._min.subVectors(t.min,s),this._max.subVectors(t.max,s)}},q0=class{constructor(t,s){k(this,"_data"),k(this,"_compressor"),this._data=s,this._compressor=t}frustumCollide(t,s,i=!1){let n=this.getFrustumPlanes(s,t),c=this.getFrustumOnCollide(n),u=this.getFrustumOnIncludes(n),I=this.newDefaultCallback(!0);return this.collide(c,u,I,i)}rayCollide(t,s){let i=this.getRayOnCollide(s),n=this.newDefaultCallback(!1),c=this.getRayOnSeen(t);return this.collide(i,n,c)}addPoint(t,s,i,n){t?n&&s.push(this.getPointData(i)):s.push(this.getPointData(i))}getPointData(t){return this.getPoint(t).data}getBounds(t){let s=this.getPoint(t);return this._compressor.inflate(s.box)}isPoint(t){return this.getPoint(t).isPoint}newDefaultCallback(t){return s=>t}groupSize(t){return this.getPoint(t).size}getPoint(t){return this._data.points[t]}getRayOnSeen(t){let s=this.newDefaultCallback(!0);return t?.length>0&&(s=n=>nm.collides(n,t)),s}getRayOnCollide(t){return s=>t.intersectsBox(s)}collide(t,s,i,n=!1){let c=this._data.points.length,u=[],I=0,D=(U,F)=>{let V=I+this.groupSize(I);for(;I<V;I++)this.isPoint(I)&&i(U)&&(n?F&&this.savePoint(I,u):this.savePoint(I,u))},g=()=>{let U=this.getBounds(I),F=s(U),V=this.isPoint(I),H=F||t(U);V&&H&&i(U)&&this.addPoint(n,u,I,F),H||V?(I++,F&&!V&&D(U,F)):I+=this.groupSize(I)};for(;I<c;)g();return u}getFrustumOnIncludes(t){return s=>nm.isIncluded(s,t)}getFrustumOnCollide(t){return s=>nm.collides(s,t)}getFrustumPlanes(t,s){let i=[];for(let n of t.planes)i.push(n);if(s)for(let n of s)i.push(n);return i}savePoint(t,s){let i=this.getPoint(t);s.push(i.data)}},j0=class{constructor(t){k(this,"_boxes"),k(this,"_total",new it),k(this,"_change",new it),k(this,"_average",new it),k(this,"_tempCenterVector",new it),k(this,"_tempVectors",{x:new it,y:new it,z:new it}),this._boxes=t}sort(t,s,i){this.average(this._average,t,s,i),this.getDataToTotal(s,i,t);let n=this.anySort(s,i,t);return n=this.adjust(i,s,n),Math.round(n)}anySort(t,s,i){return this._total.x>this._total.y?this._total.x>this._total.z?this.sortDim("x",this._average.x,t,s,i):this.sortDim("z",this._average.z,t,s,i):this._total.y>this._total.z?this.sortDim("y",this._average.y,t,s,i):this.sortDim("z",this._average.z,t,s,i)}getDataToTotal(t,s,i){this._total.set(0,0,0);for(let n=t;n<s;n++){this._boxes.get(i[n]).getCenter(this._change).sub(this._average);let u=this._change.multiply(this._change);this._total.add(u)}}sortDim(t,s,i,n,c){let u=i;for(let I=i;I<n;I++)this.getValue(c,I,t)>s&&(this.exchange(I,u,c),u++);return u}exchange(t,s,i){let n=i[t];i[t]=i[s],i[s]=n}getValue(t,s,i){let n=this.getBox(t,s),c=this._tempVectors[i];return n.getCenter(c)[i]}average(t,s,i,n){let c=this.getBox(s,i);return c.getCenter(t),this.aggregate(i,n,s,c,t),t.divideScalar(n-i)}aggregate(t,s,i,n,c){for(let u=t+1;u<s;u++){let I=i[u];n=this._boxes.get(I);let D=n.getCenter(this._tempCenterVector);c.add(D)}}adjust(t,s,i){let n=(s+t)/2,u=(t-s)/3;return(i<=s+u||i>=t-1-u)&&(i=n),i}getBox(t,s){let i=t[s];return this._boxes.get(i)}},Q0=class{constructor(t,s,i){k(this,"_data"),k(this,"_compressor"),k(this,"_boxes"),k(this,"_sorter"),this._data=i,this._compressor=s,this._boxes=t,this._sorter=new j0(t)}make(t,s,i=0,n=0,c=0,u=0){let I=i-n;return I===1?this.makePoint(t,n,s,u):I===2?this.makeGroup3(u,t,n,s):this.makeGroup(c,t,n,i,u,s)}makeGroup3(t,s,i,n){let c=this.makeBox(t+1,s,i),u=this.makeBox(t+2,s,i+1);return n.combine(c,u),this.newGroup(t,3,n),3}makeGroup(t,s,i,n,c,u){let I=this._data.limits.primary[t],D=this._data.limits.secondary[t],g=this._sorter.sort(s,i,n),U=this.make(s,I,g,i,t+1,c+1),F=c+U+1,V=this.make(s,D,n,g,t+1,F);u.combine(I,D);let H=U+V+1;return this.newGroup(c,H,u),H}makeBox(t,s,i){let n=this._data.points[t].box,c=s[i],u=this._boxes.get(c);return this._compressor.deflate(u,n),this.set(t,c),n}makePoint(t,s,i,n){let c=this._boxes.get(t[s]);return this._compressor.deflate(c,i),this.newPoint(n,t[s],i),1}newGroup(t,s,i){this.get(t).transform(s,i,!1)}get(t){return this._data.points[t]}newPoint(t,s,i){this.get(t).transform(s,i,!0)}set(t,s){let i=this.get(t);i.data=s}},G1=class lL{constructor(t){k(this,"_compressor"),k(this,"_collider"),k(this,"_maker"),k(this,"_data"),k(this,"_boxes"),this._boxes=t,this._compressor=new Z0(t),this._data=this.getData(),this._collider=new q0(this._compressor,this._data),this._maker=new Q0(this._boxes,this._compressor,this._data),this.initData()}collideFrustum(t,s,i=!1){return this._collider.frustumCollide(t,s,i)}collideRay(t,s){return this._collider.rayCollide(t,s)}setupLimits(){for(let t=0;t<lL._limitThreshold;t++)this._data.limits.primary.push(new oL),this._data.limits.secondary.push(new oL)}getPointBuffer(){let t=this._boxes.getCount(),s=new Uint32Array(t);for(let i=0;i<s.length;i++)s[i]=i;return s}getPointsAmount(t){return t.length*2-1}initData(){let t=this.getPointBuffer(),s=this.getPointsAmount(t),i=s*lL._boxSize,n=new Float64Array(i);for(let u=0;u<s;u++){let I=u*lL._boxSize,D=new JV(I,n);this._data.points.push(D)}this.setupLimits();let c=new oL;this._maker.make(t,c,t.length)}getData(){return{points:[],limits:{primary:[],secondary:[]}}}};k(G1,"_boxSize",6);k(G1,"_limitThreshold",32);var XV=G1,$0=class{constructor(t){k(this,"lookup",null),k(this,"_boxSize",6),k(this,"_pointSize",3),k(this,"_temp"),k(this,"_dimensionsOfSamples"),k(this,"_samples",[]),k(this,"_boxes"),k(this,"_meshes"),k(this,"_box"),this._temp={box:new rs,vector:new it,transform:new Ee,sample:new Cy,representation:new yl},this._box=new rs;let s=t.meshes();if(!s)throw new Error("Fragments: Malformed fragments data!");this._meshes=s;let i=s.samplesLength();this._dimensionsOfSamples=new Float32Array(i);let n=i*this._boxSize;this._boxes=new Float64Array(n),this.lookup=this.newLookup()}get fullBox(){return this._box}set fullBox(t){this._box=t}sampleOf(t){return this._samples[t]}get(t){let s=this.getMinPosition(t),i=this.getMaxPosition(t);return this._temp.box.min.fromArray(this._boxes,s),this._temp.box.max.fromArray(this._boxes,i),this._temp.box}process(t){this.fetchSampleAndRepresentation(t),this.getBox(),this.addToFullBox();let s=this.getMinPosition(t),i=this.getMaxPosition(t);this._temp.box.min.toArray(this._boxes,s),this._temp.box.max.toArray(this._boxes,i)}getCount(){return this._boxes.length/this._boxSize}dimensionOf(t){let s=this._dimensionsOfSamples[t];if(!s)throw new Error("Fragments: Dimension not found!");return s}newLookup(){let t=this._meshes.samplesLength(),s=this._meshes.globalTransformsLength();if(t===0)return null;for(let i=0;i<t;i++){this.fetchSampleAndRepresentation(i),Nf.getBox(this._temp.representation,this._temp.box);let n=this._temp.box.getSize(this._temp.vector);this._dimensionsOfSamples[i]=n.length(),this.process(i)}this._samples=new Array(s);for(let i=0;i<t;i++)this.storeBox(i);if(!this.getCount())throw new Error("Fragments: Malformed boxes!");return new XV(this)}getBox(){Nf.get(this._temp.sample,this._meshes,this._temp.transform),Nf.getBox(this._temp.representation,this._temp.box),this._temp.box.applyMatrix4(this._temp.transform)}fetchSampleAndRepresentation(t){this._meshes.samples(t,this._temp.sample);let s=this._temp.sample.representation();this._meshes.representations(s,this._temp.representation)}getMinPosition(t){return t*this._boxSize}storeBox(t){this.fetchSampleAndRepresentation(t);let s=this._temp.sample.item();this._samples[s]===void 0&&(this._samples[s]=[]),this._samples[s].push(t)}getMaxPosition(t){return t*this._boxSize+this._pointSize}addToFullBox(){this.fullBox.union(this._temp.box)}},J0=class{raycast(t,s,i,n){if(t.view)return t.raycaster.raycast(s,i,t.view.clippingPlanes,n)}snapRaycast(t,s,i,n){return t.view?t.raycaster.snapRaycast(s,i,n,t.view.clippingPlanes):[]}rectangleRaycast(t,s,i){return t.view?t.raycaster.rectangleRaycast(s,t.view.clippingPlanes,i):[]}},X0=class{getPositions(t,s){let i=[],n=t.properties.getItemIdsFromLocalIds(s);for(let c of n){let u=t.tiles.meshes.globalTransforms(c);if(!u)continue;let I=u.position(),D=I.x(),g=I.y(),U=I.z();i.push({x:D,y:g,z:U})}return i}getCoordinates(t){let i=t.data.meshes().coordinates(),n=i.position(),c=i.xDirection(),u=i.yDirection(),I=n.x(),D=n.y(),g=n.z(),U=c.x(),F=c.y(),V=c.z(),H=u.x(),z=u.y(),j=u.z();return[I,D,g,U,F,V,H,z,j]}},t1=class{constructor(){k(this,"_highlightProps",["color","opacity","transparent","renderedFaces"])}resetHighlight(t,s){let i=t.properties.getItemIdsFromLocalIds(s);this.resetHighlightForItems(i,t),t.tiles.restart()}getHighlight(t,s){let i=[],n=t.properties.getItemIdsFromLocalIds(s),c=this.getFetchEvent(t,i);return t.traverse(n,c),i}getHighlightItems(t){let s=[],i=t.itemConfig.size;for(let n=0;n<i;n++){if(!t.itemConfig.getHighlight(n))continue;let[u]=t.properties.getLocalIdsFromItemIds([n]);s.push(u)}return s}highlight(t,s,i){let n=t.properties.getItemIdsFromLocalIds(s),c=[],u=this.getCheckEvent(t,i,c);t.traverse(n,u);let I=t.materials.transfer(c),D=this.getCreateEvent(t,I);t.traverse(n,D),t.tiles.updateVirtualMeshes(n)}hasEffectiveProperties(t){let{preserveOriginalMaterial:s,...i}=t;return Object.keys(i).length>0}updateHighlightDefinition(t,s,i){let n=t.properties.getItemIdsFromLocalIds(s),c=[],u=[],I=[];for(let D of n){let g=t.itemConfig.getHighlight(D);if(g){let U=t.materials.fetch(g),F=i(U);if(this.hasEffectiveProperties(F)){let V={...F,preserveOriginalMaterial:!0};I.push(V),c.push(D)}else u.push(D)}}if(u.length>0)for(let D of u)t.itemConfig.setHighlight(D,0);if(c.length>0){let D=t.materials.transfer(I),g=this.getCreateEvent(t,D);t.traverse(c,g)}t.tiles.updateVirtualMeshes(n)}setColor(t,s,i){let n=i;i&&!i.isColor&&typeof i.r=="number"&&(n=new Tl().setRGB(i.r,i.g,i.b,fh));let c={color:n,preserveOriginalMaterial:!0,_explicitProps:["color"]};this.highlight(t,s,c)}resetColor(t,s){this.updateHighlightDefinition(t,s,i=>{let{color:n,...c}=i;return c})}setOpacity(t,s,i){let n={opacity:i,transparent:i<1,preserveOriginalMaterial:!0,_explicitProps:["opacity","transparent"]};this.highlight(t,s,n)}resetOpacity(t,s){this.updateHighlightDefinition(t,s,i=>{let{opacity:n,transparent:c,...u}=i;return u})}getFetchEvent(t,s){return i=>{let n=t.itemConfig.getHighlight(i);if(n){let c=t.materials.fetch(n);s.push(c);return}s.push(void 0)}}setHighlightProperty(t,s,i){t[i]===void 0&&s[i]!==void 0&&(t[i]=s[i])}getNewHighFromPast(t,s,i){let n=t.materials.fetch(s),c={...i},u=n._explicitProps||[],I=i._explicitProps||[];if(u.length>0||I.length>0){for(let D of u){let g=D;!I.includes(D)&&n[g]!==void 0&&(c[D]=n[g])}c._explicitProps=[...new Set([...u,...I])]}else for(let D of this._highlightProps)this.setHighlightProperty(c,n,D);return c}getCheckEvent(t,s,i){return n=>{let c=t.itemConfig.getHighlight(n);if(c!==void 0){let u=this.getNewHighFromPast(t,c,s);i.push(u);return}i.push(s)}}getCreateEvent(t,s){return(i,n)=>{t.itemConfig.setHighlight(i,s[n])}}resetHighlightForItems(t,s){if(!t){s.itemConfig.clearHighlight();return}for(let i of t)s.itemConfig.setHighlight(i,0)}},e1=class{constructor(){k(this,"_hiddenForEdit",new Set)}resetVisible(t){t.itemConfig.clearVisible(),t.tiles.restart()}getVisible(t,s){let i=t.properties.getItemIdsFromLocalIds(s),n=[];for(let c of i){if(this._hiddenForEdit.has(c))continue;let u=t.itemConfig.visible(c);n.push(u)}return n}getItemsByVisibility(t,s){let i=this.getVisibleCondition(t,s),n=t.getItemsByConfig(i),c=t.properties.getLocalIdsFromItemIds(n);return this.filterHiddenForEdit(c)}toggleVisible(t,s){let i=t.properties.getItemIdsFromLocalIds(s),n=this.filterHiddenForEdit(i),c=this.getToggleEvent(t);t.traverse(n,c),t.tiles.updateVirtualMeshes(n)}setVisible(t,s,i){let n=t.properties.getItemIdsFromLocalIds(s),c=this.filterHiddenForEdit(n),u=this.getSetEvent(t,i);t.traverse(c,u),t.tiles.updateVirtualMeshes(c)}hideForEdit(t,s){this.setVisible(t,s,!1);for(let i of s)this._hiddenForEdit.add(i)}unhideForEdit(t){for(let s of t)this._hiddenForEdit.delete(s)}clearHiddenForEdit(){this._hiddenForEdit.clear()}filterHiddenForEdit(t){if(!this._hiddenForEdit.size)return t;let s=[];for(let i of t)this._hiddenForEdit.has(i)||s.push(i);return s}getSetEvent(t,s){return i=>{t.itemConfig.setVisible(i,s)}}getVisibleCondition(t,s){return i=>t.itemConfig.visible(i)===s}getToggleEvent(t){return s=>{let i=t.itemConfig.visible(s);t.itemConfig.setVisible(s,!i)}}},s1=class{getGeometriesLength(t){return t.data.meshes().globalTransformsLength()}getSampleGeometry(t,s,i){let n=t.boxes.sampleOf(s),c=[];if(!n)return c;let u=t.data.meshes();for(let I of n){let D=t.tiles.fetchSample(I,i),g=u.sampleIds(I),U=Array.isArray(D.geometries)?D.geometries:[D.geometries],F=u.samples(I),V=u.meshesItems(F.item()),H=t.data.localIds(V);for(let z of U){let j=i===de.GEOMETRY?z.positionBuffer:new Float32Array(z.positionBuffer);c.push({transform:D.transform.clone(),indices:z.indexBuffer,positions:j,normals:z.normalBuffer,sampleId:g,localId:H,representationId:D.representationId})}}return c}getVolume(t,s){let i=0,n={x:0,y:0,z:0},c={x:0,y:0,z:0},u={x:0,y:0,z:0},I=this.getSampleGeometry(t,s,de.GEOMETRY);for(let{indices:D,positions:g}of I)if(D&&g)for(let U=0;U<D.length-2;U+=3){let F=D[U]*3,V=D[U+1]*3,H=D[U+2]*3;n.x=g[F],n.y=g[F+1],n.z=g[F+2],c.x=g[V],c.y=g[V+1],c.z=g[V+2],u.x=g[H],u.y=g[H+1],u.z=g[H+2],i+=this.getSignedVolumeOfTriangle(n,c,u)}return Math.abs(i)}getSignedVolumeOfTriangle(t,s,i){let n=i.x*s.y*t.z,c=s.x*i.y*t.z,u=i.x*t.y*s.z,I=t.x*i.y*s.z,D=s.x*t.y*i.z,g=t.x*s.y*i.z;return 1/6*(-n+c+u-I-D+g)}},i1=class{constructor(){k(this,"_sectionGenerator",new S0)}async getSection(t,s,i){this._sectionGenerator.plane=s,performance.now();let n=new Map,c=[];for(let V of i){let H=t.boxes.sampleOf(V);if(H)for(let z of H){let j=t.boxes.get(z);if(!s.intersectsBox(j))continue;let Q=t.tiles.meshes.meshesItems(V);if(t.data.categories(Q)==="IFCSPACE")continue;let X=t.tiles.meshes.samples(z);if(!X)continue;let $=X.representation();if(!n.has($)){let tt=[],at=t.tiles.fetchSample(z,de.GEOMETRY);Ih.forEach(at.geometries,nt=>{if(!nt.indexBuffer||!nt.positionBuffer)return;let ht=new qp;ht.setIndex(Array.from(nt.indexBuffer)),ht.setAttribute("position",new Sa(nt.positionBuffer,3)),tt.push(ht)}),n.set($,tt)}let q=n.get($);if(q)for(let tt of q){let at=new dl(tt),nt=t.tiles.getSampleTransform(z);at.applyMatrix4(nt),at.updateWorldMatrix(!0,!0),c.push(at)}}}let u=new Float32Array(6e5),I=new Sa(u,3,!1),{index:D,indexes:g}=this._sectionGenerator.createEdges({meshes:c,posAttr:I}),U=this._sectionGenerator.createFills(u,g);for(let[,V]of n)for(let H of V)H.dispose();return{buffer:u,index:D,fillsIndices:U}}},n1=class{constructor(t){k(this,"_model"),k(this,"sequenceSelectorFunction",{withVisiblity:s=>this._model.getItemsByVisibility(s),highlighted:()=>this._model.getHighlightItemIds(),children:s=>this._model.getItemsChildren(s),ofCategory:s=>{let i=this._model.getItemsOfCategories(s);return Object.values(i).flat()},withCondition:()=>[],withGeometry:()=>this._model.getItemsWithGeometry()}),k(this,"sequenceResultFunction",{attributes:s=>s.map(i=>this._model.getItemAttributes(i)),mergedBoxes:s=>this._model.getBBoxes(s),category:s=>this._model.getItemsCategories(s),children:s=>this._model.getItemsChildren(s),data:(s,...i)=>this._model.getItemsData(s,i[0]),geometry:s=>this._model.getItemsGeometry(s),guid:s=>this._model.getGuidsByLocalIds(s),highlight:s=>this._model.getHighlight(s),relations:s=>s.map(i=>this._model.getItemRelations(i)),visibility:s=>this._model.getVisible(s)}),this._model=t}getSequenced(t,s,i){var n;let c=this.sequenceResultFunction[t];if(!c)return null;let u=[],I=0;for(let U of s){let F=this.sequenceSelectorFunction[U];if(!F)continue;let V=(n=i?.selector)==null?void 0:n[U];u=F(I===0?V:u),I++}let D=i?.result;return c(u,D)}},r1=class{traverse(t,s,i){if(s){this.traverseItems(s,i);return}this.traverseAllItems(t,i)}getItemsByConfig(t,s){let i=[],n=t.data.localIdsLength();for(let c=0;c<n;c++)s(c)&&i.push(c);return i}traverseItems(t,s){let i=t.length;for(let n=0;n<i;n++)s(t[n],n)}traverseAllItems(t,s){let i=t.itemConfig.size;for(let n=0;n<i;n++)s(n,n)}},c1=class{constructor(t){k(this,"_fragments"),this._fragments=t}async getGrids(){let t=[],s=new RegExp(PU),n=this._fragments.getItemsOfCategories([s])[PU];if(!n)return[];let c=this._fragments.getItemsData(n,{});for(let u of c){let I=JSON.parse(u.data.value);t.push(I)}return t}},a1=class{constructor(t,s,i,n){k(this,"data"),k(this,"view"),k(this,"raycaster"),k(this,"itemConfig"),k(this,"properties"),k(this,"materials"),k(this,"tiles"),k(this,"boxes"),k(this,"requests",[]),k(this,"_raycastHelper",new J0),k(this,"_coordinatesHelper",new X0),k(this,"_highlightHelper",new t1),k(this,"_visibilityHelper",new e1),k(this,"_geometryHelper",new s1),k(this,"_sectionHelper",new i1),k(this,"_itemsHelper",new r1),k(this,"_sequenceHelper",new n1(this)),k(this,"_config",{}),k(this,"_modelId"),k(this,"_alignments"),k(this,"_grids"),k(this,"_connection"),k(this,"_reprIdMap",new Map),k(this,"_nextId",0),k(this,"_requestsForRedo",[]),k(this,"_onTransferMaterial",(c,u)=>{if(this._connection)return this._connection.fetch(c,u)}),this._modelId=t,this._connection=i,this._config={...this._config,...n},this.data=this.setupModel(s),this.boxes=new $0(this.data),this.materials=this.setupMaterials(t),this._alignments=new k0(this),this._grids=new c1(this),this.itemConfig=this.setupItemsConfig(),this.tiles=this.setupTiles(),this.properties=this.setupProperties(),this.raycaster=this.setupRaycaster(),this.setupBVH(),this._nextId=this.getMaxLocalId()}getItemsByConfig(t){return this._itemsHelper.getItemsByConfig(this,t)}getItemsCategories(t){return this.properties.getItemsCategories(t)}getItemIdsByLocalIds(t){return this.properties.getItemIdsFromLocalIds(t)}getItemAttributes(t){return this.properties.getItemAttributes(t)}getAttributesUniqueValues(t){return this.properties.getAttributesUniqueValues(t)}getItemsData(t,s){return this.properties.getItemsData(t,s)}getItemsOfCategories(t){return this.properties.getItemsOfCategories(t)}getItemsWithGeometry(){return this.properties.getItemsWithGeometry()}getItemsWithGeometryCategories(){return this.properties.getItemsWithGeometryCategories()}getItemsByQuery(t,s){return this.properties.getItemsByQuery(t,s)}getItemRelations(t){return this.properties.getItemRelations(t)}getSpatialStructure(){let t=Ct.applyChangesToSpecialData(this.requests,"SPATIAL_STRUCTURE");return t||this.properties.getSpatialStructure()}getMaxLocalId(){return this.properties.getMaxLocalId()}getCategories(){return this.properties.getCategories()}getMetadata(){let t=Ct.applyChangesToSpecialData(this.requests,"METADATA");return t||this.properties.getMetadata()}getCRS(){let t=Ct.applyChangesToSpecialData(this.requests,"METADATA");return t&&t.crs?t.crs:this.properties.getCRS()}getLocalIdsByGuids(t){return this.properties.getLocalIdsByGuids(t)}getGuidsByLocalIds(t){return this.properties.getGuidsByLocalIds(t)}getSequenced(t,s,i){return this._sequenceHelper.getSequenced(t,s,i)}highlight(t,s){this._highlightHelper.highlight(this,t,s)}setColor(t,s){this._highlightHelper.setColor(this,t,s)}resetColor(t){this._highlightHelper.resetColor(this,t)}setOpacity(t,s){this._highlightHelper.setOpacity(this,t,s)}resetOpacity(t){this._highlightHelper.resetOpacity(this,t)}getHighlight(t){return this._highlightHelper.getHighlight(this,t)}getHighlightItemIds(){return this._highlightHelper.getHighlightItems(this)}resetHighlight(t){this._highlightHelper.resetHighlight(this,t)}getCoordinates(){return this._coordinatesHelper.getCoordinates(this)}getPositions(t){return this._coordinatesHelper.getPositions(this,t)}getGeometriesLength(){return this._geometryHelper.getGeometriesLength(this)}getGuids(){return this.properties.getGuids()}getLocalIds(){return this.properties.getLocalIds()}getItemsGeometry(t,s=de.GEOMETRY){let i=this.properties.getItemIdsFromLocalIds(t),n=[];for(let c of i){let u=this._geometryHelper.getSampleGeometry(this,c,s);n.push(u)}return n}getGeometries(t){if(this._reprIdMap.size===0){let u=this.data.meshes();for(let I=0;I<u.representationsLength();I++){let D=u.representationIds(I);this._reprIdMap.set(D,I)}}let s=new Map;for(let u of t)this._reprIdMap.has(u)&&s.set(u,this._reprIdMap.get(u));let i=this.data.meshes(),n=Array.from(s.values()),c=[];for(let u of n){let I=this.tiles.fetchGeometry(u),D=Array.isArray(I)?I:[I];for(let g of D){let U=g.indexBuffer,F=g.positionBuffer,V=g.normalBuffer,H=i.representationIds(u);c.push({transform:new Ee,indices:U,positions:F,normals:V,representationId:H})}}return c}getItemsVolume(t){let s=this.properties.getItemIdsFromLocalIds(t),i=0;for(let n of s)i+=this._geometryHelper.getVolume(this,n);return i}getAttributeNames(){return this.properties.getAttributeNames()}getAttributeValues(){return this.properties.getAttributeValues()}getAttributeTypes(){return this.properties.getAttributeTypes()}getRelationNames(){return this.properties.getRelationNames()}getItemsMaterialDefinition(t){let s=this.properties.getItemIdsFromLocalIds(t);return this.materials.getItemsMaterialDefinition(this.data,s,t)}resetVisible(){this._visibilityHelper.resetVisible(this)}getItemsByVisibility(t){return this._visibilityHelper.getItemsByVisibility(this,t)}raycast(t,s,i){return this._raycastHelper.raycast(this,t,s,i)}snapRaycast(t,s,i){return this._raycastHelper.snapRaycast(this,t,s,i)}rectangleRaycast(t,s){return this._raycastHelper.rectangleRaycast(this,t,s)}async getSection(t,s){let i=this.properties.getItemIdsFromLocalIds(s);return this._sectionHelper.getSection(this,t,i)}async getAlignments(){return this._alignments.getAlignments()}async getGrids(){return this._grids.getGrids()}getBuffer(t){let n=this.data.bb.bytes().buffer;return t?n:$S.deflate(n)}getSubsetBuffer(t,s){let i=new Map;for(let D=0;D<this.data.localIdsLength();D++)i.set(this.data.localIds(D),D);let n=new Set;for(let D of t){let g=i.get(D);g!==void 0&&n.add(g)}let c=Ct.getItems(this.data,n),u=[];for(let[D,g]of c)u.push({type:wt.UPDATE_ITEM,localId:D,data:g});let{model:I}=Ct.edit(this.data,u,{raw:!0,delta:!0});return s?I:$S.deflate(I)}dispose(){this.tiles.dispose()}setVisible(t,s){this._visibilityHelper.setVisible(this,t,s)}toggleVisible(t){this._visibilityHelper.toggleVisible(this,t)}getVisible(t){return this._visibilityHelper.getVisible(this,t)}hideForEdit(t){this._visibilityHelper.hideForEdit(this,t)}clearHiddenForEdit(){this._visibilityHelper.clearHiddenForEdit()}getItemsChildren(t){return this.properties.getItemsChildren(t)}async setupData(t,s){await this.tiles.generate(t,s)}refreshView(t){this.view=t,this.tiles.setupView(t)}getFullBBox(){return this.boxes.fullBox}getBBoxes(t){let s=new rs;return this.properties.getBox(t,s),s}traverse(t,s){this._itemsHelper.traverse(this,t,s)}update(t){return this.tiles.update(t),this.tiles.tilesUpdated}edit(t){let s=Ct.solveIds(t,this._nextId);this._nextId+=s.length;for(let c of t)this.requests.push(c);let{model:i,items:n}=Ct.edit(this.data,this.requests,{raw:!0,delta:!0});return this._visibilityHelper.clearHiddenForEdit(),this._visibilityHelper.hideForEdit(this,n),{deltaModelBuffer:i,ids:s}}reset(){this.requests=[],this._requestsForRedo=[],this._nextId=this.getMaxLocalId()}save(){this.requests.push({type:wt.UPDATE_MAX_LOCAL_ID,localId:this._nextId});let{model:t}=Ct.edit(this.data,this.requests,{raw:!0,delta:!1});return t}undo(){if(this.requests.length===0)return;let t=this.requests.pop();t&&this._requestsForRedo.unshift(t)}redo(){if(this._requestsForRedo.length===0)return;let t=this._requestsForRedo.shift();t&&this.requests.push(t)}getRequests(){return{requests:this.requests,undoneRequests:this._requestsForRedo}}setRequests(t){t.requests&&(this.requests=t.requests),t.undoneRequests&&(this._requestsForRedo=t.undoneRequests)}selectRequest(t){let s=[];for(let i of this.requests)s.push(i);for(let i of this._requestsForRedo)s.push(i);this.requests=[],this._requestsForRedo=[];for(let i=0;i<s.length;i++)i<=t?this.requests.push(s[i]):this._requestsForRedo.push(s[i])}getMaterialsIds(){let t=Ct.getMaterialsIds(this.data);return Ct.applyChangesToIds(this.requests,t,"MATERIAL",!0)}getMaterials(t){let s=Ct.getMaterials(this.data,t);return Ct.applyChangesToRawData(this.requests,s,"MATERIAL"),s}getRepresentationsIds(){let t=Ct.getRepresentationsIds(this.data);return Ct.applyChangesToIds(this.requests,t,"REPRESENTATION",!0)}getRepresentations(t){let s=Ct.getRepresentations(this.data,t);return Ct.applyChangesToRawData(this.requests,s,"REPRESENTATION"),s}getLocalTransformsIds(){let t=Ct.getLocalTransformsIds(this.data);return Ct.applyChangesToIds(this.requests,t,"LOCAL_TRANSFORM",!0)}getLocalTransforms(t){let s=Ct.getLocalTransforms(this.data,t);return Ct.applyChangesToRawData(this.requests,s,"LOCAL_TRANSFORM"),s}getGlobalTransformsIds(){let t=Ct.getGlobalTransformsIds(this.data);return Ct.applyChangesToIds(this.requests,t,"GLOBAL_TRANSFORM",!0)}getGlobalTransforms(t){let s=Ct.getGlobalTransforms(this.data,t);return Ct.applyChangesToRawData(this.requests,s,"GLOBAL_TRANSFORM"),s}getSamplesIds(){let t=Ct.getSamplesIds(this.data);return Ct.applyChangesToIds(this.requests,t,"SAMPLE",!0)}getSamples(t){let s=Ct.getSamples(this.data,t);return Ct.applyChangesToRawData(this.requests,s,"SAMPLE"),s}getItemsIds(){let t=Ct.getItemsIds(this.data);return Ct.applyChangesToIds(this.requests,t,"ITEM",!0)}getItems(t){let s=this.properties.getItemIdsFromLocalIds(t),i=Ct.getItems(this.data,s),n=t?new Set(t):void 0;return Ct.applyChangesToRawData(this.requests,i,"ITEM",n),i}getRelations(t){let s=this.properties.getRawRelations(t);return Ct.applyChangesToRawData(this.requests,s,"RELATION"),s}getGlobalTranformsIdsOfItems(t){return Ct.getGlobalTranformsIdsOfItems(this.data,t)}getElementsData(t){let s=new Set(t);return Ct.applyChangesToIds(this.requests,s,"ITEM",!1),Ct.getElementsData(this,s)}setLodMode(t){this.tiles.setLodMode(t)}setupBVH(){qp.prototype.computeBoundsTree=M7,qp.prototype.disposeBoundsTree=U7,dl.prototype.raycast=x7}setupProperties(){return new Y0(this,this.boxes,this._config.properties)}setupRaycaster(){return new CL(this.data,this.boxes,this.tiles,this.itemConfig)}setupMaterials(t){return new W0(t,this._onTransferMaterial)}setupTiles(){let t=this.materials.update(this.data);return new mV({modelId:this._modelId,connection:this._connection,model:this.data,boxes:this.boxes,items:this.itemConfig,materials:t})}setupModel(t){let s=new Uint8Array(t),i=new JS(s);return jt.getRootAsModel(i)}setupItemsConfig(){let t=this.data.localIdsLength();return new UL(t)}},o1=class extends _f{getId(){return ml.CREATE_MODEL}async execute(t){let{modelId:s}=t,i=this.createProgressNotifier(s),n=()=>{if(this.thread.aborting.has(s))throw new kM(s)};this.thread.loading.add(s);try{this.inflate(t),i("decompressing",1),n();let c=await this.createModel(t,i,n);this.finalize(t,c),i("done",1)}catch(c){let u=this.thread.list.get(s);if(u){try{u.dispose()}catch{}this.thread.list.delete(s)}throw c}finally{this.thread.aborting.delete(s),this.thread.loading.delete(s)}}finalize(t,s){t.boundingBox=s.getFullBBox(),t.modelData=void 0}async createModel(t,s,i){let{modelId:n,modelData:c,config:u}=t,{connection:I}=this.thread,D=new a1(n,c,I,u);return this.thread.list.set(n,D),s("parsing",1),i(),await D.setupData(g=>{s("generating",g)},i),D}inflate(t){t.raw||(t.modelData=$S.inflate(t.modelData))}createProgressNotifier(t){let{connection:s}=this.thread;return(i,n)=>{s.fetch({class:ml.LOAD_PROGRESS,modelId:t,stage:i,progress:n})}}},h1=class extends _f{getId(){return ml.RAYCAST}async execute(t){let s=this.getRaycastType(t);if(s===0){this.raycastBeam(t);return}if(s===2){this.raycastWithSnap(t);return}if(s===1){this.raycastRectangle(t);return}throw new Error("Fragments: Invalid raycast type")}getRaycastType(t){return t.snappingClass?2:t.ray?0:1}raycastRectangle(t){let s=this.thread.getModel(t.modelId),i=Ta.frustum(t.frustum),n=t.fullyIncluded,c=s.rectangleRaycast(i,n);t.localIds=c}raycastWithSnap(t){let s=this.thread.getModel(t.modelId),i=Ta.beam(t.ray),n=Ta.frustum(t.frustum),c=t.snappingClass,u=s.snapRaycast(i,n,c);t.results=u}raycastBeam(t){let s=this.thread.getModel(t.modelId),i=Ta.beam(t.ray),n=Ta.frustum(t.frustum),c=t.returnAll||!1,u=s.raycast(i,n,c);u&&(t.results=Array.isArray(u)?u:[u])}},l1=class extends _f{getId(){return ml.DELETE_MODEL}async execute(t){let{modelId:s}=t,i=this.thread.list.get(s);i&&(i.dispose(),this.thread.list.delete(s))}},u1=class extends _f{getId(){return ml.ABORT_MODEL}async execute(t){let{modelId:s}=t;this.thread.loading.has(s)&&this.thread.aborting.add(s)}},p1=class extends _f{getId(){return ml.REFRESH_VIEW}async execute(t){let s=this.thread.list.get(t.modelId);s&&(this.safeCopyFrustum(t),this.safeCopyPosition(t),this.safeCopyPlanes(t),s.refreshView(t.view))}safeCopyFrustum(t){let s=t.view.cameraFrustum;t.view.cameraFrustum=Ta.frustum(s)}safeCopyPosition(t){let s=t.view.cameraPosition;t.view.cameraPosition=Ta.array(s)}safeCopyPlanes(t){let s=t.view.clippingPlanes;t.view.clippingPlanes=Ta.planeSet(s)}},E1=class extends _f{getId(){return ml.FETCH_BOXES}async execute(t){if(t.boxes=[],t.localIds){this.getBoxesFromLocalIds(t);return}this.getAllBoxes(t)}getBoxesFromLocalIds(t){let s=this.thread.getModel(t.modelId);for(let i of t.localIds){let n=s.getItemIdsByLocalIds(i),c=s.getBBoxes(n);t.boxes.push(c)}t.localIds=void 0}getAllBoxes(t){let s=this.thread.getModel(t.modelId),i=s.getGeometriesLength();for(let n=0;n<i;n++){let c=s.getBBoxes([n]);t.boxes.push(c)}t.localIds=void 0}},f1=class extends _f{getId(){return ml.EXECUTE}async execute(t){let s=this.thread.getModel(t.modelId);this.safeCopyData(t),t.result=await s[t.function](...t.parameters),t.parameters=void 0}safeCopyData(t){for(let s=0;s<t.parameters.length;s++){let i=t.parameters[s];i&&(t.parameters[s]=Ta.data(i))}}},I1=class{constructor(t){k(this,"_thread"),k(this,"_updateThreshold",16),k(this,"_updateDelay",128),this._thread=t;let s=()=>{let n=this.updateAllModels()?this._updateDelay:0;setTimeout(s,n)};s()}updateAllModels(){let t=performance.now(),s=!0;for(let[,i]of this._thread.list){let n=i.update(t);if(s=s&&n,performance.now()-t>this._updateThreshold)break}return s}},y1=class{constructor(t){k(this,"thread"),k(this,"modelCreator"),k(this,"raycaster"),k(this,"modelDeleter"),k(this,"modelAborter"),k(this,"viewRefresher"),k(this,"boxFetcher"),k(this,"executor"),k(this,"updater"),this.thread=t,this.modelCreator=new o1(t),this.raycaster=new h1(t),this.modelDeleter=new l1(t),this.modelAborter=new u1(t),this.viewRefresher=new p1(t),this.boxFetcher=new E1(t),this.executor=new f1(t),this.updater=new I1(t)}},T1=class{constructor(){k(this,"actions",{}),k(this,"list",new Map),k(this,"loading",new Set),k(this,"aborting",new Set),k(this,"controllerManager",new y1(this)),k(this,"_connection")}get connection(){if(!this._connection)throw new Error("Fragments: Connection not set");return this._connection}set connection(t){this._connection=t}useConnection(t){let s=async i=>{await this.actions[i.class](i)};this.connection=new ZM(s),this.connection.init(t)}getModel(t){let s=this.list.get(t);if(!s)throw new Error(`Fragments: Model not found: ${t}`);return s}},t9=new T1;globalThis.onmessage=e=>{t9.useConnection(e.data)};export{T1 as FragmentsThread};
|
|
/*! Bundled license information:
|
|
|
|
@thatopen/fragments/dist/Worker/worker.mjs:
|
|
(**
|
|
* @license
|
|
* Copyright 2010-2025 Three.js Authors
|
|
* SPDX-License-Identifier: MIT
|
|
*)
|
|
(*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
|
|
*/
|